/* Lebrijoya v2 · tokens de diseño
   Paleta tomada de la fachada de la tienda en la Plaza de España:
   cal (paredes encaladas), albero/oro (molduras), forja (rejería), piedra (zócalos). */

@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/bodoni-moda-latin-opsz18.woff2") format("woff2-variations"),
       url("../fonts/bodoni-moda-latin-opsz18.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Albert Sans";
  src: url("../fonts/albert-sans-latin-wght-normal.woff2") format("woff2-variations"),
       url("../fonts/albert-sans-latin-wght-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  color-scheme: only light; /* solo versión clara: el modo oscuro forzado del móvil no la oscurece */
  /* Color · contraste AA comprobado (ver docs/diseno.md) */
  --cal: #fcfaf6;          /* fondo de página */
  --blanco: #ffffff;       /* vitrina: fondo de foto de producto */
  --marfil: #f4efe4;       /* bandas y paneles */
  --piedra-100: #ebe5d9;   /* rellenos suaves, hover */
  --piedra-300: #d6cfc1;   /* filetes y bordes decorativos */
  --piedra-500: #8b8478;   /* bordes de campos (3:1) */
  --piedra-700: #5f594f;   /* texto secundario (6,6:1) */
  --forja: #1e1b16;        /* texto y fondos oscuros (16,5:1) */
  --forja-2: #2a2620;      /* superficies oscuras */
  --oro: #b19800;          /* dorado de marca: rellenos y filetes, nunca texto sobre claro */
  --oro-osc: #7a6800;      /* dorado para texto sobre claro (5,3:1) */
  --oro-claro: #dcc65a;    /* dorado para texto sobre oscuro (10:1) */
  --champan: #f1e9c6;      /* fondo de sellos y avisos */
  --rosa: #f0c2b3;         /* rosa del logotipo: etiqueta «Novedad» (forja encima: 11:1) */
  --rosa-claro: #f7dfd7;   /* rosa del logotipo al 52 % sobre blanco, el del pie de la web antigua: fondo del pie (forja 13,5:1) */
  --granate: #9a2a34;      /* oferta y errores (7,6:1) */
  --verde: #2f6a45;        /* disponibilidad */

  /* Tipografía */
  --f-display: "Bodoni Moda", "Bodoni 72", Didot, "Times New Roman", serif;
  --f-texto: "Albert Sans", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  /* escala clásica (Bringhurst): 12 · 14 · 16 · 18 · 21 · 24 · 36 · 48 · 60 · 72 */
  --t-12: .75rem;
  --t-14: .875rem;
  --t-16: 1rem;
  --t-18: 1.125rem;
  --t-21: 1.3125rem;
  --t-24: 1.5rem;
  --t-36: clamp(1.75rem, 1.2rem + 2.2vw, 2.25rem);
  --t-48: clamp(2.125rem, 1.4rem + 3vw, 3rem);
  --t-72: clamp(2.75rem, 1.2rem + 6.2vw, 5.25rem);

  /* Espacio (base 4) */
  --e-1: .25rem; --e-2: .5rem; --e-3: .75rem; --e-4: 1rem; --e-5: 1.5rem;
  --e-6: 2rem; --e-7: 3rem; --e-8: 4rem; --e-9: 6rem; --e-10: 8rem;
  --margen: clamp(1rem, .4rem + 3vw, 3.5rem);   /* gutter lateral: 16 px en móvil */
  --ancho: 1440px;                                /* contenedor máximo */
  --seccion: clamp(3.5rem, 2rem + 6vw, 7.5rem);    /* aire entre secciones */

  /* Radios: por jerarquía, no uno para todo */
  --r-foto: 0;          /* fotografía y vitrinas: canto vivo */
  --r-campo: 2px;       /* campos y botones rectos */
  --r-panel: 4px;       /* diálogos y paneles */
  --r-sello: 999px;     /* sellos, muestras de color y chapas */

  /* Sombras: solo lo que flota */
  --sombra-flota: 0 1.5rem 4rem -1rem rgb(30 27 22 / .35);
  --sombra-boton: 0 .5rem 1.5rem -.5rem rgb(30 27 22 / .4);

  --curva: cubic-bezier(.2, .7, .1, 1);
  --rapido: .18s;
  --lento: .45s;
  --alto-cabecera: 4.5rem;
}

/* Lebrijoya v2 · hoja principal (móvil primero: 375 → 768 → 1024 → 1280) */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 8rem; }
body {
  margin: 0; background: var(--cal); color: var(--forja);
  font: 400 var(--t-16)/1.6 var(--f-texto);
  font-feature-settings: "kern"; text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote, fieldset { margin: 0; padding: 0; }
ul, ol { list-style: none; }
fieldset { border: 0; min-width: 0; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 3px; }
.oscuro :focus-visible { outline-color: var(--oro-claro); }
::selection { background: var(--champan); color: var(--forja); }
.sr, .oculto-movil { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: var(--e-4); top: -4rem; z-index: 100; padding: var(--e-3) var(--e-4); background: var(--forja); color: var(--cal); }
.saltar:focus { top: var(--e-2); }
.envoltura { width: min(100% - 2 * var(--margen), var(--ancho)); margin-inline: auto; }
.icono { width: 1.375rem; height: 1.375rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.icono--s { width: 1.125rem; height: 1.125rem; }
.icono--relleno { fill: currentColor; stroke: none; }

/* ---------- Tipografía ---------- */
.titulo-1, .titulo-2, .titulo-3 { font-family: var(--f-display); font-weight: 400; letter-spacing: -.01em; text-wrap: balance; }
.titulo-1 { font-size: var(--t-48); line-height: 1.05; }
.titulo-2 { font-size: var(--t-36); line-height: 1.1; }
.titulo-3 { font-size: var(--t-24); line-height: 1.2; }
.lead { font-size: var(--t-18); line-height: 1.6; color: var(--piedra-700); max-width: 38em; text-wrap: pretty; }
.prosa { max-width: 68ch; }
.prosa p + p, .prosa h2 + p { margin-top: var(--e-4); }
.prosa h2 { font: 400 var(--t-24)/1.25 var(--f-display); margin-top: var(--e-6); }
.prosa a, .enlace { color: var(--oro-osc); font-weight: 500; text-decoration: underline; text-decoration-color: var(--oro); }
.prosa a:hover, .enlace:hover { color: var(--forja); }
.secundario { color: var(--piedra-700); }
.precio { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.precio del { color: var(--piedra-700); font-weight: 400; margin-right: .4em; }
.precio ins { color: var(--granate); text-decoration: none; }

/* ---------- Botones y campos ---------- */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  min-height: 3rem; padding: .75rem 1.75rem; border: 1px solid var(--forja); border-radius: var(--r-campo);
  background: var(--forja); color: var(--cal); font-weight: 600; font-size: var(--t-16); letter-spacing: .01em;
  text-decoration: none; transition: background var(--rapido), color var(--rapido), border-color var(--rapido);
}
.boton:hover { background: var(--oro); border-color: var(--oro); color: var(--forja); }
.boton--linea { background: transparent; color: var(--forja); }
.boton--linea:hover { background: var(--forja); border-color: var(--forja); color: var(--cal); }
.boton--claro { background: var(--cal); border-color: var(--cal); color: var(--forja); }
.boton--claro:hover { background: var(--oro-claro); border-color: var(--oro-claro); }
.boton--ancho { width: 100%; }
.boton-icono { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: var(--r-sello); color: var(--forja); transition: background var(--rapido); }
.boton-icono:hover { background: var(--piedra-100); }
.boton-icono[aria-pressed="true"] .icono { fill: var(--granate); stroke: var(--granate); }
.campo { display: grid; gap: var(--e-1); }
.campo label, .etiqueta { font-size: var(--t-14); font-weight: 600; }
.campo small { color: var(--piedra-700); font-size: var(--t-12); }
.entrada, select.entrada, textarea.entrada {
  width: 100%; min-height: 3rem; padding: .7rem .9rem; background: var(--blanco);
  border: 1px solid var(--piedra-500); border-radius: var(--r-campo); font-size: var(--t-16);
}
.entrada::placeholder { color: var(--piedra-700); }
.entrada:focus-visible { outline-offset: 0; border-color: var(--forja); }
select.entrada { appearance: none; padding-right: 2.5rem; background: var(--blanco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e1b16' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center / 1.1rem; }
.casilla { display: flex; align-items: flex-start; gap: var(--e-3); font-size: var(--t-14); cursor: pointer; }
.casilla input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--forja); flex: none; }
.casilla .num { margin-left: auto; color: var(--piedra-700); font-variant-numeric: tabular-nums; }
.interruptor { appearance: none; position: relative; width: 2.75rem; height: 1.5rem; margin: 0; border-radius: var(--r-sello); background: var(--piedra-500); cursor: pointer; transition: background var(--rapido); flex: none; }
.interruptor::after { content: ""; position: absolute; top: 3px; left: 3px; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: var(--blanco); transition: transform var(--rapido) var(--curva); }
.interruptor:checked { background: var(--forja); }
.interruptor:checked::after { transform: translateX(1.25rem); }
.interruptor:disabled { opacity: .55; cursor: not-allowed; }
.cantidad { display: inline-flex; align-items: center; border: 1px solid var(--piedra-500); border-radius: var(--r-campo); background: var(--blanco); }
.cantidad button { width: 2.75rem; height: 2.875rem; display: grid; place-items: center; }
.cantidad button:hover { background: var(--piedra-100); }
.cantidad input { width: 2.5rem; border: 0; text-align: center; font-variant-numeric: tabular-nums; background: none; -moz-appearance: textfield; }
.cantidad input::-webkit-inner-spin-button { -webkit-appearance: none; }
.cantidad--s button { width: 2.25rem; height: 2.25rem; }
.cantidad--s input { width: 2rem; font-size: var(--t-14); }

/* Sello: óvalo de contraste de joyero (material) y chapas de estado */
.sello { display: inline-block; padding: .05rem .55rem; border: 1px solid var(--oro); border-radius: var(--r-sello); color: var(--oro-osc); font-size: var(--t-12); font-weight: 600; letter-spacing: .03em; line-height: 1.5; white-space: nowrap; }
.chapa { padding: .15rem .5rem; font-size: var(--t-12); font-weight: 600; line-height: 1.5; border-radius: var(--r-campo); }
.chapa--oferta { background: var(--granate); color: var(--blanco); }
.chapa--nueva { background: var(--rosa); color: var(--forja); }

/* ---------- Aviso superior y cabecera ---------- */
.aviso-envio { background: var(--forja); color: var(--marfil); font-size: var(--t-12); }
.aviso-envio .icono { color: var(--oro-claro); }
.aviso-envio a { text-decoration: none; }

.cabecera { position: sticky; top: 0; z-index: 30; background: var(--cal); border-bottom: 1px solid var(--piedra-300); }
.cabecera__fila { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 3.75rem; gap: var(--e-2); }
.logo { justify-self: center; }
.logo img { width: 9.5rem; }
.cabecera__izq { display: contents; }
.cabecera__menu { justify-self: start; margin-left: -.6rem; }
.iconos { display: flex; justify-content: flex-end; align-items: center; margin-right: -.6rem; }
.iconos .solo-escritorio { display: none; }
.contador { position: absolute; top: .3rem; right: .2rem; min-width: 1.15rem; height: 1.15rem; padding: 0 .25rem; border-radius: var(--r-sello); background: var(--oro); color: var(--forja); font-size: .6875rem; font-weight: 700; line-height: 1.15rem; text-align: center; }
.iconos .boton-icono { position: relative; }
.buscador { display: none; position: relative; }
.buscador .entrada { min-height: 2.75rem; padding-left: 2.75rem; background: var(--blanco); border-color: var(--piedra-300); border-radius: var(--r-sello); font-size: var(--t-14); }
.buscador button { position: absolute; left: .25rem; top: 0; width: 2.5rem; height: 2.75rem; display: grid; place-items: center; }
.cabecera.busca-abierta .buscador { display: block; grid-column: 1 / -1; grid-row: 2; padding-bottom: var(--e-3); }
.nav-principal { display: none; }

/* ---------- Cajones (menú móvil, cesta, filtros) y diálogos ---------- */
dialog { padding: 0; border: 0; color: var(--forja); }
dialog::backdrop { background: rgb(30 27 22 / .45); }
.cajon { margin: 0; width: min(26rem, 100% - 2.5rem); max-width: none; height: 100dvh; max-height: none; background: var(--cal); box-shadow: var(--sombra-flota); }
.cajon[open] { display: flex; flex-direction: column; animation: entra-der var(--lento) var(--curva); }
.cajon--der { margin-left: auto; }
.cajon--izq[open] { animation-name: entra-izq; }
@keyframes entra-der { from { transform: translateX(100%); } }
@keyframes entra-izq { from { transform: translateX(-100%); } }
.cajon__cabeza { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); padding: var(--e-3) var(--e-3) var(--e-3) var(--e-5); border-bottom: 1px solid var(--piedra-300); }
.cajon__cabeza h2 { font: 400 var(--t-24)/1.2 var(--f-display); }
.cajon__cuerpo { flex: 1; overflow-y: auto; padding: var(--e-5); overscroll-behavior: contain; }
.cajon__pie { padding: var(--e-5); border-top: 1px solid var(--piedra-300); background: var(--blanco); display: grid; gap: var(--e-3); }

.menu-movil__lista > li { border-bottom: 1px solid var(--piedra-300); }
.menu-movil__lista summary, .menu-movil__lista > li > a { display: flex; justify-content: space-between; align-items: center; min-height: 3.5rem; font: 400 var(--t-21)/1.2 var(--f-display); text-decoration: none; cursor: pointer; list-style: none; }
.menu-movil__lista summary::-webkit-details-marker { display: none; }
.menu-movil__lista details[open] summary .icono { transform: rotate(180deg); }
.menu-movil__lista details ul { padding: 0 0 var(--e-4); display: grid; gap: var(--e-1); }
.menu-movil__lista details a { display: block; padding: .55rem 0; text-decoration: none; color: var(--piedra-700); }
.menu-movil__lista details a:hover { color: var(--forja); }
.menu-movil__extra { display: grid; gap: var(--e-2); margin-top: var(--e-6); font-size: var(--t-14); }
.menu-movil__extra a { display: flex; align-items: center; gap: var(--e-3); min-height: 2.75rem; text-decoration: none; }
.menu-movil__horario { margin-top: var(--e-5); padding: var(--e-4); background: var(--marfil); font-size: var(--t-14); color: var(--piedra-700); }

.aviso-gratis { display: flex; gap: var(--e-3); align-items: center; padding: var(--e-3) var(--e-4); background: var(--champan); font-size: var(--t-14); }
.aviso-gratis .icono { color: var(--oro-osc); }
.cesta-lineas { display: grid; gap: var(--e-5); margin-top: var(--e-5); }
.cesta-linea { display: grid; grid-template-columns: 5rem 1fr auto; gap: var(--e-4); align-items: start; }
.cesta-linea img { width: 5rem; aspect-ratio: 1; object-fit: contain; background: var(--blanco); outline: 1px solid var(--piedra-100); }
.cesta-linea__nombre { font-size: var(--t-14); font-weight: 600; line-height: 1.35; }
.cesta-linea__nombre a { text-decoration: none; }
.cesta-linea__var { font-size: var(--t-12); color: var(--piedra-700); margin: .15rem 0 var(--e-2); }
.cesta-linea__fin { display: grid; justify-items: end; gap: var(--e-2); }
.cesta-linea__quitar { font-size: var(--t-12); color: var(--piedra-700); text-decoration: underline; min-height: 1.75rem; }
.totales { display: grid; grid-template-columns: 1fr auto; gap: var(--e-2) 0; font-size: var(--t-14); }
.totales dd { text-align: right; font-variant-numeric: tabular-nums; }
.totales .total { font: 400 var(--t-24)/1.2 var(--f-display); padding-top: var(--e-3); border-top: 1px solid var(--piedra-300); margin-top: var(--e-2); }
.totales .nota { grid-column: 1 / -1; color: var(--piedra-700); font-size: var(--t-12); text-align: left; }

/* ---------- Tarjeta de producto ---------- */
.tarjeta { position: relative; display: flex; flex-direction: column; gap: var(--e-3); min-width: 0; }
.tarjeta__foto { position: relative; aspect-ratio: 1; background: var(--blanco); overflow: hidden; outline: 1px solid var(--piedra-100); outline-offset: -.6rem; transition: outline-color var(--lento); }
.tarjeta__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity var(--lento) var(--curva), transform .8s var(--curva); }
.tarjeta__img2 { display: none; }
.tarjeta__chapas { position: absolute; top: .9rem; left: .9rem; z-index: 2; display: flex; gap: var(--e-1); }
.tarjeta__deseo { position: absolute; top: .35rem; right: .35rem; z-index: 2; }
.tarjeta__deseo:hover { background: var(--marfil); }
.tarjeta__texto { display: grid; gap: .2rem; }
.tarjeta__sello { position: absolute; left: .9rem; bottom: .9rem; z-index: 2; background: var(--blanco); }
.linea__texto .sello { justify-self: start; }
.tarjeta__marca { font-size: var(--t-12); color: var(--piedra-700); letter-spacing: .02em; }
.tarjeta__nombre { font-size: var(--t-14); font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tarjeta__nombre a { text-decoration: none; }
.tarjeta__nombre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tarjeta:has(.tarjeta__nombre a:focus-visible) { outline: 2px solid var(--oro-osc); outline-offset: 4px; }
.tarjeta__nombre a:focus-visible { outline: 0; }
.tarjeta .precio { font-size: var(--t-14); }
@media (hover: hover) and (pointer: fine) {
  .tarjeta__img2 { display: block; opacity: 0; }
  .tarjeta:hover .tarjeta__img2 { opacity: 1; }
  .tarjeta:hover .tarjeta__img:not(:only-of-type) { opacity: 0; }
  .tarjeta:hover .tarjeta__foto { outline-color: var(--oro); }
  .tarjeta:hover .tarjeta__foto img { transform: scale(1.03); }
}
.oscuro .tarjeta__marca { color: var(--piedra-300); }
.oscuro .tarjeta .precio { color: var(--oro-claro); }
.oscuro .precio del { color: var(--piedra-300); }
.oscuro .precio ins { color: var(--oro-claro); }
.oscuro .tarjeta__foto { outline-color: transparent; }

.rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6) var(--e-3); }
.carril { display: grid; grid-auto-flow: column; grid-auto-columns: 44%; gap: var(--e-3); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--e-3); margin-inline: calc(-1 * var(--margen)); padding-inline: var(--margen); scroll-padding-inline: var(--margen); scrollbar-width: thin; }
.carril > * { scroll-snap-align: start; }

/* ---------- Secciones comunes ---------- */
.seccion { padding-block: var(--seccion); }
.seccion:not(.banda, .oscuro) + .seccion:not(.banda, .oscuro) { padding-top: 0; }
main { padding-bottom: var(--seccion); }
main > .seccion:last-child, main > .envoltura:last-child > .seccion:last-child { padding-bottom: 0; }
.cabeza-seccion { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--e-3) var(--e-6); margin-bottom: var(--e-6); }
.cabeza-seccion p { color: var(--piedra-700); max-width: 34em; }
.banda { background: var(--marfil); }
.oscuro { background: var(--forja); color: var(--marfil); }
.oscuro .secundario, .oscuro .cabeza-seccion p { color: var(--piedra-300); }
.oscuro .enlace { color: var(--oro-claro); text-decoration-color: var(--oro-claro); }
.oscuro .enlace:hover { color: var(--cal); }

/* Portada: cabecera (los estilos de la foto a sangre, en «Tema WordPress») */
.portada__titulo { font-family: var(--f-display); font-weight: 400; font-size: var(--t-72); line-height: .98; letter-spacing: -.025em; text-wrap: balance; }
.portada__titulo span { display: block; }
.portada__lead { margin-top: var(--e-5); }
.portada__acciones { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-6); }
.mas-categorias { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); margin-top: var(--e-5); font-size: var(--t-14); }
.mas-categorias a { padding: .45rem 1rem; border: 1px solid var(--piedra-300); border-radius: var(--r-sello); text-decoration: none; min-height: 2.75rem; display: inline-flex; align-items: center; }
.mas-categorias a:hover { border-color: var(--forja); }

/* Bloque TOUS */
.tous { display: grid; gap: var(--e-6); }
.tous__foto { position: relative; margin-inline: calc(-1 * var(--margen)); }
.tous__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
.tous__sello { position: absolute; left: var(--margen); bottom: var(--e-5); background: var(--cal); padding: var(--e-3) var(--e-4); font-size: var(--t-14); line-height: 1.3; }
.tous__sello strong { display: block; font: 400 var(--t-21)/1.1 var(--f-display); }
.tous__texto .lead { margin-top: var(--e-4); }
.tous__texto .rejilla { margin-top: var(--e-6); }
.tous__texto .enlace { display: inline-block; margin-top: var(--e-5); }

/* Relojes (fondo forja) */
.relojes__cabeza { display: grid; gap: var(--e-4); margin-bottom: var(--e-6); }
.relojes__enlaces { display: flex; flex-wrap: wrap; gap: var(--e-3); }

/* Confianza */
.confianza { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-5) var(--e-4); padding-block: var(--e-6); border-block: 1px solid var(--piedra-300); }
.confianza li { display: grid; gap: var(--e-2); align-content: start; }
.confianza .icono { width: 1.75rem; height: 1.75rem; color: var(--oro-osc); stroke-width: 1.25; }
.confianza strong { font: 400 var(--t-21)/1.15 var(--f-display); }
.confianza p { font-size: var(--t-14); color: var(--piedra-700); }
.confianza li:last-child { grid-column: 1 / -1; }

/* Tienda (Quiénes somos breve) */
.tienda { display: grid; gap: var(--e-6); align-items: center; }
.tienda__foto img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.tienda__texto .lead { margin-top: var(--e-4); }
.acciones { display: flex; flex-wrap: wrap; gap: var(--e-3); }
.acciones--arriba { margin-top: var(--e-6); }
.cabeza-seccion--centro { flex-direction: column; align-items: center; text-align: center; }
.dos-col figure img { width: 100%; }

/* Huecos de imagen pendientes */
.hueco { display: grid; place-content: center; gap: var(--e-1); min-height: 16rem; padding: var(--e-5); text-align: center; color: var(--piedra-700); background: repeating-linear-gradient(135deg, var(--marfil) 0 14px, var(--piedra-100) 14px 15px); outline: 1px solid var(--piedra-300); outline-offset: -.75rem; }
.hueco strong { font: 400 var(--t-24)/1.2 var(--f-display); color: var(--forja); }
.hueco span { font-size: var(--t-14); max-width: 26em; }
.hueco--ancho { min-height: clamp(14rem, 32vw, 26rem); }
.tienda__foto, .taller__foto { max-width: 34rem; }

/* ---------- Pie ---------- */
.pie { background: var(--rosa-claro); color: var(--forja); font-size: var(--t-14); padding-top: var(--e-8); }
.pie__rejilla { display: grid; gap: var(--e-6); padding-bottom: var(--e-7); }
.pie__marca img { width: 10rem; }
.pie__marca p { margin-top: var(--e-4); max-width: 22em; }
.pie h2 { font: 400 var(--t-16)/1.2 var(--f-display); letter-spacing: .08em; text-transform: uppercase; padding-bottom: var(--e-2); border-bottom: 1px solid var(--oro); margin-bottom: var(--e-3); }
.pie a { text-decoration: none; }
.pie a:hover { text-decoration: underline; text-decoration-color: var(--oro-osc); }
.pie__rejilla ul:not(.redes) { display: grid; gap: .1rem; }
.pie ul a, .pie__boton { display: inline-flex; align-items: center; min-height: 2.25rem; }
.pie__boton { color: inherit; text-decoration: underline; }
.pie address { font-style: normal; display: grid; gap: var(--e-2); }
.pie address a { display: inline-flex; align-items: center; gap: var(--e-2); min-height: 2rem; }
.pie .icono { color: var(--oro-osc); }
.pie__horario { border-collapse: collapse; }
.pie__horario th { padding: 0 var(--e-4) var(--e-2) 0; font-weight: 400; text-align: left; vertical-align: top; }
.pie__horario td { padding: 0 0 var(--e-2); vertical-align: top; }
.pie__nombre { font-weight: 600; }
.redes { display: flex; gap: var(--e-2); margin-top: var(--e-5); }
.redes a { display: grid; place-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--blanco); border-radius: var(--r-sello); background: var(--blanco); }
.redes a:hover { border-color: var(--oro-osc); text-decoration: none; }
.pie__base { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--e-4); padding-block: var(--e-5); border-top: 1px solid var(--oro); }
.pagos { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); }
.pagos li { display: block; line-height: 0; border-radius: 3px; }
.pagos svg { display: block; width: 2.77rem; height: 1.75rem; }
.pie .pagos li { box-shadow: 0 0 0 1px rgb(30 27 22 / .12); }
.resumen .pagos { justify-content: center; }
.pie--pago { padding-top: 0; }
.pie__legal { display: flex; flex-wrap: wrap; gap: 0 var(--e-5); }
.pie__credito { padding-block: 0 var(--e-5); text-align: center; font-size: var(--t-12); }

.whatsapp-flotante { position: fixed; right: var(--e-4); bottom: var(--e-4); z-index: 20; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--forja); color: var(--cal); box-shadow: var(--sombra-boton); transition: transform var(--rapido) var(--curva), background var(--rapido), opacity .3s, visibility 0s; }
.whatsapp-flotante.es-oculto, .cookies-flotante.es-oculto, body:has(#lbj-cookies[open]) .cookies-flotante, body:has(#lbj-cookies[open]) .whatsapp-flotante { opacity: 0; transform: translateY(1rem) scale(.9); visibility: hidden; pointer-events: none; transition: transform .3s var(--curva), opacity .3s, visibility 0s .3s; }
.whatsapp-flotante:hover { transform: translateY(-2px); background: #1f5c3b; }
.whatsapp-flotante svg { width: 1.6rem; height: 1.6rem; fill: currentColor; }
/* Cookies: a la izquierda, algo más pequeño que el de WhatsApp para no competir con él (44 px de diana) */
.cookies-flotante { position: fixed; left: var(--e-4); bottom: var(--e-4); z-index: 20; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--forja); color: var(--cal); box-shadow: var(--sombra-boton); transition: transform var(--rapido) var(--curva), color var(--rapido), opacity .3s, visibility 0s; }
.cookies-flotante:hover { transform: translateY(-2px); color: var(--oro-claro); }

/* ---------- Categoría ---------- */
.migas { padding-block: var(--e-4); font-size: var(--t-12); color: var(--piedra-700); }
.migas ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--e-2); }
.migas li { display: flex; align-items: center; min-height: 2rem; }
.migas li + li::before { content: "/"; margin-right: var(--e-2); color: var(--piedra-500); }
.migas a { text-decoration: none; display: inline-block; padding-block: .3rem; }
.migas a:hover { text-decoration: underline; color: var(--forja); }
.migas [aria-current] { color: var(--forja); }
.cat-cabeza { display: grid; gap: var(--e-3); padding: var(--e-2) 0 var(--e-6); }
.cat-cabeza .lead { font-size: var(--t-16); }
/* La entradilla de los archivos ocupa todo el ancho del contenedor (petición de junio) */
.cat-intro__texto { max-width: none; }
.subcats { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-top: var(--e-2); }
.subcats a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 1rem; border: 1px solid var(--piedra-300); border-radius: var(--r-sello); font-size: var(--t-14); text-decoration: none; }
.subcats a:hover { border-color: var(--forja); }
.ordenar { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-14); }
.ordenar select.entrada { min-height: 2.75rem; width: auto; font-size: var(--t-14); border-color: var(--piedra-300); }
.filtros { margin: 0 0 0 auto; width: min(24rem, 100% - 2.5rem); height: 100dvh; max-height: none; background: var(--cal); }
.filtros[open] { display: flex; flex-direction: column; animation: entra-der var(--lento) var(--curva); }
.filtros .cajon__pie { position: sticky; bottom: calc(-1 * var(--e-5)); margin: var(--e-5) calc(-1 * var(--e-5)) calc(-1 * var(--e-5)); }
.filtro { border-bottom: 1px solid var(--piedra-300); }
.filtro summary { display: flex; justify-content: space-between; align-items: center; min-height: 3.25rem; font-weight: 600; cursor: pointer; list-style: none; }
.filtro summary::-webkit-details-marker { display: none; }
.filtro[open] summary .icono { transform: rotate(180deg); }
.filtro__cuerpo { display: grid; gap: var(--e-3); padding-bottom: var(--e-5); }
.filtro__precio { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
.filtro__precio .entrada { min-height: 2.75rem; }
.muestras-filtro { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.muestra-filtro { display: inline-flex; align-items: center; gap: var(--e-2); padding: .3rem .8rem .3rem .3rem; border: 1px solid var(--piedra-300); border-radius: var(--r-sello); font-size: var(--t-14); cursor: pointer; min-height: 2.75rem; }
.muestra-filtro i { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--m); box-shadow: inset 0 0 0 1px rgb(30 27 22 / .15); }
.muestra-filtro input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.muestra-filtro:has(input:checked) { border-color: var(--forja); box-shadow: inset 0 0 0 1px var(--forja); }
.muestra-filtro:has(input:focus-visible) { outline: 2px solid var(--oro-osc); outline-offset: 2px; }
.paginacion { margin-top: var(--e-8); }
.paginacion ol { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: var(--e-1); }
.paginacion a, .paginacion span { display: inline-grid; place-items: center; min-width: 2.75rem; height: 2.75rem; padding: 0 .75rem; border-radius: var(--r-campo); text-decoration: none; font-variant-numeric: tabular-nums; }
.paginacion a:hover { background: var(--piedra-100); }
.paginacion [aria-current] { background: var(--forja); color: var(--cal); }
.paginacion .desactivado { color: var(--piedra-700); }
.paginacion .rango { display: none; }
.texto-seo { margin-top: var(--seccion); padding-top: var(--e-8); border-top: 1px solid var(--piedra-300); }
.texto-seo__titulo { margin: 0 0 var(--e-6); text-align: center; }
.texto-seo__texto { color: var(--piedra-700); }
.texto-seo__texto > :first-child { margin-top: 0; }
.texto-seo__texto h2 { margin-top: var(--e-6); color: var(--forja); font: 400 var(--t-21)/1.25 var(--f-display); break-after: avoid; }
.texto-seo__texto h2 + p { margin-top: var(--e-3); }
.texto-seo__faq { margin-top: var(--e-8); }
.texto-seo__faq > h2 { margin-bottom: var(--e-5); text-align: center; font: 400 var(--t-36)/1.15 var(--f-display); }
@media (min-width: 1024px) { .texto-seo__texto { max-width: none; columns: 2; column-gap: var(--e-9); } .texto-seo__texto p { orphans: 3; widows: 3; } }

/* ---------- Ficha de producto ---------- */
.ficha { display: grid; gap: var(--e-6); }
.galeria { display: grid; gap: var(--e-3); min-width: 0; }
.galeria__principal { position: relative; aspect-ratio: 1; background: var(--blanco); overflow: hidden; outline: 1px solid var(--piedra-100); outline-offset: -.9rem; margin-inline: calc(-1 * var(--margen)); }
.galeria__principal img { width: 100%; height: 100%; object-fit: contain; transition: transform .25s ease-out; }
.galeria__principal.con-zoom { cursor: zoom-in; }
.galeria__principal.ampliada img { transform: scale(1.9); }
.galeria__miniaturas { display: flex; gap: var(--e-2); overflow-x: auto; }
.galeria__miniaturas button { width: 4.5rem; aspect-ratio: 1; background: var(--blanco); outline: 1px solid var(--piedra-300); outline-offset: -1px; flex: none; }
.galeria__miniaturas button[aria-current="true"] { outline: 2px solid var(--forja); outline-offset: -2px; }
.galeria__miniaturas button:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 2px; }
.galeria__miniaturas img { width: 100%; height: 100%; object-fit: contain; }
.ficha__info { display: grid; gap: var(--e-4); align-content: start; }
.ficha__marca a { font-size: var(--t-14); color: var(--oro-osc); font-weight: 600; text-decoration: none; letter-spacing: .02em; }
.ficha__marca a:hover { text-decoration: underline; }
.ficha__titulo { font: 400 var(--t-36)/1.1 var(--f-display); letter-spacing: -.01em; text-wrap: balance; }
.ficha__precio { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--e-3); }
.ficha__precio .precio { font: 500 var(--t-36)/1 var(--f-display); }
.ficha__precio small { font-size: var(--t-12); color: var(--piedra-700); }
.ficha__corta { color: var(--piedra-700); }
.ficha__compra { display: grid; gap: var(--e-5); padding-block: var(--e-5); border-block: 1px solid var(--piedra-300); }
.muestras legend { font-size: var(--t-14); font-weight: 600; margin-bottom: var(--e-3); }
.muestras legend span { font-weight: 400; color: var(--piedra-700); }
.muestras__lista { display: flex; flex-wrap: wrap; gap: var(--e-3); }
.muestra { position: relative; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; cursor: pointer; }
.muestra input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.muestra i { width: 2rem; height: 2rem; border-radius: 50%; background: var(--m); box-shadow: inset 0 0 0 1px rgb(30 27 22 / .18); transition: transform var(--rapido) var(--curva); }
.muestra:has(input:checked) { box-shadow: 0 0 0 1px var(--forja); }
.muestra:has(input:checked) i { transform: scale(.82); }
.muestra:has(input:focus-visible) { outline: 2px solid var(--oro-osc); outline-offset: 2px; }
.muestra:hover i { transform: scale(.9); }
.stock { display: flex; gap: var(--e-2); align-items: center; font-size: var(--t-14); color: var(--verde); }
.compra__fila { display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-2); align-items: stretch; }
.compra__fila .boton { min-height: 3rem; padding-inline: var(--e-4); }
.compra__fila .boton-icono { width: 3rem; height: 3rem; border: 1px solid var(--piedra-500); border-radius: var(--r-campo); }
.whatsapp-ficha { display: flex; align-items: center; justify-content: center; gap: var(--e-3); min-height: 3rem; padding: var(--e-3) var(--e-4); border: 1px solid var(--piedra-300); border-radius: var(--r-campo); text-decoration: none; font-weight: 500; background: var(--blanco); }
.whatsapp-ficha svg { width: 1.375rem; height: 1.375rem; fill: #1f7a4a; }
.whatsapp-ficha:hover { border-color: var(--forja); }
.acordeon details { border-bottom: 1px solid var(--piedra-300); }
.acordeon summary { display: flex; align-items: center; gap: var(--e-3); min-height: 3.25rem; font-weight: 600; cursor: pointer; list-style: none; }
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary .icono:last-child { margin-left: auto; transition: transform var(--rapido); }
.acordeon details[open] summary .icono:last-child { transform: rotate(45deg); }
.acordeon summary .icono:first-child { color: var(--oro-osc); }
.acordeon p { padding: 0 0 var(--e-4) 2.125rem; font-size: var(--t-14); color: var(--piedra-700); }
.ficha__ref { font-size: var(--t-12); color: var(--piedra-700); font-variant-numeric: tabular-nums; }
.descripcion { display: grid; gap: var(--e-6); }
.descripcion .prosa { color: var(--piedra-700); }
.descripcion .titulo-2 { margin-bottom: var(--e-5); }
.detalles { display: grid; grid-template-columns: auto 1fr; gap: var(--e-3) var(--e-5); align-self: start; padding: var(--e-5); background: var(--marfil); font-size: var(--t-14); }
.detalles dt { font-weight: 600; }

/* ---------- Cesta (página) ---------- */
.pagina-cabeza { padding: var(--e-6) 0 var(--e-5); }
.seguir { margin-top: var(--e-5); }
.cesta-pagina { display: grid; gap: var(--e-7); align-items: start; }
.lineas { border-top: 1px solid var(--piedra-300); }
.linea { display: grid; grid-template-columns: 6rem 1fr; gap: var(--e-4); padding-block: var(--e-5); border-bottom: 1px solid var(--piedra-300); }
.linea img { width: 6rem; aspect-ratio: 1; object-fit: contain; background: var(--blanco); outline: 1px solid var(--piedra-100); }
.linea__texto { display: grid; gap: var(--e-1); align-content: start; }
.linea__texto .tarjeta__marca { display: block; }
.linea__nombre { font-weight: 600; line-height: 1.35; }
.linea__nombre a { text-decoration: none; }
.linea__var { font-size: var(--t-14); color: var(--piedra-700); }
.linea__acciones { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); margin-top: var(--e-3); grid-column: 1 / -1; }
.linea__acciones .precio { font-size: var(--t-18); }
.quitar { display: inline-flex; align-items: center; gap: var(--e-1); min-height: 2.75rem; font-size: var(--t-14); color: var(--piedra-700); text-decoration: underline; }
.resumen { display: grid; gap: var(--e-5); padding: var(--e-5); background: var(--blanco); outline: 1px solid var(--piedra-300); }
.resumen h2 { font: 400 var(--t-24)/1.2 var(--f-display); }
.cupon summary { cursor: pointer; font-size: var(--t-14); text-decoration: underline; min-height: 2.75rem; display: flex; align-items: center; }
.cupon form { display: grid; grid-template-columns: 1fr auto; gap: var(--e-2); margin-top: var(--e-2); }
.resumen__seguro { display: flex; gap: var(--e-2); align-items: center; justify-content: center; font-size: var(--t-12); color: var(--piedra-700); }

/* ---------- Pago ---------- */
.cabecera-pago { border-bottom: 1px solid var(--piedra-300); background: var(--cal); }
.cabecera-pago .envoltura { display: flex; align-items: center; justify-content: space-between; min-height: 4rem; gap: var(--e-4); }
.cabecera-pago .logo img { width: 8.5rem; }
.cabecera-pago__seguro { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-14); color: var(--piedra-700); }
.cabecera-pago__seguro .icono { color: var(--verde); }
.volver { display: inline-flex; align-items: center; gap: var(--e-1); min-height: 2.75rem; font-size: var(--t-14); text-decoration: none; }
.volver:hover { text-decoration: underline; }
.pago { display: grid; gap: var(--e-6); }
.pago__resumen-movil summary { display: flex; justify-content: space-between; align-items: center; gap: var(--e-3); min-height: 3.25rem; padding: 0 var(--e-4); background: var(--marfil); cursor: pointer; font-weight: 600; list-style: none; }
.pago__resumen-movil summary::-webkit-details-marker { display: none; }
.pago__resumen-movil .resumen { margin-top: var(--e-2); }
.paso { display: grid; gap: var(--e-4); padding-bottom: var(--e-6); border-bottom: 1px solid var(--piedra-300); }
.paso + .paso { padding-top: var(--e-6); }
.paso h2 { display: flex; align-items: center; gap: var(--e-3); font: 400 var(--t-24)/1.2 var(--f-display); }
.paso__num { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--oro); border-radius: 50%; font: 600 var(--t-14)/1 var(--f-texto); color: var(--oro-osc); }
.campos { display: grid; gap: var(--e-4); }
.opcion { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-1) var(--e-3); align-items: start; padding: var(--e-4); background: var(--blanco); border: 1px solid var(--piedra-300); border-radius: var(--r-campo); cursor: pointer; }
.opcion input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--forja); }
.opcion__tit { font-weight: 600; }
.opcion__det { grid-column: 2 / -1; font-size: var(--t-14); color: var(--piedra-700); }
.opcion__precio { font-weight: 600; font-size: var(--t-14); }
.opcion__marca { font-size: var(--t-12); font-weight: 700; letter-spacing: .02em; padding: .1rem .5rem; border: 1px solid var(--piedra-300); border-radius: var(--r-campo); }
.opcion:has(input:checked) { border-color: var(--forja); box-shadow: inset 0 0 0 1px var(--forja); }
.opcion:has(input:focus-visible) { outline: 2px solid var(--oro-osc); outline-offset: 2px; }
.opcion__extra { grid-column: 2 / -1; display: none; font-size: var(--t-14); color: var(--piedra-700); }
.opcion:has(input:checked) .opcion__extra { display: block; }
.opciones { display: grid; gap: var(--e-2); }
.pago:has(#entrega-tienda:checked) .solo-domicilio { display: none; }
.pago__legal { font-size: var(--t-14); }
.pago__aviso { font-size: var(--t-12); color: var(--piedra-700); display: flex; gap: var(--e-2); }
.pago__aviso .icono { color: var(--verde); }
.resumen-lineas { display: grid; gap: var(--e-4); }
.resumen-linea { display: grid; grid-template-columns: 4rem 1fr auto; gap: var(--e-3); align-items: center; font-size: var(--t-14); }
.resumen-linea__foto { position: relative; }
.resumen-linea img { width: 4rem; aspect-ratio: 1; object-fit: contain; background: var(--blanco); outline: 1px solid var(--piedra-300); outline-offset: -1px; }
.resumen-linea__ud { position: absolute; top: -.5rem; right: -.5rem; min-width: 1.35rem; height: 1.35rem; border-radius: var(--r-sello); background: var(--piedra-700); color: var(--blanco); font-size: var(--t-12); line-height: 1.35rem; text-align: center; }
.resumen-linea small { display: block; color: var(--piedra-700); }

/* ---------- Contacto ---------- */
.contacto { display: grid; gap: var(--e-7); padding-top: var(--e-5); }
.contacto .lead { margin-top: var(--e-4); }
.mapa { position: relative; }
.mapa a { position: relative; display: block; overflow: hidden; outline: 1px solid var(--piedra-300); outline-offset: -1px; }
.mapa img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .8s var(--curva); }
.mapa a:hover img { transform: scale(1.02); }
.mapa__pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%); display: grid; justify-items: center; }
.mapa__pin b { padding: .35rem .8rem; background: var(--forja); color: var(--cal); font: 400 var(--t-16)/1.2 var(--f-display); white-space: nowrap; }
.mapa__pin i { width: 2px; height: 1.25rem; background: var(--forja); }
.mapa__pin i::after { content: ""; display: block; width: .75rem; height: .75rem; margin: 1.1rem 0 0 -.3rem; border-radius: 50%; background: var(--oro); box-shadow: 0 0 0 4px rgb(177 152 0 / .3); }
.mapa__abrir { position: absolute; right: var(--e-3); bottom: var(--e-3); padding: .45rem .9rem; background: var(--cal); font-size: var(--t-14); font-weight: 600; box-shadow: var(--sombra-boton); }
.mapa figcaption { margin-top: var(--e-2); font-size: var(--t-12); color: var(--piedra-700); }
.ayuda { display: grid; gap: var(--e-3); }
.ayuda a { display: grid; align-content: start; gap: var(--e-2); padding: var(--e-5); background: var(--marfil); text-decoration: none; }
.ayuda a:hover { background: var(--piedra-100); }
.ayuda strong { font: 400 var(--t-21)/1.2 var(--f-display); }
.ayuda span { font-size: var(--t-14); color: var(--piedra-700); }

/* ---------- Quiénes somos ---------- */
.historia-cabeza { padding: var(--e-6) 0 var(--e-7); display: grid; gap: var(--e-5); }
.historia-cabeza .titulo-1 { max-width: 14em; font-size: var(--t-72); line-height: 1; }
.dos-col { display: grid; gap: var(--e-6); align-items: center; }
.dos-col .lead { margin-top: var(--e-4); }
.dos-col .prosa { margin-top: var(--e-4); color: var(--piedra-700); }
.cita { padding: var(--e-7) 0; text-align: center; }
.cita blockquote p { font: 400 var(--t-48)/1.1 var(--f-display); max-width: 16em; margin-inline: auto; text-wrap: balance; }
.cita__pie { max-width: 36em; margin: var(--e-5) auto 0; }
.puntos { display: grid; gap: var(--e-3); margin-top: var(--e-5); }
.puntos li { display: flex; gap: var(--e-3); align-items: baseline; padding-bottom: var(--e-3); border-bottom: 1px solid var(--piedra-300); }
.puntos li::before { content: ""; flex: none; width: .5rem; height: .5rem; border: 1px solid var(--oro); transform: rotate(45deg); }
.firmas { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e-3) var(--e-6); max-width: 60rem; margin: var(--e-6) auto 0; }
.firmas li { font: 400 var(--t-24)/1.3 var(--f-display); }
.firmas .sello { vertical-align: middle; margin-left: var(--e-2); }

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- ≥ 768 px ---------- */
@media (min-width: 768px) {
  .oculto-movil { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
  .rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-7) var(--e-4); }
  .carril { grid-auto-columns: 30%; }
  .confianza { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .confianza li:last-child { grid-column: auto; }
  .tous__foto { margin-inline: 0; }
  .campos--2 { grid-template-columns: 1fr 1fr; }
  .campos--3 { grid-template-columns: 1fr 1fr 1fr; }
  .campo--ancho { grid-column: 1 / -1; }
  .ayuda { grid-template-columns: repeat(3, 1fr); }
  .pie__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .linea { grid-template-columns: 7rem 1fr auto; align-items: start; }
  .linea img { width: 7rem; }
  .linea__acciones { grid-column: auto; flex-direction: column; align-items: flex-end; margin-top: 0; }
  .paginacion .rango { display: inline-grid; }
  .galeria__principal { margin-inline: 0; }
}

/* ---------- ≥ 1024 px ---------- */
@media (min-width: 1024px) {
  :root { --alto-cabecera: 7.5rem; }
  .cabecera__fila { min-height: 4.75rem; grid-template-columns: 1fr auto 1fr; }
  .logo img { width: 12.5rem; }
  .cabecera__izq { display: flex; align-items: center; }
  .cabecera__menu { display: none; }
  .buscador { display: block; width: min(100%, 21rem); }
  .iconos .solo-escritorio { display: inline-grid; }
  .iconos .solo-movil { display: none; }
  .nav-principal { display: block; }
  .nav-principal > .envoltura { display: flex; justify-content: center; gap: var(--e-1); }
  .nav__item { position: static; }
  .nav__boton { display: inline-flex; align-items: center; gap: .3rem; min-height: 2.75rem; padding: 0 var(--e-4); font-size: var(--t-14); font-weight: 500; letter-spacing: .02em; text-decoration: none; position: relative; }
  .nav__boton::after { content: ""; position: absolute; left: var(--e-4); right: var(--e-4); bottom: .45rem; height: 1px; background: var(--oro); transform: scaleX(0); transition: transform var(--rapido) var(--curva); }
  .nav__boton:hover::after, .nav__boton[aria-expanded="true"]::after { transform: scaleX(1); }
  .nav__boton .icono { width: .9rem; height: .9rem; }
  .nav__boton--tous { color: var(--oro-osc); font-weight: 700; }
  .nav-principal { position: relative; }
  .mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--cal); border-top: 1px solid var(--piedra-300); border-bottom: 1px solid var(--piedra-300); box-shadow: 0 2rem 3rem -2rem rgb(30 27 22 / .25); visibility: hidden; opacity: 0; transform: translateY(-.5rem); transition: opacity var(--rapido), transform var(--rapido) var(--curva), visibility 0s var(--rapido); }
  .nav__item:hover > .mega, .nav__boton[aria-expanded="true"] + .mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .mega__in { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-7); padding-block: var(--e-6) var(--e-7); }
  /* Productos de la sección en las columnas que dejan libres los enlaces (inc/cabecera.php) */
  .mega__productos { grid-column: span var(--libres); }
  .mega__productos > div { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: var(--e-5); }
  .mega__producto { display: grid; align-content: start; gap: .3rem; max-width: 13rem; text-decoration: none; }
  .mega__foto img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--blanco); outline: 1px solid var(--piedra-100); outline-offset: -1px; transition: transform var(--rapido) var(--curva); }
  .mega__producto:hover .mega__foto img { transform: scale(1.03); }
  .mega__nombre { display: -webkit-box; margin-top: .25rem; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--forja); font-size: var(--t-14); line-height: 1.35; }
  .mega__producto:hover .mega__nombre { text-decoration: underline; text-decoration-color: var(--oro); }
  .mega__precio { color: var(--forja); font-size: var(--t-14); font-weight: 600; }
  .mega__precio del { margin-right: .35rem; color: var(--piedra-700); font-weight: 400; }
  .mega__precio ins { color: var(--granate); text-decoration: none; }
  .mega__titulo { font: 400 var(--t-18)/1.2 var(--f-display); margin-bottom: var(--e-3); color: var(--oro-osc); }
  .mega ul { display: grid; gap: .1rem; }
  .mega ul a { display: block; padding: .3rem 0; font-size: var(--t-14); text-decoration: none; color: var(--piedra-700); }
  .mega ul a:hover { color: var(--forja); text-decoration: underline; text-decoration-color: var(--oro); }

  .rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .carril { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; gap: var(--e-7) var(--e-4); }
  .tous { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--e-8); align-items: center; }
  .tous__foto img { aspect-ratio: 4 / 5; }
  .tous__texto .rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .relojes__cabeza { grid-template-columns: 1fr auto; align-items: end; }
  .confianza { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-6); }
  .tienda { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e-9); }
  .tienda__foto img { aspect-ratio: 4 / 5; }
  .pie__rejilla { grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; gap: var(--e-6); }


  .ficha { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--e-8); align-items: start; }
  .galeria { grid-template-columns: 5rem minmax(0, 1fr); align-items: start; position: sticky; top: calc(var(--alto-cabecera) + 1rem); }
  .galeria__miniaturas { flex-direction: column; grid-column: 1; grid-row: 1; overflow: visible; }
  .galeria__miniaturas button { width: 5rem; }
  .descripcion { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--e-8); }
  .cesta-pagina { grid-template-columns: minmax(0, 1fr) 24rem; gap: var(--e-8); }
  .resumen { position: sticky; top: calc(var(--alto-cabecera) + 1rem); }
  .pago { grid-template-columns: minmax(0, 1fr) 26rem; gap: var(--e-8); align-items: start; }
  .pago__resumen-movil { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: var(--e-5); }
  .pago__resumen-movil summary { display: none; }
  .pago__resumen-movil .resumen { margin-top: 0; }
  .contacto { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--e-8); align-items: start; }
  .mapa { position: sticky; top: calc(var(--alto-cabecera) + 1rem); }
  .dos-col { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e-9); }
  .dos-col--inv > :first-child { order: 2; }
}

/* ---------- ≥ 1280 px ---------- */
@media (min-width: 1280px) {
  .nav-principal > .envoltura { gap: var(--e-3); }
}

/* ==========================================================================
   Tema WordPress: lo que no estaba en las maquetas (WooCommerce, Rank Math,
   cookies, seo-factusol, páginas y bloques de cesta y pago)
   ========================================================================== */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }
.admin-bar .cabecera { top: 32px; }
@media (max-width: 782px) { .admin-bar .cabecera { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cabecera { top: 0; } }
main .buscador { display: block; max-width: 34rem; margin-block: var(--e-5); }
.aviso { padding: var(--e-3) var(--e-4); font-size: var(--t-14); }
.aviso--error { background: var(--marfil); border-left: 3px solid var(--granate); color: var(--granate); }

/* Migas de Rank Math */
.migas .rank-math-breadcrumb p { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--e-2); }
.migas .rank-math-breadcrumb a { display: inline-block; min-height: 2rem; padding-block: .3rem; }
.migas .separator { font-size: 0; }
.migas .separator::before { content: "/"; font-size: var(--t-12); color: var(--piedra-500); }
.migas .last { color: var(--forja); }

/* Cabecera de portada.
   Móvil y tableta: la foto llena toda la cabecera (unos 85svh) y el texto va encima, abajo, sobre un velo vertical
   (marfil casi opaco abajo → transparente arriba; deja ver el bolso y el texto queda por encima de AA).
   Escritorio: 50/50 dentro del mismo ancho que el contenido (1.440 px como máximo) (foto a la izquierda, texto a la derecha)
   y marfil a sangre a los lados en pantallas ultrapanorámicas. */
.hero { position: relative; overflow: hidden; background: var(--marfil); }
.hero__marco { position: relative; }
.hero__texto { position: relative; z-index: 1; width: min(100% - 2 * var(--margen), var(--ancho)); margin-inline: auto; padding-block: var(--e-7); }
.hero .portada__lead { margin-top: var(--e-4); color: var(--forja-2); }
.hero__foto img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1023px) {
  /* Foto entera en su proporción (1030×941), sin recortes, fundida con el marfil solo por abajo; el texto entra sobre el fundido */
  .hero--foto .hero__marco { display: block; }
  .hero--foto .hero__foto { position: relative; aspect-ratio: 1030 / 941; }
  .hero--foto .hero__foto img { position: absolute; inset: 0; object-position: 50% 50%; }
  .hero--foto .hero__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--marfil) 0%, rgb(244 239 228 / .65) 12%, rgb(244 239 228 / 0) 30%); }
  .hero--foto .hero__texto { margin-top: calc(-1 * var(--e-6)); padding-block: 0 var(--e-7); }
  .hero--foto .portada__titulo { font-size: clamp(2.5rem, 1.6rem + 4.5vw, 3.75rem); }
  .hero--foto .portada__lead { font-size: var(--t-16); color: var(--forja); }
  .hero--foto .portada__acciones { margin-top: var(--e-5); }
  .hero--foto .portada__acciones .boton { min-height: 2.75rem; padding: .6rem 1.1rem; }
}
@media (min-width: 1024px) {
  .hero--foto .hero__marco { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; width: min(100%, var(--ancho)); min-height: clamp(560px, calc(80svh - var(--alto-cabecera)), 860px); margin-inline: auto; }
  .hero--foto .hero__foto { position: relative; align-self: stretch; }
  .hero--foto .hero__foto img { position: absolute; inset: 0; object-position: 50% 45%; }
  /* La foto se funde con el marfil por la derecha (y por la izquierda cuando el marco no llega al borde) */
  .hero--foto .hero__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(244 239 228 / 0) 78%, rgb(244 239 228 / .55) 92%, var(--marfil)); }
  .hero--foto .hero__texto { width: auto; margin: 0; padding: var(--e-8) var(--margen) var(--e-8) var(--e-8); max-width: 44rem; }
  .hero--foto .portada__titulo { font-size: clamp(3rem, 1.6rem + 3.2vw, 4.75rem); }
  .hero:not(.hero--foto) .hero__texto { padding-block: var(--e-8); }
}
@media (min-width: 1441px) {
  .hero--foto .hero__foto::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--marfil), rgb(244 239 228 / 0) 14%); }
}

/* Compra por categoría: fotos de campaña a sangre, 2 grandes + 3 medianas */
.cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
.cat a { position: relative; display: block; height: 100%; aspect-ratio: 3 / 4; overflow: hidden; background: var(--marfil); color: var(--cal); text-decoration: none; }
.cat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--curva); }
.cat a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(30 27 22 / .62), rgb(30 27 22 / 0) 42%); }
.cat__nombre { position: absolute; left: var(--e-4); bottom: var(--e-4); z-index: 1; display: flex; align-items: center; gap: var(--e-2); font: 400 var(--t-24)/1.1 var(--f-display); }
.cat__nombre::after { content: ""; width: 1.5rem; height: 1px; background: var(--oro-claro); transition: width var(--lento) var(--curva); }
.cat a:hover img { transform: scale(1.04); }
.cat a:hover .cat__nombre::after { width: 2.5rem; }
.cat a:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 3px; }
.cat--mujer img { object-position: 50% 30%; }
.cat--hombre img { object-position: 50% 28%; }
.cat--bolsos img { object-position: 45% 60%; }
.cat--pendientes img { object-position: 62% 40%; }
.cat--relojes-de-mujer img { object-position: 60% 40%; }
.cat:last-child:nth-child(odd) { grid-column: 1 / -1; }
.cat:last-child:nth-child(odd) a { aspect-ratio: 16 / 9; }
@media (min-width: 768px) {
  .cats { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--e-4); }
  .cat { grid-column: span 2; }
  .cat--grande { grid-column: span 3; }
  .cat a, .cat:last-child:nth-child(odd) a { aspect-ratio: 4 / 5; }
  .cat:last-child:nth-child(odd) { grid-column: span 2; }
  .cat--grande a { aspect-ratio: 4 / 3; }
  .cat--grande .cat__nombre { left: var(--e-6); bottom: var(--e-5); font-size: var(--t-36); }
}

/* Secciones de producto en dos columnas (información + 4 productos), alternando el lado */
.banda--blanca { background: var(--blanco); }
.dos-prod { display: grid; gap: var(--e-6); align-items: center; }
.dos-prod__info { display: grid; gap: var(--e-4); justify-items: start; max-width: 30rem; }
.dos-prod__logo { width: 7rem; height: auto; mix-blend-mode: multiply; }
.dos-prod__texto { color: var(--piedra-700); font-size: var(--t-18); line-height: 1.6; }
.dos-prod__texto a { color: var(--oro-osc); font-weight: 500; text-decoration: underline; text-decoration-color: var(--oro); }
.dos-prod__texto a:hover { color: var(--forja); }
.oscuro .dos-prod__texto { color: var(--piedra-300); }
.oscuro .dos-prod__texto a { color: var(--oro-claro); text-decoration-color: var(--oro-claro); }
.oscuro .dos-prod__texto a:hover { color: var(--cal); }
.dos-prod .acciones { margin-top: var(--e-2); }
.rejilla.dos-prod__productos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6) var(--e-3); }
/* Fila de 4 con el título y los botones encima (relojes) */
.fila-cabeza { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--e-5) var(--e-7); margin-bottom: var(--e-6); }
.fila-cabeza__texto { display: grid; gap: var(--e-3); max-width: 38rem; }
.rejilla.rejilla--fila { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1024px) {
  /* Productos a la izquierda (fila compacta de 4) y el texto a la derecha */
  .dos-prod { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--e-8); }
  .rejilla.dos-prod__productos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-5) var(--e-4); }
  .rejilla.rejilla--fila { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Carrusel horizontal (novedades) */
.carrusel__cabeza { align-items: center; }
.carrusel__cabeza .enlace { margin-left: auto; }
.carrusel__controles { display: flex; gap: var(--e-1); }
.carrusel__controles .boton-icono { border: 1px solid var(--piedra-300); }
.carrusel__controles .boton-icono:hover { border-color: var(--forja); background: var(--blanco); }
.carrusel__icono-play, .carrusel__pausa--parado .carrusel__icono-pausa { display: none; }
.carrusel__pausa--parado .carrusel__icono-play { display: block; }
.carrusel__pista { display: grid; grid-auto-flow: column; grid-auto-columns: 44%; gap: var(--e-3); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margen); margin-inline: calc(-1 * var(--margen)); padding: 0 var(--margen) var(--e-3); scrollbar-width: thin; scrollbar-color: var(--piedra-300) transparent; }
.carrusel__pista > * { scroll-snap-align: start; }
.carrusel__pista:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 4px; }
@media (min-width: 768px) { .carrusel__pista { grid-auto-columns: calc((100% - 2 * var(--e-4)) / 3); gap: var(--e-4); } }
@media (min-width: 1024px) {
  .carrusel__pista { grid-auto-columns: calc((100% - 3 * var(--e-4)) / 4); margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
}

/* Nuestras firmas: marquesina continua de logotipos (se para con el ratón, el foco o el botón) */
.marcas-portada__cabeza { display: grid; justify-items: center; gap: var(--e-3); text-align: center; margin-bottom: var(--e-7); }
.marcas-portada__texto { max-width: 40rem; color: var(--piedra-700); font-size: var(--t-18); }
.marcas-portada__texto a { color: var(--oro-osc); font-weight: 500; text-decoration-color: var(--oro); }
.marquesina { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquesina__pista { display: flex; width: max-content; animation: marquesina 45s linear infinite; }
.marquesina__grupo { display: flex; align-items: center; gap: clamp(2.5rem, 5vw, 5rem); padding-right: clamp(2.5rem, 5vw, 5rem); }
.marquesina__grupo a { display: block; width: 9rem; height: 4.5rem; }
.marquesina__logo { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) brightness(1.06) contrast(1.15); opacity: .75; transition: opacity var(--rapido), filter var(--rapido); }
.marquesina__grupo a:hover .marquesina__logo, .marquesina__grupo a:focus-visible .marquesina__logo { opacity: 1; filter: none; }
/* Marca sin logo: su nombre en la tipografía de los títulos, del mismo gris que los logos */
.marquesina__nombre { display: grid; place-items: center; width: 100%; height: 100%; font: 400 var(--t-18)/1.1 var(--f-display); letter-spacing: .06em; text-align: center; color: var(--forja); opacity: .75; transition: opacity var(--rapido); }
.marquesina__grupo a:hover .marquesina__nombre, .marquesina__grupo a:focus-visible .marquesina__nombre { opacity: 1; }
.marquesina__grupo a:has(.marquesina__nombre) { text-decoration: none; }
.marquesina:hover .marquesina__pista, .marquesina:focus-within .marquesina__pista, .marquesina--parada .marquesina__pista { animation-play-state: paused; }
/* Parar la marquesina: solo para teclado y lectores de pantalla; aparece encima de los logos al recibir el foco */
.marquesina__pausa { position: absolute; left: 50%; bottom: .5rem; z-index: 2; translate: -50% 0; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); border-radius: var(--r-sello); background: var(--forja); color: var(--cal); font-size: var(--t-12); white-space: nowrap; }
.marquesina__pausa:focus-visible { width: auto; height: auto; padding: .45rem 1rem; overflow: visible; clip-path: none; }
@keyframes marquesina { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .marquesina { -webkit-mask-image: none; mask-image: none; }
  .marquesina__pista { width: auto; animation: none; justify-content: center; }
  .marquesina__grupo { flex-wrap: wrap; justify-content: center; padding-right: 0; }
  .marquesina__grupo[aria-hidden], .marquesina__pausa { display: none; }
}
@media (min-width: 1024px) { .accesos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.accesos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6) var(--e-3); margin-top: var(--e-7); padding-top: var(--e-6); border-top: 1px solid var(--piedra-300); }
.acceso { display: grid; gap: var(--e-2); align-content: start; }
.acceso__foto { aspect-ratio: 1; background: var(--blanco); outline: 1px solid var(--piedra-100); outline-offset: -.6rem; overflow: hidden; }
.acceso__foto img { width: 100%; height: 100%; object-fit: contain; padding: 8%; }
.acceso__titulo { font: 400 var(--t-24)/1.2 var(--f-display); margin-top: var(--e-2); }
.acceso__enlaces { display: flex; flex-wrap: wrap; gap: 0 var(--e-3); font-size: var(--t-14); }
.acceso__enlaces a { display: inline-flex; align-items: center; min-height: 2.25rem; color: var(--piedra-700); text-decoration-color: var(--oro); }
.acceso__enlaces a:hover { color: var(--forja); }
/* Preguntas frecuentes */
.faq { margin-top: var(--e-4); border-top: 1px solid var(--piedra-300); }
.faq details { border-bottom: 1px solid var(--piedra-300); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); min-height: 3.25rem; padding-block: var(--e-2); font-weight: 600; color: var(--forja); cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icono { transition: transform var(--rapido); }
.faq details[open] summary .icono { transform: rotate(45deg); }
.faq__respuesta { padding-bottom: var(--e-4); color: var(--piedra-700); }
.portada-faq { background: var(--marfil); padding-block: var(--seccion) !important; }
main:has(> .portada-faq:last-child) { padding-bottom: 0; }
.portada-faq__in { display: grid; gap: var(--e-6); }
.portada-faq .titulo-2 { margin: 0; text-align: center; }
:is(.portada-faq, .texto-seo__faq) .faq { margin-top: 0; }
@media (min-width: 1024px) {
  :is(.portada-faq, .texto-seo__faq) .faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; column-gap: var(--e-8); border-top: 0; }
  :is(.portada-faq, .texto-seo__faq) .faq details:nth-child(-n + 2) { border-top: 1px solid var(--piedra-300); }
}

/* Catálogo */
.cat-cabeza__logo img { width: auto; height: auto; max-width: 9rem; max-height: 6rem; } /* logos cuadrados (6rem) y apaisados de 2:1 (9rem) enteros */
.cat-intro { max-width: none; }
.cat-intro p + p { margin-top: var(--e-3); }
a.casilla { align-items: center; min-height: 2.5rem; text-decoration: none; }
.casilla__caja { width: 1.25rem; height: 1.25rem; flex: none; border: 1px solid var(--piedra-500); border-radius: var(--r-campo); background: var(--blanco); }
a.casilla[aria-current] .casilla__caja { border-color: var(--forja); background: var(--forja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fcfaf6' stroke-width='2.5'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 85% no-repeat; }
a.casilla:hover { color: var(--forja); text-decoration: underline; }
a.muestra-filtro { text-decoration: none; }
a.muestra-filtro[aria-current] { border-color: var(--forja); box-shadow: inset 0 0 0 1px var(--forja); }
a.muestra-filtro:hover { border-color: var(--forja); }
.filtro__precio .filtro__aplicar { grid-column: 1 / -1; min-height: 2.75rem; }
.filtros-activos ul { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); margin: calc(-1 * var(--e-2)) 0 var(--e-5); font-size: var(--t-14); }
.filtros-activos a:not(.enlace) { display: inline-flex; align-items: center; gap: var(--e-1); min-height: 2.5rem; padding: 0 .9rem; border: 1px solid var(--forja); border-radius: var(--r-sello); text-decoration: none; }
.filtros-activos a:not(.enlace):hover { background: var(--piedra-100); }
.sin-resultados { display: grid; gap: var(--e-4); padding-block: var(--e-6); }

/* Ficha */
.ficha__logo { height: 2.5rem; width: auto; }
.ficha__info > .woocommerce-product-details__short-description { color: var(--piedra-700); }
.ficha__info form.cart { display: grid; gap: var(--e-4); padding-block: var(--e-5); border-block: 1px solid var(--piedra-300); }
.ficha__info form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-2); align-items: stretch; }
.ficha__info form.cart:not(.variations_form) > :not(.quantity, .single_add_to_cart_button, .ficha__favorito), .woocommerce-variation-add-to-cart > :not(.quantity, .single_add_to_cart_button, .ficha__favorito) { grid-column: 1 / -1; }
.ficha__info form.cart input[type="hidden"] { display: none; }
table.variations, table.variations tbody, table.variations tr, table.variations th, table.variations td { display: block; padding: 0; border: 0; }
table.variations tr + tr { margin-top: var(--e-4); }
table.variations th.label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.muestras__select select { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
table.variations td.value { position: relative; }
.reset_variations { position: absolute; top: 0; right: 0; font-size: var(--t-12); color: var(--piedra-700); }
.single_variation_wrap { display: grid; }
.woocommerce-variation.single_variation:not(:empty) { margin-bottom: var(--e-4); }
.ficha__info .single_add_to_cart_button { white-space: nowrap; }
@media (max-width: 479px) { .quantity .cantidad__paso { width: 2.25rem; } .quantity input.qty { width: 2rem; } }
.woocommerce-variation-price .price { font: 500 var(--t-24)/1.1 var(--f-display); }
.woocommerce-variation-price .price del { color: var(--piedra-700); font-size: .8em; margin-right: .4em; }
.woocommerce-variation-price .price ins { color: var(--granate); text-decoration: none; }
.woocommerce-variation-description { font-size: var(--t-14); color: var(--piedra-700); }
p.stock { display: flex; gap: var(--e-2); align-items: center; font-size: var(--t-14); color: var(--verde); }
p.stock.out-of-stock { color: var(--granate); }
p.stock.available-on-backorder { color: var(--oro-osc); }
.ficha__aviso { display: flex; gap: var(--e-2); align-items: center; font-size: var(--t-14); color: var(--verde); }
.single_add_to_cart_button, .ficha .button, .cuenta .button, .gracias .button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2); min-height: 3rem; padding: .75rem 1.75rem;
  border: 1px solid var(--forja); border-radius: var(--r-campo); background: var(--forja); color: var(--cal); font: 600 var(--t-16)/1.2 var(--f-texto); text-decoration: none; cursor: pointer;
  transition: background var(--rapido), color var(--rapido), border-color var(--rapido);
}
.single_add_to_cart_button:hover, .ficha .button:hover, .cuenta .button:hover, .gracias .button:hover { background: var(--oro); border-color: var(--oro); color: var(--forja); }
/* Sin variación elegida: apagado pero legible (contraste AA), no transparente */
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { background: var(--piedra-100); border-color: var(--piedra-300); color: var(--piedra-700); cursor: not-allowed; }
.single_add_to_cart_button.cargando { opacity: .7; cursor: progress; }
.ficha__info .single_add_to_cart_button { padding-inline: var(--e-4); }
.quantity { display: inline-flex; align-items: center; border: 1px solid var(--piedra-500); border-radius: var(--r-campo); background: var(--blanco); }
.quantity .cantidad__paso { width: 2.75rem; height: 2.875rem; display: grid; place-items: center; }
.quantity .cantidad__paso:hover { background: var(--piedra-100); }
.quantity input.qty { width: 2.75rem; border: 0; text-align: center; font-variant-numeric: tabular-nums; background: none; -moz-appearance: textfield; }
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ficha__favorito { width: 3rem; height: 3rem; border: 1px solid var(--piedra-500); border-radius: var(--r-campo); }
.muestras { border: 0; }
.muestra--texto { width: auto; min-width: 2.75rem; padding: 0 .9rem; border: 1px solid var(--piedra-300); border-radius: var(--r-campo); background: var(--blanco); }
.muestra--texto i { width: auto; height: auto; background: none; box-shadow: none; font-style: normal; font-size: var(--t-14); }
.muestra--texto:has(input:checked) { border-color: var(--forja); box-shadow: inset 0 0 0 1px var(--forja); }
.muestra--texto:has(input:checked) i, .muestra--texto:hover i { transform: none; }
.muestra--no { opacity: .35; }
.muestra--no input { cursor: not-allowed; }
.muestra--texto.muestra--no i { text-decoration: line-through; }
.lbj-aviso-compra:empty { display: none; }
.consultar { display: grid; gap: var(--e-4); justify-items: start; padding: var(--e-5); background: var(--champan); }
.consultar .icono { width: 1.25rem; height: 1.25rem; }
.acordeon__mas { padding-top: var(--e-3); font-size: var(--t-14); }
.ficha__ref[hidden] { display: none; }
.galeria__miniaturas { list-style: none; }
.descubre .accesos { margin-top: 0; padding-top: 0; border-top: 0; }
@media (min-width: 1024px) {
  .descubre .accesos:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .descubre .accesos:has(> :nth-child(3):last-child) .acceso__foto { aspect-ratio: 4 / 3; }
}
.product > .seccion:last-child { padding-bottom: 0; }
.acordeon__mas { padding-left: 0 !important; }
.acordeon__mas a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.descubre__marca { margin: var(--e-7) 0 var(--e-5); }
.detalles dd a { color: var(--oro-osc); }
/* seo-factusol (add_theme_support('sfs-estilos')) */
.sfs-seo h2 { font-size: 1.25em; }
.sfs-seo ul { list-style: disc; padding-left: 1.25em; }
.sfs-seo-fotos { display: grid; gap: var(--e-3); }
.sfs-seo-fotos img { width: 100%; height: auto; background: var(--blanco); }
@media (min-width: 768px) { .sfs-seo-fotos { grid-template-columns: 1fr 1fr; } }
.sfs-enlaces { margin-top: var(--e-6); padding-top: var(--e-4); border-top: 1px solid var(--piedra-300); font-size: var(--t-14); color: var(--piedra-700); }
ul.sfs-categorias { display: flex; flex-wrap: wrap; gap: var(--e-2); }

/* Cesta lateral */
.cajon > .widget_shopping_cart_content { flex: 1; display: flex; flex-direction: column; min-height: 0; }
#cesta[aria-busy="true"] .widget_shopping_cart_content { opacity: .55; pointer-events: none; transition: opacity var(--rapido); }
.cesta-vacia { display: grid; gap: var(--e-4); align-content: start; justify-items: start; }
.progreso-envio { display: grid; gap: var(--e-2); padding: var(--e-3) var(--e-4); background: var(--champan); font-size: var(--t-14); }
.progreso-envio p { display: flex; gap: var(--e-3); align-items: center; }
.progreso-envio .icono { color: var(--oro-osc); }
.progreso-envio__barra { height: .375rem; border-radius: var(--r-sello); background: rgb(122 104 0 / .18); overflow: hidden; }
.progreso-envio__barra span { display: block; height: 100%; background: var(--oro-osc); transition: width var(--lento) var(--curva); }
.cesta-linea__nombre a:hover { text-decoration: underline; }

/* Autocompletado del buscador */
.buscador { position: relative; }
.sugerencias { position: absolute; top: calc(100% + .35rem); left: 0; right: 0; z-index: 40; min-width: min(22rem, 90vw); max-height: 70vh; overflow-y: auto; padding: var(--e-2) 0; background: var(--cal); border: 1px solid var(--piedra-300); border-radius: var(--r-panel); box-shadow: var(--sombra-flota); }
.cabecera.busca-abierta .sugerencias { top: calc(100% - var(--e-2)); }
.sugerencias a { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: var(--e-3); align-items: center; padding: var(--e-2) var(--e-4); font-size: var(--t-14); text-decoration: none; }
.sugerencias a:hover, .sugerencias a[aria-selected="true"] { background: var(--marfil); }
.sugerencias img, .sugerencias__hueco { width: 3rem; height: 3rem; object-fit: contain; background: var(--blanco); outline: 1px solid var(--piedra-100); }
.sugerencias .precio { font-size: var(--t-14); }
.sugerencias a.sugerencias__todos { display: block; margin-top: var(--e-1); border-top: 1px solid var(--piedra-300); padding-top: var(--e-3); font-weight: 600; color: var(--oro-osc); }
.sugerencias__nada { padding: var(--e-3) var(--e-4); font-size: var(--t-14); color: var(--piedra-700); }

/* Páginas, guías y 404 */
.migas + .pagina .pagina-cabeza { padding-top: var(--e-2); }
.pagina-cabeza .lead { margin-top: var(--e-3); }
.texto-pagina { padding-bottom: var(--e-6); }
.texto-pagina > * + * { margin-top: var(--e-4); }
.texto-pagina > :is(p, ul, ol, h2, h3, table, blockquote, details) { max-width: 68ch; }
.texto-pagina > section, .texto-pagina > .dos-col, .texto-pagina > .cita { margin-top: var(--e-7); }
/* Dentro de cada sección, el mismo ritmo que en el primer nivel, y más aire bajo los títulos */
.texto-pagina section > * + * { margin-top: var(--e-4); }
.texto-pagina section > :first-child { margin-top: 0; }
.texto-pagina :is(h2, h3) + :is(div, ul, ol, table, dl, .acordeon) { margin-top: var(--e-5); }
.texto-pagina :is(p, td, dd) > a:not(.boton, .canal), :is(.texto-pagina, .texto-pagina .prosa) > :is(ul, ol) > li > a, .texto-pagina .acordeon p a { color: var(--oro-osc); font-weight: 500; text-decoration: underline; text-decoration-color: var(--oro); }
.texto-pagina :is(p, td, dd) > a:not(.boton, .canal):hover, :is(.texto-pagina, .texto-pagina .prosa) > :is(ul, ol) > li > a:hover { color: var(--forja); }
.texto-pagina .acordeon { max-width: 68ch; }
.texto-pagina .acordeon p { padding-left: 0; }
.texto-pagina .prosa > * + * { margin-top: var(--e-4); }
.texto-pagina img { height: auto; }
.texto-pagina h2 { font: 400 var(--t-24)/1.25 var(--f-display); margin-top: var(--e-7); }
.texto-pagina h3 { font: 600 var(--t-18)/1.3 var(--f-texto); margin-top: var(--e-6); }
:is(.texto-pagina, .texto-pagina .prosa) > :is(ul, ol), .faq__respuesta ul, .seo-bloque ul, .texto-seo ul { padding-left: 1.4em; }
:is(.texto-pagina, .texto-pagina .prosa) > ul, .faq__respuesta ul, .seo-bloque ul, .texto-seo ul { list-style: disc; }
:is(.texto-pagina, .texto-pagina .prosa) > ol { list-style: decimal; }
:is(.texto-pagina, .texto-pagina .prosa) > :is(ul, ol) > li + li { margin-top: .35em; }
.texto-pagina table { width: 100%; border-collapse: collapse; font-size: var(--t-14); }
.texto-pagina th, .texto-pagina td { padding: .55rem .5rem; border-bottom: 1px solid var(--piedra-300); text-align: left; vertical-align: top; }
.texto-pagina img { height: auto; }
.texto-pagina figure, .texto-pagina .wp-block-image { margin-block: var(--e-5); }
.texto-pagina blockquote { padding-left: var(--e-4); border-left: 2px solid var(--oro); font-style: italic; }
.prosa strong { color: var(--forja); }
.guia__foto { margin-bottom: var(--e-6); max-width: 68ch; }
.guia__foto img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.entradas { display: grid; gap: var(--e-7) var(--e-5); padding-bottom: var(--e-6); }
.entrada-lista { display: grid; gap: var(--e-3); align-content: start; }
.entrada-lista__foto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.entrada-lista h2 a { text-decoration: none; }
.entrada-lista h2 a:hover { text-decoration: underline; text-decoration-color: var(--oro); }
@media (min-width: 768px) { .entradas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .entradas { grid-template-columns: repeat(3, 1fr); } }
.error-404 .accesos { border-top: 0; margin-top: var(--e-4); padding-top: 0; }
.error-404__accesos { margin-top: var(--e-7); }

/* Avisos de WooCommerce */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper > * { margin: 0 0 var(--e-5); padding: var(--e-4) var(--e-5); border-left: 3px solid var(--oro); background: var(--marfil); font-size: var(--t-14); list-style: none; }
.woocommerce-error { border-color: var(--granate); }
.woocommerce-message .button, .woocommerce-info .button { float: right; min-height: auto; padding: 0; border: 0; background: none; color: var(--oro-osc); text-decoration: underline; font-weight: 600; }
.woocommerce-notices-wrapper:empty { display: none; }
/* WooCommerce lleva el foco al aviso para los lectores de pantalla; no es un control, sin marco de foco */
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error):focus { outline: 0; }

/* Mi cuenta (WooCommerce clásico) */
.cuenta { padding-bottom: var(--e-8); }
.cuenta .woocommerce { display: grid; gap: var(--e-7); align-items: start; }
.woocommerce-MyAccount-navigation ul { display: grid; gap: .15rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .65rem .9rem; border-radius: var(--r-campo); text-decoration: none; }
.woocommerce-MyAccount-navigation a:hover { background: var(--piedra-100); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--forja); color: var(--cal); }
.woocommerce-MyAccount-content > * + * { margin-top: var(--e-4); }
.woocommerce-MyAccount-content a:not(.button) { color: var(--oro-osc); }
#customer_login { display: grid; gap: var(--e-6); }
#customer_login > div, .cuenta .woocommerce-form-login:only-child, .cuenta form.lost_reset_password, .cuenta .woocommerce-Address { padding: var(--e-5); background: var(--blanco); outline: 1px solid var(--piedra-300); }
.cuenta .woocommerce-form-login:only-child, .cuenta form.lost_reset_password { max-width: 36rem; }
.cuenta form.lost_reset_password > p:first-child { margin-bottom: var(--e-4); }
.cuenta .addresses { display: grid; gap: var(--e-5); }
.cuenta address, .cuenta mark { font-style: normal; background: none; color: inherit; }
.cuenta mark { font-weight: 600; }
.cuenta fieldset { margin-top: var(--e-6); }
.cuenta legend { font: 400 var(--t-24)/1.2 var(--f-display); margin-bottom: var(--e-4); }
.cuenta h2 { font: 400 var(--t-24)/1.2 var(--f-display); margin-bottom: var(--e-4); }
.cuenta .form-row { display: grid; gap: var(--e-1); margin: 0 0 var(--e-4); }
.cuenta label { font-size: var(--t-14); font-weight: 600; }
.cuenta .woocommerce-form__label-for-checkbox { display: flex; gap: var(--e-2); align-items: center; font-weight: 400; }
.cuenta .input-text, .cuenta select, .cuenta textarea { width: 100%; min-height: 3rem; padding: .7rem .9rem; background: var(--blanco); border: 1px solid var(--piedra-500); border-radius: var(--r-campo); font-size: var(--t-16); }
.cuenta .password-input { position: relative; display: block; }
.cuenta .show-password-input { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); width: 2.25rem; height: 2.25rem; }
.cuenta .show-password-input::before { content: "Ver"; font-size: var(--t-12); color: var(--piedra-700); }
.cuenta table { width: 100%; border-collapse: collapse; font-size: var(--t-14); }
.cuenta th, .cuenta td { padding: .7rem .5rem; border-bottom: 1px solid var(--piedra-300); text-align: left; }
.cuenta .lost_password a, .cuenta .woocommerce-privacy-policy-text a { color: var(--oro-osc); }
@media (min-width: 768px) { #customer_login, .cuenta .addresses { grid-template-columns: 1fr 1fr; } }
/* Tabla de pedidos en móvil: cada pedido en un bloque, con el nombre de la columna delante (data-title de WooCommerce) */
@media (max-width: 767px) {
  .cuenta .shop_table_responsive thead { display: none; }
  .cuenta .shop_table_responsive tr { display: block; padding: var(--e-2) 0; border-bottom: 1px solid var(--piedra-300); }
  .cuenta .shop_table_responsive tbody :is(th, td) { display: block; padding: .35rem 0; border: 0; text-align: right; }
  .cuenta .shop_table_responsive tbody :is(th, td)[data-title]::before { content: attr(data-title); float: left; margin-right: var(--e-4); font-weight: 600; }
}
@media (min-width: 1024px) { .cuenta .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 15rem minmax(0, 1fr); } }

/* Gracias */
.gracias { padding-bottom: var(--e-8); }
.gracias .sello { margin-bottom: var(--e-3); }
.gracias__rejilla { display: grid; gap: var(--e-7); align-items: start; }
.gracias__pasos { list-style: decimal; padding-left: 1.25rem; display: grid; gap: var(--e-3); margin: var(--e-4) 0 var(--e-6); }
.gracias__pasos a { color: var(--oro-osc); }
.gracias__datos { margin-top: var(--e-5); }
.totales .total small, .totales .total .includes_tax { display: block; font: 400 var(--t-12)/1.4 var(--f-texto); color: var(--piedra-700); }
@media (min-width: 1024px) { .gracias__rejilla { grid-template-columns: minmax(0, 1fr) 24rem; gap: var(--e-8); } }

/* Favoritos */
.favoritos { padding-bottom: var(--e-8); }
.favoritos .rejilla { margin-top: var(--e-5); }
.favoritos__vacio { display: grid; gap: var(--e-4); justify-items: start; }
.favoritos__nota { margin-top: var(--e-7); font-size: var(--t-14); }

/* Cesta y pago: bloques de WooCommerce con el estilo de las maquetas */
.bloques-tienda { padding-bottom: var(--e-8); }
.bloques-tienda .alignwide { max-width: none; margin-inline: 0; }
.bloques-tienda .has-background { padding: var(--e-3) var(--e-4); background: var(--marfil) !important; font-size: var(--t-14) !important; font-weight: 400 !important; }
.bloques-tienda .has-background a { color: var(--oro-osc); }
.wc-block-components-title.wc-block-components-title, .wc-block-components-checkout-step__title { font: 400 var(--t-24)/1.2 var(--f-display) !important; color: var(--forja); }
.wc-block-checkout__form { counter-reset: paso; }
.wc-block-components-checkout-step__title::before { counter-increment: paso; content: counter(paso); display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-right: var(--e-3); border: 1px solid var(--oro); border-radius: 50%; font: 600 var(--t-14)/1 var(--f-texto); color: var(--oro-osc); vertical-align: middle; }
.wc-block-components-checkout-step { padding-bottom: var(--e-5); border-bottom: 1px solid var(--piedra-300); }
.wc-block-components-checkout-step::after { display: none !important; }
.wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title::before { display: none; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  min-height: 3rem; border: 1px solid var(--forja) !important; border-radius: var(--r-campo) !important; background: var(--forja) !important; color: var(--cal) !important; font: 600 var(--t-16)/1.2 var(--f-texto) !important; box-shadow: none !important; text-decoration: none;
}
.wc-block-components-button:not(.is-link):hover, .wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--oro) !important; border-color: var(--oro) !important; color: var(--forja) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-totals-coupon__input input {
  border: 1px solid var(--piedra-500) !important; border-radius: var(--r-campo) !important; background: var(--blanco) !important; color: var(--forja) !important; font-family: var(--f-texto) !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--forja) !important; box-shadow: inset 0 0 0 1px var(--forja) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option, .wc-block-checkout__shipping-method-option {
  border-radius: var(--r-campo) !important; background: var(--blanco); box-shadow: inset 0 0 0 1px var(--piedra-300) !important;
}
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-checkout__shipping-method-option--selected { box-shadow: inset 0 0 0 2px var(--forja) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--forja) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--forja) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--forja) !important; border-color: var(--forja) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--cal) !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wp-block-woocommerce-checkout-totals-block, .wp-block-woocommerce-cart-totals-block { background: var(--blanco); }
.wp-block-woocommerce-checkout-order-summary-block, .wp-block-woocommerce-cart-totals-block { border: 1px solid var(--piedra-300) !important; border-radius: 0 !important; background: var(--blanco); }
.wp-block-woocommerce-cart-totals-block { padding: var(--e-5) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: 400 var(--t-24)/1.2 var(--f-display) !important; }
.wc-block-components-product-name { color: var(--forja) !important; font-weight: 600; text-decoration: none; }
.wc-block-components-product-name:hover { text-decoration: underline; }
.wc-block-components-product-metadata { font-size: var(--t-14); color: var(--piedra-700); }
.wc-block-cart-items__row img, .wc-block-components-order-summary-item__image img { background: var(--blanco); outline: 1px solid var(--piedra-100); }
.wc-block-components-quantity-selector { border-radius: var(--r-campo) !important; }
.wc-block-components-quantity-selector::after { border-color: var(--piedra-500) !important; border-radius: var(--r-campo) !important; }
.wc-block-cart-item__remove-link { color: var(--piedra-700) !important; font-size: var(--t-14) !important; }
.wc-block-components-sale-badge { background: var(--granate) !important; color: var(--blanco) !important; border: 0 !important; border-radius: var(--r-campo) !important; }
.wc-block-components-formatted-money-amount, .wc-block-components-product-price { font-variant-numeric: tabular-nums; }
.wc-block-components-notice-banner { border-radius: var(--r-campo) !important; }
.wc-block-components-notice-banner.is-error { background: var(--marfil) !important; border-color: var(--granate) !important; }
.wc-block-components-notice-banner.is-error > svg { background-color: var(--granate) !important; }
.wc-block-checkout__terms { font-size: var(--t-14); }
.wc-block-checkout__terms a, .wc-block-components-checkout-return-to-cart-button { color: var(--oro-osc) !important; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font: 400 var(--t-36)/1.1 var(--f-display); }

/* Cookies (inc/cookies.php): ventana centrada como la maqueta; Aceptar, Rechazar y Configurar con el mismo peso */
.consentimiento {
  width: min(34rem, calc(100% - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain;
  padding: var(--e-6) var(--e-5) var(--e-5); border-radius: var(--r-panel); background: var(--cal); box-shadow: var(--sombra-flota);
  font-size: var(--t-14); line-height: 1.6; color: var(--piedra-700);
}
.consentimiento[open] { animation: consentimiento-entra var(--lento) var(--curva); }
@keyframes consentimiento-entra { from { opacity: 0; transform: translateY(1rem) scale(.98); } }
.consentimiento__capa > * + * { margin-top: var(--e-4); }
.consentimiento__logo { width: 7.5rem; height: auto; }
.consentimiento h2 { font: 400 var(--t-24)/1.2 var(--f-display); color: var(--forja); }
.consentimiento h2:focus { outline: 0; } /* recibe el foco al abrir para que el lector de pantalla lea el título */
.consentimiento a { color: var(--oro-osc); font-weight: 500; text-decoration: underline; text-decoration-color: var(--oro); }
.consentimiento__usos { color: var(--forja); }
.consentimiento__botones { display: grid; gap: var(--e-2); }
.consentimiento .consentimiento__botones { margin-top: var(--e-5); }
.consentimiento__botones .boton { width: 100%; padding-inline: var(--e-3); line-height: 1.2; }
@media (min-width: 480px) { .consentimiento__botones { grid-auto-flow: column; grid-auto-columns: 1fr; } }
@media (hover: none) { .consentimiento .boton:hover { background: var(--forja); border-color: var(--forja); color: var(--cal); } } /* en táctil, sin dorado pegado tras el toque: mismo peso */
.consentimiento__docs { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 var(--e-4); font-size: var(--t-12); }
.consentimiento .consentimiento__docs { margin-top: var(--e-3); }
.consentimiento__docs a { display: inline-block; padding-block: .3rem; white-space: nowrap; }
.consentimiento__categorias { display: grid; gap: var(--e-2); }
.consentimiento__categoria { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--e-1) var(--e-4); padding: var(--e-3) var(--e-4); background: var(--blanco); border-radius: var(--r-campo); }
.consentimiento__categoria label { font-weight: 600; color: var(--forja); cursor: pointer; }
.consentimiento__categoria p { grid-column: 1 / -1; font-size: var(--t-12); line-height: 1.5; }
/* Interruptor: casilla nativa (role="switch"); encendido = fondo forja y bola a la derecha, no solo color */
.interruptor { appearance: none; position: relative; flex: none; width: 2.75rem; height: 1.5rem; margin: 0; border-radius: var(--r-sello); background: var(--piedra-500); cursor: pointer; transition: background var(--rapido); }
.interruptor::before { content: ""; position: absolute; top: .1875rem; left: .1875rem; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: var(--blanco); transition: transform var(--rapido) var(--curva); }
.interruptor:checked { background: var(--forja); }
.interruptor:checked::before { transform: translateX(1.25rem); }
.interruptor:disabled { opacity: .6; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) { .consentimiento[open] { animation: none; } .interruptor, .interruptor::before { transition: none; } }
/* Política de cookies: en móvil, cada cookie en un bloque con el nombre de la columna delante */
.texto-pagina > .tabla-cookies { max-width: 64rem; }
.tabla-cookies th[scope="row"] { font-weight: 600; color: var(--forja); overflow-wrap: break-word; }
@media (max-width: 767px) {
  .tabla-cookies thead { display: none; }
  .tabla-cookies tr { display: block; padding: var(--e-3) 0; border-bottom: 1px solid var(--piedra-300); }
  .texto-pagina .tabla-cookies :is(th, td) { display: block; padding: .15rem 0; border: 0; }
  .tabla-cookies td[data-title]::before { content: attr(data-title) ": "; font-weight: 600; color: var(--forja); }
}

/* Móvil: productos en carril deslizable con scroll-snap (se ve tarjeta y media) */
@media (max-width: 767px) {
  #novedades .carrusel__pista { grid-auto-columns: 64%; }
  .rejilla.dos-prod__productos, .rejilla.rejilla--fila, .relacionados .rejilla, .descubre .rejilla, .descubre .accesos {
    display: grid; grid-auto-flow: column; grid-auto-columns: 64%; grid-template-columns: none; gap: var(--e-3);
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margen);
    margin-inline: calc(-1 * var(--margen)); padding: 0 var(--margen) var(--e-3); scrollbar-width: thin; scrollbar-color: var(--piedra-300) transparent;
  }
  .rejilla.dos-prod__productos > *, .rejilla.rejilla--fila > *, .relacionados .rejilla > *, .descubre .rejilla > *, .descubre .accesos > * { scroll-snap-align: start; }
}

/* ==== Ven a vernos y taller (portada y Contacto) ==== */
/* «Ven a vernos»: tarjeta de horario (hoy resaltado y «Abierto ahora / Cerrado», ver tema.js) y canales de contacto */
.visita { display: grid; gap: var(--e-3); margin-top: var(--e-6); }
.visita__horario { padding: var(--e-5); background: var(--marfil); border-top: 2px solid var(--oro); }
.visita__cabeza { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-2) var(--e-4); margin-bottom: var(--e-4); }
.visita .visita__titulo { margin: 0; font: 400 var(--t-24)/1.2 var(--f-display); }
.visita__tabla { width: 100%; border-collapse: collapse; font-size: var(--t-16); }
.visita .visita__tabla th, .visita .visita__tabla td { padding: var(--e-3); border: 0; border-top: 1px solid var(--piedra-300); text-align: left; vertical-align: top; }
.visita__tabla th { font-weight: 500; }
.visita__tabla td { text-align: right; color: var(--piedra-700); font-variant-numeric: tabular-nums; }
.visita__tabla td span { display: block; white-space: nowrap; }
.visita__canales { display: grid; gap: var(--e-2); }
.visita__canal { display: flex; align-items: center; gap: var(--e-4); min-height: 4.25rem; padding: var(--e-3) var(--e-4); background: var(--blanco); outline: 1px solid var(--piedra-300); outline-offset: -1px; color: var(--forja); text-decoration: none; transition: outline-color var(--rapido); }
.banda--blanca .visita__canal { background: var(--cal); }
a.visita__canal:hover { outline-color: var(--forja); text-decoration: none; }
.visita__icono { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--champan); color: var(--oro-osc); transition: transform var(--rapido) var(--curva); }
a.visita__canal:hover .visita__icono { transform: scale(1.08); }
.visita__icono .icono { width: 1.3rem; height: 1.3rem; }
.visita--whatsapp .visita__icono { background: #25d366; color: var(--blanco); }
.visita__icono .icono--relleno { width: 1.45rem; height: 1.45rem; }
.visita__tipo { display: block; color: var(--piedra-700); font-size: var(--t-12); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.visita__dato { display: block; font-size: var(--t-16); font-weight: 600; font-variant-numeric: tabular-nums; }
@media (min-width: 480px) {
  .visita__tabla td span { display: inline; }
  .visita__tabla td span + span::before { content: " · "; color: var(--piedra-500); }
  .visita__canales { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visita__ancho { grid-column: 1 / -1; }
}
.contacto .visita { margin-top: var(--e-5); }
.visita + .acciones { margin-top: var(--e-5); }

/* Taller y ventajas: un solo bloque marfil (texto centrado arriba, la fila de ventajas debajo) */
.taller-portada__texto { display: grid; justify-items: center; max-width: 46rem; margin: 0 auto var(--e-8); text-align: center; }
.taller-portada__texto::before { content: ""; width: 3rem; height: 1px; margin-bottom: var(--e-5); background: var(--oro); }
.taller-portada__subtitulo { margin-top: var(--e-2); color: var(--oro-osc); font: 400 var(--t-24)/1.3 var(--f-display); }
.taller-portada__cuerpo { display: grid; gap: var(--e-4); margin-top: var(--e-5); color: var(--piedra-700); font-size: var(--t-18); line-height: 1.7; }
.taller-portada .acciones { justify-content: center; align-items: center; gap: var(--e-3) var(--e-6); margin-top: var(--e-6); }
.taller-portada__whatsapp { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; color: var(--forja); font-weight: 500; text-decoration: underline; text-decoration-color: var(--oro); text-underline-offset: .3em; }
.taller-portada__whatsapp .icono { color: #1da851; }
.taller-portada__whatsapp:hover { color: var(--oro-osc); }
/* ==== fin ven a vernos y taller ==== */

/* ==== Portada de temporada ==== */
/* Carrusel de cabecera (inc/temporada.php): diapositivas de temporada enteras y, al final, la cabecera de siempre.
   El alto lo marca la proporción de la primera imagen (la de móvil hasta 767 px); la cabecera se adapta a ese alto. */
.cabecera-carrusel { position: relative; background: var(--marfil); }
.cabecera-carrusel .cc__pista { grid-auto-columns: 100%; gap: 0; margin: 0; padding: 0; scroll-padding-inline: 0; scrollbar-width: none; aspect-ratio: var(--cc-ratio-movil); min-height: 28rem; }
.cabecera-carrusel .cc__pista::-webkit-scrollbar { display: none; }
.cc__diapo { position: relative; overflow: hidden; scroll-snap-stop: always; }
/* Las diapositivas que no se ven no se pintan ni cargan su foto hasta que hacen falta (no compiten con el LCP) */
.cc__diapo + .cc__diapo { content-visibility: auto; contain-intrinsic-size: auto 100vw auto 28rem; }
.cc__diapo picture, .cc__enlace { display: block; height: 100%; }
.cc__img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cc__enlace:focus-visible { outline-offset: -4px; }
.cc__diapo--cabecera .hero { height: 100%; }
.cc__diapo--cabecera .hero__marco { height: 100%; }
@media (max-width: 1023px) {
  /* Dentro del carrusel la foto llena la diapositiva y el texto va abajo, sobre un velo marfil */
  .cc__diapo--cabecera .hero--foto .hero__marco { display: flex; align-items: flex-end; }
  .cc__diapo--cabecera .hero--foto .hero__foto { position: absolute; inset: 0; aspect-ratio: auto; }
  .cc__diapo--cabecera .hero--foto .hero__foto img { object-position: 50% 30%; }
  .cc__diapo--cabecera .hero--foto .hero__foto::after { background: linear-gradient(0deg, rgb(244 239 228 / .96) 0%, rgb(244 239 228 / .88) 42%, rgb(244 239 228 / 0) 66%); }
  .cc__diapo--cabecera .hero--foto .hero__texto { margin-top: 0; padding-block: var(--e-6) calc(var(--e-7) + .5rem); }
  .cc__diapo--cabecera .hero--foto .portada__titulo { font-size: clamp(2rem, 1.3rem + 3.2vw, 3rem); }
  .cc__diapo--cabecera .hero--foto .portada__lead { display: -webkit-box; margin-top: var(--e-3); overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; font-size: var(--t-14); }
  .cc__diapo--cabecera .hero--foto .portada__acciones { margin-top: var(--e-4); gap: var(--e-2); }
  .cc__diapo--cabecera .hero--foto .portada__acciones .boton { min-height: 2.75rem; padding: .5rem .9rem; font-size: var(--t-14); }
}
@media (min-width: 768px) { .cabecera-carrusel .cc__pista { aspect-ratio: var(--cc-ratio); min-height: 26rem; } }
@media (min-width: 1024px) {
  .cc__diapo--cabecera .hero--foto .hero__marco { min-height: 0; }
  .cc__diapo--cabecera .hero--foto .hero__texto { padding-block: var(--e-6) var(--e-8); }
}
/* Flechas a los lados (en móvil se desliza con el dedo) y puntos + pausa abajo, sobre una pastilla oscura */
.cc__flecha { position: absolute; top: 50%; z-index: 2; display: none; place-items: center; width: 2.75rem; height: 2.75rem; translate: 0 -50%; border-radius: 50%; background: rgb(252 250 246 / .88); color: var(--forja); box-shadow: var(--sombra-boton); transition: background var(--rapido); }
.cc__flecha:hover { background: var(--cal); }
.cc__flecha--ant { left: var(--e-4); }
.cc__flecha--sig { right: var(--e-4); }
@media (min-width: 768px) { .cc__flecha { display: grid; } }
.cc__pie { position: absolute; left: 50%; bottom: var(--e-3); z-index: 2; display: flex; align-items: center; gap: .1rem; padding: .15rem .35rem; translate: -50% 0; border-radius: var(--r-sello); background: rgb(30 27 22 / .55); }
.cc__punto, .cc__pausa { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; color: var(--cal); }
.cc__punto::before { content: ""; width: .6rem; height: .6rem; border: 1.5px solid var(--cal); border-radius: 50%; transition: background var(--rapido); }
.cc__punto[aria-current="true"]::before { background: var(--cal); }
.cc__pie :focus-visible { outline-color: var(--cal); outline-offset: 0; }

/* Franja de promoción (debajo del carrusel): texto grande, código copiable y enlace, con los colores elegidos */
.franja-promo { position: relative; background: var(--franja-fondo, var(--oro)); color: var(--franja-texto, var(--forja)); }
.franja-promo__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--e-2) var(--e-6); padding-block: var(--e-4); text-align: center; }
.franja-promo__texto { font: 400 clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem)/1.1 var(--f-display); letter-spacing: .01em; }
.franja-promo__codigo { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.75rem; padding: .25rem .35rem .25rem .9rem; border: 1px dashed currentColor; border-radius: var(--r-campo); color: inherit; font-size: var(--t-14); cursor: copy; }
.franja-promo__codigo strong { font-weight: 700; letter-spacing: .08em; user-select: all; }
.franja-promo__copiar { padding: .2rem .6rem; border-radius: var(--r-campo); background: var(--franja-texto, var(--forja)); color: var(--franja-fondo, var(--oro)); font-size: var(--t-12); font-weight: 600; }
.franja-promo__enlace { display: inline-flex; align-items: center; min-height: 2.75rem; color: inherit; font-size: var(--t-18); font-weight: 600; text-decoration: underline; text-underline-offset: .25em; }
.franja-promo :focus-visible { outline-color: currentColor; }

/* Aviso de la vista previa del Personalizador (fuera de fechas) */
.promo-aviso { position: absolute; top: .75rem; left: 50%; z-index: 3; padding: .4rem .9rem; translate: -50% 0; border-radius: var(--r-sello); background: var(--granate); color: var(--blanco); font-size: var(--t-12); font-weight: 600; white-space: nowrap; }
.promo-aviso--barra { position: static; translate: none; padding: .1rem .5rem; }

/* Pantallas anchas: el carrusel no pasa de 1920 px ni de min(80svh, 800px) de alto (la imagen, entera y centrada);
   a los lados, a sangre, el color de la diapositiva que se ve (Personalizador) y un fundido suave sobre el borde */
.cabecera-carrusel { background: var(--cc-fondo, var(--marfil)); transition: background-color .6s; }
@media (min-width: 768px) {
  .cabecera-carrusel .cc__pista { width: min(100%, 1920px, calc(min(80svh, 800px) * var(--cc-ratio))); margin-inline: auto; }
}
.cc--bandas .cc__diapo::before, .cc--bandas .cc__diapo::after { content: ""; position: absolute; top: 0; bottom: 0; z-index: 1; width: 5%; pointer-events: none; }
.cc--bandas .cc__diapo::before { left: 0; background: linear-gradient(90deg, var(--fondo-diapo), transparent); }
.cc--bandas .cc__diapo::after { right: 0; background: linear-gradient(-90deg, var(--fondo-diapo), transparent); }
@media (prefers-reduced-motion: reduce) { .cabecera-carrusel { transition: none; } }
/* ==== fin portada de temporada ==== */

/* ==== Archivos de producto ==== */
/* Archivos de producto (tienda, categoría, marca, búsqueda): rejilla a todo el ancho, fila de acabados y barra compacta */
.rejilla--catalogo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1024px) { .rejilla--catalogo { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Fila de acabados: círculos grandes con relleno metálico, deslizables */
.acabados-fila { margin: 0 calc(-1 * var(--margen)) var(--e-4); }
.acabados { display: flex; gap: var(--e-4); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margen); padding: var(--e-1) var(--margen) var(--e-3); scrollbar-width: none; }
.acabados::-webkit-scrollbar { display: none; }
/* Si hay más acabados de los que caben, el borde derecho se funde para invitar a deslizar */
.acabados { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent); }
.acabados li { flex: none; scroll-snap-align: start; }
.acabado { display: grid; justify-items: center; align-content: start; gap: var(--e-2); width: 5.5rem; color: var(--forja); font-size: var(--t-12); line-height: 1.3; text-align: center; text-decoration: none; }
.acabado__muestra { width: 4.75rem; height: 4.75rem; border-radius: 50%; background: var(--m); box-shadow: inset 0 0 0 1px rgb(30 27 22 / .08), 0 1px 3px rgb(30 27 22 / .14); transition: transform var(--rapido) var(--curva), box-shadow var(--rapido); }
.acabado:hover .acabado__muestra { transform: scale(1.04); }
.acabado:hover .acabado__nombre { text-decoration: underline; text-decoration-color: var(--oro); }
.acabado[aria-current="true"] .acabado__muestra { box-shadow: 0 0 0 2px var(--cal), 0 0 0 4px var(--forja); }
.acabado[aria-current="true"] .acabado__nombre { font-weight: 700; }
.acabado:focus-visible { outline: none; }
.acabado:focus-visible .acabado__muestra { box-shadow: 0 0 0 2px var(--cal), 0 0 0 4px var(--oro-osc); }
@media (min-width: 768px) {
  .acabados-fila { margin-inline: 0; }
  .acabados { gap: var(--e-5); padding-inline: 0; scroll-padding-inline: 0; }
  .acabado { width: auto; min-width: 4.5rem; font-size: var(--t-13, .8125rem); white-space: nowrap; }
  .acabado__muestra { width: 3.5rem; height: 3.5rem; }
}

/* Barra compacta: «Filtros» (abre el cajón), número de productos y «Ordenar por» */
.barra-catalogo { position: sticky; top: 3.75rem; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); min-height: 3.25rem; margin-bottom: var(--e-5); background: var(--cal); border-block: 1px solid var(--piedra-300); }
.barra-catalogo__filtros { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding-right: .25rem; color: var(--forja); font-size: var(--t-14); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.barra-catalogo__filtros:hover { color: var(--oro-osc); }
.barra-catalogo__num { position: static; display: inline-grid; place-items: center; }
.barra-catalogo__total { margin-inline: auto; color: var(--piedra-700); font-size: var(--t-14); white-space: nowrap; }
.barra-catalogo .ordenar { gap: .35rem; }
.barra-catalogo .ordenar label { display: flex; align-items: center; gap: .35rem; }
.ordenar__texto { color: var(--forja); font-size: var(--t-14); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.barra-catalogo .ordenar select.entrada { width: auto; min-height: 2.75rem; padding-block: 0; padding-left: .25rem; border: 0; background-color: transparent; font-size: var(--t-14); }
@media (max-width: 767px) {
  .ordenar__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .barra-catalogo { gap: var(--e-2); }
  .barra-catalogo__total { font-size: var(--t-12); }
  .barra-catalogo .ordenar select.entrada { max-width: 8.5rem; text-overflow: ellipsis; }
  /* Subcategorías: chips discretos en una sola fila deslizable */
  .subcats { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--margen)); padding: 0 var(--margen) var(--e-1); scrollbar-width: none; }
  .subcats::-webkit-scrollbar { display: none; }
  .subcats li { flex: none; }
}
@media (min-width: 1024px) { .barra-catalogo { top: var(--alto-cabecera); } }

/* Entradilla plegable: 3 líneas y «Leer más» (inc/textos-termino.php decide por la longitud: larga, siempre; media, solo en móvil) */
.cat-intro--larga .cat-intro__texto { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.cat-intro--media .cat-intro__mas { display: none; }
@media (max-width: 767px) {
  .cat-intro--media .cat-intro__texto { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .cat-intro--media .cat-intro__mas { display: inline-block; }
}
.cat-intro.es-abierto .cat-intro__texto { display: block; overflow: visible; -webkit-line-clamp: unset; }
.cat-intro__texto p + p { margin-top: var(--e-3); }
.cat-intro__mas { min-height: 2.25rem; color: var(--forja); font-size: var(--t-14); font-weight: 600; text-decoration: underline; text-decoration-color: var(--oro); text-underline-offset: .25em; }
.cat-intro__mas:hover { color: var(--oro-osc); }
/* «Ver todas» al final de los chips de categoría */
.subcats__todas { display: inline-flex; align-items: center; gap: .25rem; min-height: 2.5rem; padding: 0 1rem; border: 1px dashed var(--piedra-500); border-radius: var(--r-sello); font-size: var(--t-14); white-space: nowrap; }
.subcats__todas:hover { border-color: var(--forja); }
.subcats__todas span { color: var(--piedra-700); }
/* ==== fin archivos de producto ==== */

/* ==== Cinta de avisos ==== */
/* Cinta de avisos de la barra superior (inc/promociones.php + tema.js). Con JS (y sin «reducir movimiento») se mueve en
   bucle: tema.js pone tantas copias del grupo de mensajes como hagan falta para llenar el ancho y la desplaza el ancho
   de UNA copia a velocidad constante (--cinta-paso, --cinta-duracion). Sin JS o con «reducir movimiento», quieta.
   Separación fija entre mensajes (2,8 rem con el rombo dorado en medio), igual en todas las pantallas. */
.cinta { position: relative; display: flex; align-items: center; min-height: 2.25rem; overflow: hidden; }
.cinta__pista { display: flex; flex: none; }
.cinta__grupo { display: flex; flex: none; align-items: center; }
.cinta__item { position: relative; display: flex; flex: none; align-items: center; padding-inline: 1.4rem; white-space: nowrap; }
.cinta__item::after { content: ""; position: absolute; top: 50%; right: -.15rem; width: .3rem; height: .3rem; background: var(--oro); transform: translateY(-50%) rotate(45deg); }
.cinta__item > a, .cinta__item > span { display: inline-flex; align-items: center; gap: var(--e-2); min-height: 2.25rem; color: inherit; text-decoration: none; }
.cinta__item > a:hover { color: var(--oro-claro); text-decoration: underline; }
/* Sin JS o con «reducir movimiento»: solo el primer grupo, quieto (se puede deslizar con el dedo) */
.cinta:not(.cinta--js) .cinta__grupo[aria-hidden] { display: none; }
.cinta:not(.cinta--js) .cinta__pista { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.cinta:not(.cinta--js) .cinta__pista::-webkit-scrollbar { display: none; }
.cinta--js .cinta__pista { animation: cinta var(--cinta-duracion, 40s) linear infinite; will-change: transform; }
.cinta--js:hover .cinta__pista, .cinta--js:focus-within .cinta__pista, .cinta--parada .cinta__pista { animation-play-state: paused; }
@keyframes cinta { to { transform: translateX(calc(-1 * var(--cinta-paso, 50%))); } }
/* Mensaje destacado: dorado, más grueso y con un brillo de neón que late despacio; algo de margen para que el brillo
   no toque a los vecinos */
.cinta__item--destacado { font-size: .8125rem; }
.cinta__item--destacado > * { margin-inline: .5rem; } /* dentro del mensaje: los rombos siguen centrados en el hueco */
.cinta .cinta__neon { display: inline-block; color: var(--cinta-destacado, var(--oro-claro)); font-weight: 700; letter-spacing: .02em;
  text-shadow: 0 0 .3em color-mix(in srgb, var(--cinta-destacado, #dcc65a) 75%, transparent), 0 0 1em color-mix(in srgb, var(--cinta-destacado, #dcc65a) 40%, transparent);
  animation: neon 3.2s ease-in-out infinite; }
.cinta__codigo { font-weight: 600; }
.cinta__codigo b { padding: 0 .3em; border: 1px dashed currentColor; border-radius: 2px; letter-spacing: .06em; }
/* El brillo late (sombra y escala); el color del texto no cambia, así el contraste es siempre el mismo */
@keyframes neon {
  0%, 100% { transform: scale(1); text-shadow: 0 0 .25em color-mix(in srgb, var(--cinta-destacado, #dcc65a) 55%, transparent); }
  50% { transform: scale(1.04); text-shadow: 0 0 .35em color-mix(in srgb, var(--cinta-destacado, #dcc65a) 85%, transparent), 0 0 1.1em color-mix(in srgb, var(--cinta-destacado, #dcc65a) 45%, transparent); }
}
.cinta__pausa { position: absolute; top: 50%; right: .5rem; z-index: 2; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); translate: 0 -50%; border-radius: var(--r-sello); background: var(--oro-claro); color: var(--forja); font-size: var(--t-12); white-space: nowrap; }
.cinta:not(.cinta--js) .cinta__pausa { display: none; }
.cinta__pausa:focus-visible { width: auto; height: auto; padding: .25rem .8rem; overflow: visible; clip-path: none; }
@media (prefers-reduced-motion: reduce) {
  .cinta .cinta__neon { animation: none; }
}
/* ==== fin cinta de avisos ==== */

/* ==== Entradas al hacer scroll ==== */
/* Entradas al hacer scroll (tema.js): solo con html.con-entradas, que pone el JS, y solo en lo que estaba bajo el pliegue
   al cargar (.entra). Fundido y subida de 20 px en 0,75 s con una curva suave; las vitrinas que entran a la vez, escalonadas
   (--retardo); las fotos de categorías y de la tienda además se acercan de 1,06 a 1 dentro de su marco. Solo opacidad y
   transformaciones: nada se mueve de sitio (CLS 0). Con «reducir movimiento», todo quieto y visible. */
.con-entradas .entra { opacity: 0; transform: translateY(20px); transition: opacity .75s cubic-bezier(.22, .61, .36, 1) var(--retardo, 0ms), transform .75s cubic-bezier(.22, .61, .36, 1) var(--retardo, 0ms); }
.con-entradas .entra.es-visible { opacity: 1; transform: none; }
.con-entradas .entra--foto img { transform: scale(1.06); transition: transform 1.4s cubic-bezier(.22, .61, .36, 1) var(--retardo, 0ms); }
.con-entradas .entra--foto.es-visible img { transform: none; }
.tienda__foto { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  .con-entradas .entra, .con-entradas .entra--foto img { opacity: 1; transform: none; transition: none; }
}
/* Micro-interacciones coherentes: las vitrinas del megamenú también se enmarcan en dorado al pasar el ratón */
.mega__producto:hover .mega__foto img { outline-color: var(--oro); }
/* ==== fin entradas al hacer scroll ==== */
