/* =========================================================
   ERNESTO FLORES — ASESOR FINANCIERO INDEPENDIENTE
   Dark theme · Neon glow · Glassmorphism
========================================================= */

:root{
  --navy-0: #000B12;
  --navy-1: #001B28;
  --navy-2: #032B3B;
  --navy-3: #0A3D52;
  --glass: rgba(10,61,82,0.35);
  --glass-border: rgba(255,255,255,0.08);

  --gold: #FFBD00;
  --gold-2: #FFE08A;
  --gold-dim: #C99400;

  --ink: #EAF1F5;
  --ink-dim: #9FBAC7;
  --ink-faint: #61808D;

  --serif: "Space Grotesk", sans-serif;
  --sans: "Manrope", -apple-system, sans-serif;
  --mono: "JetBrains Mono", monospace;

  --container: 1180px;
  --r-lg: 24px;
  --r-md: 16px;
  --r-sm: 10px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:
    radial-gradient(ellipse 900px 500px at 15% 0%, rgba(255,189,0,0.05), transparent 55%),
    radial-gradient(ellipse 900px 600px at 90% 15%, rgba(10,61,82,0.5), transparent 55%),
    var(--navy-1);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-bottom:0;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;line-height:1.15;color:var(--ink);}
p{margin:0;line-height:1.65;color:var(--ink-dim);}
.mono{font-family:var(--mono);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* anchor scroll fix — sticky nav was covering section tops on click */
section[id]{scroll-margin-top:88px;}

/* touch-friendly interaction defaults */
a, button, .faq-item__header, input[type=range]{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
body.no-scroll{overflow:hidden;}

/* ---------- utility ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
  display:block;
}
.eyebrow--center{text-align:center;}

.text-gradient{
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-2) 50%, var(--gold) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-style:normal;
}
.text-strike{position:relative;color:var(--ink-faint);}
.text-strike::after{
  content:""; position:absolute; left:-2%; right:-2%; top:50%; height:2px;
  background:var(--ink-faint); transform:rotate(-3deg);
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 30px; border-radius:100px; font-weight:700; font-size:0.95rem;
  border:1px solid transparent; cursor:pointer; font-family:var(--sans);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn--gold{
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:var(--navy-0);
  box-shadow:0 0 30px rgba(255,189,0,0.25), 0 8px 20px rgba(0,0,0,0.3);
}
.btn--gold:hover{transform:translateY(-2px);box-shadow:0 0 44px rgba(255,189,0,0.45), 0 10px 26px rgba(0,0,0,0.35);}
.btn--ghost{
  color:var(--ink); border-color:var(--glass-border); background:rgba(255,255,255,0.03);
}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);}
.btn--block{width:100%;}
.btn--lg{padding:20px 44px;font-size:1.05rem;}

@media (hover:none){
  .btn:active{transform:scale(0.96);}
  .neon-card:active{transform:translateY(-2px);border-color:rgba(255,189,0,0.35);}
  .tabbar__item:active{opacity:0.65;}
  .footer__social-icon:active{color:var(--gold);border-color:rgba(255,189,0,0.5);}
}

.glass{
  background:var(--glass);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-border);
}
.glow-border{
  box-shadow:0 0 0 1px rgba(255,189,0,0.12) inset, 0 0 50px rgba(255,189,0,0.08), 0 20px 60px rgba(0,0,0,0.4);
}

/* neon card, used across many sections */
.neon-card{
  background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
  border:1px solid var(--glass-border);
  border-radius:var(--r-md);
  padding:32px 28px;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.neon-card:hover{
  transform:translateY(-4px);
  border-color:rgba(255,189,0,0.4);
  box-shadow:0 0 40px rgba(255,189,0,0.12), 0 20px 40px rgba(0,0,0,0.3);
}
.neon-card h3{font-size:1.15rem;margin-bottom:10px;}
.neon-card p{font-size:0.92rem;}
.neon-card__icon{
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:12px; margin-bottom:18px;
}
.neon-card__icon svg{width:24px;height:24px;}

/* color variants — alternating blue / gold accent, both derived from brand */
.neon-card--blue .neon-card__icon{color:#4FC3F7;background:rgba(79,195,247,0.12);}
.neon-card--blue:hover{border-color:rgba(79,195,247,0.4);box-shadow:0 0 40px rgba(79,195,247,0.15), 0 20px 40px rgba(0,0,0,0.3);}
.neon-card--gold .neon-card__icon{color:var(--gold);background:rgba(255,189,0,0.12);}
.neon-card--gold:hover{border-color:rgba(255,189,0,0.4);box-shadow:0 0 40px rgba(255,189,0,0.15), 0 20px 40px rgba(0,0,0,0.3);}
.neon-card--sm{padding:22px 20px;text-align:center;}
.neon-card--sm .mono{color:var(--gold);font-weight:700;font-size:1.1rem;display:block;margin-bottom:8px;line-height:1.3;}
.neon-card--sm p{font-size:0.82rem;margin:0;}

/* reveal on scroll */
.js-reveal-ready .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.is-visible{opacity:1 !important; transform:translateY(0) !important;}

/* =========================================================
   NAV
========================================================= */
.nav{
  position:sticky; top:0; left:0; right:0; z-index:100;
  padding:16px 0;
  background:var(--navy-0);
  border-bottom:1px solid var(--glass-border);
  transition:padding .3s ease, box-shadow .3s ease;
}
.nav.is-scrolled{
  padding:10px 0;
  box-shadow:0 8px 30px rgba(0,0,0,0.3);
}
.nav__inner{
  max-width:var(--container); margin:0 auto; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav__brand{display:flex;flex-direction:column;line-height:1.2;}
.nav__brandtext{color:var(--ink);font-weight:700;font-size:1.05rem;font-family:var(--serif);}
.nav__brandsub{color:#FFB90F;font-size:0.68rem;font-weight:600;letter-spacing:0.04em;}
.nav__links{display:flex;gap:20px;}
.nav__links a{
  color:var(--ink); font-size:0.78rem; font-weight:400; position:relative; padding-bottom:4px;
  transition:color .25s ease, transform .25s ease;
  display:inline-block;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition:width .25s ease; box-shadow:0 0 8px var(--gold);
}
.nav__links a:hover{color:var(--gold);transform:translateY(-2px);}
.nav__links a:hover::after{width:100%;}
.nav__burger{display:none;background:none;border:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;position:relative;z-index:101;}
.nav__burger span{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s ease, opacity .3s ease;}
.nav.menu-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav.menu-open .nav__burger span:nth-child(2){opacity:0;}
.nav.menu-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.nav__scrimbg{
  display:none;
  position:fixed; inset:0; z-index:98;
  background:rgba(0,7,11,0.6);
  opacity:0; pointer-events:none;
  transition:opacity .35s ease;
}
.nav__scrimbg.is-open{opacity:1;pointer-events:auto;}

/* =========================================================
   HERO — full-bleed photo, Sophia-style layout
========================================================= */
:root{
  --hero-cream: #EDE7D9;
  --hero-navy: #001B28;
}
.hero{
  position:relative;
  aspect-ratio:21/9;
  min-height:520px;
  display:flex;
  align-items:center;
  padding:60px 0;
  overflow:hidden;
  background:var(--hero-cream);
}
.hero__bgphoto{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:right 30%;
  z-index:0;
}
.hero__scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg,
    var(--hero-cream) 0%,
    var(--hero-cream) 38%,
    rgba(237,231,217,0.85) 48%,
    rgba(237,231,217,0.35) 60%,
    rgba(237,231,217,0) 72%);
}
.hero__inner{
  position:relative; z-index:2; max-width:var(--container); margin:0 auto; padding:0 24px; width:100%;
}
.hero__copy{max-width:720px;}
.hero__title{
  font-size:clamp(3rem, 5.8vw, 5rem); font-weight:700; letter-spacing:-0.02em;
  color:var(--hero-navy);
}
.hero__lead{margin-top:28px; font-size:1.35rem; line-height:1.5; color:#3A4750; max-width:680px;}
.hero__bold{margin-top:24px; font-size:1.15rem; font-weight:700; color:var(--hero-navy);}
.hero__actions{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;}
.hero__mobileimg{display:none;}

@media (max-width:900px){
  .hero{
    aspect-ratio:auto; min-height:0; padding:20px 0 0; flex-direction:column; align-items:stretch;
    background:var(--hero-cream);
  }
  .hero__bgphoto{display:none;}
  .hero__scrim{display:none;}
  .hero__mobileimg{
    display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:top center;
    order:2;
  }
  .hero__inner{padding:8px 20px 56px;order:1;}
  .hero__copy{max-width:none;}
  .hero__title{font-size:clamp(4.6rem,18vw,6.2rem);}
  .hero__lead{font-size:1.02rem;margin-top:12px;color:#3A4750;}
  .hero__bold{font-size:1rem;margin-top:12px;color:var(--hero-navy);}
  .hero__actions{margin-top:16px;}
  .hero__actions .btn{width:100%;}
}


/* =========================================================
   LA NUEVA REALIDAD
========================================================= */
.realidad{padding:60px 24px 110px; max-width:var(--container); margin:0 auto;}
.realidad__kicker{
  font-family:var(--mono); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); text-align:center; font-size:clamp(1.1rem,2.2vw,1.5rem); margin-bottom:18px;
}
.realidad__title{text-align:center;font-size:clamp(1.9rem,3.4vw,2.6rem);margin:0 auto 56px;max-width:900px;color:var(--ink);}
.realidad__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}

@media (max-width:900px){.realidad__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.realidad__grid{grid-template-columns:1fr;}}

/* =========================================================
   CALCULADORA DE JUBILACIÓN
========================================================= */
.calculadora{padding:100px 24px;}
.calculadora__inner{max-width:var(--container); margin:0 auto;}
.calculadora__head{text-align:center;max-width:760px;margin:0 auto 50px;}
.calculadora__kicker{
  font-family:var(--mono); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); font-size:clamp(1.15rem,2.4vw,1.5rem); margin-bottom:16px;
}
.calculadora__head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);}
.calculadora__title-solid{
  font-size:clamp(1.7rem,3.2vw,2.4rem); max-width:800px; margin:0 auto; line-height:1.3;
}
.calculadora__sub{margin-top:18px;font-size:1.02rem;}

/* Alternating background — single flat brand tone (no gradient) */
.calculadora--light{background:#F4EDDC;}
.calculadora--light .calculadora__title-solid{color:var(--hero-navy, #001B28);}
.calculadora--light .calculadora__sub{color:#4A4030;}
.calculadora--light .calculadora__kicker{color:#B8860B;}
.calculadora--light .calc-card{background:rgba(255,255,255,0.5);border:1px solid rgba(0,27,40,0.08);}
.calculadora--light .field__row{color:#001B28;}
.calculadora--light .field__val{color:#B8860B;}
.calculadora--light .calc-card__assumptions{color:#5A5140;border-top-color:rgba(0,27,40,0.1);}
.calculadora--light .calc-card__assumptions strong{color:#B8860B;}
.calculadora--light .calc-card__result{background:rgba(184,134,11,0.08);border-color:rgba(184,134,11,0.25);}
.calculadora--light .calc-card__result-label{color:#5A5140;}
.calculadora--light .calc-card__result-num{color:#B8860B;text-shadow:none;}
.calculadora--light .calc-card__breakdown div{border-bottom-color:rgba(0,27,40,0.1);color:#5A5140;}
.calculadora--light .calc-card__breakdown span:last-child{color:#001B28;}
.calculadora--light input[type=range]{
  background:linear-gradient(90deg, #B8860B 0%, #B8860B var(--fill,50%), rgba(0,27,40,0.15) var(--fill,50%));
}
.calculadora--light input[type=range]::-webkit-slider-thumb{background:#B8860B;box-shadow:0 0 0 4px rgba(184,134,11,0.2), 0 0 16px rgba(184,134,11,0.5);}
.calculadora--light input[type=range]::-moz-range-thumb{background:#B8860B;box-shadow:0 0 0 4px rgba(184,134,11,0.2), 0 0 16px rgba(184,134,11,0.5);}

.calc-card{
  border-radius:var(--r-lg);
  padding:48px;
  display:grid; grid-template-columns:1fr 1fr; gap:56px;
}
.field{display:block;margin-bottom:26px;}
.field:last-of-type{margin-bottom:0;}
.field__row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:0.92rem;color:var(--ink);font-weight:600;}
.field__val{color:var(--gold);font-weight:700;font-size:1.05rem;}
.field__hint{display:block;font-size:0.75rem;color:var(--ink-faint);margin-top:8px;}
.field--text input[type=text], .field--text input[type=email]{
  width:100%; background:rgba(255,255,255,0.04); border:1px solid var(--glass-border);
  border-radius:var(--r-sm); padding:13px 16px; color:var(--ink); font-family:var(--sans); font-size:0.95rem;
}
.field--text input:focus{border-color:var(--gold);outline:none;}
.field--text span{display:block;font-size:0.85rem;font-weight:600;margin-bottom:8px;color:var(--ink);}

input[type=range]{
  width:100%; -webkit-appearance:none; height:4px; border-radius:3px;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold) var(--fill,50%), rgba(255,255,255,0.12) var(--fill,50%));
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:20px;height:20px;border-radius:50%;
  background:var(--gold); cursor:pointer; box-shadow:0 0 0 4px rgba(255,189,0,0.2), 0 0 16px rgba(255,189,0,0.6);
}
input[type=range]::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;background:var(--gold);cursor:pointer;border:none;
  box-shadow:0 0 0 4px rgba(255,189,0,0.2), 0 0 16px rgba(255,189,0,0.6);
}

.calc-card__assumptions{font-size:0.82rem;margin-top:8px;padding-top:20px;border-top:1px solid var(--glass-border);}
.calc-card__assumptions strong{color:var(--gold);}
.calc-card__result{
  display:flex; flex-direction:column; justify-content:center;
  background:rgba(255,189,0,0.04); border-radius:var(--r-md); padding:36px;
  border:1px solid rgba(255,189,0,0.15);
}
.calc-card__result-label{font-size:0.85rem;color:var(--ink-dim);margin-bottom:10px;}
.calc-card__result-num{font-size:2.6rem;font-weight:700;color:var(--gold);line-height:1;margin-bottom:26px;text-shadow:0 0 30px rgba(255,189,0,0.4);}
.calc-card__breakdown{margin-bottom:28px;}
.calc-card__breakdown div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--glass-border);font-size:0.87rem;}
.calc-card__breakdown div:last-child{border-bottom:none;}
.calc-card__breakdown span:last-child{color:var(--ink);font-weight:600;}

@media (max-width:900px){
  .calc-card{grid-template-columns:1fr;padding:26px 20px;gap:24px;}
  input[type=range]{height:6px;}
  input[type=range]::-webkit-slider-thumb{width:28px;height:28px;}
  input[type=range]::-moz-range-thumb{width:28px;height:28px;}

  /* Fix misaligned breakdown numbers — stack label/value instead of
     fighting for space on one line, which caused ragged wrapping */
  .calc-card__result{padding:26px 22px;}
  .calc-card__breakdown{margin-bottom:22px;}
  .calc-card__breakdown div{
    display:flex; flex-direction:column; align-items:flex-start; gap:4px;
    padding:12px 0;
  }
  .calc-card__breakdown span:first-child{font-size:0.8rem;}
  .calc-card__breakdown span:last-child{
    font-size:1.05rem; font-variant-numeric:tabular-nums; white-space:nowrap;
  }
  .calc-card__result-num{font-size:2.2rem;}
}

/* CTA buttons always center their label, even when text wraps to 2 lines */
.btn{text-align:center;}

/* Attention-drawing pulse for high-priority CTAs (calculator + agenda) */
@keyframes ctaPulse{
  0%, 100%{box-shadow:0 0 30px rgba(255,189,0,0.25), 0 8px 20px rgba(0,0,0,0.3);}
  50%{box-shadow:0 0 48px rgba(255,189,0,0.6), 0 10px 26px rgba(0,0,0,0.35);}
}
.btn--pulse{animation:ctaPulse 2.4s ease-in-out infinite;}
.btn--pulse:hover{animation-play-state:paused;}

/* =========================================================
   PPA METHOD
========================================================= */
.metodo{padding:100px 24px; text-align:center;}
.metodo__inner{max-width:var(--container); margin:0 auto;}
.metodo__kicker{
  font-family:var(--mono); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); font-size:clamp(1rem,2vw,1.25rem); margin-bottom:14px;
}
.metodo__title{font-size:clamp(2.4rem,4.6vw,3.5rem);letter-spacing:0.01em;}
.metodo__lead{max-width:700px;margin:20px auto 60px;font-size:1.05rem;}
.metodo__pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;text-align:left;}
.pillar__index{color:var(--gold);font-size:2.4rem;font-weight:700;letter-spacing:0.02em;display:block;margin-bottom:12px;opacity:0.85;line-height:1;}

/* Alternating light background — brand cream/gold tone, breaks the dark-navy rhythm */
.metodo--light{
  background:linear-gradient(180deg, #F4EDDC 0%, #EFE6D0 100%);
}
.metodo--light .metodo__title{color:var(--hero-navy, #001B28);}
.metodo--light .metodo__lead{color:#4A4030;}
.metodo--light .metodo__kicker{color:#B8860B;}
.neon-card--light{
  background:rgba(255,255,255,0.5);
  border:1px solid rgba(0,27,40,0.08);
}
.neon-card--light h3{color:#001B28;}
.neon-card--light p{color:#5A5140;}
.neon-card--light .pillar__index{color:#B8860B;opacity:1;}
.neon-card--light:hover{
  border-color:rgba(184,134,11,0.5);
  box-shadow:0 0 40px rgba(184,134,11,0.15), 0 20px 40px rgba(0,0,0,0.08);
}

@media (max-width:800px){.metodo__pillars{grid-template-columns:1fr;}}

/* =========================================================
   CÓMO TRABAJO — horizontal interactive timeline
========================================================= */
.proceso{padding:100px 24px 120px; max-width:var(--container); margin:0 auto; text-align:center;}
.proceso__kicker{
  font-family:var(--mono); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); font-size:clamp(1.4rem,3vw,2rem); margin-bottom:16px;
}
.proceso__title{font-size:clamp(1.7rem,3.2vw,2.3rem); max-width:820px; margin:0 auto 90px; line-height:1.4;}

.h-timeline{position:relative;height:460px;max-width:1140px;margin:0 auto;}
.h-timeline__wave{position:absolute;inset:0;width:100%;height:100%;z-index:0;}

.h-step{
  position:absolute;
  left:var(--x);
  top:0;
  height:100%;
  transform:translateX(-50%);
  width:210px;
  z-index:1;
}
.h-step__node{
  position:absolute; left:50%; transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;flex-shrink:0;
  background:var(--accent);
  border:4px solid rgba(255,255,255,0.9);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 8px var(--accent-soft), 0 12px 30px rgba(0,0,0,0.35);
  transition:transform .3s ease, box-shadow .3s ease;
}
.h-step__node svg{width:26px;height:26px;}
.h-step--up .h-step__node{top:34%;}
.h-step--down .h-step__node{top:66%;}
.h-step:hover .h-step__node{
  transform:translate(-50%,-50%) scale(1.15) rotate(-6deg);
  box-shadow:0 0 0 12px var(--accent-soft), 0 16px 36px rgba(0,0,0,0.4);
}

.h-step__content{
  position:absolute; left:50%; transform:translateX(-50%); width:100%;
  text-align:center;
}
.h-step--up .h-step__content{top:0;}
.h-step--down .h-step__content{top:calc(66% + 46px);}
.h-step__content h3{
  font-size:0.95rem;margin-bottom:8px;line-height:1.3;font-weight:700;
  color:var(--accent);
  transition:color .25s ease;
}
.h-step__content p{font-size:0.78rem;line-height:1.5;}

@media (max-width:900px){
  .h-timeline{height:auto;}
  .h-timeline__wave{display:none;}
  .h-step{
    position:relative; left:0; top:auto; height:auto; transform:none;
    display:flex; flex-direction:row; align-items:flex-start; text-align:left;
    width:100%; gap:20px; margin-bottom:28px;
  }
  .h-step__node{position:static; transform:none; margin:0; flex-shrink:0; order:1;}
  .h-step:hover .h-step__node{transform:scale(1.08);}
  .h-step__content{position:static; transform:none; width:auto; text-align:left; order:2;}
  .h-step__content h3{font-size:1rem;}
  .h-step__content p{font-size:0.85rem;}
}


/* =========================================================
   SOBRE MÍ
========================================================= */
.sobremi{padding:100px 24px;}
.sobremi__inner{display:grid;grid-template-columns:0.8fr 1.2fr;gap:60px;align-items:start;max-width:var(--container);margin:0 auto;}
.sobremi__photo{position:sticky;top:110px;}
.sobremi__photo img{
  border-radius:var(--r-lg); aspect-ratio:4/5; object-fit:cover;
  border:1px solid rgba(255,189,0,0.25);
  box-shadow:0 0 60px rgba(255,189,0,0.1);
}
.sobremi__copy h2{font-size:clamp(2rem,3.6vw,2.8rem);margin-bottom:6px;}
.sobremi__lead{font-style:italic;color:var(--gold);font-size:1.1rem;margin-bottom:22px;display:block;}
.sobremi__copy p{font-size:0.96rem;line-height:1.65;margin-bottom:15px;}
.sobremi__copy p:last-child{margin-bottom:0;}

/* Alternating light background */
.sobremi--light{background:#F4EDDC;}
.sobremi--light .sobremi__copy h2{color:var(--hero-navy,#001B28);}
.sobremi--light .sobremi__copy p{color:#4A4030;}
.sobremi--light .eyebrow{color:#B8860B;}
.sobremi--light .sobremi__lead{color:#B8860B;}

@media (max-width:900px){
  .sobremi__inner{grid-template-columns:1fr;gap:32px;}
  .sobremi__photo{position:static;max-width:300px;margin:0 auto;}
}

/* =========================================================
   MURO DE EVIDENCIAS — infinite scrolling photo wall
========================================================= */
.muro{padding:100px 0 110px;text-align:center;overflow:hidden;}
.muro__eyebrow{font-size:clamp(1.6rem,3.2vw,1.95rem);letter-spacing:0.1em;}
.muro__title{font-size:clamp(1.9rem,3.6vw,2.6rem);max-width:700px;margin:0 auto 18px;}
.muro__sub{font-size:1rem;max-width:640px;margin:0 auto 60px;color:var(--ink-dim);}

/* Alternating light background */
.muro--light{background:#F4EDDC;}
.muro--light .muro__title{color:var(--hero-navy,#001B28);}
.muro--light .muro__sub{color:#4A4030;}
.muro--light .eyebrow{color:#B8860B;}
.muro--light .muro-photo{border-color:rgba(0,27,40,0.1);}

.muro__wall{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  max-width:var(--container); margin:0 auto; padding:0 24px;
  height:640px;
  -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image:linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.muro-col{
  position:relative; overflow:hidden; border-radius:14px;
}
.muro-col__track{
  display:flex; flex-direction:column; gap:20px;
  position:absolute; top:0; left:0; width:100%;
  animation-name:muroScroll;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  will-change:transform;
}
/* Pause on hover only for devices that truly have a mouse — on touch
   screens a tap can leave a "stuck" hover state that freezes the loop
   and makes photos look like they vanished. */
@media (hover:hover){
  .muro-col:hover .muro-col__track{animation-play-state:paused;}
}
@keyframes muroScroll{
  from{transform:translateY(0);}
  to{transform:translateY(-50%);}
}

.muro-photo{
  display:block; width:100%; border-radius:12px; overflow:hidden;
  cursor:pointer; border:1px solid var(--glass-border);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  flex-shrink:0;
  position:relative;
}
.muro-photo img{width:100%;height:auto;display:block;}
.muro-photo:hover{
  transform:scale(1.05);
  box-shadow:0 20px 44px rgba(0,0,0,0.45);
  border-color:rgba(255,189,0,0.4);
  z-index:2;
}
.muro-photo__caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:16px 16px 14px;
  background:linear-gradient(0deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.35) 60%, transparent 100%);
  color:#fff;
  display:flex; flex-direction:column; gap:3px;
  opacity:0; transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.muro-photo:hover .muro-photo__caption{opacity:1;transform:translateY(0);}
.muro-photo__caption-title{font-size:0.85rem;font-weight:700;line-height:1.3;}
.muro-photo__caption-meta{font-size:0.72rem;font-family:var(--mono);color:rgba(255,255,255,0.75);}

@media (max-width:1024px){
  .muro__wall{grid-template-columns:repeat(2,1fr);height:560px;gap:14px;}
  .muro-col__track{gap:14px;}
}
@media (max-width:900px){
  .muro{padding-top:48px;padding-bottom:52px;}
}

/* ---------- Mobile (<=640px): continuous HORIZONTAL marquee ----------
   Vertical columns don't work well on touch: scrolling the page past
   the section, or tapping a photo, could leave the loop looking paused
   or frozen. A single horizontal row keeps animating regardless of
   page scroll or taps, and is far more thumb-friendly. */
@media (max-width:640px){
  .muro{padding:56px 0 64px;}
  .muro__eyebrow{
    font-size:clamp(0.95rem,4.3vw,1.2rem); letter-spacing:0.04em; white-space:nowrap;
  }
  .muro__sub{margin-bottom:34px;}
  .muro__wall{
    display:block; height:auto; padding:0;
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
    mask-image:linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  }
  .muro__wall--horizontal{display:block;}
  .muro-hscroll__track{
    display:flex; gap:12px; align-items:stretch; width:max-content;
    animation:muroScrollX 32s linear infinite;
    will-change:transform;
  }
  .muro-photo--h{
    flex-shrink:0; width:170px; height:220px; border-radius:12px; overflow:hidden;
    border:1px solid var(--glass-border);
  }
  .muro--light .muro-photo--h{border-color:rgba(0,27,40,0.1);}
  .muro-photo--h img{width:100%;height:100%;object-fit:cover;display:block;}
  @keyframes muroScrollX{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
}
/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(0,7,11,0.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox__figure{
  max-width:min(88vw, 900px); max-height:82vh;
  display:flex; flex-direction:column; align-items:center; margin:0;
}
.lightbox__img{
  max-width:100%; max-height:68vh; border-radius:10px; object-fit:contain;
  box-shadow:0 30px 80px rgba(0,0,0,0.6);
}
.lightbox__caption{
  margin-top:18px; text-align:center; color:var(--ink);
  display:flex; flex-direction:column; gap:4px;
}
.lightbox__caption span:first-child{font-weight:700;font-size:1rem;}
.lightbox__caption-meta{font-size:0.85rem;color:var(--ink-faint);font-family:var(--mono);}
.lightbox__close{
  position:absolute; top:24px; right:28px;
  background:none; border:none; color:var(--ink); font-size:2.2rem; line-height:1;
  cursor:pointer; padding:6px 10px; transition:color .2s ease;
}
.lightbox__close:hover{color:var(--gold);}
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,0.06); border:1px solid var(--glass-border);
  color:var(--ink); width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem; cursor:pointer; transition:background .2s ease, border-color .2s ease;
}
.lightbox__nav:hover{background:rgba(255,189,0,0.15);border-color:rgba(255,189,0,0.4);}
.lightbox__prev{left:24px;}
.lightbox__next{right:24px;}
.lightbox__counter{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  font-family:var(--mono); font-size:0.8rem; color:var(--ink-faint);
}

@media (max-width:640px){
  .lightbox__nav{width:40px;height:40px;font-size:1.1rem;}
  .lightbox__prev{left:10px;}
  .lightbox__next{right:10px;}
}
.testimonios{padding:100px 24px;text-align:center;}
.testimonios .eyebrow{font-size:1.15rem;letter-spacing:0.1em;}
.testimonios__inner{max-width:var(--container);margin:0 auto;}
.testimonios__title{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-bottom:56px;max-width:var(--container);margin-left:auto;margin-right:auto;}
.testimonios__grid{
  max-width:var(--container); margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);gap:26px;text-align:left;
}

.testi-card{
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,0.03);
  border:2px solid transparent;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.testi-card--gold{
  border-color:rgba(255,189,0,0.4);
  box-shadow:0 0 0 1px rgba(255,189,0,0.12) inset, 0 0 30px rgba(255,189,0,0.12);
}
.testi-card--blue{
  border-color:rgba(79,195,247,0.4);
  box-shadow:0 0 0 1px rgba(79,195,247,0.12) inset, 0 0 30px rgba(79,195,247,0.12);
}
.testi-card:hover{transform:translateY(-6px);}
.testi-card--gold:hover{box-shadow:0 0 0 1px rgba(255,189,0,0.25) inset, 0 0 46px rgba(255,189,0,0.28), 0 20px 40px rgba(0,0,0,0.35);}
.testi-card--blue:hover{box-shadow:0 0 0 1px rgba(79,195,247,0.25) inset, 0 0 46px rgba(79,195,247,0.28), 0 20px 40px rgba(0,0,0,0.35);}

.testi-card__video{
  position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; cursor:pointer;
  background:linear-gradient(150deg, var(--navy-2), var(--navy-0));
}
.testi-card--gold .testi-card__video{background:linear-gradient(150deg, rgba(255,189,0,0.16), var(--navy-2) 60%, var(--navy-0));}
.testi-card--blue .testi-card__video{background:linear-gradient(150deg, rgba(79,195,247,0.16), var(--navy-2) 60%, var(--navy-0));}
/* Real frame grabbed live from the video file itself — fades in once captured */
.testi-card__framegrab{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  opacity:0; transition:opacity .4s ease;
}
.testi-card__framegrab.is-ready{opacity:1;}
/* Safety-net fallback — only shown if the video file itself fails to load */
.testi-card__video.no-poster::before{
  content:attr(data-name);
  position:absolute; top:50%; left:0; right:0; transform:translateY(-46px);
  text-align:center;
  font-family:var(--serif); font-size:1.5rem; font-weight:700;
  color:rgba(255,255,255,0.5);
  letter-spacing:0.01em;
}
.testi-card__video.no-poster::after{
  content:'Toca para ver el testimonio';
  position:absolute; bottom:16px; left:0; right:0; text-align:center;
  font-family:var(--mono); font-size:0.65rem; letter-spacing:0.08em; text-transform:uppercase;
  color:rgba(255,255,255,0.4);
}
.testi-card__play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:58px; height:58px; border-radius:50%;
  background:rgba(255,255,255,0.12); backdrop-filter:blur(6px);
  border:2px solid rgba(255,255,255,0.55);
  display:flex; align-items:center; justify-content:center;
  color:#fff; cursor:pointer;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.testi-card__play svg{width:22px;height:22px;margin-left:3px;}
.testi-card--gold .testi-card__play{border-color:rgba(255,189,0,0.65);}
.testi-card--blue .testi-card__play{border-color:rgba(79,195,247,0.65);}
.testi-card__video:hover .testi-card__play{transform:translate(-50%,-50%) scale(1.1);}
.testi-card--gold:hover .testi-card__play{background:rgba(255,189,0,0.9);color:var(--navy-0);}
.testi-card--blue:hover .testi-card__play{background:rgba(79,195,247,0.9);color:var(--navy-0);}
.testi-card__video .testi-card__realvideo{
  position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; background:#000;
}
.testi-card__body{padding:22px 22px 26px;}
.testi-card__body h3{
  font-size:1.02rem; margin-bottom:10px; color:var(--ink);
}
.testi-card__body h3 span{
  display:block; font-size:0.72rem; font-weight:500; letter-spacing:0.03em;
  color:var(--gold); margin-top:3px; text-transform:uppercase; font-family:var(--mono);
}
.testi-card__body p{font-style:italic;color:var(--ink-dim);font-size:0.92rem;line-height:1.55;}

@media (max-width:900px){.testimonios__grid{grid-template-columns:1fr;gap:18px;}}

/* =========================================================
   FAQ — minimalist premium accordion
========================================================= */
.faq{padding:100px 24px;}
.faq__inner{max-width:900px;margin:0 auto;}
.faq__eyebrow{font-size:1.15rem;letter-spacing:0.1em;}
.faq__title{
  text-align:center;font-size:clamp(1.6rem,3.4vw,2.3rem);margin-bottom:56px;
  white-space:nowrap;
}

.faq__list{display:flex;flex-direction:column;gap:14px;}

.faq-item{
  background:rgba(255,255,255,0.03);
  border:1px solid var(--glass-border);
  border-radius:14px;
  transition:border-color .2s ease, background .2s ease;
}
.faq-item:hover{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.14);}
.faq-item.is-open{border-color:rgba(255,189,0,0.35);}

/* Alternating light background */
.faq--light{background:#F4EDDC;}
.faq--light .faq__title{color:var(--hero-navy,#001B28);}
.faq--light .eyebrow{color:#B8860B;}
.faq--light .faq-item{background:rgba(255,255,255,0.5);border-color:rgba(0,27,40,0.1);}
.faq--light .faq-item:hover{background:rgba(255,255,255,0.75);border-color:rgba(0,27,40,0.16);}
.faq--light .faq-item.is-open{border-color:rgba(184,134,11,0.4);}
.faq--light .faq-item__q{color:#001B28;}
.faq--light .faq-item__icon::before, .faq--light .faq-item__icon::after{background:#B8860B;}
.faq--light .faq-item__panel-inner p{color:#4A4030;}

.faq-item__header{
  all:unset;
  box-sizing:border-box;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  width:100%; padding:26px 28px;
  cursor:pointer;
}
.faq-item__q{
  font-size:1.05rem; font-weight:700; color:var(--ink); line-height:1.4; text-align:left;
}
.faq-item__icon{
  position:relative; flex-shrink:0; width:22px; height:22px;
}
.faq-item__icon::before, .faq-item__icon::after{
  content:""; position:absolute; top:50%; left:50%;
  background:var(--gold);
  transform:translate(-50%,-50%);
  transition:transform .25s ease;
}
.faq-item__icon::before{width:14px;height:2px;}
.faq-item__icon::after{width:2px;height:14px;}
.faq-item.is-open .faq-item__icon::after{transform:translate(-50%,-50%) rotate(90deg) scale(0);}
.faq-item.is-open .faq-item__icon::before{transform:translate(-50%,-50%) rotate(180deg);}

.faq-item__panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .28s ease;
}
.faq-item.is-open .faq-item__panel{grid-template-rows:1fr;}
.faq-item__panel-inner{overflow:hidden;}
.faq-item__panel-inner p{
  padding:0 28px 26px; font-size:0.95rem; line-height:1.7; color:var(--ink-dim);
  max-width:680px;
}

@media (max-width:640px){
  .faq__title{white-space:normal;}
  .faq-item__header{padding:20px 20px;}
  .faq-item__q{font-size:0.98rem;}
  .faq-item__panel-inner p{padding:0 20px 22px;}
}


/* =========================================================
   AGENDA
========================================================= */
.agenda{padding:120px 24px 140px;text-align:center;position:relative;}
.agenda__inner{max-width:760px;margin:0 auto;position:relative;z-index:1;}
.agenda__inner h2{font-size:clamp(2rem,4.2vw,3rem);margin-bottom:20px;}
.agenda__lead{font-size:1.05rem;margin-bottom:38px;}

/* Alternating light background — follows FAQ (dark) */
.agenda__eyebrow{font-size:1.15rem;letter-spacing:0.1em;}
.agenda__title-solid{color:var(--ink);}

.agenda__calendly-wrap{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .35s ease;
}
.agenda__calendly-wrap.is-open{grid-template-rows:1fr;}
.agenda__calendly-inner{overflow:hidden;}
.agenda__calendly-inner > div{
  padding:36px 24px 0; max-width:1300px; margin:0 auto;
}
.agenda__calendly-inner .calendly-inline-widget{border-radius:16px;overflow:hidden;margin:0 auto;}
.agenda__calendly-inner .calendly-inline-widget iframe{width:100% !important;height:100% !important;border:none;}
/* NOTE: do not force a fixed height here — the widget's height is set and
   kept in sync dynamically by script.js (initial estimate + the real
   calendly.page_height postMessage). A hardcoded height was previously
   overriding that logic and causing an internal scrollbar on mobile. */

/* =========================================================
   FOOTER — premium, 4 columns
   Light cream background (brand palette) — this also naturally
   continues the site's strict dark/light alternation after the
   dark Agenda section, instead of two dark sections back to back.
========================================================= */
.footer{
  padding:90px 24px 0;
  position:relative;
  background:#F4EDDC;
  border-top:2px solid var(--gold);
}
.footer > *{position:relative;z-index:1;}
.footer__inner{
  max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 2fr;gap:60px;
  padding-bottom:56px;
}
.footer__brand{display:flex;flex-direction:column;}
/* The logo file is white — invert it so it reads dark on this light background */
.footer__logo{width:100%;max-width:280px;height:auto;margin-bottom:26px;filter:invert(1);}
.footer__social{display:flex;gap:12px;}
.footer__social-icon{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(0,27,40,0.15);
  color:#4A4030;
  transition:color .2s ease, border-color .2s ease, transform .2s ease;
}
.footer__social-icon svg{width:17px;height:17px;}
.footer__social-icon:hover{color:#B8860B;border-color:rgba(184,134,11,0.5);transform:translateY(-2px);}

.footer__col h4{
  font-family:var(--mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.04em;
  color:#B8860B;margin-bottom:22px;font-weight:600;
}
.footer__col a{display:block;margin-bottom:14px;font-size:0.9rem;color:#4A4030;transition:color .2s;}
.footer__col a:hover{color:#B8860B;}
.footer__location{display:block;font-size:0.9rem;color:#5A5140;margin-top:4px;}

.footer__toolscontact{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-content:start;}
.footer__toolscontact .footer__tagline{grid-column:1 / -1;}
.footer__tagline{
  font-size:0.92rem;line-height:1.6;color:#5A5140;font-style:italic;
  margin-top:32px;padding-top:28px;border-top:1px solid rgba(0,27,40,0.12);
  max-width:420px;
}

.footer__legal{
  max-width:var(--container);margin:0 auto;
  border-top:1px solid rgba(0,27,40,0.12);
  padding:28px 0 40px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  font-size:0.8rem;color:#5A5140;
}
.footer__legal-links{display:flex;gap:26px;flex-wrap:wrap;}
.footer__legal-links a{color:#5A5140;transition:color .2s;}
.footer__legal-links a:hover{color:#B8860B;}

@media (max-width:900px){
  .footer__inner{grid-template-columns:1fr 1fr;row-gap:44px;}
  .footer__brand{grid-column:1 / -1;}
  .footer__logo{max-width:220px;}
  .footer__toolscontact{grid-column:1 / -1;}
}
@media (max-width:560px){
  .footer__inner{grid-template-columns:1fr;}
  .footer__toolscontact{grid-template-columns:1fr;gap:36px;}
  .footer__legal{flex-direction:column;align-items:flex-start;}
  .footer__col a{padding:5px 0;margin-bottom:6px;}
}

/* ---------- Mobile-only compact footer (~50% shorter) ----------
   Desktop footer above is untouched. On mobile the same content/
   design stays, just with far tighter vertical rhythm so it doesn't
   force a long extra scroll. */
@media (max-width:900px){
  .footer{padding:44px 20px 0;}
  .footer__inner{gap:14px; row-gap:26px; padding-bottom:26px;}
  .footer__logo{margin-bottom:12px;max-width:180px;}
  .footer__social{gap:10px;}
  .footer__col h4{margin-bottom:8px;}
  .footer__col a{margin-bottom:2px;line-height:1.5;font-size:0.88rem;}
  .footer__location{margin-top:2px;}
  .footer__toolscontact{gap:16px;}
  .footer__tagline{margin-top:14px;padding-top:14px;font-size:0.85rem;}
  .footer__legal{padding:14px 0 24px;font-size:0.75rem;gap:8px;}
  .footer__legal-links{gap:16px;}
}
@media (max-width:560px){
  .footer__col a{padding:4px 0;margin-bottom:0;}
}

/* =========================================================
   MOBILE MENU — premium drawer (replaces the old plain-text one)
========================================================= */
@media (max-width:900px){
  /* The desktop text nav is simply hidden on mobile — .mobmenu below
     is the real mobile navigation now, so desktop markup/behavior
     stays completely untouched. */
  .nav__links{display:none;}
  .nav__burger{display:flex;}
}

.mobmenu{
  display:none;
  position:fixed; top:0; right:-100%; height:100vh; height:100dvh;
  width:86%; max-width:360px;
  z-index:99;
  background:
    radial-gradient(ellipse 500px 300px at 100% 0%, rgba(255,189,0,0.06), transparent 60%),
    linear-gradient(165deg, var(--navy-2) 0%, var(--navy-0) 70%);
  border-left:1px solid var(--glass-border);
  box-shadow:-20px 0 60px rgba(0,0,0,0.4);
  transition:right .4s cubic-bezier(.22,.9,.32,1);
}
.mobmenu.is-open{right:0;}
.mobmenu__scroll{height:100%;overflow-y:auto;padding:90px 26px 40px;}

/* ---- profile header ---- */
.mobmenu__profile{position:relative;padding-bottom:22px;margin-bottom:18px;}
.mobmenu__photo{
  width:84px;height:84px;border-radius:50%;object-fit:cover;
  border:2px solid var(--gold);box-shadow:0 0 24px rgba(255,189,0,0.25);
  display:block;margin-bottom:14px;
}
.mobmenu__id{display:flex;flex-direction:column;}
.mobmenu__name{font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--ink);}
.mobmenu__role{font-size:0.78rem;color:var(--gold);margin-top:2px;}
.mobmenu__divider{
  position:absolute; left:0; bottom:0; width:46px; height:3px; border-radius:3px;
  background:linear-gradient(90deg, var(--gold), var(--gold-2));
}

/* ---- grouped links ---- */
.mobmenu__nav{display:flex;flex-direction:column;}
.mobmenu__group-title{
  font-family:var(--mono); font-size:0.68rem; font-weight:600; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--gold);
  margin:22px 0 6px; opacity:0.85;
}
.mobmenu__nav .mobmenu__group-title:first-child{margin-top:4px;}
.mobmenu__link{
  display:flex; align-items:center; gap:14px;
  padding:13px 10px; border-radius:12px;
  transition:background .2s ease, transform .15s ease;
}
.mobmenu__link-icon{
  flex-shrink:0; width:36px; height:36px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,189,0,0.1); color:var(--gold);
}
.mobmenu__link-icon svg{width:18px;height:18px;}
.mobmenu__link-label{flex:1;font-size:0.96rem;font-weight:600;color:var(--ink);}
.mobmenu__link-arrow{
  color:var(--ink-faint); font-size:0.9rem; opacity:0; transform:translateX(-4px);
  transition:opacity .2s ease, transform .2s ease;
}
.mobmenu__link:hover, .mobmenu__link:active{background:rgba(255,255,255,0.05);}
.mobmenu__link:hover .mobmenu__link-arrow, .mobmenu__link:active .mobmenu__link-arrow{
  opacity:1; transform:translateX(0);
}
.mobmenu__link:active{transform:scale(0.98);}

/* ---- CTA + social ---- */
.mobmenu__cta{
  display:block; text-align:center; margin:28px 0 20px;
  padding:16px 20px; border-radius:100px; font-weight:700; font-size:0.92rem;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:var(--navy-0);
  box-shadow:0 0 30px rgba(255,189,0,0.25), 0 8px 20px rgba(0,0,0,0.3);
}
.mobmenu__social{display:flex; justify-content:center; gap:12px;}
.mobmenu__social-icon{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--glass-border); color:var(--ink-dim);
  transition:color .2s ease, border-color .2s ease, transform .2s ease;
}
.mobmenu__social-icon svg{width:16px;height:16px;}
.mobmenu__social-icon:hover{color:var(--gold);border-color:rgba(255,189,0,0.5);transform:translateY(-2px);}

/* ---- staggered entrance (only while opening on mobile) ---- */
@media (max-width:900px){
  .mobmenu{display:block;}
  .mobmenu__profile, .mobmenu__group-title, .mobmenu__link, .mobmenu__cta, .mobmenu__social{
    opacity:0; transform:translateX(14px);
    transition:opacity .35s ease, transform .35s ease, background .2s ease, right .4s ease;
  }
  .mobmenu.is-open .mobmenu__profile{transition-delay:.08s;}
  .mobmenu.is-open .mobmenu__nav .mobmenu__group-title:nth-of-type(1){transition-delay:.12s;}
  .mobmenu.is-open .mobmenu__nav .mobmenu__group-title:nth-of-type(2){transition-delay:.22s;}
  .mobmenu.is-open .mobmenu__nav .mobmenu__group-title:nth-of-type(3){transition-delay:.30s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(1){transition-delay:.15s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(2){transition-delay:.18s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(3){transition-delay:.21s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(4){transition-delay:.24s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(5){transition-delay:.27s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(6){transition-delay:.30s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(7){transition-delay:.33s;}
  .mobmenu.is-open .mobmenu__link:nth-of-type(8){transition-delay:.36s;}
  .mobmenu.is-open .mobmenu__cta{transition-delay:.38s;}
  .mobmenu.is-open .mobmenu__social{transition-delay:.42s;}
  .mobmenu.is-open .mobmenu__profile,
  .mobmenu.is-open .mobmenu__group-title,
  .mobmenu.is-open .mobmenu__link,
  .mobmenu.is-open .mobmenu__cta,
  .mobmenu.is-open .mobmenu__social{
    opacity:1; transform:translateX(0);
  }
}

/* =========================================================
   MOBILE APP-STYLE BOTTOM TAB BAR
========================================================= */
.tabbar{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:110;
  background:rgba(0,11,18,0.85);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--glass-border);
  box-shadow:0 -6px 24px rgba(0,0,0,0.35);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  justify-content:space-between;
  align-items:center;
  gap:8px;
}
.tabbar__item{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  color:var(--ink-faint); font-size:0.68rem; font-weight:600;
  padding:6px 14px; border-radius:14px; transition:color .2s ease;
}
.tabbar__item svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tabbar__item.is-active{color:var(--gold);}
.tabbar__item.is-active svg{filter:drop-shadow(0 0 6px rgba(255,189,0,0.6));}
.tabbar__item--cta{
  flex-direction:row; flex:1.7; justify-content:center; gap:8px;
  padding:12px 16px; border-radius:100px;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:var(--navy-0);
  box-shadow:0 0 20px rgba(255,189,0,0.35);
  font-size:0.78rem; white-space:nowrap;
}
.tabbar__item--cta svg{stroke:var(--navy-0);width:19px;height:19px;}

@media (max-width:900px){
  .tabbar{display:flex;}
  .nav__scrimbg{display:block;}
  body{padding-bottom:82px;}
  /* App-like rounded generous mobile spacing */
  .realidad, .calculadora, .metodo, .proceso, .sobremi, .testimonios, .faq{
    padding-left:20px; padding-right:20px;
  }
  .neon-card{border-radius:18px;padding:22px 18px;}
  .btn{padding:16px 26px;}
  .btn--lg{padding:18px 34px;}

  /* ===================================================
     Tighter vertical rhythm — ~35-45% less than desktop.
     The mobile version is compact/app-like on purpose,
     not a shrunk copy of the desktop layout.
  =================================================== */

  /* La Realidad */
  .realidad{padding-top:44px;padding-bottom:48px;}
  .realidad__kicker{margin-bottom:10px;}
  .realidad__title{margin-bottom:28px;}
  .realidad__grid{gap:14px;}

  /* PPA Method */
  .metodo{padding-top:48px;padding-bottom:48px;}
  .metodo__kicker{margin-bottom:8px;}
  .metodo__lead{margin:10px auto 28px;}
  .metodo__pillars{gap:14px;}

  /* Cómo trabajo — timeline */
  .proceso{padding-top:48px;padding-bottom:52px;text-align:left;}
  .proceso__kicker{margin-bottom:10px;}
  .proceso__title{margin:0 0 32px;max-width:none;}
  /* IMPORTANT: .h-step__node and .h-step__content must stay position:static
     on mobile. The desktop rules `.h-step--down .h-step__node{top:66%}` and
     `.h-step--down .h-step__content{top:calc(66% + 46px)}` are unconditional
     (used for the absolute desktop layout) — switching these to
     position:relative on mobile would silently reactivate those top offsets
     and scramble the whole timeline. Only touch size/spacing here. */
  .h-timeline{position:relative;}
  .h-timeline::before{
    content:''; position:absolute; top:26px; bottom:26px; left:26px; width:2px;
    background:linear-gradient(180deg, rgba(255,189,0,0.5), rgba(79,195,247,0.5));
    z-index:-1;
  }
  .h-step{margin-bottom:20px;gap:16px;}
  .h-step:last-child{margin-bottom:0;}
  .h-step__node{width:52px;height:52px;}
  .h-step__node svg{width:22px;height:22px;}

  /* Calculadora */
  .calculadora{padding-top:48px;padding-bottom:48px;}
  .calculadora__kicker{margin-bottom:8px;}
  .calculadora__head{margin-bottom:26px;}
  .calculadora__sub{margin-top:10px;}

  /* Sobre mí */
  .sobremi{padding-top:48px;padding-bottom:48px;}
  .sobremi__inner{gap:22px;}
  .sobremi__copy h2{margin-bottom:4px;}
  .sobremi__lead{margin-bottom:14px;}
  .sobremi__copy p{margin-bottom:11px;}

  /* Muro de Evidencias */
  .muro__sub{margin-bottom:28px;}

  /* Testimonios */
  .testimonios{padding-top:48px;padding-bottom:48px;}
  .testimonios__title{margin-bottom:28px;}
  .testi-card__body{padding:16px 18px 20px;}

  /* FAQ */
  .faq{padding-top:48px;padding-bottom:48px;}
  .faq__eyebrow{margin-bottom:8px;}
  .faq__title{margin-bottom:28px;}
  .faq__list{gap:10px;}

  /* Agenda / CTA final — everything reads as one compact block */
  .agenda{padding:52px 20px 64px;}
  .agenda__eyebrow{margin-bottom:8px;}
  .agenda__inner h2{margin-bottom:12px;}
  .agenda__lead{margin-bottom:24px;}
  .agenda__calendly-inner > div{padding-top:20px;}
}
