/* ==========================================================================
   Lovelia — estilos del tema

   Escala: los diseños son lienzos de 1440 × 810. En escritorio medimos todo en
   "unidades de diseño" (--u = 1px del PDF a 1440 de ancho, proporcional por debajo
   y fijo por encima), así cada botón, card y sección respeta el diseño en cualquier
   pantalla. En tablet y celular (≤ 900px) se pasa a medidas propias.
   ========================================================================== */

@font-face { font-family: "Nib Pro"; src: url("../fonts/NibPro-Light.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Nib Pro"; src: url("../fonts/NibPro-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Nib Pro"; src: url("../fonts/NibPro-SemiBold.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Marlin Geo"; src: url("../fonts/MarlinGeo-Light.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Marlin Geo"; src: url("../fonts/MarlinGeo-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Marlin Geo"; src: url("../fonts/MarlinGeo-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Marlin Geo"; src: url("../fonts/MarlinGeo-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
	--violeta: #70338D;
	--violeta-claro: #8D3FB2;
	--violeta-oscuro: #4D305B;
	--rosa: #FFEFEE;
	--nude: #ECC7B9;
	--amarillo: #EBE961;
	--turquesa: #5FCFBB;
	--negro: #1d1a1e;
	--gris: #6f6a73;
	--linea: #ebe3e6;
	--blanco: #fff;

	--sans: "Marlin Geo", "Helvetica Neue", Arial, sans-serif;
	--serif: "Nib Pro", Georgia, "Times New Roman", serif;

	/* 1 unidad de diseño */
	--u: min(1px, calc(100vw / 1440));
	/* márgenes laterales del diseño */
	--borde: calc(43 * var(--u));
	--ancho: 1440px;
	--ancho-texto: 760px;
	--header-alto: calc(67 * var(--u));
	--transicion: 200ms ease;
	--sombra: 0 calc(10 * var(--u)) calc(30 * var(--u)) rgba(80, 30, 100, .08);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-alto) + 16px); }
body {
	margin: 0;
	font-family: var(--sans);
	font-weight: 300;
	font-size: max(15px, calc(18 * var(--u)));
	line-height: 1.5;
	color: var(--negro);
	background: var(--blanco);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	/* clip recorta igual pero no convierte al body en contenedor de scroll (eso rompía el header sticky). */
	overflow-x: clip;
}
img, video, iframe { max-width: 100%; display: block; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
button { font: inherit; color: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0 0 .5em; font-weight: 300; line-height: 1.12; }
p { margin: 0 0 1em; }
ul, ol { padding: 0; margin: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--violeta); outline-offset: 3px; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--violeta); color: #fff; padding: 8px 16px; }
.saltar:focus { left: 8px; }
[hidden] { display: none !important; }

.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--borde); }
.contenedor--texto { max-width: calc(var(--ancho-texto) + 2 * var(--borde)); }
.seccion { padding-block: calc(80 * var(--u)); }
.centrado { text-align: center; }
.fondo-rosa { background: var(--rosa); }

/* ---------- Tipografía (tamaños del PDF) ---------- */
.display-xl, .display-l, .display-m, .display-s { font-family: var(--sans); font-weight: 300; text-transform: uppercase; color: var(--violeta); }
.display-xl { font-size: max(30px, calc(56 * var(--u))); line-height: 1.2; }
.display-l  { font-size: max(26px, calc(42 * var(--u))); }
.display-m  { font-size: max(24px, calc(32 * var(--u))); color: var(--negro); }
.display-s  { font-size: max(21px, calc(28 * var(--u))); }
.titulo-bold { font-family: var(--sans); font-weight: 500; text-transform: uppercase; font-size: max(17px, calc(20 * var(--u))); }
.serif-xl { font-family: var(--serif); font-size: max(24px, calc(40 * var(--u))); line-height: 1.32; }
.serif-l  { font-family: var(--serif); font-size: max(18px, calc(24 * var(--u))); line-height: 1.45; }
.serif-mayus { font-family: var(--serif); text-transform: uppercase; font-size: max(18px, calc(30 * var(--u))); line-height: 1.27; }
.serif-mayus--chica { font-size: max(15px, calc(20 * var(--u))); line-height: 1.7; }
.serif-mayus--grande { font-size: max(24px, calc(44 * var(--u))); line-height: 1.15; }
.wordmark { font-family: var(--sans); font-weight: 500; color: var(--violeta); letter-spacing: -.04em; line-height: .9; }

.prosa { font-size: max(16px, calc(19 * var(--u))); line-height: 1.7; }
.prosa > *:first-child { margin-top: 0; }
.prosa h2 { font-size: max(20px, calc(26 * var(--u))); color: var(--violeta); text-transform: uppercase; margin-top: 1.6em; }
.prosa h3 { font-size: max(18px, calc(21 * var(--u))); font-weight: 500; margin-top: 1.4em; }
.prosa ul { list-style: disc; padding-left: 1.2em; margin-bottom: 1em; }
.prosa ol { list-style: decimal; padding-left: 1.2em; margin-bottom: 1em; }
.prosa img { margin-block: 1.5em; border-radius: 6px; }
.prosa a { color: var(--violeta); }
.prosa blockquote { margin: 1.5em 0; padding-left: 1.2em; border-left: 2px solid var(--violeta); font-family: var(--serif); font-size: 1.25em; }

.link-flecha { display: inline-flex; gap: 6px; align-items: center; text-decoration: none; font-size: max(14px, calc(16 * var(--u))); }
.link-flecha:hover { color: var(--violeta); }

/* ---------- Botones (medidas del PDF) ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: max(42px, calc(53 * var(--u)));
	padding: 0 max(22px, calc(40 * var(--u)));
	border: 1.5px solid var(--violeta); border-radius: 999px; background: transparent; color: var(--violeta);
	font-family: var(--sans); font-weight: 300; font-size: max(15px, calc(18 * var(--u))); line-height: 1.15;
	text-decoration: none; text-align: center; white-space: nowrap;
	transition: background var(--transicion), color var(--transicion), border-color var(--transicion), transform var(--transicion);
}
.btn:hover { background: var(--violeta); color: #fff; }
.btn:active { transform: scale(.98); }
.btn--chico { min-height: 40px; padding-inline: 20px; font-size: 15px; }
/* Hero: 455 × 90, texto 34 */
.btn--hero { min-height: calc(90 * var(--u)); padding-inline: calc(45 * var(--u)); border-width: 2px; font-size: max(20px, calc(34 * var(--u))); }
/* "Explorar las Intenciones": 456 × 90, texto 36 */
.btn--grande { min-height: max(54px, calc(90 * var(--u))); padding-inline: max(28px, calc(30 * var(--u))); border-width: 2px; font-size: max(19px, calc(36 * var(--u))); }
/* "Descubrir el talismán digital": 357 × 86, texto 26 */
.btn--mediano { min-height: max(50px, calc(86 * var(--u))); padding-inline: max(24px, calc(24 * var(--u))); border-width: 2px; font-size: max(17px, calc(26 * var(--u))); }
.btn--claro { border-color: #fff; color: #fff; }
.btn--claro:hover { background: #fff; color: var(--violeta); }
/* "DESCUBRE LAS 8 INTENCIONES": 275 × 66, mayúsculas 18, dos líneas */
.btn--claro-mayus { min-height: max(54px, calc(66 * var(--u))); padding-inline: calc(58 * var(--u)); text-transform: uppercase; white-space: normal; line-height: 1.45; font-size: max(14px, calc(18 * var(--u))); }
/* chicos con borde fino: "Ver opciones", "VER TALISMÁN", "Conocer esta Intención" */
.btn--outline-sm { min-height: max(28px, calc(26 * var(--u))); padding-inline: max(14px, calc(16 * var(--u))); border-width: 1px; font-size: max(12px, calc(12 * var(--u))); }
.btn--negro { border-color: var(--negro); color: var(--negro); text-transform: uppercase; }
.btn--negro:hover { background: var(--negro); color: #fff; }
/* "Comprar" / "Explorar la colección": 162 × 46, rosa */
.btn--soft { min-height: max(42px, calc(46 * var(--u))); padding-inline: max(28px, calc(40 * var(--u))); background: var(--rosa); border-color: var(--rosa); color: var(--negro); font-size: max(16px, calc(20 * var(--u))); }
.btn--soft:hover { background: var(--nude); border-color: var(--nude); color: var(--negro); }
/* Pills de categoría: 160 × 44 */
.btn--nude { min-width: max(120px, calc(160 * var(--u))); min-height: max(40px, calc(44 * var(--u))); padding-inline: 18px; border: 0; background: var(--nude); color: var(--negro); text-transform: uppercase; font-size: max(14px, calc(18 * var(--u))); box-shadow: inset 0 -3px 5px rgba(0,0,0,.06), 0 2px 3px rgba(0,0,0,.05); }
.btn--nude:hover, .btn--nude[aria-selected="true"] { background: var(--violeta); color: #fff; }
.btn--primary { background: var(--violeta); color: #fff; }
.btn--primary:hover { background: var(--violeta-claro); border-color: var(--violeta-claro); }
.btn--intencion { background: var(--color, var(--nude)); border-color: var(--color, var(--nude)); color: var(--texto, #000); }
.btn--intencion:hover { filter: brightness(.94); background: var(--color); color: var(--texto); }
.btn--sobre-color { border-color: currentColor; color: inherit; }
.btn--sobre-color:hover { background: var(--texto, #000); color: var(--color, #fff); border-color: var(--texto, #000); }
/* TIENDA: 118 × 44 rectangular */
.btn--header { min-height: calc(44 * var(--u)); min-width: calc(118 * var(--u)); padding-inline: 14px; border-radius: 4px; text-transform: uppercase; font-size: max(13px, calc(15 * var(--u))); }
/* Súmate a Lovelia: 242 × 64, radio 16 */
.btn--footer { min-height: max(52px, calc(64 * var(--u))); padding-inline: max(22px, calc(10 * var(--u))); min-width: calc(242 * var(--u)); border: 0; border-radius: 16px; background: var(--nude); color: #fff; font-size: max(20px, calc(28 * var(--u))); }
.btn--footer:hover { background: var(--violeta); }

.icon { width: 24px; height: 24px; flex: none; }
.icon--chico { width: 12px; height: 12px; }

/* ---------- Header (67 de alto) ---------- */
.header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: border-color var(--transicion); }
.header.is-scrolled { border-color: var(--linea); }
.admin-bar .header { top: 32px; }
.header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; height: max(60px, var(--header-alto)); max-width: var(--ancho); margin-inline: auto; padding-left: calc(113 * var(--u)); padding-right: calc(29 * var(--u)); }
.header__logo img { height: max(38px, calc(48 * var(--u))); width: auto; }
.header__nav { justify-self: start; }
.nav { display: flex; gap: calc(28 * var(--u)); align-items: center; }
.nav__link { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 6px 0; color: var(--violeta); font-size: max(14px, calc(16.5 * var(--u))); text-decoration: none; }
.nav__link:hover, .nav__link[aria-current] { text-decoration: underline; }
.nav__item--sub { position: relative; }
.nav__sub { position: absolute; top: calc(100% + 8px); left: -16px; min-width: 220px; padding: 8px 0; background: #fff; border: 1px solid var(--linea); border-radius: 10px; box-shadow: var(--sombra); opacity: 0; visibility: hidden; transform: translateY(6px); transition: all var(--transicion); }
.nav__sub::before { content: ""; position: absolute; inset: -10px 0 auto; height: 10px; }
.nav__sub a { display: block; padding: 9px 18px; color: var(--violeta); text-decoration: none; font-size: 15px; }
.nav__sub a:hover { background: var(--rosa); }
.nav__item--sub:hover .nav__sub, .nav__item--sub.is-open .nav__sub { opacity: 1; visibility: visible; transform: none; }
.header__acciones { justify-self: end; display: flex; align-items: center; gap: calc(14 * var(--u)); color: var(--violeta); }
.header__acciones .btn--header { margin-left: calc(26 * var(--u)); }
.header__icono { display: inline-flex; position: relative; background: none; border: 0; padding: 4px; color: var(--violeta); }
.header__icono .icon { width: max(21px, calc(25 * var(--u))); height: max(21px, calc(25 * var(--u))); }
.carrito-contador { position: absolute; top: -3px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: var(--violeta); color: #fff; font-size: 10px; line-height: 16px; text-align: center; font-weight: 500; }
.carrito-contador[data-cantidad="0"] { display: none; }
.header__hamburguesa { display: none; background: none; border: 0; color: var(--violeta); padding: 6px; }
.nav__extra { display: none; }
.buscador { border-top: 1px solid var(--linea); background: #fff; }
.buscador__form { display: flex; gap: 12px; max-width: 760px; margin: 0 auto; padding: 16px 20px; }
.buscador input { flex: 1; border: 1px solid var(--linea); border-radius: 999px; padding: .7em 1.2em; }

/* ---------- Footer (Intenciones pág. 11) ---------- */
.footer { padding-top: calc(110 * var(--u)); border-top: 1px solid var(--linea); }
.footer__columnas { display: grid; grid-template-columns: 326fr 352fr 323fr 200fr; padding-left: calc(118 * var(--u)); padding-right: calc(80 * var(--u)); }
.footer__titulo { color: var(--violeta); font-size: max(22px, calc(28 * var(--u))); margin-bottom: calc(30 * var(--u)); }
.footer__col li { line-height: 1.13; }
.footer__col a { text-decoration: none; font-size: max(15px, calc(20 * var(--u))); }
.footer__col a:hover { color: var(--violeta); }
.footer__base { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: calc(60 * var(--u)); padding-left: calc(118 * var(--u)); padding-right: calc(158 * var(--u)); }
.footer__redes { display: flex; gap: calc(20 * var(--u)); }
.footer__redes a { display: grid; place-items: center; width: max(52px, calc(80 * var(--u))); aspect-ratio: 1; border-radius: 50%; background: var(--violeta); color: #fff; transition: background var(--transicion); }
.footer__redes a:hover { background: var(--violeta-claro); }
.footer__redes .icon { width: 48%; height: auto; }
.footer__copy { text-align: center; color: var(--gris); font-size: 13px; margin: calc(70 * var(--u)) 0 0; padding: 18px; border-top: 1px solid var(--linea); }

/* ---------- Cards ---------- */
.grilla { display: grid; gap: calc(30 * var(--u)); }
.grilla--4 { grid-template-columns: repeat(4, 1fr); }
.card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.card__foto { display: block; width: 100%; aspect-ratio: 307 / 395; overflow: hidden; background: var(--rosa); position: relative; }
.card__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.card__foto:hover img { transform: scale(1.035); }
.card--cuadrada .card__foto { aspect-ratio: 1; }
.card__sin-foto { display: block; width: 100%; height: 100%; background: linear-gradient(160deg, var(--rosa), var(--nude)); }
.card__nombre { margin: calc(22 * var(--u)) 0 calc(6 * var(--u)); padding-left: calc(20 * var(--u)); color: var(--violeta); font-size: max(17px, calc(22 * var(--u))); line-height: 1.2; }
.card__detalle { margin: 0 0 calc(14 * var(--u)); padding-left: calc(20 * var(--u)); font-size: max(13px, calc(14 * var(--u))); }
.card .btn--outline-sm { margin-left: calc(20 * var(--u)); }
.card { height: 100%; }
.card > .btn { margin-top: auto; }
.carrusel__pista > li { display: flex; flex-direction: column; }
.carrusel__pista > li > .card { flex: 1; }
.card-modelo { display: flex; flex-direction: column; align-items: flex-start; }
.card-modelo .btn { margin-top: auto; }
.grilla-intenciones > li > .btn { margin-top: auto; }
.card__precio { margin: 0 0 calc(12 * var(--u)); padding-left: calc(20 * var(--u)); font-size: max(15px, calc(18 * var(--u))); }
.card__titulo { margin: calc(22 * var(--u)) 0 0; font-size: max(16px, calc(20 * var(--u))); line-height: 1.4; font-weight: 300; }
.card__titulo a { text-decoration: none; }
.card__titulo a:hover { color: var(--violeta); }
.card__etiqueta { position: absolute; left: 12px; top: 12px; background: #fff; padding: 3px 12px; border-radius: 99px; font-size: 12px; }
.card--agotado .card__foto img { opacity: .55; }
/* Más elegidos: ficha en 4 líneas + "Comprar" centrado */
.card--elegido { align-items: stretch; }
.card__ficha { margin: calc(10 * var(--u)) 0 calc(14 * var(--u)); font-size: max(15px, calc(20 * var(--u))); line-height: 1.38; }
.card__ficha div { display: flex; gap: 6px; }
.card__ficha dt { color: var(--gris); }
.card__ficha dt::after { content: ":"; }
.card__ficha dd { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card--elegido .btn--soft { align-self: center; }

/* ---------- Carruseles ---------- */
.carrusel { position: relative; }
.carrusel__pista {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc(307 * var(--u));
	gap: calc(30 * var(--u)); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
	padding-inline: max(var(--borde), calc((100vw - var(--ancho)) / 2 + var(--borde)));
	scroll-padding-inline: max(var(--borde), calc((100vw - var(--ancho)) / 2 + var(--borde)));
}
.carrusel__pista::-webkit-scrollbar { display: none; }
.carrusel__pista > li { scroll-snap-align: start; }
.carrusel--sangrado .carrusel__pista { padding-left: max(0px, calc((100vw - var(--ancho)) / 2)); scroll-padding-inline: max(0px, calc((100vw - var(--ancho)) / 2)) 0; }
.carrusel__flecha { position: absolute; right: calc(60 * var(--u)); top: calc(130 * var(--u)); width: calc(140 * var(--u)); aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; border: 3px solid var(--negro); background: rgba(255,255,255,.55); backdrop-filter: blur(2px); color: var(--negro); transition: transform var(--transicion), opacity var(--transicion); }
.carrusel__flecha .icon { width: 56%; height: auto; }
.carrusel__flecha:hover { transform: scale(1.05); background: #fff; }
.carrusel__flecha--prev { right: auto; left: calc(60 * var(--u)); }
.carrusel__flecha--prev .icon { transform: rotate(180deg); }
.carrusel__flecha[disabled] { opacity: 0; pointer-events: none; }

/* ==========================================================================
   Home
   ========================================================================== */

/* 1. Hero (810 con el header) */
.hero-home { position: relative; height: calc(743 * var(--u)); min-height: 420px; overflow: hidden; color: #fff; }
.hero-home__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.hero-home__marca { display: none; }
.hero-home__texto { position: absolute; left: calc(205 * var(--u)); top: calc(318 * var(--u)); padding: 0; width: auto; }
.hero-home__texto .display-l { color: #fff; font-size: calc(46 * var(--u)); line-height: 1.26; margin-bottom: calc(38 * var(--u)); }
.hero-home__bajada { font-size: calc(26 * var(--u)); line-height: 1.38; margin: 0 0 calc(56 * var(--u)) calc(-5 * var(--u)); }
.hero-home .btn--hero { margin-left: calc(-18 * var(--u)); }

/* 2. Crea tu talismán */
.crea { padding: calc(56 * var(--u)) 0 calc(110 * var(--u)); }
.crea__titulo { text-align: center; color: var(--violeta-claro); margin-bottom: calc(30 * var(--u)); }
.crea__panel { display: grid; grid-template-columns: 556fr 784fr; align-items: center; min-height: calc(320 * var(--u)); background: var(--rosa); border-radius: calc(24 * var(--u)); padding: calc(14 * var(--u)) calc(30 * var(--u)) calc(14 * var(--u)) calc(32 * var(--u)); }
.crea__intro .titulo-bold { margin-bottom: calc(26 * var(--u)); }
.crea__intro p { font-size: max(15px, calc(20 * var(--u))); margin: 0; }
.crea__intenciones { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(14 * var(--u)) calc(33 * var(--u)); }
.mini-intencion { display: block; text-decoration: none; font-size: max(13px, calc(18 * var(--u))); line-height: 1.05; margin-right: calc(-12 * var(--u)); }
.mini-intencion img { width: 100%; aspect-ratio: 152 / 102; object-fit: cover; border-radius: calc(14 * var(--u)); margin-bottom: calc(6 * var(--u)); transition: transform var(--transicion), box-shadow var(--transicion); }
.mini-intencion:hover img { transform: translateY(-2px); box-shadow: 0 0 0 2px var(--violeta); }
.crea__modelos { margin: calc(46 * var(--u)) 0 calc(28 * var(--u)); }
.crea__modelos .titulo-bold { margin-bottom: calc(10 * var(--u)); }
.crea__modelos p { font-size: max(15px, calc(20 * var(--u))); margin: 0; }
.carrusel__pista--modelos { grid-auto-columns: calc(176 * var(--u)); gap: calc(26 * var(--u)); }
.card-modelo__foto { display: block; aspect-ratio: 176 / 213; overflow: hidden; }
.card-modelo__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.card-modelo__foto:hover img { transform: scale(1.04); }
.card-modelo__nombre { margin: calc(22 * var(--u)) 0 calc(8 * var(--u)); font-size: max(15px, calc(20 * var(--u))); }

/* 3. Encuentra tu talismán */
.encuentra { padding: calc(90 * var(--u)) 0 calc(110 * var(--u)); }
.encuentra__cabecera { text-align: center; }
.encuentra__cabecera .display-xl { margin-bottom: calc(14 * var(--u)); }
.encuentra__sub { text-transform: uppercase; font-size: max(14px, calc(18 * var(--u))); margin-bottom: calc(22 * var(--u)); }
.encuentra__pills { display: flex; justify-content: center; gap: calc(31 * var(--u)); flex-wrap: wrap; margin-bottom: calc(48 * var(--u)); }

/* 4. Mucho más que una joya */
.mucho-mas { position: relative; height: calc(810 * var(--u)); min-height: 460px; display: flex; align-items: center; color: #fff; overflow: hidden; }
.mucho-mas__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mucho-mas::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(40,20,10,.32), rgba(40,20,10,0) 62%); }
.mucho-mas__texto { position: absolute; z-index: 2; left: max(calc(70 * var(--u)), calc((100vw - var(--ancho)) / 2 + 70px)); top: calc(185 * var(--u)); padding: 0; width: auto; }
.mucho-mas__texto .display-xl { color: #fff; font-size: calc(52 * var(--u)); margin-bottom: calc(92 * var(--u)); }
.mucho-mas__texto .serif-mayus { width: calc(740 * var(--u)); margin-bottom: calc(36 * var(--u)); }
.mucho-mas__texto .btn { margin-top: calc(90 * var(--u)); margin-left: calc(-12 * var(--u)); }

/* 5. Más elegidos */
.elegidos { padding: calc(100 * var(--u)) 0 calc(120 * var(--u)); }
.elegidos .display-l { margin-bottom: calc(56 * var(--u)); }

/* 6. Así nace tu talismán (810) */
.nace { display: grid; grid-template-columns: 595fr 845fr; height: calc(810 * var(--u)); min-height: 520px; }
.nace__texto { display: flex; flex-direction: column; align-items: center; text-align: center; padding: calc(122 * var(--u)) calc(70 * var(--u)) 0; }
.nace__texto .display-m { margin-bottom: calc(60 * var(--u)); }
.nace__texto .serif-mayus { width: calc(330 * var(--u)); min-width: 260px; margin: 0 0 calc(70 * var(--u)); }
.nace__iconos { display: grid; grid-template-columns: repeat(4, calc(110 * var(--u))); gap: calc(8 * var(--u)); }
.nace__iconos li { display: flex; flex-direction: column; align-items: center; gap: calc(18 * var(--u)); font-size: max(9px, calc(10 * var(--u))); text-transform: uppercase; line-height: 1.4; }
.nace__iconos img { height: calc(72 * var(--u)); width: auto; }
.nace__fotos { display: grid; grid-template-columns: repeat(3, 1fr); min-height: 0; }
.nace__fotos img { width: 100%; height: 100%; object-fit: cover; }

/* 7. Todo comienza + video */
.video { padding: calc(110 * var(--u)) 0 calc(120 * var(--u)); }
.video .contenedor { padding-inline: calc(80 * var(--u)) calc(82 * var(--u)); }
.video .display-xl { line-height: 1.36; margin-bottom: calc(36 * var(--u)); }
.video__caja { aspect-ratio: 1278 / 505; background: var(--rosa); display: grid; place-items: center; overflow: hidden; }
.video__caja:has(iframe, video) { aspect-ratio: 16 / 9; background: #000; } /* el video no se recorta */
.video__caja iframe, .video__caja video { width: 100%; height: 100%; border: 0; object-fit: cover; }
.video__isotipo { width: calc(90 * var(--u)); min-width: 56px; height: auto; opacity: .85; }

/* 8. Foto a sangre */
.pausa img { width: 100%; height: calc(810 * var(--u)); min-height: 360px; object-fit: cover; }

/* 9. Talismán digital (810) */
.digital { display: grid; grid-template-columns: 705fr 735fr; height: calc(810 * var(--u)); min-height: 560px; }
.digital__foto { position: relative; }
.digital__foto img { width: 100%; height: 100%; object-fit: cover; }
.digital__circulo { position: absolute; left: calc(420 * var(--u)); top: calc(90 * var(--u)); width: calc(240 * var(--u)); aspect-ratio: 1; border-radius: 50%; background: var(--amarillo); color: var(--violeta); display: grid; place-items: center; text-align: center; padding: calc(36 * var(--u)); font-size: calc(26 * var(--u)); line-height: 1.4; z-index: 1; }
.digital__texto { background: var(--turquesa) url("../img/fondo-turquesa.webp") center / cover; display: flex; flex-direction: column; align-items: center; text-align: center; padding: calc(172 * var(--u)) calc(60 * var(--u)) 0; }
.digital__texto .display-s { font-size: calc(26 * var(--u)); margin-bottom: calc(46 * var(--u)); }
.digital__texto p { font-family: var(--serif); font-size: max(15px, calc(20 * var(--u))); line-height: 1.95; width: calc(410 * var(--u)); min-width: 300px; margin-bottom: calc(39 * var(--u)); }
.digital__texto .btn { margin-top: calc(24 * var(--u)); }

/* 10. Nueva colección Origen (810) */
.origen { padding: calc(130 * var(--u)) 0 calc(130 * var(--u)); }
.origen__grilla { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.origen__texto { display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center; padding-block: calc(50 * var(--u)) calc(30 * var(--u)); }
.origen__ante { font-size: max(13px, calc(14 * var(--u))); margin: 0; }
.origen__texto .display-s { font-size: max(19px, calc(20 * var(--u))); line-height: 1.4; margin: 0; }
.origen__foto { margin: 0; justify-self: center; text-align: center; width: calc(372 * var(--u)); }
.origen__foto img { width: calc(318 * var(--u)); margin-inline: auto; aspect-ratio: 318 / 333; object-fit: cover; }
.origen__foto .wordmark { display: block; font-size: calc(108 * var(--u)); margin-top: calc(4 * var(--u)); }
.origen__foto figcaption span:last-child { font-size: max(15px, calc(20 * var(--u))); }

/* 11. Universo Lovelia */
.universo { padding: calc(100 * var(--u)) 0 calc(130 * var(--u)); }
.universo .display-l { margin-bottom: calc(10 * var(--u)); }
.isotipo { margin: 0 auto calc(44 * var(--u)); width: calc(55 * var(--u)); min-width: 40px; height: auto; }
.card--post .card__foto { aspect-ratio: 307 / 394; }

/* ==========================================================================
   Intenciones
   ========================================================================== */
.hero-intenciones { background: #B9CFE3 var(--fondo) center / cover; height: calc(810 * var(--u)); min-height: 480px; display: flex; align-items: center; justify-content: center; text-align: center; }
.hero-intenciones__texto { padding-top: calc(20 * var(--u)); }
.hero-intenciones .display-l { font-size: max(26px, calc(40 * var(--u))); margin-bottom: calc(90 * var(--u)); }
.hero-intenciones .serif-l { font-size: max(22px, calc(44 * var(--u))); line-height: 1.32; width: calc(700 * var(--u)); min-width: 300px; margin: 0 auto calc(130 * var(--u)); }

.encuentra-intencion { padding: calc(26 * var(--u)) 0 calc(90 * var(--u)); }
.encuentra-intencion .display-l { font-size: max(24px, calc(36 * var(--u))); margin-bottom: calc(40 * var(--u)); }
.grilla-intenciones { display: grid; grid-template-columns: repeat(4, calc(262 * var(--u))); justify-content: center; gap: calc(36 * var(--u)) calc(26 * var(--u)); }
.grilla-intenciones > li { display: flex; flex-direction: column; align-items: center; gap: calc(10 * var(--u)); }
.card-intencion { display: flex; flex-direction: column; width: 100%; aspect-ratio: 262 / 302; padding: calc(16 * var(--u)) calc(28 * var(--u)) calc(22 * var(--u)); border-radius: calc(8 * var(--u)); background: var(--color); color: var(--texto); text-decoration: none; transition: transform var(--transicion), box-shadow var(--transicion); }
.card-intencion:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.card-intencion__nombre { font-weight: 500; text-transform: uppercase; font-size: max(13px, calc(18 * var(--u))); line-height: 1.1; min-height: 2.2em; display: flex; align-items: flex-end; }
.card-intencion__lema { font-family: var(--serif); font-size: max(12px, calc(16 * var(--u))); margin: calc(2 * var(--u)) 0 calc(18 * var(--u)); }
.card-intencion img { flex: 1; width: 100%; min-height: 0; object-fit: cover; }

.ficha-intencion { background: var(--color); color: var(--texto); }
.ficha-intencion__grilla { display: grid; grid-template-columns: 481fr 863fr; gap: calc(25 * var(--u)); min-height: calc(810 * var(--u)); padding: calc(30 * var(--u)) calc(37 * var(--u)) calc(20 * var(--u)) calc(34 * var(--u)); max-width: var(--ancho); }
.ficha-intencion__lateral { display: flex; flex-direction: column; padding-top: calc(22 * var(--u)); }
.ficha-intencion__nombre { font-size: max(24px, calc(34 * var(--u))); line-height: 1.05; margin: 0; }
.ficha-intencion__lema { font-family: var(--serif); font-size: max(20px, calc(30 * var(--u))); margin: 0 0 calc(20 * var(--u)); }
.ficha-intencion__foto { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: calc(6 * var(--u)); }
.ficha-intencion__lateral .reproductor { display: flex; margin: calc(70 * var(--u)) auto 0; }
.ficha-intencion__volver { display: block; margin-top: calc(26 * var(--u)); font-size: max(15px, calc(18 * var(--u))); text-decoration: none; color: inherit; }
.ficha-intencion__volver:hover { text-decoration: underline; }
.ficha-intencion__card { display: flex; flex-direction: column; background: #fff; color: var(--negro); border-radius: calc(4 * var(--u)); padding: calc(60 * var(--u)) calc(44 * var(--u)) calc(60 * var(--u)) calc(31 * var(--u)); }
.ficha-intencion__estado { flex: 1; display: flex; flex-direction: column; justify-content: center; animation: aparecer 400ms ease; }
.ficha-intencion__estado--corta { text-align: center; padding-inline: calc(40 * var(--u)); }
.ficha-intencion__estado--larga { justify-content: flex-start; max-height: calc(560 * var(--u)); min-height: 280px; overflow-y: auto; padding-right: 12px; scrollbar-color: var(--violeta) transparent; scrollbar-width: thin; }
.ficha-intencion__estado--larga .prosa { font-size: max(15px, calc(19 * var(--u))); line-height: 1.45; }
.ficha-intencion__pregunta { text-align: center; font-size: max(17px, calc(22 * var(--u))); margin: calc(40 * var(--u)) 0 0; }
.ficha-intencion__botones { display: grid; grid-template-columns: 1fr 1fr; justify-items: center; gap: 16px; margin-top: calc(50 * var(--u)); }
.ficha-intencion__botones .btn { width: calc(270 * var(--u)); min-width: 200px; }
.ficha-intencion__talismanes { padding-top: calc(40 * var(--u)); padding-inline: calc(80 * var(--u)); }
.ficha-intencion__talismanes .display-l { color: inherit; text-transform: none; font-size: max(24px, calc(44 * var(--u))); margin-bottom: calc(30 * var(--u)); }
.ficha-intencion .grilla { gap: calc(40 * var(--u)) calc(25 * var(--u)); }
.ficha-intencion .card__nombre, .ficha-intencion .card__detalle, .ficha-intencion .card__precio { color: inherit; padding-left: calc(6 * var(--u)); margin-block: 0; min-height: 0; font-size: max(15px, calc(20 * var(--u))); line-height: 1.2; }
.ficha-intencion .card__nombre { margin-top: calc(14 * var(--u)); }
.ficha-intencion .card__precio { margin-bottom: calc(12 * var(--u)); }
.ficha-intencion .card .btn--outline-sm { margin-left: 0; min-height: max(30px, calc(32 * var(--u))); font-size: max(13px, calc(16 * var(--u))); border-color: var(--violeta); color: var(--violeta); text-transform: none; }
.ficha-intencion .card .btn--outline-sm:hover { background: var(--violeta); color: #fff; }
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }

/* Reproductor */
.reproductor { display: inline-flex; flex-direction: column; align-items: center; gap: 12px; }
.reproductor__boton { min-height: max(44px, calc(53 * var(--u))); width: calc(273 * var(--u)); min-width: 220px; }
.reproductor__icono { display: inline-flex; }
.reproductor__icono .icon { width: 16px; height: 16px; }
.reproductor__icono--pausa, .is-playing .reproductor__icono--play { display: none; }
.is-playing .reproductor__icono--pausa { display: inline-flex; }
.reproductor__barra { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 220px; }
.reproductor__barra input { flex: 1; accent-color: var(--violeta); }
.reproductor__tiempo { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Meditaciones */
.hero-simple { background: var(--violeta) var(--fondo) center / cover; height: calc(620 * var(--u)); min-height: 360px; display: flex; align-items: center; }
.hero-simple__titulo { color: #fff; text-shadow: 0 2px 30px rgba(60,20,80,.25); }
.grilla-meditaciones { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(60 * var(--u)) calc(40 * var(--u)); margin-top: calc(56 * var(--u)); padding-inline: calc(70 * var(--u)); }
.meditacion { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.meditacion__foto { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; padding: 0; border: 0; border-radius: calc(8 * var(--u)); overflow: hidden; background: var(--color); }
.meditacion__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.meditacion__foto:hover img { transform: scale(1.04); }
.meditacion__play { position: absolute; inset: 0; margin: auto; width: calc(64 * var(--u)); min-width: 48px; height: fit-content; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.88); color: var(--violeta); transition: transform var(--transicion); }
.meditacion__play .icon { width: 42%; height: auto; }
.meditacion__foto:hover .meditacion__play { transform: scale(1.08); }
.meditacion__duracion { position: absolute; right: 10px; bottom: 8px; padding: 2px 8px; border-radius: 99px; background: rgba(0,0,0,.45); color: #fff; font-size: 12px; font-variant-numeric: tabular-nums; }
.meditacion__duracion:empty { display: none; }
.meditacion__barra { margin-top: 10px; min-width: 0; }
.meditacion__titulo { margin: calc(16 * var(--u)) 0 4px; font-size: max(16px, calc(20 * var(--u))); font-weight: 500; }
.para-que { position: relative; overflow: hidden; background: var(--rosa); padding: calc(140 * var(--u)) 0; isolation: isolate; }
.para-que::before { content: ""; position: absolute; inset: calc(30 * var(--u)) 0 0; z-index: -1; opacity: .75;
	background: radial-gradient(ellipse 48% 100% at 50% 100%, var(--nude) 99%, transparent 100%) 0 0 / calc(330 * var(--u)) 100% repeat-x; }
.para-que__texto { max-width: calc(1000 * var(--u) + 2 * var(--borde)); }
.para-que .display-m { color: var(--violeta); }
.para-que .serif-l { font-size: max(19px, calc(30 * var(--u))); line-height: 1.5; color: var(--violeta-oscuro); }

/* Activación */
.activacion { background: var(--color); color: var(--texto); min-height: calc(810 * var(--u)); }
.activacion__grilla { display: grid; grid-template-columns: 1fr 1fr; gap: calc(64 * var(--u)); padding-block: calc(80 * var(--u)); align-items: center; }
.activacion .display-l { color: inherit; }
.activacion__ante { text-transform: uppercase; letter-spacing: .08em; font-size: 14px; }
.activacion__pasos { list-style: decimal; padding-left: 1.2em; font-size: max(16px, calc(20 * var(--u))); line-height: 1.6; margin-bottom: 2em; }
.activacion__pasos li { margin-bottom: .6em; }
.activacion__pasos blockquote { margin: .8em 0; padding: 1em 1.2em; background: rgba(255,255,255,.6); color: var(--negro); border-radius: 8px; }
.activacion__foto { width: 100%; border-radius: 10px; aspect-ratio: 4 / 5; object-fit: cover; }
.activacion__nota { margin-top: 1.5em; font-size: 15px; }

/* ==========================================================================
   Nuestras piedras
   ========================================================================== */
.hero-piedras { position: relative; height: calc(810 * var(--u)); min-height: 460px; overflow: hidden; }
.hero-piedras__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.hero-piedras__texto { position: absolute; left: max(calc(120 * var(--u)), calc((100vw - var(--ancho)) / 2 + 120px)); top: calc(282 * var(--u)); padding: 0; width: calc(540 * var(--u)); }
.hero-piedras__texto .display-xl { margin-bottom: calc(14 * var(--u)); }
.hero-piedras__texto .serif-mayus--grande { margin-bottom: calc(26 * var(--u)); }
.hero-piedras__bajada { font-size: max(16px, calc(26 * var(--u))); line-height: 1.2; width: calc(490 * var(--u)); }

.acordeon-piedras { display: flex; height: calc(810 * var(--u)); min-height: 480px; background: var(--negro); }
.franja { position: relative; flex: 1 1 0; overflow: hidden; color: #fff; text-decoration: none; transition: flex-grow 450ms ease; }
.franja img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.franja__panel { position: absolute; inset: 7% 8%; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: calc(16 * var(--u)); padding: calc(28 * var(--u)); background: rgba(112, 51, 141, .66); text-align: center; opacity: 0; transition: opacity 300ms ease; }
.franja__nombre { text-transform: uppercase; font-size: max(20px, calc(36 * var(--u))); line-height: 1.05; }
.franja__clave { text-transform: uppercase; font-size: max(14px, calc(22 * var(--u))); }
.franja__texto { font-family: var(--serif); font-size: max(14px, calc(20 * var(--u))); line-height: 1.38; }
.franja:hover, .franja:focus-visible, .franja.is-activa { flex-grow: 2.2; }
.franja:hover .franja__panel, .franja:focus-visible .franja__panel, .franja.is-activa .franja__panel { opacity: 1; transition-delay: 150ms; }

.grilla-piedras-seccion { padding: calc(74 * var(--u)) 0; }
.grilla-piedras { display: grid; grid-template-columns: repeat(3, calc(383 * var(--u))); justify-content: center; gap: calc(25 * var(--u)); }
.card-piedra { display: flex; flex-direction: column; gap: calc(6 * var(--u)); background: #fff; padding: calc(10 * var(--u)) calc(24 * var(--u)) calc(16 * var(--u)); text-decoration: none; transition: transform var(--transicion), box-shadow var(--transicion); }
.card-piedra:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.card-piedra__cabecera { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: calc(36 * var(--u)); }
.card-piedra__nombre { text-transform: uppercase; font-size: max(15px, calc(22 * var(--u))); line-height: 1; white-space: nowrap; }
.card-piedra__cualidad { font-size: max(11px, calc(14 * var(--u))); text-align: right; line-height: 1.2; }
.card-piedra__fotos { display: grid; grid-template-columns: 1fr 1fr; border-radius: calc(6 * var(--u)); overflow: hidden; }
.card-piedra__fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.grilla-piedras__logo { display: grid; place-items: center; }
.grilla-piedras__logo .wordmark { font-size: calc(124 * var(--u)); }

/* ==========================================================================
   Talismán digital
   ========================================================================== */
.hero-digital { position: relative; height: calc(810 * var(--u)); min-height: 460px; display: flex; align-items: center; overflow: hidden; color: #fff; }
.hero-digital__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-digital__texto { position: relative; padding-left: max(calc(120 * var(--u)), var(--borde)); }
.hero-digital .display-xl { color: #fff; }
.hero-digital .serif-l { max-width: 24em; text-shadow: 0 1px 16px rgba(0,0,0,.25); margin-bottom: 1.4em; }
.bloque-digital { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(640 * var(--u)); background: var(--color); color: var(--texto); }
.bloque-digital--invertido .bloque-digital__foto { order: 2; }
.bloque-digital__foto img { width: 100%; height: 100%; object-fit: cover; }
.bloque-digital__texto { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: calc(80 * var(--u)) calc(110 * var(--u)); }
.bloque-digital__texto .display-s { color: inherit; }
.bloque-digital__numero { font-family: var(--serif); font-size: max(28px, calc(48 * var(--u))); line-height: 1; margin-bottom: .2em; }
.bloque-digital__texto p { font-size: max(15px, calc(19 * var(--u))); max-width: 34em; }
.bloque-digital__texto .btn { margin-top: calc(16 * var(--u)); }
.precio-grande { font-size: max(24px, calc(34 * var(--u))); color: var(--violeta); margin-bottom: .6em; }
.banda-digital { display: grid; grid-template-columns: 1fr 1.3fr; gap: calc(60 * var(--u)); align-items: center; }
.banda-digital img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }

/* ---------- Páginas y blog ---------- */
.pagina { padding-bottom: calc(100 * var(--u)); }
.pagina__cabecera { padding-top: calc(70 * var(--u)); padding-bottom: calc(24 * var(--u)); }
.nota__cabecera { padding-top: calc(70 * var(--u)); }
.nota__fecha { color: var(--gris); font-size: 14px; }
.nota__foto { margin-block: calc(24 * var(--u)) calc(48 * var(--u)); }
.nota__foto img { width: 100%; max-height: 640px; object-fit: cover; }
.blog .grilla { padding-inline: calc(30 * var(--u)); }
.nav-links { display: flex; justify-content: center; gap: 12px; margin-top: 48px; }
.nav-links .page-numbers { padding: 6px 12px; text-decoration: none; }
.nav-links .current { color: var(--violeta); border-bottom: 1px solid; }

/* ==========================================================================
   Tienda y ficha de producto
   ========================================================================== */
.tienda { padding-bottom: calc(100 * var(--u)); }
.tienda__cabecera { padding-top: calc(60 * var(--u)); }
.tienda__cabecera .serif-l { margin-bottom: 0; }
.filtros { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; margin: calc(36 * var(--u)) auto calc(48 * var(--u)); }
.filtro select { appearance: none; min-height: 44px; border: 1px solid var(--linea); border-radius: 999px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2370338D' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; padding: 0 2.6em 0 1.2em; font-size: 15px; cursor: pointer; transition: border-color var(--transicion); }
.filtro select:hover { border-color: var(--violeta); }
.filtros__limpiar { color: var(--violeta); font-size: 15px; }
.tienda__aviso { text-align: center; margin-bottom: 32px; }
.tienda__aviso strong { background: var(--color); padding: 0 .4em; border-radius: 4px; font-weight: 400; }
.grilla-tienda { gap: calc(50 * var(--u)) calc(30 * var(--u)); }
.grilla-tienda .card__nombre, .grilla-tienda .card__detalle, .grilla-tienda .card__precio { padding-left: 0; }
.grilla-tienda .card .btn--outline-sm { margin-left: 0; }

/* Loops nativos de Woo (relacionados) */
ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(30 * var(--u)); }
ul.products li.product { display: flex; flex-direction: column; }
ul.products li.product a img { aspect-ratio: 307 / 395; object-fit: cover; width: 100%; margin-bottom: 14px; }
ul.products li.product .woocommerce-loop-product__title { font-size: max(17px, calc(22 * var(--u))); color: var(--violeta); margin: 0 0 4px; }
ul.products li.product .price { display: block; margin-bottom: 12px; }
ul.products li.product .button { align-self: flex-start; min-height: 32px; padding-inline: 16px; font-size: 13px; background: transparent; color: var(--negro); border-color: var(--negro); text-transform: uppercase; }
.woocommerce-LoopProduct-link { text-decoration: none; }

.variations th label, .selector-intencion__titulo, .datos-nacimiento legend { display: block; font-weight: 400; text-transform: uppercase; font-size: 13px; letter-spacing: .08em; color: var(--negro); }
.variations { width: 100%; border-collapse: collapse; margin-bottom: 4px; }
.variations tr { display: block; margin-bottom: 20px; }
.variations th, .variations td { display: block; padding: 0; text-align: left; }
.variations select { width: 100%; max-width: 360px; min-height: 44px; padding: 0 1em; border: 1px solid var(--linea); border-radius: 10px; margin-top: 8px; }
.variations .reset_variations { display: inline-block; margin-top: 4px; font-size: 13px; color: var(--gris); }
.opciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.opcion { display: inline-flex; align-items: center; min-height: 40px; border: 1px solid var(--linea); border-radius: 999px; background: #fff; padding: 0 16px; font-size: 15px; transition: all var(--transicion); }
.opcion:hover { border-color: var(--violeta); }
.opcion[aria-pressed="true"] { background: var(--violeta); border-color: var(--violeta); color: #fff; }
.opcion[disabled] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.opcion__punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 8px; border: 1px solid rgba(0,0,0,.15); }
.single_variation_wrap { margin-top: 8px; }
.woocommerce-variation-description { font-size: 14px; color: var(--gris); margin: 6px 0 14px; }
.woocommerce-variation-description p { white-space: pre-line; margin: 0; }
.woocommerce-variation-price .price { display: block; font-size: max(24px, calc(30 * var(--u))); color: var(--violeta); }
.stock { font-size: 14px; margin: 4px 0 18px; color: var(--gris); }
.stock.out-of-stock { color: #a33; }

.selector-intencion { border: 0; padding: 22px 0 0; margin: 4px 0 24px; border-top: 1px solid var(--linea); }
.selector-intencion__titulo { margin-bottom: 12px; padding: 0; }
.selector-intencion__ayuda { text-transform: none; letter-spacing: 0; color: var(--gris); margin-left: 8px; font-size: 13px; }
.selector-intencion__opciones { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.chip-intencion { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 58px; padding: 8px 14px 8px 34px; border: 1px solid var(--linea); border-radius: 12px; cursor: pointer; transition: all var(--transicion); }
.chip-intencion:hover { border-color: var(--violeta); }
.chip-intencion::before { content: ""; position: absolute; left: 13px; top: 50%; translate: 0 -50%; width: 12px; height: 12px; border-radius: 50%; background: var(--color-intencion); }
.chip-intencion input { position: absolute; opacity: 0; pointer-events: none; }
.chip-intencion:has(input:checked) { border-color: var(--violeta); box-shadow: 0 0 0 1px var(--violeta); background: var(--rosa); }
.chip-intencion:has(input:focus-visible) { outline: 2px solid var(--violeta); outline-offset: 2px; }
.chip-intencion__nombre { font-size: 15px; line-height: 1.2; }
.chip-intencion__frase { font-family: var(--serif); font-size: 13px; color: var(--gris); }
.selector-intencion__medalla { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; padding: 10px; border-radius: 12px; background: var(--rosa); }
.selector-intencion__medalla img { width: 88px; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.selector-intencion__medalla::after { content: "Así se verá tu medalla grabada"; font-size: 14px; color: var(--gris); }

.datos-nacimiento { border: 0; padding: 22px 0 0; margin: 4px 0 24px; border-top: 1px solid var(--linea); display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.datos-nacimiento legend { margin-bottom: 4px; float: left; width: 100%; }
.datos-nacimiento .campo:first-of-type, .datos-nacimiento .campo:last-of-type { grid-column: 1 / -1; }
.datos-nacimiento__ayuda { grid-column: 1 / -1; font-size: 13px; color: var(--gris); margin: 0; }
.campo { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }

/* Campos de formulario (ficha, carrito, checkout, cuenta) */
.campo input, .input-text, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container .select2-selection--single, .woocommerce-input-wrapper input, .woocommerce-input-wrapper select, .woocommerce-input-wrapper textarea {
	width: 100%; min-height: 48px; border: 1px solid #ddd3d8; border-radius: 10px; padding: 0 14px; background: #fff; font-size: 16px; transition: border-color var(--transicion), box-shadow var(--transicion);
}
textarea.input-text, .woocommerce-input-wrapper textarea { padding: 12px 14px; min-height: 96px; }
.campo input:focus, .input-text:focus, .woocommerce-input-wrapper :is(input, select, textarea):focus { outline: 0; border-color: var(--violeta); box-shadow: 0 0 0 3px rgba(112,51,141,.12); }
.select2-container .select2-selection--single { display: flex; align-items: center; height: 48px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 0; }
.select2-dropdown { border-color: #ddd3d8; border-radius: 10px; overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--violeta); }

form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
form.cart > * { flex-basis: 100%; }
form.cart .quantity, form.cart .single_add_to_cart_button { flex-basis: auto; }
.woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.quantity { display: inline-flex; align-items: center; border: 1px solid #ddd3d8; border-radius: 999px; overflow: hidden; background: #fff; }
.quantity input { width: 52px; min-height: 48px; border: 0; text-align: center; font-size: 16px; -moz-appearance: textfield; background: transparent; }
.quantity input::-webkit-inner-spin-button, .quantity input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.cantidad-btn { width: 38px; min-height: 48px; border: 0; background: none; font-size: 20px; color: var(--violeta); }
.cantidad-btn:hover { background: var(--rosa); }
.single_add_to_cart_button, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .checkout-button, #place_order {
	display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 34px; border: 1.5px solid var(--violeta); border-radius: 999px; background: var(--violeta); color: #fff;
	font-size: 17px; text-decoration: none; cursor: pointer; transition: background var(--transicion), opacity var(--transicion);
}
.single_add_to_cart_button { flex: 1 1 240px !important; }
.single_add_to_cart_button:hover, .woocommerce .button:hover, #place_order:hover, .checkout-button:hover { background: var(--violeta-claro); border-color: var(--violeta-claro); }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { opacity: .4; cursor: not-allowed; }

/* ==========================================================================
   Carrito, checkout y cuenta
   ========================================================================== */
.pagina--woo { background: #fcf8f8; padding-bottom: calc(110 * var(--u)); }
.woo-cabecera { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px 32px; padding: calc(56 * var(--u)) 0 calc(32 * var(--u)); }
.woo-cabecera .display-l { margin: 0; }
.pasos { display: flex; gap: 8px; align-items: center; font-size: 14px; color: var(--gris); }
.pasos__item { display: flex; align-items: center; gap: 8px; }
.pasos__item + .pasos__item::before { content: ""; width: 28px; height: 1px; background: #d9cfd4; margin-right: 4px; }
.pasos__numero { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #d9cfd4; font-size: 13px; }
.pasos__item.is-actual { color: var(--violeta); }
.pasos__item.is-actual .pasos__numero { background: var(--violeta); border-color: var(--violeta); color: #fff; }
.pasos__item.is-hecho .pasos__numero { border-color: var(--violeta); color: var(--violeta); }

.panel { background: #fff; border-radius: 16px; padding: clamp(20px, calc(36 * var(--u)), 36px); box-shadow: 0 1px 2px rgba(60,20,80,.04), var(--sombra); }
.panel + .panel { margin-top: 20px; }
.panel:empty, .panel:not(:has(*)) { display: none; }
.panel__titulo, .woocommerce-billing-fields > h3, .woocommerce-shipping-fields > h3, .woocommerce-additional-fields > h3, .cart_totals > h2 { font-size: 18px; text-transform: uppercase; letter-spacing: .06em; color: var(--violeta); margin: 0 0 20px; font-weight: 400; }

/* Avisos de Woo */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .aviso { list-style: none; margin: 0 0 20px; padding: 14px 18px; border-radius: 12px; background: #fff; border: 1px solid var(--linea); border-left: 4px solid var(--violeta); display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; font-size: 15px; }
.woocommerce-error { border-left-color: #c0392b; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 38px; padding: 0 18px; font-size: 14px; order: 2; }
.woocommerce-info a:not(.button) { color: var(--violeta); }

/* Carrito */
.carrito { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start; }
.items-carrito { background: #fff; border-radius: 16px; padding: 8px 28px; box-shadow: 0 1px 2px rgba(60,20,80,.04), var(--sombra); }
.item-carrito { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 22px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--linea); }
.item-carrito:last-child { border-bottom: 0; }
.item-carrito__foto img { width: 120px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; }
.item-carrito__nombre { font-size: 20px; margin: 0 0 6px; }
.item-carrito__nombre a { text-decoration: none; color: var(--violeta); }
.item-carrito dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; margin: 0 0 14px; font-size: 14px; color: var(--gris); }
.item-carrito dl.variation dt { font-weight: 400; }
.item-carrito dl.variation dd { margin: 0; color: var(--negro); }
.item-carrito dl.variation p { margin: 0; }
.item-carrito__acciones { display: flex; align-items: center; gap: 18px; }
.item-carrito__quitar { font-size: 14px; color: var(--gris); }
.item-carrito__quitar:hover { color: #c0392b; }
.item-carrito__precio { font-size: 18px; margin: 0; white-space: nowrap; }
.carrito__pie { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 0 0; }
.cupon { display: flex; gap: 8px; align-items: center; }
.cupon input { width: 210px; min-height: 40px; border-radius: 999px; }
.carrito__actualizar[disabled] { opacity: .45; }
.carrito__seguir { margin-top: 22px; }
.carrito__resumen { position: sticky; top: calc(var(--header-alto) + 20px); }
.cart_totals { background: #fff; border-radius: 16px; padding: 28px; box-shadow: 0 1px 2px rgba(60,20,80,.04), var(--sombra); }
.cart_totals .shop_table, .woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
.cart_totals th, .cart_totals td, .woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: 12px 0; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: top; font-weight: 300; font-size: 15px; }
.cart_totals td, .woocommerce-checkout-review-order-table td:last-child, .woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.cart_totals .order-total th, .cart_totals .order-total td, .woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { border-bottom: 0; padding-top: 18px; font-size: 20px; color: var(--violeta); }
.woocommerce-shipping-methods { margin: 0; }
.woocommerce-shipping-methods li { display: flex; gap: 6px; justify-content: flex-end; align-items: center; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: 13px; color: var(--gris); margin: 6px 0 0; }
.shipping-calculator-button { color: var(--violeta); }
.wc-proceed-to-checkout { margin-top: 18px; }
.checkout-button { width: 100%; min-height: 56px; font-size: 18px; }

/* Checkout */
.checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 32px; align-items: start; }
.checkout-grid__resumen { position: sticky; top: calc(var(--header-alto) + 20px); }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.form-row { margin: 0 0 16px; grid-column: 1 / -1; }
.form-row-first { grid-column: 1; }
.form-row-last { grid-column: 2; }
.form-row label { display: block; font-size: 14px; margin-bottom: 6px; color: #4b464f; }
.form-row .required { color: var(--violeta); text-decoration: none; border: 0; }
.form-row.woocommerce-invalid input.input-text { border-color: #c0392b; }
#ship-to-different-address { margin: 0; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--negro); }
#ship-to-different-address label { display: flex; gap: 10px; align-items: center; cursor: pointer; }
.shipping_address { margin-top: 18px; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--violeta); width: 18px; height: 18px; }
.woocommerce-checkout-review-order-table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); padding-top: 0; }
.woocommerce-checkout-review-order-table .product-name { font-size: 15px; }
.woocommerce-checkout-review-order-table dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 0 6px; margin: 6px 0 0; font-size: 13px; color: var(--gris); }
.woocommerce-checkout-review-order-table dl.variation dd, .woocommerce-checkout-review-order-table dl.variation p { margin: 0; }
.wc_payment_methods { margin: 20px 0 16px; display: grid; gap: 10px; }
.wc_payment_method { border: 1px solid var(--linea); border-radius: 12px; padding: 14px 16px; }
.wc_payment_method > label { display: inline-flex; gap: 8px; align-items: center; font-size: 16px; cursor: pointer; }
.wc_payment_method .payment_box { margin-top: 10px; font-size: 14px; color: var(--gris); }
.wc_payment_method .payment_box p { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--gris); margin-bottom: 14px; }
.woocommerce-privacy-policy-text p { margin: 0 0 10px; }
#place_order { width: 100%; min-height: 58px; font-size: 18px; }
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 14px; }
.checkout_coupon { display: flex; gap: 10px; flex-wrap: wrap; background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 20px; }
.checkout_coupon p { margin: 0; }
.checkout_coupon .form-row-first { flex: 1; }
.blockUI.blockOverlay { border-radius: 16px; }

/* Pedido recibido */
.woocommerce-order { max-width: 860px; }
.woocommerce-thankyou-order-received { font-family: var(--serif); font-size: max(20px, calc(26 * var(--u))); color: var(--violeta); }
.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; background: #fff; border-radius: 16px; padding: 22px; margin: 20px 0 32px; box-shadow: var(--sombra); }
.woocommerce-order-overview li { font-size: 13px; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.woocommerce-order-overview li strong { display: block; margin-top: 4px; font-size: 16px; color: var(--negro); text-transform: none; letter-spacing: 0; font-weight: 400; }
.woocommerce-order-details, .woocommerce-customer-details { background: #fff; border-radius: 16px; padding: 28px; margin-bottom: 20px; box-shadow: var(--sombra); }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 18px; text-transform: uppercase; letter-spacing: .06em; color: var(--violeta); font-weight: 400; }
.woocommerce-table--order-details { width: 100%; border-collapse: collapse; }
.woocommerce-table--order-details th, .woocommerce-table--order-details td { text-align: left; padding: 10px 0; border-bottom: 1px solid var(--linea); font-weight: 300; }
.woocommerce-customer-details address { font-style: normal; line-height: 1.6; }

/* Mi cuenta */
.woocommerce-account.logged-in .pagina--woo .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
.woocommerce-MyAccount-navigation { position: sticky; top: calc(var(--header-alto) + 20px); background: #fff; border-radius: 16px; padding: 12px; box-shadow: var(--sombra); }
.woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 11px 16px; border-radius: 10px; text-decoration: none; font-size: 16px; }
.woocommerce-MyAccount-navigation a:hover { background: var(--rosa); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--violeta); color: #fff; }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--gris); }
.woocommerce-MyAccount-content { background: #fff; border-radius: 16px; padding: clamp(22px, calc(40 * var(--u)), 40px); box-shadow: var(--sombra); min-height: 340px; }
.cuenta__saludo { color: var(--violeta); margin-bottom: 24px; }
.cuenta__accesos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.acceso { position: relative; display: flex; flex-direction: column; gap: 4px; min-height: 110px; padding: 20px 48px 20px 22px; border: 1px solid var(--linea); border-radius: 14px; text-decoration: none; transition: border-color var(--transicion), background var(--transicion); }
.acceso:hover { border-color: var(--violeta); background: var(--rosa); }
.acceso__titulo { font-size: 19px; color: var(--violeta); }
.acceso__texto { font-size: 14px; color: var(--gris); }
.acceso__flecha { position: absolute; right: 20px; top: 50%; translate: 0 -50%; font-size: 20px; color: var(--violeta); }
.woocommerce-orders-table, .woocommerce-MyAccount-content .shop_table { width: 100%; border-collapse: collapse; font-size: 15px; }
.woocommerce-orders-table th, .woocommerce-orders-table td { padding: 12px 8px; border-bottom: 1px solid var(--linea); text-align: left; font-weight: 300; }
.woocommerce-orders-table th { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); }
.woocommerce-orders-table .button { min-height: 34px; padding: 0 16px; font-size: 13px; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.woocommerce-Address { border: 1px solid var(--linea); border-radius: 14px; padding: 20px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; }
.woocommerce-Address-title h2 { font-size: 17px; color: var(--violeta); text-transform: uppercase; letter-spacing: .05em; font-weight: 400; }
.woocommerce-Address-title a { font-size: 14px; color: var(--violeta); }
.woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--gris); }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--linea); border-radius: 14px; padding: 18px; margin: 10px 0 20px; }
.woocommerce-EditAccountForm legend { padding: 0 8px; color: var(--violeta); }
/* Login / registro */
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
#customer_login > div, .woocommerce-account:not(.logged-in) .pagina--woo .woocommerce > .woocommerce-form-login { background: #fff; border-radius: 16px; padding: clamp(24px, calc(40 * var(--u)), 40px); box-shadow: var(--sombra); max-width: 560px; }
#customer_login > div { max-width: none; }
#customer_login h2 { font-size: 20px; text-transform: uppercase; letter-spacing: .06em; color: var(--violeta); font-weight: 400; }
#customer_login form { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-form-login__rememberme { display: inline-flex; gap: 8px; align-items: center; margin-right: 16px; font-size: 14px; }
.woocommerce-form-login .button, .woocommerce-form-register .button { margin-top: 6px; }
.lost_password a { font-size: 14px; color: var(--violeta); }
.mi-talisman h2 { color: var(--violeta); font-size: 24px; }
.mi-talisman__visor { aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden; }
.mi-talisman__visor iframe { width: 100%; height: 100%; border: 0; }

/* Carrito vacío */
.vacio { max-width: 640px; margin: calc(20 * var(--u)) auto 0; text-align: center; background: #fff; border-radius: 20px; padding: 48px 32px; box-shadow: var(--sombra); }
.vacio img { margin: 0 auto 18px; }
.vacio__botones { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin: 24px 0 0; }

/* ==========================================================================
   Tablet
   ========================================================================== */
@media (max-width: 1100px) {
	.carrito, .checkout-grid { grid-template-columns: 1fr; }
	.carrito__resumen, .checkout-grid__resumen { position: static; }
	.woocommerce-account.logged-in .pagina--woo .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; }
}

/* ==========================================================================
   Celular y tablet chica (≤ 900px): medidas propias
   ========================================================================== */
@media (max-width: 900px) {
	:root { --borde: 20px; --header-alto: 60px; }
	body { font-size: 16px; }
	.seccion { padding-block: 56px; }
	.admin-bar .header { top: 46px; }

	/* Header y menú del celular.
	   Ojo: el backdrop-filter del header hace que los hijos "fixed" se posicionen dentro del
	   header y no de la pantalla; en el celular lo sacamos para que el menú ocupe todo. */
	.header { backdrop-filter: none; background: #fff; }
	.header__inner { grid-template-columns: 44px 1fr auto; padding-inline: 8px 12px; height: 60px; }
	.header__hamburguesa { display: inline-grid; place-items: center; width: 44px; height: 44px; }
	.hamburguesa__cerrar, .menu-abierto .hamburguesa__abrir { display: none; }
	.menu-abierto .hamburguesa__cerrar { display: inline-flex; }
	.header__logo { justify-self: center; }
	.header__logo img { height: 36px; }
	.header__icono--ig, .header__acciones .btn--header { display: none; }
	.header__acciones { gap: 2px; }
	.header__icono { width: 40px; height: 40px; place-items: center; display: inline-grid; }
	.header__acciones .header__icono--ig { display: none; }
	.menu-abierto { border-bottom-color: var(--linea); }

	.header__nav { position: fixed; left: 0; right: 0; top: 60px; width: 100%; justify-self: stretch; height: calc(100dvh - 60px); z-index: 49; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; padding: 8px 24px calc(28px + env(safe-area-inset-bottom)); background: #fff; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity 250ms ease, transform 250ms ease, visibility 250ms; }
	.admin-bar .header__nav { top: 106px; height: calc(100dvh - 106px); }
	.menu-abierto .header__nav { opacity: 1; visibility: visible; transform: none; }
	.nav { flex-direction: column; align-items: stretch; gap: 0; }
	.nav__link { width: 100%; justify-content: space-between; padding: 18px 0; border-bottom: 1px solid var(--linea); font-size: 24px; color: var(--violeta); text-decoration: none !important; }
	.nav__link .icon--chico { width: 16px; height: 16px; transition: transform var(--transicion); }
	.nav__item--sub.is-open .nav__link .icon--chico { transform: rotate(180deg); }
	.nav__sub { position: static; display: none; min-width: 0; padding: 4px 0 12px 14px; border: 0; border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.nav__sub::before { display: none; }
	.nav__item--sub.is-open .nav__sub { display: block; border-bottom: 1px solid var(--linea); }
	.nav__sub a { padding: 10px 0; font-size: 18px; background: none !important; }
	.nav__extra { display: flex; flex-direction: column; gap: 22px; margin-top: auto; padding-top: 28px; }
	.nav__tienda { width: 100%; min-height: 52px; font-size: 18px; }
	.nav__cuenta { display: grid; gap: 4px; }
	.nav__cuenta a { display: flex; align-items: center; gap: 12px; padding: 8px 0; text-decoration: none; font-size: 17px; }
	.nav__cuenta .icon { color: var(--violeta); width: 22px; height: 22px; }
	.nav__lema { margin: 0; font-family: var(--serif); text-transform: uppercase; font-size: 13px; letter-spacing: .08em; color: var(--gris); text-align: center; }
	/* Bloqueo de scroll solo en <html>: si se aplica también al body, el header sticky se pierde. */
	html.sin-scroll { overflow: hidden; }

	/* Tipos y botones */
	.display-xl { font-size: 32px; }
	.display-l { font-size: 27px; }
	.btn--hero { min-height: 56px; padding-inline: 30px; font-size: 20px; }
	.carrusel__pista { grid-auto-columns: 72%; gap: 14px; padding-inline: 20px; scroll-padding-inline: 20px; }
	.carrusel__flecha { display: none; }
	.card__nombre, .card__detalle, .card__precio { padding-left: 0; }
	.card .btn--outline-sm { margin-left: 0; }

	/* Home */
	.hero-home { height: auto; min-height: calc(100svh - 60px); display: flex; align-items: flex-end; }
	.hero-home__img { object-position: 28% top; }
	.hero-home::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(0deg, rgba(80,50,110,.55), transparent); }
	.hero-home__texto { position: relative; z-index: 1; left: auto; top: auto; padding: 0 20px 40px; }
	.hero-home__texto .display-l { font-size: 30px; margin-bottom: 14px; }
	.hero-home__bajada { font-size: 17px; margin: 0 0 24px; }
	.hero-home__bajada br { display: none; }
	.hero-home .btn--hero { margin-left: 0; }
	.crea { padding: 40px 0; }
	.crea__panel { grid-template-columns: 1fr; gap: 20px; padding: 24px 18px; border-radius: 20px; }
	.crea__intro .titulo-bold { margin-bottom: 8px; }
	.crea__intenciones { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }
	.mini-intencion { font-size: 15px; }
	.mini-intencion img { border-radius: 10px; }
	.crea__modelos { margin: 36px 0 16px; }
	.carrusel__pista--modelos { grid-auto-columns: 42%; }
	.encuentra { padding: 48px 0; }
	.encuentra__pills { gap: 8px; }
	.btn--nude { min-width: 0; padding-inline: 16px; }
	.encuentra .carrusel__pista, .universo .carrusel__pista { padding-left: 20px; }
	.mucho-mas { height: auto; min-height: 560px; align-items: flex-end; }
	.mucho-mas::before { background: linear-gradient(0deg, rgba(40,20,10,.6), rgba(40,20,10,.05) 75%); }
	.mucho-mas__texto { position: relative; left: auto; top: auto; padding: 0 20px 44px; }
	.mucho-mas__texto .display-xl { font-size: 30px; margin-bottom: 24px; }
	.mucho-mas__texto .serif-mayus { width: auto; font-size: 18px; margin-bottom: 14px; }
	.mucho-mas__texto .btn { margin: 18px 0 0; padding-inline: 28px; }
	.elegidos { padding: 48px 0; }
	.elegidos .display-l { margin-bottom: 24px; padding-inline: 20px; }
	.carrusel--sangrado .carrusel__pista { padding-left: 20px; scroll-padding-inline: 20px; }
	.card__ficha { font-size: 15px; }
	.nace { grid-template-columns: 1fr; height: auto; }
	.nace__texto { padding: 48px 20px; }
	.nace__texto .display-m { margin-bottom: 20px; }
	.nace__texto .serif-mayus { width: auto; margin-bottom: 32px; }
	.nace__iconos { grid-template-columns: repeat(4, 1fr); width: 100%; max-width: 400px; gap: 8px; }
	.nace__iconos img { height: 52px; }
	.nace__iconos li { font-size: 10px; gap: 10px; }
	.nace__fotos { height: 62vw; }
	.video { padding: 48px 0; }
	.video .contenedor { padding-inline: 20px; }
	.video__caja { aspect-ratio: 16 / 9; }
	.video__isotipo { width: 48px; }
	.pausa img { height: 70vw; min-height: 0; }
	.digital { grid-template-columns: 1fr; height: auto; }
	.digital__foto img { aspect-ratio: 4 / 3.4; }
	.digital__circulo { left: auto; right: 16px; top: 16px; width: 132px; padding: 18px; font-size: 15px; }
	.digital__texto { padding: 48px 24px 56px; }
	.digital__texto .display-s { font-size: 23px; margin-bottom: 20px; }
	.digital__texto p { width: auto; min-width: 0; font-size: 16px; line-height: 1.8; margin-bottom: 16px; }
	.btn--mediano { min-height: 52px; font-size: 17px; }
	.origen { padding: 56px 0; }
	.origen__grilla { grid-template-columns: 1fr; gap: 32px; }
	.origen__texto { gap: 16px; padding: 0; }
	.origen__foto { width: 100%; max-width: 360px; }
	.origen__foto img { width: 82%; }
	.origen__foto .wordmark { font-size: 74px; }
	.universo { padding: 48px 0 56px; }
	.isotipo { width: 44px; margin-bottom: 20px; }

	/* Intenciones */
	.hero-intenciones { height: auto; min-height: 520px; padding: 60px 20px; }
	.hero-intenciones .display-l { margin-bottom: 24px; }
	.hero-intenciones .serif-l { width: auto; min-width: 0; font-size: 22px; margin-bottom: 32px; }
	.btn--grande { min-height: 54px; font-size: 19px; }
	.encuentra-intencion { padding: 40px 0 56px; }
	.grilla-intenciones { grid-template-columns: repeat(2, 1fr); gap: 24px 12px; padding-inline: 4px; }
	.card-intencion { aspect-ratio: auto; padding: 14px 12px; border-radius: 10px; }
	.card-intencion__nombre { font-size: 14px; }
	.card-intencion__lema { font-size: 13px; margin-bottom: 10px; }
	.card-intencion img { aspect-ratio: 1; flex: none; }
	.ficha-intencion__grilla { grid-template-columns: 1fr; min-height: 0; padding: 24px 20px; gap: 20px; }
	.ficha-intencion__lateral { padding: 0; }
	.ficha-intencion__lateral .reproductor { margin-top: 20px; }
	.ficha-intencion__volver { margin-top: 14px; }
	.ficha-intencion__card { padding: 28px 20px; border-radius: 8px; }
	.ficha-intencion__estado--corta { padding: 12px 0; }
	.ficha-intencion__estado--corta .serif-xl { font-size: 23px; }
	.ficha-intencion__estado--larga { max-height: 60vh; }
	.ficha-intencion__botones { grid-template-columns: 1fr; margin-top: 24px; }
	.ficha-intencion__botones .btn { width: 100%; min-width: 0; }
	.ficha-intencion__talismanes { padding: 24px 20px 56px; }
	.ficha-intencion .grilla { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; }

	/* Meditaciones */
	.hero-simple { height: 320px; min-height: 0; }
	.grilla-meditaciones { grid-template-columns: repeat(2, 1fr); gap: 28px 14px; padding: 0; margin-top: 24px; }
	.para-que { padding: 72px 0; }
	.para-que::before { background-size: 160px 100%; }
	.para-que .serif-l { font-size: 19px; }

	/* Piedras */
	.hero-piedras { height: auto; min-height: 560px; display: flex; align-items: flex-end; }
	.hero-piedras::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(0deg, rgba(255,255,255,.9) 30%, transparent); }
	.hero-piedras__texto { position: relative; z-index: 1; left: auto; top: auto; width: auto; padding: 0 20px 36px; }
	.hero-piedras__bajada { width: auto; font-size: 17px; }
	.serif-mayus--grande { font-size: 26px; }
	.acordeon-piedras { flex-direction: column; height: auto; min-height: 0; }
	.franja { min-height: 92px; flex: none; transition: min-height 400ms ease; }
	.franja:hover, .franja.is-activa, .franja:focus-visible { min-height: 440px; }
	.franja__panel { inset: 16px; padding: 20px; gap: 10px; }
	.grilla-piedras-seccion { padding: 40px 0; }
	.grilla-piedras { grid-template-columns: 1fr; gap: 14px; }
	.card-piedra { padding: 14px 16px 16px; }
	.card-piedra__nombre { font-size: 18px; }
	.card-piedra__cualidad { font-size: 13px; }
	.grilla-piedras__logo { order: 99; padding: 24px 0 8px; }
	.grilla-piedras__logo .wordmark { font-size: 72px; }

	/* Talismán digital */
	.hero-digital { height: auto; min-height: 480px; }
	.hero-digital__texto { padding-inline: 20px; }
	.bloque-digital { grid-template-columns: 1fr; min-height: 0; }
	.bloque-digital--invertido .bloque-digital__foto { order: 0; }
	.bloque-digital__foto img { aspect-ratio: 4 / 3; }
	.bloque-digital__texto { padding: 36px 22px 44px; }
	.banda-digital { grid-template-columns: 1fr; gap: 24px; }

	/* Grillas */
	.grilla--4, ul.products { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; }
	.grilla-tienda { gap: 28px 12px; }
	.card__detalle { font-size: 13px; }
	.filtros { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 20px 0 28px; }
	.filtro select { width: 100%; font-size: 14px; }
	.filtro:first-child { grid-column: 1 / -1; }
	.blog .grilla { padding: 0; }

	/* Ficha de producto */
	.chip-intencion { padding-left: 30px; min-height: 54px; }
	.chip-intencion::before { left: 11px; }
	.chip-intencion__nombre { font-size: 14px; }
	.chip-intencion__frase { font-size: 12px; }
	.datos-nacimiento { grid-template-columns: 1fr; }
	form.cart .single_add_to_cart_button, .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 auto !important; }

	/* Carrito / checkout / cuenta */
	.woo-cabecera { padding: 28px 0 20px; }
	.pasos { font-size: 12px; }
	.pasos__item + .pasos__item::before { width: 12px; }
	.items-carrito { padding: 4px 16px; }
	.item-carrito { grid-template-columns: 84px minmax(0, 1fr); gap: 14px; }
	.item-carrito__foto img { width: 84px; }
	.item-carrito__precio { grid-column: 2; }
	.item-carrito__nombre { font-size: 17px; }
	.carrito__pie { flex-direction: column; align-items: stretch; }
	.cupon input { flex: 1; width: auto; }
	.cart_totals, .panel { padding: 22px 18px; border-radius: 14px; }
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
	.form-row-first, .form-row-last { grid-column: 1; }
	#customer_login { grid-template-columns: 1fr; }
	.cuenta__accesos, .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation { padding: 8px; }
	.woocommerce-MyAccount-navigation ul { flex-wrap: nowrap; overflow-x: auto; }
	.woocommerce-MyAccount-navigation a { white-space: nowrap; padding: 9px 14px; font-size: 15px; }
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table tr { display: grid; grid-template-columns: 1fr 1fr; padding: 10px 0; border-bottom: 1px solid var(--linea); }
	.woocommerce-orders-table td { border: 0; padding: 4px 0; }
	.woocommerce-orders-table td::before { content: attr(data-title) ": "; color: var(--gris); font-size: 13px; }

	/* Footer */
	.footer { padding-top: 48px; }
	.footer__columnas { grid-template-columns: 1fr 1fr; gap: 32px 16px; padding-inline: 20px; }
	.footer__titulo { font-size: 21px; margin-bottom: 12px; }
	.footer__col li { line-height: 1.6; }
	.footer__col a { font-size: 15px; }
	.footer__base { padding-inline: 20px; margin-top: 36px; justify-content: center; }
	.footer__redes { gap: 12px; }
	.footer__redes a { width: 52px; }
	.btn--footer { min-width: 0; padding-inline: 28px; font-size: 20px; }
	.footer__copy { margin-top: 32px; }
}

@media (max-width: 600px) {
	.admin-bar .header { top: 0; }
	.admin-bar .header__nav { top: 60px; height: calc(100dvh - 60px); }
}

@media (max-width: 420px) {
	.grilla-meditaciones { grid-template-columns: 1fr; }
	.selector-intencion__opciones { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Resumen del checkout: la columna del producto necesita aire para la intención y los atributos. */
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table thead th:last-child { width: 110px; }
.woocommerce-checkout-review-order-table dl.variation dt { white-space: nowrap; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { font-size: 14px; }

/* ==========================================================================
   Ficha de producto (v2)
   Galería y compra en su propio bloque: la galería queda fija mientras se elige,
   pero nunca se monta sobre los relacionados.
   ========================================================================== */
.single-product .tienda { padding-top: 0; }
.ficha__migas { display: flex; flex-wrap: wrap; gap: 8px; padding-top: calc(28 * var(--u)); padding-bottom: calc(22 * var(--u)); font-size: 14px; color: var(--gris); }
.ficha__migas a { text-decoration: none; }
.ficha__migas a:hover { color: var(--violeta); }
.ficha__migas [aria-current] { color: var(--negro); }
.ficha__principal { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: calc(72 * var(--u)); align-items: start; padding-inline: calc(80 * var(--u)); }
.ficha__galeria { position: sticky; top: calc(var(--header-alto) + 24px); }
.ficha__compra { padding-bottom: 20px; }

/* Galería */
.galeria { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
.galeria__visor { position: relative; grid-column: 2; grid-row: 1; border-radius: 6px; overflow: hidden; background: var(--rosa); }
.galeria__pista { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.galeria__pista::-webkit-scrollbar { display: none; }
.galeria__slide { flex: 0 0 100%; scroll-snap-align: center; aspect-ratio: 4 / 5; }
.galeria__zoom { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria__zoom img { width: 100%; height: 100%; object-fit: cover; }
.galeria__flecha { position: absolute; top: 50%; right: 14px; translate: 0 -50%; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--negro); box-shadow: 0 4px 14px rgba(0,0,0,.08); opacity: 0; transition: opacity var(--transicion), background var(--transicion); }
.galeria__flecha .icon { width: 20px; height: 20px; }
.galeria__flecha--prev { right: auto; left: 14px; }
.galeria__flecha--prev .icon { transform: rotate(180deg); }
.galeria__visor:hover .galeria__flecha:not([disabled]) { opacity: 1; }
.galeria__flecha:hover { background: #fff; }
.galeria__flecha[disabled] { pointer-events: none; }
.galeria__contador { position: absolute; left: 14px; bottom: 14px; padding: 3px 10px; border-radius: 99px; background: rgba(255,255,255,.88); font-size: 13px; font-variant-numeric: tabular-nums; }
.galeria__miniaturas { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; }
.galeria__miniaturas button { display: block; width: 84px; aspect-ratio: 4 / 5; padding: 0; border: 1px solid transparent; border-radius: 4px; overflow: hidden; background: none; opacity: .6; transition: opacity var(--transicion), border-color var(--transicion); }
.galeria__miniaturas button:hover, .galeria__miniaturas button[aria-current] { opacity: 1; border-color: var(--violeta); }
.galeria__miniaturas img { width: 100%; height: 100%; object-fit: cover; }
.galeria--unica { grid-template-columns: minmax(0, 1fr); }
.galeria--unica .galeria__visor { grid-column: 1; }
.galeria--unica .galeria__miniaturas, .galeria--unica .galeria__contador, .galeria--unica .galeria__flecha { display: none; }

/* Lightbox */
.lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(20, 12, 24, .94); }
.lightbox::backdrop { background: rgba(20, 12, 24, .94); }
.lightbox[open] { display: grid; place-items: center; }
.lightbox img { max-width: 92vw; max-height: 90vh; object-fit: contain; }
.lightbox button { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; }
.lightbox button:hover { background: rgba(255,255,255,.24); }
.lightbox .icon { width: 22px; height: 22px; }
.lightbox__cerrar { top: 20px; right: 20px; }
.lightbox__flecha { top: 50%; right: 24px; translate: 0 -50%; }
.lightbox__flecha--prev { right: auto; left: 24px; }
.lightbox__flecha--prev .icon { transform: rotate(180deg); }

/* Columna de compra */
.product_title { margin: 0 0 6px; font-size: max(30px, calc(42 * var(--u))); line-height: 1.05; color: var(--violeta); text-transform: uppercase; }
.ficha__compra > .price { display: block; margin: 0 0 18px; font-size: max(21px, calc(26 * var(--u))); color: var(--negro); }
.ficha__compra .woocommerce-product-details__short-description { font-family: var(--serif); font-size: max(16px, calc(18 * var(--u))); line-height: 1.6; color: #3b363e; margin-bottom: 24px; }
.ficha__compra .woocommerce-product-details__short-description p { margin: 0; }

/* Pasos numerados: metal, colgante, piedra, intención */
form.cart { counter-reset: paso; display: block; }
.variations { width: 100%; border-collapse: collapse; margin: 0; }
.variations tbody { display: block; }
.variations tr { display: block; padding: 18px 0; border-top: 1px solid var(--linea); }
.variations th, .variations td { display: block; padding: 0; text-align: left; }
.variations th label, .selector-intencion__titulo, .datos-nacimiento legend { display: flex; align-items: baseline; gap: 10px; margin: 0; font-weight: 400; text-transform: uppercase; font-size: 13px; letter-spacing: .08em; color: var(--negro); }
.variations th label::before, .selector-intencion__titulo::before { counter-increment: paso; content: counter(paso); display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--rosa); color: var(--violeta); font-size: 12px; letter-spacing: 0; align-self: center; }
.paso__valor { text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--violeta); }
.paso__valor:not(:empty)::before { content: "· "; color: var(--gris); }
.variations select { width: 100%; min-height: 44px; margin-top: 10px; padding: 0 1em; border: 1px solid var(--linea); border-radius: 10px; }
.variations .reset_variations { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--gris); }
.opciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.opcion { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border: 1px solid #ddd3d8; border-radius: 999px; background: #fff; font-size: 15px; transition: all var(--transicion); }
.opcion:hover { border-color: var(--violeta); }
.opcion[aria-pressed="true"] { background: var(--violeta); border-color: var(--violeta); color: #fff; }
.opcion[disabled] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.opcion__punto { display: inline-block; width: 14px; height: 14px; margin-right: 8px; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); }
.opcion[aria-pressed="true"] .opcion__punto { box-shadow: 0 0 0 2px #fff; }

.selector-intencion { margin: 0; padding: 18px 0; border: 0; border-top: 1px solid var(--linea); }
.selector-intencion__titulo { float: left; width: 100%; padding: 0; }
.selector-intencion__ayuda { clear: both; margin: 4px 0 12px 32px; font-size: 13px; color: var(--gris); }
.selector-intencion__opciones { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.chip-intencion { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 58px; padding: 8px 12px 8px 34px; border: 1px solid #ddd3d8; border-radius: 12px; cursor: pointer; transition: all var(--transicion); }
.chip-intencion:hover { border-color: var(--violeta); }
.chip-intencion::before { content: ""; position: absolute; left: 13px; top: 50%; translate: 0 -50%; width: 12px; height: 12px; border-radius: 50%; background: var(--color-intencion); }
.chip-intencion input { position: absolute; opacity: 0; pointer-events: none; }
.chip-intencion:has(input:checked) { border-color: var(--violeta); box-shadow: 0 0 0 1px var(--violeta); background: var(--rosa); }
.chip-intencion:has(input:focus-visible) { outline: 2px solid var(--violeta); outline-offset: 2px; }
.chip-intencion__nombre { font-size: 15px; line-height: 1.2; }
.chip-intencion__frase { font-family: var(--serif); font-size: 13px; color: var(--gris); }
.selector-intencion__medalla { display: flex; align-items: center; gap: 14px; margin: 12px 0 0; padding: 10px; border-radius: 12px; background: var(--rosa); order: 3; }
.selector-intencion__medalla img { width: 76px; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.selector-intencion__medalla::after { content: "Así se verá la medalla grabada con tu intención."; font-size: 14px; color: var(--gris); }

/* Precio de la combinación, stock y botón */
.single_variation_wrap { padding-top: 18px; border-top: 1px solid var(--linea); }
.woocommerce-variation-price, .woocommerce-variation-description { display: none !important; }
.woocommerce-variation-availability .stock, .ficha__compra .stock { margin: 0 0 14px; font-size: 14px; color: #3c7a4a; }
.ficha__compra .stock.out-of-stock { color: #a33; }
.woocommerce-variation-add-to-cart, form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
form.cart:not(.variations_form) > .selector-intencion, form.cart:not(.variations_form) > .datos-nacimiento { flex-basis: 100%; }
.ficha__compra .quantity { flex: none; }
.ficha__compra .single_add_to_cart_button { flex: 1 1 220px; min-height: 54px; font-size: 18px; }
.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: .45; }

.datos-nacimiento { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 18px 0; border: 0; border-top: 1px solid var(--linea); }
.datos-nacimiento legend { float: left; width: 100%; margin-bottom: 4px; }

/* Sellos y acordeones */
.sellos { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 18px 0 8px; font-size: 13px; color: var(--gris); }
.sellos li { display: flex; align-items: center; gap: 7px; }
.sellos li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--nude); }
.acordeones { margin-top: 22px; border-top: 1px solid var(--linea); }
.acordeon { border-bottom: 1px solid var(--linea); }
.acordeon summary { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; cursor: pointer; list-style: none; font-size: 15px; text-transform: uppercase; letter-spacing: .06em; }
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary::after { content: "+"; font-size: 22px; line-height: 1; color: var(--violeta); transition: transform var(--transicion); }
.acordeon[open] summary::after { transform: rotate(45deg); }
.acordeon summary:hover { color: var(--violeta); }
.acordeon__cuerpo { padding: 0 0 18px; font-size: 15px; line-height: 1.65; color: #3b363e; }
.acordeon__cuerpo p { margin: 0 0 .7em; white-space: pre-line; }
.acordeon__cuerpo ul { list-style: disc; padding-left: 1.2em; }
.acordeon__cuerpo a { color: var(--violeta); }
.acordeon__vacio { color: var(--gris); }

/* Relacionados */
.related { margin-top: calc(110 * var(--u)); padding: calc(80 * var(--u)) calc(80 * var(--u)) 0; border-top: 1px solid var(--linea); max-width: var(--ancho); margin-inline: auto; }
.related > h2 { margin-bottom: calc(40 * var(--u)); color: var(--violeta); text-transform: uppercase; font-size: max(24px, calc(34 * var(--u))); text-align: center; }
ul.products li.product.card .card__nombre a { text-decoration: none; }
ul.products li.product.card .card__nombre, ul.products li.product.card .card__precio { padding-left: 0; }
ul.products li.product.card .btn { margin-left: 0; }

/* Barra de compra del celular */
.barra-compra { display: none; }

@media (max-width: 1100px) {
	.ficha__principal { gap: 40px; padding-inline: 0; }
	.galeria { grid-template-columns: minmax(0, 1fr); }
	.galeria__visor { grid-column: 1; }
	.galeria__miniaturas { grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto; }
	.galeria__miniaturas button { width: 64px; flex: none; }
}

@media (max-width: 900px) {
	.ficha__migas { padding: 14px 20px 10px; font-size: 13px; }
	.ficha__principal { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0 20px; }
	.ficha__galeria { position: static; margin-inline: -20px; }
	.galeria { gap: 10px; }
	.galeria__visor { border-radius: 0; }
	.galeria__flecha { display: none; }
	.galeria__miniaturas { padding: 0 20px; gap: 8px; }
	.galeria__miniaturas button { width: 56px; }
	.ficha__compra { padding: 22px 0 32px; }
	.product_title { font-size: 28px; }
	.ficha__compra > .price { margin-bottom: 14px; }
	.selector-intencion__ayuda { margin-left: 32px; }
	.chip-intencion { min-height: 54px; padding-left: 30px; }
	.chip-intencion::before { left: 11px; }
	.chip-intencion__nombre { font-size: 14px; }
	.chip-intencion__frase { font-size: 12px; }
	.datos-nacimiento { grid-template-columns: 1fr; }
	.related { padding: 48px 0 0; margin-top: 24px; }
	.single-product .footer { padding-bottom: 76px; }

	.barra-compra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-top: 1px solid var(--linea); box-shadow: 0 -8px 24px rgba(60,20,80,.08); }
	.barra-compra[hidden] { display: none !important; }
	.barra-compra__info { display: flex; flex-direction: column; min-width: 0; }
	.barra-compra__nombre { font-size: 13px; color: var(--gris); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.barra-compra__precio { font-size: 18px; color: var(--violeta); }
	.barra-compra .btn { min-height: 48px; padding-inline: 30px; }
}

@media (max-width: 420px) {
	.selector-intencion__opciones { grid-template-columns: 1fr 1fr; }
	.chip-intencion__frase { display: none; }
	.chip-intencion { min-height: 46px; }
}

/* =========================================================================
   v0.2 — feedback de la reunión del 07/10
   ========================================================================= */

/* ---------- Chapitas agotadas ---------- */
.chip-intencion--agotada { opacity: .5; cursor: not-allowed; background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,.03) 6px 12px); }
.chip-intencion--agotada:hover { border-color: var(--linea); }

/* ---------- País ---------- */
.selector-pais { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.selector-pais__titulo { color: var(--gris); }
.selector-pais ul { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.selector-pais a { display: inline-block; padding: 4px 12px; border: 1px solid var(--linea); border-radius: 999px; text-decoration: none; color: inherit; }
.selector-pais a span { color: var(--gris); }
.selector-pais a[aria-current] { border-color: var(--violeta); background: var(--violeta); color: #fff; }
.selector-pais a[aria-current] span { color: rgba(255,255,255,.8); }
.selector-pais--footer { justify-content: center; margin: 8px 0 0; }
.selector-pais--menu { margin: 18px 0 0; }
.aviso--pais { justify-content: flex-start; gap: 8px; }
.aviso--pais a { color: var(--violeta); }
.aviso--error { border-left-color: #c0392b; }
.no-disponible { color: var(--gris); font-size: .9em; }

/* ---------- Talismán Digital: para mí / regalo ---------- */
.td-para { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 4px 0 0; padding: 22px 0 0; border-top: 1px solid var(--linea); }
.td-para__titulo { width: 100%; margin-bottom: 6px; padding: 0; float: left; }
.chip-opcion { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border: 1px solid var(--linea); border-radius: 999px; cursor: pointer; font-size: 15px; transition: all var(--transicion); }
.chip-opcion:hover { border-color: var(--violeta); }
.chip-opcion input { accent-color: var(--violeta); }
.chip-opcion:has(input:checked) { border-color: var(--violeta); box-shadow: 0 0 0 1px var(--violeta); background: var(--rosa); }
.datos-regalo { border: 0; padding: 22px 0 0; margin: 4px 0 24px; border-top: 1px solid var(--linea); display: grid; gap: 12px; }
.datos-regalo legend { float: left; width: 100%; margin-bottom: 4px; }
.datos-regalo textarea, .canje__form input { width: 100%; }
.campo textarea { padding: 12px 14px; border: 1px solid var(--linea); border-radius: 10px; font: inherit; resize: vertical; }
fieldset[hidden] { display: none !important; }

/* ---------- Regalos (gracias / pedido) ---------- */
.regalos__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.regalo { padding: 16px 18px; border-radius: 12px; background: var(--rosa); }
.regalo__para { margin: 0 0 10px; }
.regalo__estado { margin-left: 8px; color: #2e7d32; font-size: 14px; }
.regalo__acciones { display: flex; gap: 10px; flex-wrap: wrap; }
.btn--whatsapp { border-color: #25D366; background: #25D366; color: #fff; }
.btn--whatsapp:hover { border-color: #1ebe5b; background: #1ebe5b; color: #fff; }
.btn.is-copiado { border-color: #2e7d32; color: #2e7d32; }
.gracias-talisman, .regalos, .comprobante { margin: 0 0 24px; }
.comprobante__form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-top: 12px; }
.comprobante__form .campo { flex: 1 1 260px; }

/* ---------- Página de canje del regalo ---------- */
.canje { padding-block: calc(80 * var(--u)) calc(100 * var(--u)); }
.canje h1 { margin: 6px 0 18px; }
.canje__eyebrow { margin: 0; text-transform: uppercase; letter-spacing: .1em; font-size: 14px; color: var(--gris); }
.canje__mensaje { margin: 0 0 22px; padding: 18px 22px; border-left: 3px solid var(--violeta); background: var(--rosa); border-radius: 0 12px 12px 0; }
.canje__form { margin-top: 28px; display: grid; gap: 14px; }
.canje__form .datos-nacimiento { border: 0; margin: 0; padding: 0; }
.canje__form .btn { justify-self: start; }

/* ---------- Ficha del Talismán Digital para quien ya lo tiene ---------- */
.ficha--propio { padding-block: calc(60 * var(--u)) calc(90 * var(--u)); max-width: 980px; }
.ficha-propio__cabecera { margin-bottom: 24px; }
.ficha-propio__acciones, .mi-talisman__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }

/* ---------- Instalar la app ---------- */
.instalar-app { position: relative; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 20px 0 0; padding: 16px 48px 16px 16px; border-radius: 14px; background: var(--rosa); }
.instalar-app__icono { width: 56px; height: 56px; border-radius: 14px; background: #fff; }
.instalar-app__texto { flex: 1 1 200px; font-size: 15px; }
.instalar-app__texto p { margin: 0; }
.instalar-app__titulo { font-weight: 400; color: var(--violeta); }
.instalar-app__cerrar { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; color: var(--gris); }
.instalar-app__cerrar .icon { width: 16px; height: 16px; }

@media (max-width: 600px) {
	.comprobante__form .btn, .regalo__acciones .btn { width: 100%; }
}

/* ---------- Chapita elegida sobre la foto principal (pedido del 07/10) ---------- */
.galeria__contador { left: auto; right: 14px; }
.galeria__medalla { position: absolute; left: 16px; bottom: 16px; z-index: 2; width: clamp(130px, 36%, 220px); aspect-ratio: 1; padding: 0; border: 3px solid #fff; border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 8px 24px rgba(40, 10, 60, .22); cursor: zoom-in; animation: medalla-entra .25s ease-out; }
/* Las fotos son tomas abiertas con la chapita al centro: zoom para que se lea lo grabado. */
.galeria__medalla img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.8); transform-origin: 45% 50%; }
.galeria__medalla[hidden] { display: none; }
@keyframes medalla-entra { from { opacity: 0; transform: translateY(6px) scale(.96); } }
@media (max-width: 900px) {
	.galeria__medalla { left: 12px; bottom: 12px; width: clamp(110px, 34%, 160px); border-width: 2px; border-radius: 10px; }
}

/* ---------- Mi Talismán: sonido, ADN energético, intención (v0.3) ---------- */
.mi-talisman__visor { margin-bottom: 20px; }
.mi-talisman__sonido { margin: 0 0 24px; }
.mi-talisman__subtitulo { margin: 8px 0 12px; font-weight: 400; font-size: 15px; text-transform: uppercase; letter-spacing: .08em; color: var(--violeta); }
.adn { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin: 0 0 28px; }
.adn > div { padding: 12px 14px; border-radius: 12px; background: var(--rosa); }
.adn dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); }
.adn dd { margin: 2px 0 0; font-family: var(--serif); font-size: 17px; }
.mi-talisman__form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin: 0 0 18px; }
.mi-talisman__form .campo { flex: 1 1 280px; }
.mi-talisman__datos { margin: 0 0 18px; }
.mi-talisman__datos .datos-nacimiento { border: 0; margin: 0; padding: 0; }

/* ---------- Mi Talismán como app: barra de opciones + pantalla completa ---------- */
.talisman-app { position: relative; margin: 0 0 24px; border-radius: 14px; overflow: hidden; background: #0d0a14; }
.talisman-app__visor { position: relative; aspect-ratio: 16 / 10; }
.talisman-app__visor iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.talisman-app__pantalla { position: absolute; top: 12px; right: 12px; z-index: 3; padding: 8px 14px; border: 0; border-radius: 999px; background: rgba(255,255,255,.85); color: var(--negro); font-size: 13px; cursor: pointer; }
.talisman-app__pantalla-cerrar, .is-completa .talisman-app__pantalla-abrir { display: none; }
.is-completa .talisman-app__pantalla-cerrar { display: inline; }
.talisman-app__barra { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; padding: 10px; background: rgba(13,10,20,.92); }
.talisman-app__opcion { padding: 9px 18px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: transparent; color: #fff; font: inherit; font-size: 14px; cursor: pointer; transition: all var(--transicion); }
.talisman-app__opcion:hover, .talisman-app__opcion[aria-expanded="true"] { background: #fff; color: var(--violeta); border-color: #fff; }
.talisman-app__panel { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; max-height: calc(100% - 64px); overflow: auto; padding: 18px 20px; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.talisman-app__panel p { margin: 0 0 12px; font-size: 15px; }
.talisman-app__panel .adn { margin: 0; }
.talisman-app__panel .mi-talisman__form { margin: 0; }
.talisman-app__meditaciones { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.talisman-app__meditaciones .reproductor { display: flex; width: 100%; }
.talisman-app__meditaciones .reproductor__boton { width: 100%; min-width: 0; background: var(--color); border-color: var(--color); color: #fff; }
/* Pantalla completa (la del navegador o la "falsa" de iPhone). */
.talisman-app.is-completa { position: fixed; inset: 0; z-index: 10000; margin: 0; border-radius: 0; display: flex; flex-direction: column; }
.talisman-app.is-completa .talisman-app__visor { flex: 1; aspect-ratio: auto; }
.talisman-app:fullscreen { display: flex; flex-direction: column; }
@media (max-width: 600px) {
	.talisman-app__visor { aspect-ratio: 3 / 4; }
	.talisman-app__opcion { padding: 8px 12px; font-size: 13px; }
}

/* Resumen del checkout: ancho fijo para que los precios no se salgan del recuadro (07/10 → 15/10). */
.woocommerce-checkout-review-order-table { table-layout: fixed; }
.woocommerce-checkout-review-order-table .product-name { overflow-wrap: anywhere; padding-right: 12px; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table thead th:last-child,
.woocommerce-checkout-review-order-table tfoot td { width: 108px; white-space: nowrap; }
.woocommerce-checkout-review-order-table dl.variation { grid-template-columns: auto minmax(0, 1fr); }
.woocommerce-checkout-review-order-table dl.variation dt { white-space: normal; }
.woocommerce-checkout-review-order-table dl.variation dd { overflow-wrap: anywhere; }

/* Checkout con errores: Woo mete el cartel dentro del form (que es una grilla de 2 columnas) y desarmaba
   todo; el cartel va arriba a lo ancho. Errores por campo, chicos y en rojo. */
.checkout-grid > .woocommerce-NoticeGroup, .checkout-grid > .woocommerce-error, .checkout-grid > .woocommerce-message, .checkout-grid > .woocommerce-info { grid-column: 1 / -1; }
.checkout-inline-error-message { margin: 6px 0 0; font-size: 13px; line-height: 1.4; color: #c0392b; }
.woocommerce-invalid .input-text, .woocommerce-invalid select, .woocommerce-invalid .select2-selection { border-color: #c0392b !important; }
ul.woocommerce-error { flex-direction: column; align-items: flex-start; gap: 6px; }

/* Alineación (18/10): los carruseles usan el mismo margen que el resto de la página, y los 6 modelos
   de "02. Elige tu talismán" ocupan todo el ancho en escritorio (en el celular siguen deslizándose). */
@media (min-width: 901px) {
	.carrusel__pista--modelos { grid-auto-flow: row; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--borde); }
}

/* "Explora por categoría": carrusel infinito de borde a borde (sin márgenes al principio ni al final). */
[data-loop] .carrusel__pista { padding-inline: 0; scroll-padding-inline: 0; scroll-snap-type: x proximity; }
/* Todos los carruseles infinitos van de borde a borde de la pantalla, aunque estén dentro de un contenedor. */
[data-loop] { width: 100vw; margin-inline: calc(50% - 50vw); }
html, body { overflow-x: clip; }
/* Flechas de carrusel más chicas (18/10): 140 → 64 (mismo centro vertical que antes: 130 + 70 = 168 + 32). */
.carrusel__flecha { width: max(44px, calc(64 * var(--u))); top: calc(168 * var(--u)); border-width: 1.5px; }
.carrusel__flecha .icon { width: 46%; }

/* Mi cuenta en el celular (19/10): "1fr" dejaba que la columna creciera al ancho del menú (que va en una
   sola fila deslizable) y todo se salía de la pantalla. minmax(0, 1fr) la limita al ancho disponible. */
@media (max-width: 1100px) {
	.woocommerce-account.logged-in .pagina--woo .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { min-width: 0; max-width: 100%; }
}
/* Mi Talismán en celulares chicos / Safari iOS (19/10): nada puede ser más ancho que la pantalla.
   Safari dibuja los campos de fecha y hora con un ancho mínimo propio; los anchos mínimos fijos
   (botones 220px, campo de intención 280px) se adaptan. */
.mi-talisman, .talisman-app, .talisman-app__panel, .mi-talisman__datos, .acordeon__cuerpo { min-width: 0; max-width: 100%; }
.mi-talisman input, .mi-talisman select, .mi-talisman textarea, .canje input { min-width: 0; max-width: 100%; box-sizing: border-box; }
.mi-talisman input[type="date"], .mi-talisman input[type="time"], .canje input[type="date"], .canje input[type="time"] { -webkit-appearance: none; appearance: none; width: 100%; display: block; }
.mi-talisman__form .campo { flex: 1 1 min(280px, 100%); min-width: 0; }
.talisman-app__meditaciones { grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); }
.talisman-app .reproductor, .talisman-app .reproductor__boton, .talisman-app .reproductor__barra { min-width: 0; max-width: 100%; }
@media (max-width: 600px) {
	.mi-talisman__datos .datos-nacimiento, .canje .datos-nacimiento { grid-template-columns: minmax(0, 1fr); }
	.adn { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.talisman-app__panel { left: 8px; right: 8px; bottom: 8px; padding: 14px 16px; }
}
/* Botón "Escuchar tu sonido" (y meditaciones) dentro de Mi Talismán: a lo ancho del panel, texto entero. */
.talisman-app .reproductor { display: flex; width: 100%; align-items: stretch; }
.talisman-app .reproductor__boton { width: 100%; min-width: 0; white-space: normal; padding-inline: 18px; }
.talisman-app .reproductor__barra { width: 100%; }

/* =========================================================================
   Mi Talismán como la web anterior (reunión 19/10): elementos flotantes sobre el visor y barra
   translúcida con nombres. Posiciones tomadas del CSS de lovelia.me (talismanBox / constelationBox).
   ========================================================================= */
.talisman-flotantes { position: absolute; inset: 0; z-index: 1; pointer-events: none; animation: talisman-aparece 2s ease-out both; }
.talisman-app.flotantes-ocultos .talisman-flotantes { opacity: 0; transition: opacity .4s; }
@keyframes talisman-aparece { from { opacity: 0; transform: scale(.96); } }
.talisman-flotantes__izq { position: absolute; top: 5%; left: 4%; width: 30%; max-width: 300px; display: flex; gap: 6%; }
.talisman-flotantes__numerologia { display: flex; flex-direction: column; align-items: center; gap: 14px; padding-top: 4px; }
.talisman-flotantes__numerologia img { width: 9px; height: 9px; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)); }
.talisman-flotantes__columna { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
.talisman-flotantes__intencion { width: 100%; margin: 0; padding: 7px 12px; border: 2px solid #fff; border-radius: 5px; color: #fff; font-style: italic; font-weight: 400; font-size: clamp(12px, 1.1vw, 16px); line-height: 1.2; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 0 6px rgba(0,0,0,.25); }
.talisman-flotantes__intencion.is-vacia { border-color: #ecea60; animation: intencion-late 2s infinite; }
@keyframes intencion-late { 50% { box-shadow: 0 0 20px 6px rgba(236,234,96,.6); } }
/* Los PNG traen margen propio: se recortan con zoom, igual que en la web anterior. */
.talisman-flotantes__chino, .talisman-flotantes__sello { width: 58%; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.talisman-flotantes__chino img { height: 220%; aspect-ratio: 1; object-fit: cover; }
.talisman-flotantes__sello img { height: 280%; aspect-ratio: 1; object-fit: cover; }
.talisman-flotantes__tono { width: 58%; display: flex; justify-content: center; }
.talisman-flotantes__tono img { width: 70%; height: auto; }
.talisman-flotantes__constelacion { position: absolute; top: 0; right: 6%; width: 24%; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.talisman-flotantes__constelacion img { width: 100%; height: 100%; object-fit: cover; }

/* Barra translúcida dentro del visor (antes era una franja negra debajo). */
.talisman-app { background: transparent; }
.talisman-app .talisman-app__barra { position: absolute; left: 50%; bottom: 4%; translate: -50% 0; z-index: 3; display: flex; align-items: center; gap: 10px; width: max-content; max-width: calc(100% - 24px); padding: 6px; border-radius: 999px; background: rgba(255,255,255,.28); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.talisman-app__opciones { display: flex; gap: 2px; flex-wrap: wrap; justify-content: center; }
.talisman-app .talisman-app__opcion { border: 0; background: transparent; color: #fff; padding: 9px 16px; font-size: 14px; letter-spacing: .02em; text-shadow: 0 1px 3px rgba(0,0,0,.25); }
.talisman-app .talisman-app__opcion:hover, .talisman-app .talisman-app__opcion[aria-expanded="true"], .talisman-app .talisman-app__opcion[aria-pressed="true"] { background: rgba(102,42,128,.55); color: #fff; }
.talisman-app__opcion--ojo { border-right: 1px solid rgba(255,255,255,.4) !important; border-radius: 999px 0 0 999px !important; }
.talisman-app .talisman-app__panel { bottom: calc(4% + 64px); z-index: 4; }
.talisman-app .talisman-app__visor { aspect-ratio: 16 / 9; }

/* Timer */
.timer__opciones { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.timer__opciones .chip-opcion { min-height: 36px; padding: 0 14px; background: #fff; font: inherit; font-size: 14px; }
.timer__opciones .chip-opcion[aria-pressed="true"] { border-color: var(--violeta); box-shadow: 0 0 0 1px var(--violeta); background: var(--rosa); }
.timer__reloj { margin: 6px 0 10px; font-size: 44px; font-weight: 300; font-variant-numeric: tabular-nums; color: var(--violeta); text-align: center; }
.timer__acciones { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

@media (max-width: 900px) {
	.talisman-app .talisman-app__visor { aspect-ratio: 3 / 4; }
	.talisman-flotantes__izq { width: 46%; top: 4%; left: 4%; }
	.talisman-flotantes__numerologia { gap: 10px; }
	.talisman-flotantes__numerologia img { width: 7px; height: 7px; }
	.talisman-flotantes__constelacion { width: 34%; right: 4%; top: 8%; }
	.talisman-app .talisman-app__barra { bottom: 10px; border-radius: 22px; flex-wrap: wrap; justify-content: center; }
	.talisman-app__opcion--ojo { display: none; }
	.talisman-app .talisman-app__opcion { padding: 8px 11px; font-size: 13px; }
	.talisman-app .talisman-app__panel { bottom: 104px; max-height: calc(100% - 150px); }
	.talisman-app__pantalla { top: auto; bottom: auto; }
}

/* ---------- Mi Talismán: ADN energético en pestañas, Timer y Alarma (como la web anterior) ---------- */
.adn-tabs__pestanas { display: flex; gap: 4px; margin: 0 auto 16px; padding: 4px; max-width: 520px; border-radius: 999px; background: var(--rosa); }
.adn-tabs__pestanas--dos { max-width: 260px; }
.adn-tabs__pestana { flex: 1; min-height: 36px; padding: 0 10px; border: 0; border-radius: 999px; background: transparent; font: inherit; font-size: 14px; color: var(--negro); cursor: pointer; white-space: nowrap; }
.adn-tabs__pestana[aria-selected="true"] { background: var(--violeta); color: #fff; }
.adn-tabs__titulo { margin: 0 0 4px; font-weight: 300; font-size: 20px; text-transform: uppercase; letter-spacing: .04em; color: var(--violeta); text-align: center; }
.adn-tabs__resumen { margin: 0 0 10px !important; text-align: center; font-family: var(--serif); font-size: 17px !important; }
.adn-tabs__intro { color: var(--gris); font-size: 14px !important; }
.adn-bloque { padding: 14px 0 4px; border-top: 1px solid var(--linea, #ebe3e6); }
.adn-bloque h4 { margin: 0 0 8px; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
.adn-bloque p { line-height: 1.55; }
.timer__sonido { display: grid; gap: 4px; margin: 10px 0; font-size: 13px; color: var(--gris); }
.timer__sonido select, .alarma input[type="time"] { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--nude); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; color: var(--negro); }
.alarma__horas { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.alarma__horas label { display: grid; gap: 4px; font-size: 13px; color: var(--gris); }
.alarma__horas label[hidden] { display: none; }
.alarma .btn { margin-top: 6px; }
.alarma__nota { margin-top: 10px !important; font-size: 13px !important; color: var(--gris); }
@media (min-width: 900px) {
	.talisman-app .talisman-app__panel--ancho { left: 50%; right: auto; width: min(760px, calc(100% - 24px)); transform: translateX(-50%); }
}

/* Tarjetas parejas (pedido de la clienta, 21/10): todas las intenciones del tamaño de "Amor Incondicional"
   (la foto ya no estira la tarjeta al cargar) y todas las fotos de "Elige tu talismán" del mismo tamaño. */
.card-intencion { aspect-ratio: auto; }
.card-intencion__lema { min-height: 2.5em; line-height: 1.25; }
.card-intencion img { flex: none; height: auto; aspect-ratio: 206 / 180; }
.card-modelo__foto { width: 100%; }
.card-modelo__nombre { min-height: 2.5em; line-height: 1.25; }
@media (max-width: 900px) {
	.card-intencion img { aspect-ratio: 1; }
}
.talisman-app__panel .timer__reloj { font-size: 40px; margin: 8px 0 12px; }

/* Cruz para cerrar las ventanitas de Mi Talismán; queda fija arriba aunque el contenido scrollee. */
.talisman-app__cerrar { position: sticky; top: 0; float: right; z-index: 3; width: 34px; height: 34px; margin: -8px -10px 0 8px; padding: 0; border: 0; border-radius: 50%; background: var(--rosa); color: var(--violeta); font-size: 24px; line-height: 34px; text-align: center; cursor: pointer; }
.talisman-app__cerrar:hover, .talisman-app__cerrar:focus-visible { background: var(--violeta); color: #fff; }

/* Ritual de activación (panel Intención) */
.ritual__paso { max-width: 560px; }
.ritual__lista { margin: 0 0 14px; padding-left: 20px; font-size: 15px; }
.ritual__lista li { margin-bottom: 4px; }
.ritual__estado { font-family: var(--serif); font-size: 18px !important; color: var(--violeta); }
.ritual .btn + .btn { margin-left: 6px; }

/* Banco de sonidos y volumen (Mi Talismán) */
.talisman-app__sonidos .reproductor__boton { font-size: 14px; }
.volumen { display: flex; align-items: center; gap: 10px; max-width: 420px; }
.volumen input { flex: 1; accent-color: var(--violeta); }

/* Fila de envío del carrito y del checkout a todo el ancho (woocommerce/cart/cart-shipping.php):
   el texto "Ingresa tu dirección…" y las opciones de Zipnova se desbordaban de la columna de precios. */
.lovelia-envio > td { width: auto !important; white-space: normal !important; text-align: left !important; }
.lovelia-envio__fila { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.lovelia-envio__titulo { flex: none; }
.lovelia-envio__detalle { flex: 1; min-width: 0; text-align: right; font-size: 14px; overflow-wrap: anywhere; }
.lovelia-envio .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.lovelia-envio .woocommerce-shipping-methods li { margin: 0 0 6px; }
.lovelia-envio .woocommerce-shipping-methods label { display: inline; }
.lovelia-envio .woocommerce-shipping-destination, .lovelia-envio .woocommerce-shipping-calculator { margin: 6px 0 0; }
.lovelia-envio .woocommerce-shipping-methods li { display: flex; align-items: flex-start; gap: 8px; text-align: left; line-height: 1.35; }
.lovelia-envio .woocommerce-shipping-methods input { flex: none; margin: 2px 0 0; accent-color: var(--violeta); }
@media (max-width: 600px) {
	.lovelia-envio__fila { flex-direction: column; gap: 6px; }
	.lovelia-envio__detalle { text-align: left; }
}

/* Recuadro de la chapita (pedido 27/10): todas con el mismo encuadre. Antes había un zoom fijo de 1,8×
   sobre el mismo punto y, como en cada foto la chapita está en un lugar distinto, unas quedaban corridas o
   cortadas. Ahora se ve la foto completa, sin zoom (tocándola se abre en grande). */
.galeria__medalla { aspect-ratio: auto; width: clamp(150px, 40%, 260px); line-height: 0; }
.galeria__medalla img { height: auto; object-fit: contain; transform: none; }

/* Tienda: al pasar el mouse por la foto aparece el mismo talismán puesto en la modelo (pedido 27/10). */
.grilla-tienda .card__foto { position: relative; }
.card__foto-modelo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s ease; pointer-events: none; }
@media (hover: hover) {
	.grilla-tienda .card__foto:hover .card__foto-modelo, .grilla-tienda .card__foto:focus-visible .card__foto-modelo { opacity: 1; }
}
/* Recuadro de la chapita, versión final (27/10): cuadrado, con zoom de 1,4× centrado en la chapita de cada
   foto (el punto lo calcula el JS con el "foco" guardado en cada imagen). */
.galeria__medalla { aspect-ratio: 1; width: clamp(140px, 36%, 230px); }
.galeria__medalla img { position: absolute; max-width: none; object-fit: fill; transform: none; }
