/* ===========================================================================
   FREBOStore · hoja del catálogo (frente B)
   Extiende assets/estilo.css del dominio personal: mismos tokens, misma voz
   visual. Nada de recursos externos.
   =========================================================================== */

/* ---------- barra de buscador bajo la navegación ---------- */
.cat-barra{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);
  background:var(--papel)}
.cat-barra .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;
  align-items:center;padding:10px 0}
.cat-busc{display:flex;gap:8px;min-width:0}
.cat-busc input[type=search]{flex:1 1 auto;min-width:0;font:400 15px/1.2 var(--sans);
  color:var(--tinta);background:#fff;border:1px solid var(--linea);border-radius:4px;
  padding:11px 12px}
.cat-busc input[type=search]:focus{outline:2px solid var(--accent);outline-offset:1px}
.cat-dep{flex:0 0 auto;max-width:190px;font:400 14px/1.2 var(--sans);color:var(--tinta);
  background:#fff;border:1px solid var(--linea);border-radius:4px;padding:11px 10px}
@media (max-width:620px){
  .cat-busc{flex-wrap:wrap}
  .cat-dep{max-width:none;width:100%;order:3}
  .cat-busc input[type=search]{order:1;flex:1 1 100%}
  .cat-busc button{order:2}
}
.cat-busc button{flex:0 0 auto}
.cat-cuenta{font:600 12.5px/1 var(--sans);letter-spacing:.04em;color:var(--gris);
  text-transform:uppercase;white-space:nowrap}

/* ---------- migas y título de sección ---------- */
.cat-migas{font:400 12.5px/1.5 var(--sans);color:var(--gris);padding:14px 0 0}
.cat-migas a{color:var(--gris)}
.cat-migas span{color:var(--tinta)}

/* ---------- reparto: panel de filtros + resultados ---------- */
.cat-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;
  padding:16px 0 clamp(40px,6vw,70px)}
.cat-panel{background:#fff;border:1px solid var(--linea);border-radius:6px;
  box-shadow:var(--sombra);overflow:hidden;align-self:start}
.cat-panel > summary{cursor:pointer;list-style:none;display:flex;align-items:center;
  justify-content:space-between;gap:10px;padding:13px 14px;
  font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--tinta)}
.cat-panel > summary::-webkit-details-marker{display:none}
.cat-panel > summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--gris);
  border-bottom:2px solid var(--gris);transform:rotate(45deg);transition:transform .18s}
.cat-panel[open] > summary::after{transform:rotate(-135deg)}
.cat-grupo{padding:12px 14px;border-top:1px solid var(--linea2)}
.cat-grupo:first-of-type{border-top:0}
.cat-grupo h3{margin:0 0 8px;font:700 11px/1 var(--sans);letter-spacing:.1em;
  text-transform:uppercase;color:var(--gris)}
.cat-op{display:flex;align-items:flex-start;gap:9px;padding:6px 0;
  font:400 14px/1.35 var(--sans);color:var(--tinta2);cursor:pointer;min-height:30px}
.cat-op input{margin:2px 0 0;flex:0 0 auto;width:16px;height:16px;accent-color:var(--accent)}
.cat-op b{font-weight:600;color:var(--tinta)}
.cat-op i{margin-left:auto;font:400 12px/1.35 var(--sans);color:var(--gris2);font-style:normal}
.cat-limpiar{margin:10px 14px 14px}
.cat-limpiar button{font:600 13px/1 var(--sans);color:var(--accent);background:none;
  border:1px solid var(--linea);border-radius:4px;padding:9px 12px;cursor:pointer;width:100%}

/* ---------- cabecera de resultados ---------- */
.cat-res-cab{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  flex-wrap:wrap;margin:0 0 12px}
.cat-res-cab h2{margin:0;font:700 20px/1.25 var(--sans);letter-spacing:-.01em;color:var(--tinta)}
.cat-res-cab p{margin:0;font:400 13.5px/1.4 var(--sans);color:var(--gris)}
.cat-activos{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.cat-chip-btn{display:inline-flex;align-items:center;gap:6px;font:600 11.5px/1 var(--sans);
  letter-spacing:.04em;padding:6px 10px;border-radius:99px;border:1px solid var(--linea);
  background:#F4F2EC;color:var(--tinta2);cursor:pointer}
.cat-chip-btn b{font-weight:700}
.cat-chip-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- rejilla de fichas ---------- */
.cat-rejilla{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.cat-tarjeta{display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);
  border-top:4px solid var(--gris2);border-radius:6px;box-shadow:var(--sombra);
  overflow:hidden;min-width:0}
.cat-tarjeta.es-disponible{border-top-color:var(--verde)}
.cat-tarjeta.es-cotizacion{border-top-color:var(--azul)}
.cat-tarjeta.es-demo{border-top-color:var(--ambar)}
.cat-tarjeta.es-prevista{border-top-color:var(--gris2)}
.cat-tarjeta.es-vacia{border-top-color:var(--linea);border-top-style:dashed;background:#FCFBF8}
.cat-cab{padding:12px 13px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cat-num{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;background:var(--tinta);color:#fff;
  font:700 12.5px/1 var(--sans)}
.cat-cuerpo{padding:10px 13px 13px;display:flex;flex-direction:column;gap:7px;flex:1 1 auto}
.cat-nom{margin:0;font:700 16.5px/1.25 var(--serif);color:var(--tinta)}
.cat-que{margin:0;font:400 13.5px/1.5 var(--sans);color:var(--tinta2)}
.cat-para{margin:0;font:400 12.5px/1.5 var(--sans);color:var(--gris)}
.cat-para b{color:var(--tinta2);font-weight:600}
.cat-et{display:flex;flex-wrap:wrap;gap:5px;padding:0 13px 12px}
.cat-pie{margin-top:auto;border-top:1px solid var(--linea2);padding:11px 13px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cat-precio{font:700 15px/1.2 var(--sans);color:var(--tinta)}
.cat-precio small{display:block;font:400 11.5px/1.4 var(--sans);color:var(--gris);
  font-weight:400}
.cat-cta{font:600 13px/1 var(--sans);color:var(--accent);text-decoration:none;
  border-bottom:1px solid currentColor;padding-bottom:2px}
.cat-nota{margin:0;padding:0 13px 12px;font:400 12px/1.5 var(--sans);color:var(--gris)}

/* ---------- estantería vacía ---------- */
.cat-espera{margin:0 13px 13px;border:1px dashed var(--linea);border-radius:4px;
  background:#FCFBF8;padding:11px 12px;font:400 12.5px/1.55 var(--sans);color:var(--gris)}
.cat-espera b{color:var(--tinta2);font-weight:600}

/* ---------- leyenda de estados ---------- */
.cat-estados{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.cat-estado{display:flex;gap:11px;align-items:flex-start;background:#fff;
  border:1px solid var(--linea);border-left:4px solid var(--gris2);border-radius:5px;padding:12px 13px}
.cat-estado.e-disponible{border-left-color:var(--verde)}
.cat-estado.e-cotizacion{border-left-color:var(--azul)}
.cat-estado.e-demo{border-left-color:var(--ambar)}
.cat-estado.e-prevista{border-left-color:var(--gris2)}
.cat-estado.e-vacia{border-left-color:var(--linea);border-left-style:dashed}
.cat-estado h3{margin:0 0 3px;font:700 14.5px/1.3 var(--sans);color:var(--tinta)}
.cat-estado p{margin:0;font:400 13px/1.5 var(--sans);color:var(--tinta2)}

/* ---------- pasos del recorrido ---------- */
.cat-pasos{display:grid;gap:12px;grid-template-columns:minmax(0,1fr);
  counter-reset:paso}
.cat-paso{position:relative;background:#fff;border:1px solid var(--linea);border-radius:6px;
  padding:14px 14px 14px 52px;box-shadow:var(--sombra)}
.cat-paso::before{counter-increment:paso;content:counter(paso);position:absolute;
  left:14px;top:13px;width:26px;height:26px;border-radius:50%;background:var(--accent);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font:700 12.5px/1 var(--sans)}
.cat-paso h3{margin:0 0 4px;font:700 15px/1.3 var(--sans);color:var(--tinta)}
.cat-paso p{margin:0;font:400 13px/1.55 var(--sans);color:var(--tinta2)}

/* ---------- vacío de resultados ---------- */
.cat-vacio{display:none;border:1px dashed var(--linea);border-radius:6px;background:#FCFBF8;
  padding:22px 18px;text-align:center;font:400 14px/1.6 var(--sans);color:var(--gris)}
.cat-vacio b{display:block;font:700 16px/1.3 var(--sans);color:var(--tinta);margin-bottom:5px}

/* ---------- cinta de prototipo (revisión, no publicado) ---------- */
.cat-cinta{background:var(--ambar);color:#fff;font:700 12px/1.35 var(--sans);
  letter-spacing:.03em;text-align:center;padding:8px 12px}
.cat-cinta a{color:#fff}

/* ---------- carrito simulado ---------- */
.cat-carro{position:fixed;right:14px;bottom:14px;z-index:40;display:flex;gap:8px;
  align-items:center;background:var(--tinta);color:#fff;border:0;border-radius:99px;
  padding:12px 16px;font:600 13.5px/1 var(--sans);box-shadow:var(--sombra);cursor:pointer}
.cat-carro b{background:var(--ambar);color:#fff;border-radius:99px;padding:2px 7px;
  font:700 12px/1 var(--sans)}

/* ---------- de 620 px en adelante ---------- */
@media (min-width:620px){
  .cat-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-estados{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---------- de 900 px en adelante: panel lateral fijo ---------- */
@media (min-width:900px){
  .cat-layout{grid-template-columns:262px minmax(0,1fr);gap:22px}
  .cat-panel{position:sticky;top:14px}
  .cat-panel > summary{pointer-events:none}
  .cat-panel > summary::after{display:none}
  .cat-rejilla{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cat-pasos{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1120px){
  .cat-rejilla{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cat-estados{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .cat-panel > summary::after{transition:none}
}


/* --- El panel del carrito vive en un <details> sin <summary>: cerrado no
   tiene por qué ocupar sitio. Cerrado desaparece; abierto, se ve. --- */
#cat-carro-caja:not([open]){display:none}

/* --- En el teléfono, el botón flotante del carrito no puede tapar el último
   filtro ni el último botón de una ficha. --- */
@media (max-width:560px){
  body{padding-bottom:72px}
  .cat-carro{right:12px;bottom:12px}
}

/* ---- Ficha de una oferta: la página propia de cada tarjeta ---- */
.cat-nom a{color:inherit;text-decoration:none}
.cat-nom a:hover,.cat-nom a:focus{text-decoration:underline}
.cat-foto{display:block;margin:10px 13px 0;border:1px solid var(--linea2);border-radius:6px;overflow:hidden;background:#fff}
.cat-foto img{display:block;width:100%;height:150px;object-fit:cover}
.cat-aviso{margin:10px 13px 0;font:400 12px/1.5 var(--sans);color:var(--gris);border-left:2px solid var(--ambar);padding-left:8px}
.fi{max-width:1080px}
.fi-cab{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start;margin:18px 0 6px}
.fi-datos h1{margin:.15em 0 .5em;font:700 clamp(24px,3.2vw,34px)/1.2 var(--serif);color:var(--tinta)}
.fi-tipo{margin:0;font:600 12.5px/1.5 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--gris)}
.fi-que{font:400 16.5px/1.7 var(--serif);color:var(--tinta)}
.fi-pre{margin:14px 0 0}
.fi-acciones{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.fi-foto{margin:0;border:1px solid var(--linea);border-radius:8px;overflow:hidden;background:#fff}
.fi-foto img{display:block;width:100%;height:auto}
.fi-foto .cat-aviso{margin:10px 12px 12px}
.fi-para{font:400 15.5px/1.7 var(--sans);color:var(--tinta)}
.fi-otras{margin:26px 0 0;border-top:1px solid var(--linea2);padding-top:14px}
.fi-otras ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.fi-otras li{border-bottom:1px solid var(--linea2);padding-bottom:7px;font:400 15px/1.5 var(--sans)}
.fi-otras a{color:var(--tinta)}
@media (max-width:820px){.fi-cab{grid-template-columns:1fr;gap:18px}.cat-foto img{height:120px}}

/* La leyenda de la imagen va pegada a la imagen, también en la rejilla */
.cat-foto{position:relative}
.cat-foto-leyenda{position:absolute;left:0;right:0;bottom:0;display:block;padding:4px 8px;
  background:rgba(14,76,66,.86);color:#fff;font:600 10.5px/1.35 var(--sans);letter-spacing:.02em}
