/* ═══════════════════════════════════════════════════════
   TOKENS
   ═══════════════════════════════════════════════════════ */
:root{
  --ink:#0B100D;        /* negro sastre */
  --verde:#22382D;      /* verde VAMANA */
  --verde2:#1A2B22;
  --verde3:#31513F;
  --laton:#B08D4F;      /* latón */
  --laton-luz:#D2B87E;
  --gis:#E8E2D6;        /* crema del logo */
  --papel:#F3EEE4;
  --tinta:#242C26;
  --display:"Instrument Serif",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
  --body:"Inter",system-ui,-apple-system,sans-serif;
  --w:1120px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--gis);
  font-family:var(--body);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--laton);outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--w);margin:0 auto;padding:0 clamp(22px,5vw,40px)}

.eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--laton);margin:0 0 18px;
}

/* ═══════════════════════════════════════════════════════
   1 · LA PELÍCULA (scroll cinemático)
   ═══════════════════════════════════════════════════════ */
.film{height:900vh;position:relative}
.stage{position:sticky;top:0;height:100svh;width:100%;overflow:hidden;background:var(--ink);contain:paint}
#c{position:absolute;inset:0;width:100%;height:100%;display:block}

/* velo + viñeta */
.veil{position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 92% at 50% 45%,transparent 30%,rgba(11,16,13,.5) 76%,rgba(11,16,13,.9) 100%),
    linear-gradient(to bottom,rgba(11,16,13,.72) 0%,transparent 24%,transparent 52%,rgba(11,16,13,.94) 100%)}

/* scrim inferior izquierdo: garantiza contraste del texto sobre cualquier fotograma */
.scrim{position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to top,rgba(11,16,13,.9) 0%,rgba(11,16,13,.62) 22%,rgba(11,16,13,.18) 40%,transparent 56%),
    linear-gradient(to right,rgba(11,16,13,.72) 0%,rgba(11,16,13,.3) 38%,transparent 66%)}

/* grano de película */
.grain{position:absolute;inset:-50%;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.1s steps(4) infinite;will-change:transform}
@keyframes grain{
  0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}
  50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}
  100%{transform:translate(3%,1%)}
}

/* barras cinematográficas que abren */
.bar{position:absolute;left:0;right:0;height:16vh;background:var(--ink);pointer-events:none;z-index:4;
  transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.bar.top{top:0}.bar.bot{bottom:0}
.open .bar.top{transform:translateY(-100%)}
.open .bar.bot{transform:translateY(100%)}

/* marca superior */
.mark{position:absolute;top:0;left:0;right:0;padding:24px clamp(22px,4vw,34px);z-index:5;
  display:flex;align-items:center;
  opacity:0;transform:translateY(-8px);transition:opacity 1.1s .5s ease,transform 1.1s .5s ease}
.open .mark{opacity:1;transform:none}
.mark img{height:clamp(22px,2.4vw,32px);width:auto;opacity:.96}

/* el hilván — progreso */
.seam{position:absolute;left:clamp(18px,3vw,32px);top:23vh;bottom:23vh;width:18px;z-index:5;
  opacity:0;transition:opacity 1.2s .9s ease}
.open .seam{opacity:1}
.seam .track{position:absolute;left:6px;top:0;bottom:0;width:2px;overflow:hidden}
.seam .track::before{content:"";position:absolute;inset:0;opacity:.15;
  background:repeating-linear-gradient(to bottom,var(--gis) 0 9px,transparent 9px 19px)}
.seam .done{position:absolute;left:6px;top:0;width:2px;overflow:hidden;height:calc(var(--p,0)*100%)}
.seam .done::before{content:"";position:absolute;top:0;left:0;width:2px;height:100vh;
  background:repeating-linear-gradient(to bottom,var(--laton) 0 9px,transparent 9px 19px)}
.seam .tick{position:absolute;left:0;transform:translateY(-50%);
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;opacity:.26;
  transition:opacity .5s ease,color .5s ease}
.seam .tick.on{opacity:1;color:var(--laton)}

/* textos del film */
.captions{position:absolute;inset:0;pointer-events:none;z-index:5}
.cap{position:absolute;left:0;right:0;bottom:17vh;margin:0;
  padding:0 clamp(22px,5vw,40px) 0 clamp(56px,7vw,86px);max-width:940px;opacity:0;
  transform-origin:left bottom;will-change:opacity,transform;backface-visibility:hidden}
.cap .n{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--laton);margin-bottom:15px}
.cap .line{display:block;font-family:var(--display);font-weight:400;
  font-size:clamp(1.95rem,5.3vw,4rem);line-height:1.06;letter-spacing:-.015em;text-wrap:balance;
  text-shadow:0 2px 26px rgba(11,16,13,.92),0 1px 4px rgba(11,16,13,.7)}
.cap .line em{font-style:italic;color:var(--laton-luz)}
.cap .remate{display:block;margin-top:16px;font-family:var(--body);
  font-size:clamp(.92rem,1.55vw,1.08rem);line-height:1.5;letter-spacing:0;opacity:.82;max-width:46ch;
  text-shadow:0 1px 16px rgba(11,16,13,.9)}
.cap .accion{display:inline-flex;align-items:center;gap:11px;margin-top:28px;padding:15px 30px;
  border:1px solid var(--laton);color:var(--gis);text-decoration:none;background:rgba(11,16,13,.4);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  transition:background .35s ease,color .35s ease}
.cap .accion:hover{background:var(--laton);color:var(--verde)}

.loader,.hint{position:absolute;left:0;right:0;bottom:8vh;text-align:center;z-index:5;
  font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;transition:opacity .8s ease}
.loader{opacity:.45}.loader.gone{opacity:0;pointer-events:none}
.hint{opacity:0}.hint.show{opacity:.5;animation:breathe 3.2s ease-in-out infinite}
@keyframes breathe{50%{opacity:.15}}

/* ═══════════════════════════════════════════════════════
   2 · CIERRE / CTA PRINCIPAL
   ═══════════════════════════════════════════════════════ */
.cta{background:var(--verde);padding:clamp(76px,12vh,140px) 0 clamp(56px,9vh,110px);text-align:center;
  position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 60% at 50% 0%,rgba(176,141,79,.14),transparent 70%)}
.cta .wrap{position:relative;z-index:1}
.cta h1{font-family:var(--display);font-weight:400;font-size:clamp(2.15rem,6.2vw,4.15rem);
  line-height:1.04;letter-spacing:-.02em;margin:0 auto 22px;max-width:30ch;text-wrap:balance}
.cta h1 em{font-style:italic;color:var(--laton-luz)}
.cta .sub{margin:0 auto 40px;max-width:56ch;opacity:.8}

.datos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 auto 44px;max-width:820px;
  border:1px solid rgba(176,141,79,.28)}
.dato{padding:24px 16px;border-right:1px solid rgba(176,141,79,.18)}
.dato:last-child{border-right:0}
.dato b{display:block;font-family:var(--display);font-size:clamp(1.7rem,3.4vw,2.3rem);
  line-height:1;color:var(--laton-luz);margin-bottom:9px}
.dato span{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;opacity:.62;line-height:1.5;display:block}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:18px 34px;
  border:1px solid var(--laton);text-decoration:none;background:transparent;color:var(--gis);
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  transition:background .35s ease,color .35s ease,transform .35s ease}
.btn:hover{background:var(--laton);color:var(--verde)}
.btn svg{width:15px;height:15px;flex:none}
.btn.solid{background:var(--laton);color:var(--verde)}
.btn.solid:hover{background:var(--laton-luz)}
.btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* botones de asesor */
.ases{min-width:216px}
.ases .quien{font-family:var(--mono);letter-spacing:.22em}
.conquien{font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;
  opacity:.55;margin:0 0 16px}
.tel{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  opacity:.6;margin:20px 0 0}
.tel a{text-decoration:none;border-bottom:1px solid rgba(176,141,79,.5);padding-bottom:2px}
.tel a:hover{color:var(--laton-luz)}
.padrinos{font-size:.95rem;margin:22px 0 0;color:rgba(232,226,214,.72)}
.padrinos a{color:var(--laton-luz);text-underline-offset:3px}
.cta .nota{display:block;margin-top:22px;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;opacity:.5;line-height:1.9}

/* ═══════════════════════════════════════════════════════
   3 · DOCUMENTO (capa indexable)
   ═══════════════════════════════════════════════════════ */
.doc{background:var(--papel);color:var(--tinta)}
.doc section{padding:clamp(58px,9vh,102px) 0}
.doc section+section{border-top:1px solid rgba(34,56,45,.13)}
.doc h2{font-family:var(--display);font-weight:400;font-size:clamp(1.65rem,4.1vw,2.65rem);
  line-height:1.14;letter-spacing:-.015em;margin:0 0 20px;color:var(--verde);max-width:22ch}
.doc h2 em{font-style:italic;color:var(--laton)}
.doc h3{font-family:var(--body);font-weight:600;font-size:1.02rem;margin:32px 0 8px;color:var(--verde)}
.doc p{margin:0 0 16px;max-width:70ch;color:#333B34}
.doc .lede{font-size:1.06rem;color:#2B332D;max-width:64ch}
.doc ul{margin:0 0 18px;padding-left:19px;max-width:68ch;color:#333B34}
.doc li{margin-bottom:8px}
.doc strong{color:var(--verde)}
.doc a{color:var(--verde);text-underline-offset:3px;text-decoration-color:rgba(176,141,79,.6)}
.doc .eyebrow{color:#8A7136}

/* cinta métrica divisoria */
.cinta{height:26px;width:100%;opacity:.5;margin:6px 0 30px}

/* tablas */
.tabla{overflow-x:auto;margin:6px 0 22px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:.93rem}
caption{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:#7A6530;padding-bottom:10px}
th,td{text-align:left;padding:12px 13px;border-bottom:1px solid rgba(34,56,45,.14);vertical-align:top}
th{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--verde);font-weight:500;border-bottom:1px solid rgba(34,56,45,.3)}
td:last-child,th:last-child{text-align:right;white-space:nowrap}
tbody tr:hover{background:rgba(34,56,45,.035)}
.precio{font-family:var(--mono);font-size:.9rem;color:var(--verde);font-weight:500}

/* tarjetas */
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:26px 0 6px}
.cards.c4{grid-template-columns:repeat(auto-fit,minmax(228px,1fr))}
.card{border:1px solid rgba(34,56,45,.16);padding:26px 24px;background:rgba(255,255,255,.42);
  transition:transform .45s cubic-bezier(.16,1,.3,1),border-color .45s ease,box-shadow .45s ease}
.card:hover{transform:translateY(-4px);border-color:rgba(176,141,79,.55);box-shadow:0 14px 40px -22px rgba(34,56,45,.5)}
.card .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--laton);margin-bottom:12px}
.card h3{margin:0 0 8px;font-size:1.06rem}
.card p{font-size:.94rem;margin:0}
.card .desde{display:block;margin-top:14px;font-family:var(--mono);font-size:.88rem;color:var(--verde)}

/* dos columnas comparativas */
.vs{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));margin:26px 0 8px}
.vs .col{border:1px solid rgba(34,56,45,.18);padding:30px 26px;background:rgba(255,255,255,.5)}
.vs .col.fc{border-color:rgba(176,141,79,.5);background:linear-gradient(180deg,rgba(176,141,79,.09),rgba(255,255,255,.5) 40%)}
.vs .col h3{margin:0 0 4px;font-family:var(--display);font-weight:400;font-size:1.5rem;color:var(--verde)}
.vs .col .t{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--laton);margin-bottom:18px}
.vs .col ul{padding-left:0;list-style:none;margin-bottom:0}
.vs .col li{padding-left:19px;position:relative;font-size:.94rem}
.vs .col li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--laton)}

/* línea de tiempo */
.linea{position:relative;margin:30px 0 8px;padding-left:34px}
.linea::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:1px;
  background:repeating-linear-gradient(to bottom,rgba(176,141,79,.75) 0 6px,transparent 6px 13px)}
.paso{position:relative;padding-bottom:30px}
.paso:last-child{padding-bottom:0}
.paso::before{content:"";position:absolute;left:-30px;top:8px;width:9px;height:9px;
  background:var(--papel);border:1px solid var(--laton);border-radius:50%}
.paso .cuando{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--laton);margin-bottom:5px}
.paso h3{margin:0 0 5px}
.paso p{margin:0;font-size:.95rem}

/* datos rápidos (bloque GEO) */
.hechos{border:1px solid rgba(34,56,45,.18);background:rgba(255,255,255,.5);padding:clamp(24px,4vw,36px);margin:8px 0 4px}
.hechos dl{margin:0;display:grid;gap:0;grid-template-columns:1fr}
.hechos .fila{display:grid;grid-template-columns:minmax(150px,.42fr) 1fr;gap:14px;
  padding:13px 0;border-bottom:1px solid rgba(34,56,45,.1)}
.hechos .fila:last-child{border-bottom:0}
.hechos dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--verde);padding-top:3px}
.hechos dd{margin:0;font-size:.95rem;color:#333B34}

/* FAQ */
.faq details{border-bottom:1px solid rgba(34,56,45,.15)}
.faq summary{cursor:pointer;font-weight:600;color:var(--verde);list-style:none;
  padding:18px 34px 18px 0;position:relative;font-size:1rem;transition:color .3s ease}
.faq summary:hover{color:var(--laton)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:11px;height:1px;
  background:var(--laton);transition:transform .35s ease}
.faq summary::before{content:"";position:absolute;right:11px;top:50%;width:1px;height:11px;
  margin-top:-5px;background:var(--laton);transition:transform .35s ease,opacity .35s ease}
.faq details[open] summary::before{opacity:0;transform:rotate(90deg)}
.faq details[open] summary{color:var(--laton)}
.faq .r{padding:0 0 22px}
.faq .r p{margin:0 0 12px;font-size:.96rem}
.faq .r p:last-child{margin-bottom:0}

/* contacto */
.contacto{background:var(--verde2);color:var(--gis)}
.contacto h2{color:var(--gis)}
.contacto p{color:rgba(232,226,214,.78);max-width:64ch}
.contacto a{color:var(--laton-luz)}
.contacto .grid{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:30px}
.contacto .b .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--laton);margin-bottom:10px}
.contacto .b p{margin:0;font-size:.95rem;line-height:1.8}

/* pie */
.foot{background:var(--ink);padding:44px 0;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;opacity:.5;line-height:2.1}
.foot img{height:26px;width:auto;opacity:.75;margin-bottom:20px}

/* barra fija */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:rgba(11,16,13,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid rgba(176,141,79,.28);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px clamp(16px,4vw,28px);
  transform:translateY(110%);transition:transform .55s cubic-bezier(.16,1,.3,1)}
.dock.show{transform:none}
.dock .t{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.65}
.dock .par{display:flex;gap:10px}
.dock .btn{padding:13px 22px;font-size:10px;min-width:0}

/* revelado al scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}

/* ═══════════════ responsive ═══════════════ */
@media (max-width:860px){
  .datos{grid-template-columns:repeat(2,1fr)}
  .dato:nth-child(2n){border-right:0}
  .dato:nth-child(-n+2){border-bottom:1px solid rgba(176,141,79,.18)}
}
@media (max-width:768px){
  .film{height:760vh}
  .cap{bottom:19vh}
  .seam{top:26vh;bottom:26vh}
  .mark img{height:20px}
  .hechos .fila{grid-template-columns:1fr;gap:4px}
  .dock .t{display:none}
  .dock{justify-content:center}
  .dock .par{flex:1;max-width:460px}
  .dock .par .btn{flex:1;padding:13px 10px;letter-spacing:.16em}
  .ases{min-width:0}
  .doc section{padding-bottom:clamp(58px,9vh,102px)}
  body{padding-bottom:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .grain{display:none}
  .bar{display:none}
  .mark,.seam{opacity:1;transform:none}
}
@media print{.film,.dock,.grain{display:none}}

/* ═══════════════════════════════════════════════════════
   SELECTOR DE IDIOMA
   ═══════════════════════════════════════════════════════ */
.lang{display:flex;align-items:center;gap:9px;font-family:var(--mono);
  font-size:10.5px;letter-spacing:.2em;text-transform:uppercase}
.lang a{text-decoration:none;opacity:.5;padding:4px 2px;transition:opacity .3s ease,color .3s ease}
.lang a:hover{opacity:.9}
.lang a.on{opacity:1;color:var(--laton-luz);cursor:default}
.lang .sep{opacity:.28}
.mark{justify-content:space-between}
.foot .lang{margin-top:18px;opacity:.9}
.foot .lang a{color:var(--gis)}

/* ═══════════════════════════════════════════════════════
   REDES Y CÓMO LLEGAR
   ═══════════════════════════════════════════════════════ */
.mapa{display:inline-flex;align-items:center;gap:8px;margin-top:14px;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;color:var(--laton-luz);
  border-bottom:1px solid rgba(176,141,79,.4);padding-bottom:4px;
  transition:border-color .3s ease,color .3s ease}
.mapa:hover{border-color:var(--laton-luz);color:var(--gis)}
.mapa svg{width:13px;height:13px;flex:none}

.redes{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:38px;padding-top:30px;border-top:1px solid rgba(176,141,79,.18)}
.redes .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--laton);margin:0 6px 0 0}
.redes a{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;color:var(--gis);text-decoration:none;
  border:1px solid rgba(176,141,79,.35);
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease}
.redes a:hover{background:var(--laton);color:var(--verde);border-color:var(--laton);transform:translateY(-2px)}
.redes svg{width:17px;height:17px}
