/* ════════════════════════════════════════════════════════════
   GUERRERO MEDICINA ANCESTRAL
   Paleta A (identidad, del logo) gobierna. Paleta B (visión) aparece.
   ════════════════════════════════════════════════════════════ */

:root{
  /* — PALETA A · IDENTIDAD — */
  --noche:        #070D1A;
  --noche-2:      #0B1428;
  --noche-3:      #101D3C;
  --azul-real:    #16306B;
  --oro:          #C9A24D;
  --oro-claro:    #F6E7B2;
  --oro-hondo:    #7B5833;
  --cian:         #4FC9EE;
  --cian-claro:   #8DECF9;
  --cian-hondo:   #1A699C;
  --humo:         #E8EFFA;
  --humo-tenue:   #A9B8D4;

  /* — PALETA B · VISIÓN (solo destellos) — */
  --verde-liana:  #2E8B57;
  --verde-hoja:   #8FD14F;
  --turquesa:     #17C3B2;
  --magenta:      #C2418A;
  --violeta:      #5B3FA8;
  --ocre:         #B4642A;
  --fuego:        #F2751F;

  /* — Degradados firma — */
  --grad-oro:  linear-gradient(160deg,#F6E7B2 0%,#C9A24D 52%,#7B5833 100%);
  --grad-cian: linear-gradient(180deg,#8DECF9 0%,#4FC9EE 45%,#1A699C 100%);

  /* — Fondo dinámico por scroll — */
  --fondo: #070D1A;

  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Outfit", system-ui, -apple-system, sans-serif;

  --gutter: 20px;
  --r: 16px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background: var(--fondo);
  color: var(--humo);
  font-family: var(--sans);
  font-weight:300;
  font-size: clamp(16px,4.1vw,17.5px);
  line-height:1.65;
  overflow-x:hidden;
  transition: background-color .6s linear;
}

img,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--oro); color:var(--noche); }

h1,h2,h3{ font-family:var(--serif); font-weight:400; line-height:1.12; letter-spacing:.01em; margin:0; }
em{ font-style:italic; }

/* ═══ LIENZOS DE FONDO ═══ */
#brasas{ position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }

#aurora{
  position:fixed; inset:-20%; z-index:-1; pointer-events:none; opacity:.55;
  background:
    radial-gradient(48vw 40vw at 18% 12%, rgba(26,105,156,.30), transparent 62%),
    radial-gradient(42vw 36vw at 84% 28%, rgba(123,88,51,.24), transparent 62%),
    radial-gradient(56vw 46vw at 50% 92%, rgba(22,48,107,.34), transparent 66%);
  filter: blur(18px);
  animation: derivar 42s ease-in-out infinite alternate;
}
@keyframes derivar{ to{ transform:translate3d(-3%,2%,0) scale(1.08); } }

#grano{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

#cursor{
  position:fixed; top:0; left:0; width:26px; height:26px; margin:-13px 0 0 -13px; z-index:9999;
  border-radius:50%; pointer-events:none; opacity:0; display:none;
  background: radial-gradient(circle, rgba(246,231,178,.55), rgba(79,201,238,.12) 55%, transparent 70%);
  transition: opacity .3s, transform .18s ease-out;
}
@media (hover:hover) and (pointer:fine){ #cursor{ display:block; } }

main,header,footer{ position:relative; z-index:2; }

/* ═══ PRELOADER ═══ */
#preloader{
  position:fixed; inset:0; z-index:10000; background:var(--noche);
  display:grid; place-content:center; justify-items:center; gap:26px;
  transition: opacity .9s ease, visibility .9s;
}
#preloader.fuera{ opacity:0; visibility:hidden; }
.pre-ring{ width:min(46vw,190px); aspect-ratio:1; }
.pre-ring .pr{
  fill:none; stroke:var(--oro); stroke-width:1.2;
  stroke-dasharray:600; stroke-dashoffset:600;
  animation: trazo 2.1s cubic-bezier(.4,0,.2,1) forwards;
  transform-origin:center;
}
.pre-ring .pr2{ stroke:var(--cian); animation-delay:.22s; opacity:.75; }
.pre-ring .pr3{ stroke:var(--oro-claro); animation-delay:.44s; opacity:.5; }
@keyframes trazo{ to{ stroke-dashoffset:0; } }
.pre-txt{
  font-family:var(--serif); font-size:clamp(20px,5.6vw,26px); color:var(--oro-claro);
  margin:0; text-align:center; letter-spacing:.06em; opacity:0; animation: aparecer 1.1s .6s forwards;
}
.pre-txt span{ display:block; color:var(--humo-tenue); font-size:.66em; letter-spacing:.24em; text-transform:uppercase; font-family:var(--sans); margin-top:10px; }
@keyframes aparecer{ to{ opacity:1; } }

/* ═══ NAVEGACIÓN ═══ */
#nav{
  position:fixed; top:0; left:0; right:0; z-index:900;
  display:flex; align-items:center; gap:14px;
  padding: 12px var(--gutter);
  padding-top: max(12px, env(safe-area-inset-top));
  transition: background .4s, backdrop-filter .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
#nav.pegado{
  background: color-mix(in srgb, var(--noche) 82%, transparent);
  backdrop-filter: blur(14px) saturate(1.3);
  border-bottom-color: rgba(201,162,77,.18);
}
.nav-logo img{ height:38px; width:auto; filter: drop-shadow(0 0 10px rgba(79,201,238,.3)); }
.nav-links{ display:none; gap:22px; margin-left:auto; }
.nav-links a{
  font-size:13px; letter-spacing:.11em; text-transform:uppercase; color:var(--humo-tenue);
  padding:6px 0; border-bottom:1px solid transparent; transition:.3s;
}
.nav-links a:hover,.nav-links a.activo{ color:var(--oro-claro); border-bottom-color:var(--oro); }

#nav-toggle{ width:42px; height:42px; display:grid; align-content:center; gap:6px; justify-items:end; }
#nav-toggle span{ display:block; height:1.5px; width:26px; background:var(--oro-claro); transition:.35s; }
#nav-toggle span:last-child{ width:18px; }
#nav-toggle[aria-expanded="true"] span:first-child{ transform:translateY(3.75px) rotate(45deg); }
#nav-toggle[aria-expanded="true"] span:last-child{ transform:translateY(-3.75px) rotate(-45deg); width:26px; }

/* — Controles: idioma + sonido — */
.nav-ctrl{ margin-left:auto; display:flex; align-items:center; gap:10px; }

.idioma{
  display:flex; align-items:center; gap:5px; padding:5px 10px; border-radius:999px;
  border:1px solid rgba(201,162,77,.26); font-size:12px; letter-spacing:.1em;
}
.idioma span{ color:rgba(169,184,212,.45); }
.lang{
  color:var(--humo-tenue); padding:2px 2px; letter-spacing:.1em; transition:color .3s;
  font-size:12px; line-height:1;
}
.lang:hover{ color:var(--oro-claro); }
.lang.activo{
  background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent;
  font-weight:600;
}

#sonido{
  display:flex; align-items:center; gap:7px; padding:7px 13px 7px 11px; border-radius:999px;
  border:1px solid rgba(201,162,77,.26); font-size:12px; letter-spacing:.08em;
  color:var(--humo-tenue); transition:.3s; white-space:nowrap;
}
#sonido:hover{ border-color:var(--oro); color:var(--oro-claro); }
#sonido svg{ width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
#sonido svg .bocina{ fill:currentColor; stroke:none; }
#sonido.apagado svg .onda,
#sonido.apagado svg .onda2{ display:none; }
#sonido.apagado svg .tache{ stroke:currentColor; }
#sonido.encendido{ border-color:var(--oro); color:var(--oro-claro); background:rgba(201,162,77,.10); }
#sonido.encendido svg .tache{ display:none; }
#sonido.encendido svg .onda{ opacity:1; animation:sonar 2.2s ease-in-out infinite; }
#sonido.encendido svg .onda2{ opacity:.55; animation:sonar 2.2s ease-in-out .25s infinite; }
@keyframes sonar{ 0%,100%{ opacity:.25; } 50%{ opacity:1; } }

/* — Pista discreta: aparece una sola vez — */
.pista-sonido{
  position:fixed; left:50%; bottom:22px; transform:translate(-50%,24px); z-index:850;
  padding:11px 20px; border-radius:999px; font-size:13.5px; letter-spacing:.04em;
  color:var(--oro-claro); border:1px solid rgba(201,162,77,.4);
  background:color-mix(in srgb, var(--noche) 88%, transparent);
  backdrop-filter:blur(10px); box-shadow:0 8px 30px rgba(0,0,0,.4);
  opacity:0; transition:opacity .5s, transform .5s cubic-bezier(.2,.9,.2,1);
}
.pista-sonido.on{ opacity:1; transform:translate(-50%,0); }
.pista-sonido::before{ content:"♪  "; }

/* ═══ HERO ═══ */
.hero{
  position:relative; min-height:100svh; display:grid; align-content:center;
  padding: 96px var(--gutter) 70px; overflow:hidden;
}
.hero-vid-wrap{ position:absolute; inset:0; z-index:0; }
.hero-vid-wrap video{ width:100%; height:100%; object-fit:cover; opacity:.30; filter:saturate(.75) contrast(1.05); }
.hero-vid-veil{
  position:absolute; inset:0;
  background:
    radial-gradient(70% 55% at 50% 42%, transparent 0%, color-mix(in srgb,var(--noche) 72%,transparent) 62%, var(--noche) 100%),
    linear-gradient(to bottom, var(--noche) 0%, transparent 26%, transparent 62%, var(--noche) 100%);
}
.hero-cuerpo{ position:relative; z-index:2; text-align:center; max-width:760px; margin:0 auto; }

.hero-logo{ position:relative; display:inline-block; margin-bottom:10px; }
.hero-logo img{
  width:min(84vw,520px); height:auto;
  filter: drop-shadow(0 8px 44px rgba(26,105,156,.45));
  animation: respirar 8s ease-in-out infinite;
}
.halo{
  position:absolute; inset:-18%; z-index:-1; border-radius:50%;
  background: radial-gradient(circle, rgba(201,162,77,.20), rgba(79,201,238,.10) 42%, transparent 66%);
  animation: latir 8s ease-in-out infinite;
}
@keyframes respirar{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.022); } }
@keyframes latir{ 0%,100%{ opacity:.55; transform:scale(.96); } 50%{ opacity:1; transform:scale(1.06); } }

.hero-claim{
  font-family:var(--serif); font-size:clamp(28px,8.4vw,52px); line-height:1.14; margin:14px 0 8px;
  color:var(--humo);
}
.hero-claim em{
  background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub{
  font-size:clamp(12.5px,3.3vw,15px); letter-spacing:.17em; text-transform:uppercase;
  color:var(--humo-tenue); margin:0 0 34px;
}

.puertas{ display:grid; gap:12px; }
@media (min-width:620px){ .puertas{ grid-template-columns:1fr 1fr; gap:16px; } }
.puerta{
  position:relative; display:grid; gap:2px; text-align:left;
  padding:18px 20px; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.28);
  background: linear-gradient(145deg, rgba(16,29,60,.70), rgba(7,13,26,.55));
  backdrop-filter: blur(6px);
  overflow:hidden; transition: transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s;
}
.puerta::after{
  content:""; position:absolute; inset:0; opacity:0; transition:opacity .5s;
  background: radial-gradient(120% 90% at 0% 0%, rgba(201,162,77,.16), transparent 60%);
}
.puerta:hover,.puerta:focus-visible{ transform:translateY(-4px); border-color:rgba(201,162,77,.6); }
.puerta:hover::after{ opacity:1; }
.p-num{ font-family:var(--serif); font-size:13px; letter-spacing:.3em; color:var(--oro); }
.p-tit{ font-family:var(--serif); font-size:clamp(20px,5.4vw,25px); color:var(--humo); }
.p-sub{ font-size:13px; color:var(--humo-tenue); letter-spacing:.05em; }

.scroll-hint{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:3; }
.scroll-hint span{ display:block; width:1px; height:56px; background:linear-gradient(to bottom,transparent,var(--oro)); animation: caer 2.6s ease-in-out infinite; }
@keyframes caer{ 0%,100%{ opacity:.2; transform:scaleY(.5); transform-origin:top; } 50%{ opacity:1; transform:scaleY(1); } }

/* ═══ LA MENTE QUE SE ABRE ═══ */
.mente-scope{ position:relative; height:330vh; }
.mente-sticky{
  position:sticky; top:0; height:100svh; overflow:hidden;
  display:grid; place-items:center;
}
#mente-canvas{ position:absolute; inset:0; width:100%; height:100%; }
.mente-textos{ position:absolute; left:0; right:0; bottom:16%; z-index:3; text-align:center; padding:0 var(--gutter); pointer-events:none; }
.mente-textos .mt{
  position:absolute; left:50%; bottom:0; transform:translate(-50%,0) translateY(18px);
  width:min(92vw,760px); margin:0; opacity:0;
  font-family:var(--serif); font-size:clamp(26px,7.6vw,46px); line-height:1.2;
  letter-spacing:.015em; transition: opacity .7s ease, transform .7s ease;
  text-shadow: 0 2px 30px rgba(7,13,26,.9);
}
.mente-textos .mt.on{ opacity:1; transform:translate(-50%,0) translateY(0); }
.mente-textos .mt[data-fase="1"]{ color:var(--cian-claro); }
.mente-textos .mt[data-fase="2"]{ background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent; }

.mente-progreso{ position:absolute; bottom:28px; left:50%; transform:translateX(-50%); width:min(56vw,220px); height:1px; background:rgba(201,162,77,.2); z-index:3; }
.mente-progreso i{ display:block; height:100%; width:0; background:var(--grad-oro); }
.mente-fallback{ display:none; text-align:center; padding:0 var(--gutter); }
.mente-fallback p{ font-family:var(--serif); font-size:clamp(22px,6vw,34px); color:var(--oro-claro); margin:0 0 22px; }
#ver-completo{
  display:inline-block; padding:12px 22px; border-radius:999px; font-size:13.5px; line-height:1.4;
  border:1px solid rgba(201,162,77,.45); color:var(--oro-claro); max-width:34ch;
}
#ver-completo:hover{ background:rgba(201,162,77,.1); border-color:var(--oro); }

/* ═══ SECCIONES ═══ */
.sec{ padding: clamp(68px,13vw,130px) var(--gutter); max-width:1180px; margin:0 auto; }
.sec-alt{ position:relative; }
.sec-alt::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background: linear-gradient(to bottom, transparent, rgba(16,29,60,.42) 22%, rgba(16,29,60,.42) 78%, transparent);
}

.sec-cab{ max-width:760px; margin:0 auto clamp(34px,7vw,60px); text-align:center; }
.kicker{
  display:inline-block; font-size:11.5px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--oro); margin-bottom:16px;
  padding-bottom:10px; border-bottom:1px solid rgba(201,162,77,.3);
}
.sec-cab h2{ font-size:clamp(30px,8.6vw,54px); margin-bottom:18px; }
.sec-cab h2 em{ background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lead{ color:var(--humo-tenue); font-size:clamp(15.5px,4vw,18px); margin:0; }
.lead strong{ color:var(--humo); font-weight:400; }

/* — Reveal — */
.reveal{ opacity:0; transform:translateY(26px); filter:blur(6px); transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1), filter .9s; }
.reveal.visto{ opacity:1; transform:none; filter:none; }

/* ═══ LÍNEA DE TIEMPO ═══ */
.linea-tiempo{ position:relative; }
.lt-pista{
  display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 0 22px; margin:0 calc(var(--gutter)*-1); padding-left:var(--gutter); padding-right:var(--gutter);
  scrollbar-width:none; cursor:grab;
}
.lt-pista::-webkit-scrollbar{ display:none; }
.lt-pista.agarrando{ cursor:grabbing; scroll-snap-type:none; }
.lt-hito{
  flex:0 0 clamp(230px,72vw,300px); scroll-snap-align:center;
  padding:24px 22px; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.2);
  background: linear-gradient(160deg, rgba(16,29,60,.6), rgba(7,13,26,.35));
  position:relative;
}
.lt-hito::before{ content:""; position:absolute; top:0; left:22px; right:22px; height:1px; background:var(--grad-oro); opacity:.6; }
.lt-anio{ display:block; font-family:var(--serif); font-size:20px; color:var(--oro-claro); margin-bottom:10px; }
.lt-hito p{ margin:0; font-size:15px; color:var(--humo-tenue); line-height:1.6; }
.lt-guia{ text-align:center; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--oro); margin:6px 0 0; }
@media (min-width:900px){ .lt-guia{ display:none; } }

/* ═══ PILARES ═══ */
.pilares{ display:grid; gap:16px; }
@media (min-width:820px){ .pilares{ grid-template-columns:repeat(3,1fr); gap:22px; } }
.pilar{
  position:relative; padding:34px 24px 28px; border-radius:var(--r); overflow:hidden;
  border:1px solid rgba(201,162,77,.18);
  background: linear-gradient(165deg, rgba(16,29,60,.55), rgba(7,13,26,.3));
}
.pilar-n{
  position:absolute; top:-12px; right:14px; font-family:var(--serif); font-size:92px; line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(201,162,77,.24); pointer-events:none;
}
.pilar h3{ font-size:23px; color:var(--oro-claro); margin-bottom:10px; }
.pilar p{ margin:0; font-size:15.5px; color:var(--humo-tenue); }

.aclaracion{
  max-width:780px; margin:34px auto 0; padding:20px 22px; border-radius:var(--r);
  border-left:2px solid var(--oro); background: rgba(201,162,77,.055);
  font-size:15px; color:var(--humo-tenue); line-height:1.7;
}
.aclaracion strong{ color:var(--oro-claro); font-weight:500; }

/* ═══ DOS COLUMNAS SÍ / NO ═══ */
.columnas{ display:grid; gap:16px; }
@media (min-width:840px){ .columnas{ grid-template-columns:1fr 1fr; gap:24px; } }
.col{ padding:28px 24px; border-radius:var(--r); border:1px solid; }
.col h3{ font-size:24px; margin-bottom:18px; display:flex; align-items:center; gap:10px; }
.col h3 span{ font-size:14px; }
.col ul{ margin:0; padding:0; list-style:none; display:grid; gap:13px; }
.col li{ font-size:15.5px; line-height:1.55; padding-left:22px; position:relative; color:var(--humo-tenue); }
.col li::before{ content:""; position:absolute; left:0; top:.62em; width:9px; height:1px; }
.col-si{ border-color:rgba(79,201,238,.3); background:linear-gradient(165deg, rgba(26,105,156,.16), transparent); }
.col-si h3{ color:var(--cian-claro); }
.col-si li::before{ background:var(--cian); }
.col-no{ border-color:rgba(201,162,77,.3); background:linear-gradient(165deg, rgba(123,88,51,.16), transparent); }
.col-no h3{ color:var(--oro-claro); }
.col-no li::before{ background:var(--oro); }

.llamado{
  margin-top:32px; text-align:center; padding:32px 22px; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.3);
  background: radial-gradient(90% 140% at 50% 0%, rgba(201,162,77,.10), transparent 70%);
}
.llamado p{ font-family:var(--serif); font-size:clamp(19px,5.2vw,26px); line-height:1.4; margin:0 0 22px; }
.llamado strong{ color:var(--oro-claro); font-weight:400; }

/* ═══ BENEFICIOS ═══ */
.advertencia-grande{ text-align:center; max-width:820px; margin:0 auto 46px; }
.advertencia-grande > p:first-child{
  font-family:var(--serif); font-size:clamp(26px,7.4vw,44px); line-height:1.22; margin:0 0 16px;
}
.advertencia-grande em{ background:var(--grad-cian); -webkit-background-clip:text; background-clip:text; color:transparent; font-style:italic; }
.ag-chico{ font-size:16px; color:var(--humo-tenue); margin:0; line-height:1.7; }

.voces{ display:grid; gap:14px; }
@media (min-width:760px){ .voces{ grid-template-columns:1fr 1fr; gap:18px; } }
.voz{
  margin:0; padding:26px 24px; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.16);
  background: linear-gradient(165deg, rgba(16,29,60,.5), rgba(7,13,26,.25));
  position:relative;
}
.voz::before{
  content:"\201C"; position:absolute; top:6px; left:16px; font-family:var(--serif);
  font-size:64px; line-height:1; color:rgba(201,162,77,.22);
}
.voz blockquote{ margin:0 0 12px; font-family:var(--serif); font-size:clamp(18px,4.8vw,22px); line-height:1.45; font-style:italic; color:var(--humo); }
.voz figcaption{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--oro); }
.voces-pie{ max-width:800px; margin:30px auto 0; text-align:center; font-size:15.5px; color:var(--humo-tenue); }
.voces-pie em{ color:var(--oro-claro); }

/* ═══ GLOSARIO ═══ */
.glos-filtros,.gal-filtros{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:26px; }
.gf,.gfl{
  padding:8px 16px; border-radius:999px; font-size:13px; letter-spacing:.06em;
  border:1px solid rgba(201,162,77,.26); color:var(--humo-tenue); transition:.3s;
}
.gf:hover,.gfl:hover{ border-color:var(--oro); color:var(--oro-claro); }
.gf.activo,.gfl.activo{ background:var(--grad-oro); color:var(--noche); border-color:transparent; font-weight:500; }

.glos-grid{ display:grid; gap:11px; }
@media (min-width:640px){ .glos-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1000px){ .glos-grid{ grid-template-columns:repeat(3,1fr); } }
.glos{
  border:1px solid rgba(201,162,77,.18); border-radius:14px; overflow:hidden;
  background: linear-gradient(165deg, rgba(16,29,60,.5), rgba(7,13,26,.22));
  transition: border-color .35s, transform .35s;
}
.glos:hover{ border-color:rgba(201,162,77,.45); }
.glos.oculto{ display:none; }
.glos-btn{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 18px; text-align:left;
  font-family:var(--serif); font-size:20px; color:var(--oro-claro);
}
.glos-btn i{ font-style:normal; font-size:18px; color:var(--oro); transition:transform .35s; flex:none; }
.glos.abierta .glos-btn i{ transform:rotate(45deg); }
.glos-cuerpo{ max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.3,.8,.3,1); }
.glos-cuerpo p{ margin:0; padding:0 18px 18px; font-size:15px; color:var(--humo-tenue); line-height:1.65; }
.glos-cuerpo em{ color:var(--cian-claro); font-style:italic; }

/* ═══ EVENTOS ═══ */
.cuenta{ text-align:center; margin-bottom:38px; }
.cuenta-lbl{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--oro); margin:0 0 14px; }
.cuenta-nums{ display:flex; justify-content:center; gap:10px; }
.cuenta-nums span{ min-width:66px; padding:12px 8px; border-radius:12px; border:1px solid rgba(201,162,77,.22); background:rgba(16,29,60,.45); }
.cuenta-nums b{ display:block; font-family:var(--serif); font-size:clamp(24px,7vw,34px); color:var(--humo); line-height:1; font-weight:400; }
.cuenta-nums i{ display:block; font-style:normal; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--humo-tenue); margin-top:6px; }

.eventos{ display:grid; gap:18px; }
@media (min-width:900px){ .eventos{ grid-template-columns:1fr 1fr; } .ev:first-child{ grid-column:1/-1; } }
.ev{
  position:relative; overflow:hidden; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.24);
  background: linear-gradient(160deg, rgba(16,29,60,.62), rgba(7,13,26,.4));
  padding:26px 22px;
}
.ev::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--grad-oro); }
.ev-ejemplo::before{ background:linear-gradient(90deg,var(--cian-hondo),var(--cian)); }
.ev-cinta{
  position:absolute; top:14px; right:-34px; transform:rotate(38deg);
  background:var(--cian-hondo); color:var(--humo); font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; padding:5px 40px;
}
.ev-tipo{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--cian); margin:0 0 8px; }
.ev h3{ font-size:clamp(23px,6vw,30px); margin-bottom:14px; }
.ev-meta{ display:grid; gap:7px; margin-bottom:18px; }
.ev-meta div{ display:flex; gap:10px; font-size:14.5px; color:var(--humo-tenue); align-items:baseline; }
.ev-meta b{ color:var(--oro); font-weight:400; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; min-width:66px; }
.ev-incluye{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.ev-incluye span{ font-size:12px; padding:4px 11px; border-radius:999px; border:1px solid rgba(79,201,238,.28); color:var(--cian-claro); }
.ev-precio{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.ev-monto{ font-family:var(--serif); font-size:clamp(34px,10vw,46px); line-height:1; background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ev-moneda{ font-size:12px; letter-spacing:.2em; color:var(--humo-tenue); text-transform:uppercase; }
.ev-anticipo{ font-size:14px; color:var(--humo-tenue); margin:0 0 6px; }
.ev-anticipo b{ color:var(--cian-claro); font-weight:400; }
.ev-extras{ margin:12px 0 0; padding:12px 0 0; border-top:1px solid rgba(201,162,77,.14); }
.ev-extras p{ margin:0 0 8px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--oro); }
.ev-extras ul{ margin:0; padding:0; list-style:none; display:grid; gap:5px; }
.ev-extras li{ display:flex; justify-content:space-between; font-size:14px; color:var(--humo-tenue); }
.ev-extras li b{ color:var(--humo); font-weight:400; }
.ev-nota{ font-size:13px; color:var(--humo-tenue); font-style:italic; margin:14px 0 18px; line-height:1.55; }

/* ═══ BOTONES ═══ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 26px; border-radius:999px; font-size:15px; letter-spacing:.03em;
  cursor:pointer; transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, background .3s;
  text-align:center; min-height:48px;
}
.btn:hover{ transform:translateY(-2px); }
.btn-oro{ background:var(--grad-oro); color:var(--noche); font-weight:500; box-shadow:0 6px 24px rgba(201,162,77,.24); }
.btn-oro:hover{ box-shadow:0 10px 32px rgba(201,162,77,.38); }
.btn-linea{ border:1px solid rgba(201,162,77,.45); color:var(--oro-claro); }
.btn-linea:hover{ border-color:var(--oro); background:rgba(201,162,77,.08); }
.btn-fantasma{ color:var(--humo-tenue); border:1px solid rgba(169,184,212,.2); }
.btn-wa{ background:linear-gradient(140deg,#1FAF53,#0F7A39); color:#fff; font-weight:500; box-shadow:0 6px 26px rgba(31,175,83,.26); }
.btn-wa svg{ width:20px; height:20px; fill:currentColor; }
.btn.grande{ padding:18px 34px; font-size:17px; }
.btn.ancho{ width:100%; }

/* ═══ APORTACIONES ═══ */
.tabla-ap{ max-width:820px; margin:0 auto; display:grid; gap:10px; }
.ap{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 22px; border-radius:14px;
  border:1px solid rgba(201,162,77,.16);
  background: linear-gradient(120deg, rgba(16,29,60,.45), rgba(7,13,26,.2));
}
.ap-dest{ border-color:rgba(201,162,77,.5); background:linear-gradient(120deg, rgba(201,162,77,.12), rgba(7,13,26,.25)); }
.ap-txt h3{ font-size:20px; margin-bottom:4px; color:var(--humo); }
.ap-txt p{ margin:0; font-size:13px; color:var(--humo-tenue); }
.ap-monto{ font-family:var(--serif); font-size:clamp(26px,7vw,36px); line-height:1; white-space:nowrap; background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ap-monto small{ font-family:var(--sans); font-size:10px; letter-spacing:.16em; display:block; color:var(--humo-tenue); margin-top:5px; -webkit-text-fill-color:var(--humo-tenue); }

.pasos-3{ list-style:none; margin:0 auto; padding:0; max-width:1000px; display:grid; gap:16px; }
@media (min-width:820px){ .pasos-3{ grid-template-columns:repeat(3,1fr); gap:22px; } }
.p3{
  position:relative; padding:34px 24px 28px; border-radius:var(--r); overflow:hidden;
  border:1px solid rgba(201,162,77,.2);
  background: linear-gradient(165deg, rgba(16,29,60,.55), rgba(7,13,26,.3));
}
.p3::before{ content:""; position:absolute; top:0; left:24px; right:24px; height:1px; background:var(--grad-oro); opacity:.55; }
.p3-n{
  position:absolute; top:-10px; right:16px; font-family:var(--serif); font-size:96px; line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(201,162,77,.24); pointer-events:none;
}
.p3 h3{ font-size:23px; color:var(--oro-claro); margin-bottom:10px; }
.p3 p{ margin:0; font-size:15.5px; color:var(--humo-tenue); line-height:1.6; }

/* ═══ CAMINO / DIETA ═══ */
.camino{ list-style:none; margin:0 auto; padding:0; max-width:760px; position:relative; }
.camino::before{ content:""; position:absolute; left:23px; top:24px; bottom:24px; width:1px; background:linear-gradient(to bottom, transparent, rgba(201,162,77,.4) 12%, rgba(201,162,77,.4) 88%, transparent); }
.paso{ display:flex; gap:20px; padding:0 0 26px; position:relative; }
.paso-n{
  flex:none; width:47px; height:47px; border-radius:50%; display:grid; place-content:center;
  font-family:var(--serif); font-size:20px; color:var(--oro-claro);
  border:1px solid rgba(201,162,77,.4); background:var(--noche); position:relative; z-index:1;
}
.paso h3{ font-size:19px; color:var(--oro-claro); margin-bottom:6px; }
.paso p{ margin:0; font-size:15.5px; color:var(--humo-tenue); line-height:1.6; }
.paso-dia .paso-n{ background:var(--grad-oro); color:var(--noche); border-color:transparent; }
.paso-dia p strong{ color:var(--humo); font-weight:400; }

.respira{ text-align:center; margin:44px auto 0; max-width:420px; }
.respira-circulo{
  width:150px; height:150px; margin:0 auto 16px; border-radius:50%; cursor:pointer;
  display:grid; place-content:center; text-align:center; padding:12px;
  border:1px solid rgba(79,201,238,.4);
  background: radial-gradient(circle, rgba(26,105,156,.28), transparent 70%);
  font-size:13px; letter-spacing:.1em; color:var(--cian-claro);
  transition: transform 4s cubic-bezier(.4,0,.5,1), box-shadow 4s;
}
.respira-circulo.inhala{ transform:scale(1.42); box-shadow:0 0 60px rgba(79,201,238,.3); }
.respira p{ font-size:13.5px; color:var(--humo-tenue); margin:0; }

.alerta{
  margin:44px auto 0; max-width:780px; padding:26px 24px; border-radius:var(--r);
  border:1px solid rgba(201,162,77,.42);
  background: linear-gradient(160deg, rgba(201,162,77,.10), rgba(7,13,26,.2));
}
.alerta h3{ font-size:22px; color:var(--oro-claro); margin-bottom:14px; }
.alerta ul{ margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.alerta li{ padding-left:24px; position:relative; font-size:15.5px; color:var(--humo-tenue); line-height:1.6; }
.alerta li::before{ content:"◈"; position:absolute; left:0; color:var(--oro); font-size:12px; top:.25em; }

/* ═══ CHECKLIST ═══ */
.check-barra{ display:flex; align-items:center; gap:14px; max-width:760px; margin:0 auto 28px; }
.cb-pista{ flex:1; height:3px; border-radius:2px; background:rgba(169,184,212,.16); overflow:hidden; }
.cb-pista i{ display:block; height:100%; width:0; background:var(--grad-oro); transition:width .5s cubic-bezier(.2,.8,.2,1); }
#cb-txt{ font-size:12.5px; letter-spacing:.1em; color:var(--oro); white-space:nowrap; }

.listas{ display:grid; gap:24px; max-width:900px; margin:0 auto; }
@media (min-width:800px){ .listas{ grid-template-columns:1fr 1fr; gap:32px; } }
.lista h3{ font-size:21px; color:var(--oro-claro); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid rgba(201,162,77,.2); }
.check{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.check li{ margin:0; }
.check label{
  display:flex; gap:13px; align-items:flex-start; padding:11px 12px; border-radius:10px;
  cursor:pointer; font-size:15px; color:var(--humo-tenue); line-height:1.5; transition:background .3s, color .3s;
}
.check label:hover{ background:rgba(201,162,77,.05); }
.check input{ position:absolute; opacity:0; width:0; height:0; }
.check .caja{
  flex:none; width:20px; height:20px; margin-top:1px; border-radius:6px;
  border:1px solid rgba(201,162,77,.42); display:grid; place-content:center; transition:.3s;
}
.check .caja::after{ content:""; width:9px; height:5px; border-left:1.6px solid var(--noche); border-bottom:1.6px solid var(--noche); transform:rotate(-45deg) scale(0); transition:transform .3s cubic-bezier(.2,1.4,.4,1); }
.check input:checked + .caja{ background:var(--grad-oro); border-color:transparent; }
.check input:checked + .caja::after{ transform:rotate(-45deg) scale(1); }
.check input:checked ~ .txt{ color:var(--oro-claro); text-decoration:line-through; text-decoration-color:rgba(201,162,77,.45); }
.check input:focus-visible + .caja{ outline:2px solid var(--cian); outline-offset:2px; }

.traer-pie{ text-align:center; margin-top:34px; }
.traer-pie p{ font-size:15px; color:var(--humo-tenue); margin:0 0 18px; }
.traer-btns{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ═══ GALERÍA ═══ */
.mosaico{ display:grid; grid-template-columns:repeat(2,1fr); gap:7px; grid-auto-rows:118px; }
@media (min-width:620px){ .mosaico{ grid-template-columns:repeat(4,1fr); grid-auto-rows:135px; gap:9px; } }
@media (min-width:1020px){ .mosaico{ grid-template-columns:repeat(6,1fr); grid-auto-rows:150px; } }
.tile{
  position:relative; overflow:hidden; border-radius:10px; cursor:pointer;
  grid-row:span 1; background:var(--noche-2); border:1px solid rgba(201,162,77,.1);
  opacity:0; transform:scale(.94); transition: opacity .7s, transform .7s;
}
.tile.visto{ opacity:1; transform:none; }
.tile.oculto{ display:none; }
.tile.alto{ grid-row:span 2; }
.tile.ancho{ grid-column:span 2; }
.tile img{ width:100%; height:100%; object-fit:cover; transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .6s; filter:saturate(.92) brightness(.92); }
.tile:hover img{ transform:scale(1.07); filter:saturate(1.1) brightness(1.02); }
.tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,13,26,.5), transparent 55%); opacity:.8; transition:opacity .5s; }
.tile:hover::after{ opacity:.35; }

.vid-tit{ text-align:center; font-size:clamp(24px,6.4vw,34px); margin:56px 0 22px; color:var(--oro-claro); }
.videos{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.vid{
  position:relative; border-radius:14px; overflow:hidden; background:var(--noche-2);
  border:1px solid rgba(201,162,77,.16); aspect-ratio:9/16;
}
.vid video{ width:100%; height:100%; object-fit:cover; }
.vid-play{
  position:absolute; inset:0; display:grid; place-content:center; gap:10px; justify-items:center;
  background:linear-gradient(to top, rgba(7,13,26,.72), rgba(7,13,26,.15));
  transition:opacity .4s;
}
.vid.play .vid-play{ opacity:0; pointer-events:none; }
.vid-play i{
  width:58px; height:58px; border-radius:50%; border:1px solid rgba(246,231,178,.6);
  display:grid; place-content:center; background:rgba(7,13,26,.4); backdrop-filter:blur(4px);
}
.vid-play i::after{ content:""; border-left:15px solid var(--oro-claro); border-top:9px solid transparent; border-bottom:9px solid transparent; margin-left:4px; }
.vid-play span{ font-size:12.5px; color:var(--humo); letter-spacing:.05em; text-align:center; padding:0 16px; }

/* ═══ FAQ ═══ */
.faq-lista{ max-width:820px; margin:0 auto; display:grid; gap:2px; }
.faq-item{ border-bottom:1px solid rgba(201,162,77,.14); }
.faq-q{
  width:100%; display:flex; gap:16px; align-items:flex-start; justify-content:space-between;
  padding:20px 4px; text-align:left; font-family:var(--serif); font-size:clamp(18px,4.8vw,22px); color:var(--humo);
  transition:color .3s;
}
.faq-q:hover{ color:var(--oro-claro); }
.faq-q i{ flex:none; font-style:normal; color:var(--oro); font-size:20px; transition:transform .4s; line-height:1.2; }
.faq-item.abierta .faq-q{ color:var(--oro-claro); }
.faq-item.abierta .faq-q i{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.3,.8,.3,1); }
.faq-a p{ margin:0; padding:0 4px 22px; font-size:15.5px; color:var(--humo-tenue); line-height:1.7; max-width:66ch; }

/* ═══ CIERRE / AMANECER ═══ */
.cierre{ position:relative; padding: clamp(80px,15vw,140px) var(--gutter) clamp(60px,10vw,100px); text-align:center; overflow:hidden; }
.amanecer{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(80% 60% at 50% 108%, rgba(246,231,178,.28), transparent 60%),
    radial-gradient(60% 45% at 50% 118%, rgba(242,117,31,.22), transparent 62%),
    linear-gradient(to bottom, transparent, rgba(22,48,107,.3));
}
.cierre-cuerpo{ max-width:680px; margin:0 auto; position:relative; z-index:1; }
.cierre-logo{ width:min(46vw,190px); height:auto; margin:0 auto 26px; filter:drop-shadow(0 6px 30px rgba(79,201,238,.35)); }
.cierre h2{ font-size:clamp(32px,9vw,54px); margin-bottom:20px; }
.cierre h2 em{ background:var(--grad-oro); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cierre p{ font-size:16px; color:var(--humo-tenue); margin:0 0 30px; line-height:1.7; }
.cierre-num{ font-family:var(--serif); font-size:clamp(20px,5.4vw,26px); color:var(--oro-claro); letter-spacing:.06em; margin:22px 0 6px !important; }
.cierre-nota{ font-size:12.5px !important; color:rgba(169,184,212,.7) !important; margin:0 !important; }

/* ═══ PIE ═══ */
footer{ padding: 46px var(--gutter) calc(30px + env(safe-area-inset-bottom)); border-top:1px solid rgba(201,162,77,.14); background:rgba(7,13,26,.7); }
.pie-grid{ max-width:1100px; margin:0 auto 26px; display:grid; gap:22px; }
@media (min-width:760px){ .pie-grid{ grid-template-columns:auto 1fr; align-items:center; } .pie-links{ justify-content:flex-end; } }
.pie-marca{ font-family:var(--serif); font-size:23px; margin:0; color:var(--humo); }
.pie-marca em{ color:var(--oro); }
.pie-lug{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--humo-tenue); margin:4px 0 0; }
.pie-links{ display:flex; flex-wrap:wrap; gap:8px 20px; }
.pie-links a{ font-size:13.5px; color:var(--humo-tenue); transition:color .3s; }
.pie-links a:hover{ color:var(--oro-claro); }
.legal{ max-width:900px; margin:0 auto; font-size:12.5px; line-height:1.7; color:rgba(169,184,212,.62); text-align:center; }
.legal strong{ color:var(--humo-tenue); font-weight:400; }
.creditos{ text-align:center; font-size:11.5px; letter-spacing:.18em; color:rgba(201,162,77,.5); margin:22px 0 0; }

/* ═══ WHATSAPP FLOTANTE ═══ */
#wa-float{
  position:fixed; right:16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index:800;
  display:flex; align-items:center; gap:10px; padding:13px 18px; border-radius:999px;
  background:linear-gradient(140deg,#1FAF53,#0F7A39); color:#fff; font-size:14.5px; font-weight:500;
  box-shadow:0 8px 30px rgba(15,122,57,.4);
  transform:translateY(120px); opacity:0; transition: transform .6s cubic-bezier(.2,.9,.2,1), opacity .5s;
}
#wa-float.on{ transform:none; opacity:1; }
#wa-float svg{ width:22px; height:22px; fill:currentColor; }
#wa-float::before{
  content:""; position:absolute; inset:-3px; border-radius:999px; border:1px solid rgba(31,175,83,.6);
  animation: pulso 3s ease-out infinite;
}
@keyframes pulso{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.28); opacity:0; } }
@media (max-width:420px){ #wa-float span{ display:none; } #wa-float{ padding:15px; } }

/* ═══ LIGHTBOX ═══ */
#lightbox{
  position:fixed; inset:0; z-index:9500; background:rgba(4,8,18,.96);
  display:grid; place-items:center; padding:52px 14px;
  animation: fadein .3s;
}
#lightbox[hidden]{ display:none; }
@keyframes fadein{ from{ opacity:0; } }
#lightbox figure{ margin:0; max-width:100%; max-height:100%; display:grid; gap:12px; justify-items:center; }
#lb-img{ max-width:100%; max-height:76svh; width:auto; border-radius:10px; animation: zoomin .45s cubic-bezier(.2,.9,.2,1); }
@keyframes zoomin{ from{ transform:scale(.9); opacity:0; } }
#lb-cap{ font-size:13.5px; color:var(--humo-tenue); text-align:center; max-width:60ch; }
.lb-x,.lb-prev,.lb-next{ position:absolute; color:var(--oro-claro); width:52px; height:52px; display:grid; place-content:center; border-radius:50%; border:1px solid rgba(201,162,77,.25); background:rgba(7,13,26,.6); font-size:30px; line-height:1; }
.lb-x{ top:14px; right:14px; font-size:30px; }
.lb-prev{ left:10px; top:50%; transform:translateY(-50%); }
.lb-next{ right:10px; top:50%; transform:translateY(-50%); }
.lb-x:hover,.lb-prev:hover,.lb-next:hover{ border-color:var(--oro); background:rgba(201,162,77,.14); }

/* ═══ ONDAS DE CLIC ═══ */
.onda-clic{
  position:fixed; border-radius:50%; border:1px solid rgba(201,162,77,.55);
  pointer-events:none; z-index:8000; animation: expandir 1.1s cubic-bezier(.1,.7,.3,1) forwards;
}
@keyframes expandir{ to{ width:280px; height:280px; margin:-140px 0 0 -140px; opacity:0; border-width:.5px; } }

/* ═══ ACCESIBILIDAD / MOVIMIENTO REDUCIDO ═══ */
:focus-visible{ outline:2px solid var(--cian); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  html:not(.forzar-anim) *,
  html:not(.forzar-anim) *::before,
  html:not(.forzar-anim) *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  html:not(.forzar-anim) .reveal{ opacity:1; transform:none; filter:none; }
  html:not(.forzar-anim) .tile{ opacity:1; transform:none; }
  html:not(.forzar-anim) #brasas, html:not(.forzar-anim) #mente-canvas{ display:none; }
  html:not(.forzar-anim) .mente-scope{ height:auto; }
  html:not(.forzar-anim) .mente-sticky{ position:static; height:auto; padding:80px var(--gutter); }
  html:not(.forzar-anim) .mente-textos{ display:none; }
  html:not(.forzar-anim) .mente-fallback{ display:block; }
  html:not(.forzar-anim) .mente-progreso{ display:none; }
  html:not(.forzar-anim) #aurora{ animation:none; }
}
