/* Protec Catálogo — estilos del buscador, mapa y fichas.
   Reutiliza los tokens de color/tipografía del kit "Bosque" cuando ya
   existen en la página (Elementor los define global); si no, caen aquí
   como valores por defecto. */
.pc {
  /* Protec Catálogo · skin "Haritza" — mismas variables --pc-*, ahora
     apuntando a los tokens --hz-* (definidos globalmente por
     dev/bootstrap/assets/haritza.css) con el valor Haritza como
     fallback si esos tokens no están cargados en la página. */
  --pc-surface: var(--hz-paper, #ffffff);
  --pc-surface-mist: var(--hz-brote-claro, #f1f7e2);
  --pc-surface-cream: var(--hz-albura, #faf7f0);
  --pc-sand: var(--hz-line, #e3e6da);
  --pc-ink: var(--hz-tinta, #1e2a1a);
  --pc-ink-muted: var(--hz-ink-soft, #556052);
  --pc-forest: var(--hz-bosque, #34531a);
  --pc-fern: var(--hz-hoja, #699922);
  --pc-leaf: var(--hz-lima, #87ba14);
  --pc-sun: var(--hz-pino, #8a5a1e);
  --pc-on-dark: #ffffff;
  --pc-radius-md: var(--hz-radius-card, 22px);
  --pc-radius-lg: var(--hz-radius-lg, 28px);
  --pc-radius-xl: var(--hz-radius-leaf, 36px);
  --pc-shadow: var(--hz-shadow-soft, 0 1px 2px rgba(30,42,26,.05), 0 12px 28px -14px rgba(30,42,26,.18));
  --pc-font-display: var(--hz-font-display, "Plus Jakarta Sans", system-ui, sans-serif);
  --pc-font-sans: var(--hz-font-sans, "Plus Jakarta Sans", system-ui, sans-serif);
  color: var(--pc-ink);
  font-family: var(--pc-font-sans);
}
.pc *{box-sizing:border-box}
.pc h1,.pc h2,.pc h3{font-family:var(--pc-font-display);margin:0}

.pc-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.pc-search{position:relative;flex:1 1 300px;min-width:220px}
.pc-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:var(--pc-fern);stroke-width:2.2;stroke-linecap:round}
.pc-search input{width:100%;font:600 15px/1.3 var(--pc-font-sans);color:var(--pc-ink);background:var(--pc-surface-cream);border:2px solid var(--pc-sand);border-radius:var(--pc-radius-md);padding:12px 16px 12px 46px}
.pc-search input:focus{outline:none;border-color:var(--pc-fern);background:var(--pc-surface)}
.pc-seg{display:flex;background:var(--pc-surface-mist);border-radius:10px;padding:3px;flex:none}
.pc-seg button{appearance:none;border:0;background:transparent;padding:9px 14px;border-radius:7px;font:700 13px/1 var(--pc-font-sans);color:var(--pc-ink-muted);cursor:pointer}
.pc-seg button[aria-pressed="true"]{background:var(--pc-forest);color:var(--pc-on-dark)}

.pc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
button.pc-chip{display:inline-flex;align-items:center;gap:7px;font:700 13px/20px var(--pc-font-sans);padding:7px 13px;border-radius:10px;border:2px solid var(--pc-sand);background:var(--pc-surface);color:var(--pc-ink);cursor:pointer}
button.pc-chip[aria-pressed="true"]{background:var(--pc-forest);border-color:var(--pc-forest);color:var(--pc-on-dark)}
.pc-chip .pc-icon,.pc-tone .pc-icon,.pc-categoria-tag .pc-icon,.pc-specs .pc-icon{flex:none}
.pc-chip .pc-icon{width:16px;height:16px}

.pc-count{font-size:13px;color:var(--pc-ink-muted);margin-bottom:12px}
.pc-count b{color:var(--pc-ink)}

.pc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:980px){.pc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.pc-grid{grid-template-columns:1fr}}
.pc-card{display:flex;flex-direction:column;background:var(--pc-surface);border:1px solid var(--pc-sand);border-radius:var(--pc-radius-lg);overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.pc-card:hover{transform:translateY(-3px);box-shadow:var(--pc-shadow)}
.pc-card .pc-art{aspect-ratio:16/10;background:var(--pc-surface-mist) center/cover no-repeat;position:relative}
.pc-card .pc-tone{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;font:700 11px/16px var(--pc-font-sans);padding:4px 9px;border-radius:7px;background:rgba(20,31,24,.55);color:#fff}
.pc-card .pc-tone .pc-icon,.pc-hero .pc-tone .pc-icon{width:14px;height:14px}
.pc-card .pc-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.pc-card h3{font:600 18px/1.25 var(--pc-font-display)}
.pc-card .pc-loc{font-size:12.5px;color:var(--pc-ink-muted)}
.pc-card .pc-meta{margin-top:auto;padding-top:10px;border-top:1px solid var(--pc-sand);font-size:12px;color:var(--pc-ink-muted)}

.pc-maplayout{display:grid;grid-template-columns:320px 1fr;gap:18px}
.pc [hidden]{display:none!important}
@media (max-width:860px){.pc-maplayout{grid-template-columns:1fr}}
.pc-maplist{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow-y:auto}
.pc-maprow{display:flex;gap:10px;align-items:center;padding:9px;border-radius:12px;border:1px solid transparent;background:var(--pc-surface);cursor:pointer;text-align:left}
.pc-maprow.is-active{border-color:var(--pc-fern);background:var(--pc-surface-mist)}
.pc-maprow img{width:52px;height:40px;object-fit:cover;border-radius:8px;flex:none;background:var(--pc-surface-mist)}
.pc-maprow b{display:block;font:700 13.5px/17px var(--pc-font-sans)}
.pc-maprow span{display:block;font-size:12px;color:var(--pc-ink-muted)}
.pc-map{height:560px;border-radius:var(--pc-radius-lg);border:1px solid var(--pc-sand)}
.pc-pin{width:28px;height:36px;display:block;filter:drop-shadow(0 3px 4px rgba(27,42,31,.35))}

.pc-empty{padding:24px;text-align:center;color:var(--pc-ink-muted)}

/* ---------- fichas (single aplicación / producto) ---------- */
.pc-ficha{max-width:1100px;margin:0 auto;padding:32px 20px 64px}
.pc-crumb{font-size:12.5px;color:var(--pc-ink-muted);margin-bottom:14px}
.pc-crumb a{color:var(--pc-fern);text-decoration:none;font-weight:700}
.pc-hero{position:relative;border-radius:var(--pc-radius-xl);overflow:hidden;margin-bottom:20px;background:var(--pc-surface-mist)}
.pc-hero img{width:100%;height:auto;display:block}
.pc-hero .pc-tone{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:6px;background:rgba(20,31,24,.6);color:#fff;font:700 12px/1 var(--pc-font-sans);padding:7px 12px;border-radius:8px}
.pc-hero .pc-cap{position:absolute;bottom:0;left:0;right:0;padding:22px 26px;background:linear-gradient(0deg,rgba(20,31,24,.72),transparent)}
.pc-hero .pc-cap h1{color:#fff;font-size:32px}

/* ---------- hotspots: productos marcados sobre la foto ---------- */
.pc-hotspots{position:absolute;inset:0;pointer-events:none}
.pc-hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}
.pc-hotspot .pc-hotspot-pin{appearance:none;-webkit-appearance:none;width:34px;height:34px;border-radius:50%;background:var(--pc-sun);border:3px solid var(--pc-on-dark);box-shadow:0 2px 8px rgba(20,31,24,.4);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;position:relative;z-index:1}
.pc-hotspot-pin::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pc-forest)}
.pc-hotspot-pin{animation:pc-pulse 2.4s ease-in-out infinite}
@keyframes pc-pulse{0%,100%{box-shadow:0 2px 8px rgba(20,31,24,.4),0 0 0 0 rgba(255,197,61,.55)}50%{box-shadow:0 2px 8px rgba(20,31,24,.4),0 0 0 10px rgba(255,197,61,0)}}
.pc-hotspot-card{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);min-width:200px;background:var(--pc-surface);border-radius:var(--pc-radius-md);box-shadow:var(--pc-shadow);padding:10px;display:none;gap:10px;align-items:center;text-decoration:none;color:var(--pc-ink);z-index:2}
.pc-hotspot.is-open .pc-hotspot-card{display:flex}
.pc-hotspot-card img{width:56px;height:44px;object-fit:cover;border-radius:8px;flex:none;background:var(--pc-surface-mist)}
.pc-hotspot-card b{display:block;font-size:13.5px;line-height:1.3}
.pc-hotspot-card span{display:block;font-size:12px;color:var(--pc-ink-muted)}
@media (max-width:640px){.pc-hotspot-pin{width:28px;height:28px}.pc-hotspot-card{min-width:170px}}
.pc-detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}
@media (max-width:900px){.pc-detail-grid{grid-template-columns:1fr}}
.pc-panel{background:var(--pc-surface);border:1px solid var(--pc-sand);border-radius:var(--pc-radius-lg);padding:22px;margin-bottom:18px}
.pc-panel h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#7a4a22;margin-bottom:12px}
.pc-panel p{color:var(--pc-ink-muted);line-height:1.6}
.pc-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:13.5px;margin:0}
.pc-dl dt{color:var(--pc-ink-muted)}
.pc-dl dd{margin:0;font-weight:700}
.pc-relgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}
@media (max-width:560px){.pc-relgrid{grid-template-columns:1fr}}
.pc-relcard{display:flex;gap:10px;align-items:center;padding:9px;border:1px solid var(--pc-sand);border-radius:12px;text-decoration:none;color:inherit}
.pc-relcard:hover{border-color:var(--pc-fern)}
.pc-relcard img{width:60px;height:46px;object-fit:cover;border-radius:8px;background:var(--pc-surface-mist);flex:none}
.pc-relcard b{display:block;font-size:13.5px}
.pc-relcard span{display:block;font-size:12px;color:var(--pc-ink-muted)}
.pc-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
@media (max-width:560px){.pc-gallery{grid-template-columns:repeat(2,1fr)}}
.pc-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.pc-specs{width:100%;border-collapse:collapse;font-size:13.5px}
.pc-specs td{padding:8px 0;border-bottom:1px solid var(--pc-sand)}
.pc-specs td:first-child{color:var(--pc-ink-muted);width:44%;display:flex;align-items:center;gap:7px}
.pc-specs .pc-icon{width:16px;height:16px;color:var(--pc-fern)}
.pc-categoria-tag{margin-top:14px;display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--pc-forest)}
.pc-categoria-tag .pc-icon{width:16px;height:16px}
.pc-specs td:last-child{font-weight:700;text-align:right}

/* ---------- noticias ---------- */
.pc-card .pc-excerpt { font-size: 13.5px; line-height: 1.55; color: var(--pc-ink-muted); margin: 0; }
.pc-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.pc-pagination .page-numbers { font: 700 13px/1 var(--pc-font-sans); padding: 10px 15px; border-radius: 10px; border: 2px solid var(--pc-sand); background: var(--pc-surface); color: var(--pc-ink); text-decoration: none; }
.pc-pagination .page-numbers.current { background: var(--pc-forest); border-color: var(--pc-forest); color: var(--pc-on-dark); }
.pc-pagination .page-numbers:hover:not(.current) { border-color: var(--pc-fern); }
.pc-pagination .dots { border: none; background: none; }
.pc-tagrow { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-tag { display: inline-flex; align-items: center; gap: 6px; font: 700 12px/16px var(--pc-font-sans); letter-spacing: .02em; padding: 6px 12px; border-radius: 8px; background: var(--pc-surface-mist); color: var(--pc-forest); }
.pc-tag .pc-icon { width: 13px; height: 13px; }
