/*
 * PÁGINAS GENERADAS — producto (p/), categoría y subcategoría (c/) y marca
 * (marca/). Las arma herramientas/generar-paginas.py en cada deploy para que
 * Google y los buscadores de las IA encuentren cada producto con su propia
 * dirección (2026-09-23, pedido de Antero: "que sea mejor encontrarlos en
 * Google" y "que sea recomendada por inteligencias artificiales").
 *
 * Nada de diseño nuevo en lo importante: la página de producto ES la
 * pastilla abierta del catálogo (.pz--abierta + .fx de tienda.css), quieta y
 * con el título como <h1>; los listados son las mismas pastillas de la
 * grilla. Acá sólo va lo que cambia por estar en una página propia.
 */

/* Toda la página es noche, como las páginas de texto: sin esto, debajo del
   pie asoma el blanco de --pagina en las páginas cortas. */
body.pagina-generada { background: var(--negro); }

.pag { padding: var(--esp-3) 0 var(--esp-5); color: #fff; }

/* ---- migas: por dónde se llega, y la forma de volver a la categoría ---- */
.migas {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px;
  font-family: var(--fuente-mono); font-size: var(--t-mini);
  letter-spacing: 0.06em; color: rgba(255, 255, 255, 0.5);
  margin-bottom: var(--esp-2);
}
.migas a { color: rgba(255, 255, 255, 0.72); text-decoration: none; }
.migas a:hover { color: var(--amarillo); }
.migas span[aria-hidden] { color: rgba(255, 255, 255, 0.28); }
.migas [aria-current] { color: var(--amarillo); }

/* ---- la ficha, quieta ----
   .pz trae opacity 0 y un translateY para la entrada escalonada de la grilla,
   y .pz--abierta el cursor de "cerrar": en una página propia no entra ni se
   cierra nada. */
.pz.pz--pagina {
  opacity: 1; transform: none; animation: none; cursor: default;
  min-height: 0;
}
.pz.pz--pagina:hover { transform: none; }
.pz--pagina .fx { height: auto; }
.pz--pagina .fx__titulo { margin: 0; font-size: clamp(1.2rem, 2.1vw, 1.7rem); }
/* la marca como texto mientras marcas.js no la cambia por el logo */
.fx__marca {
  font-family: var(--fuente-mono); font-size: var(--t-mini); font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--gris-suave);
}
.fx__agregar:disabled,
.fx__agregar:disabled:hover {
  background: #e4e4df; color: #8c8c86; border-color: #e4e4df; cursor: not-allowed;
}
.fx__meta [data-ico] { display: inline-flex; }

/* Lo que un comprador que llega de Google pregunta antes de comprar. */
.fp__promesas {
  list-style: none; margin: 4px 0 0; padding: 0;
  display: grid; gap: 5px;
  font-size: 0.76rem; line-height: 1.35; color: var(--gris);
}
.fp__promesas li { position: relative; padding-left: 13px; }
.fp__promesas li::before {
  content: ""; position: absolute; left: 0; top: 0.42em;
  width: 6px; height: 6px; background: var(--amarillo); outline: 1px solid var(--amarillo-oscuro);
}
@media (max-width: 1080px) {
  .fp__promesas { grid-column: 1 / -1; }
}

/* ---- las pastillas de los listados: enlaces, no fichas que se abren ---- */
.pz.pz--estatica { opacity: 1; transform: none; cursor: pointer; }
.pz.pz--estatica:hover, .pz.pz--estatica:focus-within { transform: translateY(-4px); }
.pz__ir { color: inherit; text-decoration: none; }
/* Toda la pastilla es el enlace (menos el botón de agregar, que queda encima):
   el ::after se estira hasta .pz, que es el que tiene position:relative. */
.pz__ir::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pz__ir:focus-visible { outline: none; }
.pz--estatica .pz__agregar { position: relative; z-index: 2; }
.pz--sinstock .pz__foto img { opacity: 0.45; filter: grayscale(1); }
.pz--sinstock .pz__precio { color: var(--gris-suave); }
.pz__agotado {
  font-family: var(--fuente-mono); font-size: var(--t-mini); font-weight: 700;
  letter-spacing: 0.08em; color: var(--gris-suave);
}

/* ---- cabeza de los listados ---- */
.pag__cabeza { max-width: 820px; margin: var(--esp-1) 0 var(--esp-3); }
.pag__titulo {
  font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800; letter-spacing: -0.02em;
  line-height: 1.05; margin: 0 0 0.6rem;
}
.pag__intro { color: rgba(255, 255, 255, 0.72); line-height: 1.55; font-size: var(--t-cuerpo); margin: 0 0 0.7rem; }
.pag__cuenta { font-family: var(--fuente-mono); font-size: var(--t-chico); color: rgba(255, 255, 255, 0.5); margin: 0; }
.pag__cuenta b { color: var(--amarillo); }
.pag__cuenta a { color: var(--amarillo); text-decoration: underline; text-underline-offset: 2px; }
.pag__cuenta a:hover { color: #fff; }

.pag__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--esp-3); }
.pag__chip {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--fuente-mono); font-size: var(--t-mini); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
  color: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.18); padding: 7px 11px;
  transition: border-color 140ms, color 140ms, background 140ms;
}
.pag__chip span { color: var(--amarillo); font-weight: 400; }
.pag__chip:hover { border-color: var(--amarillo); color: #fff; }
.pag__chip--on { background: var(--amarillo); border-color: var(--amarillo); color: var(--negro); }
.pag__chip--on span { color: var(--negro); }

.pag__seccion, .pag__mas { margin-top: var(--esp-4); }
.pag__seccion .resultado__titulo a { color: inherit; text-decoration: none; }
.pag__seccion .resultado__titulo a:hover { color: var(--amarillo); }
.grilla-pagina { margin-top: var(--esp-2); }
.pag__ver-todo { display: flex; justify-content: center; margin: var(--esp-3) 0 0; }
