:root{
  color-scheme:light;
  --navy:#08194A;
  --navy-2:#0C2560;
  --blue:#1140A8;
  --blue-bright:#1E6BE6;
  --yellow:#FFC61E;
  --yellow-deep:#E9A100;
  --green:#12BE7B;
  --green-deep:#0C955F;
  --wa:#25D366;
  --ink:#0B1A3A;
  --ink-soft:#55638B;
  --ground:#EDF1FB;
  --surface:#FFFFFF;
  --surface-2:#F5F8FF;
  --line:#DAE2F4;
  --radius:18px;
  /* sombras multicapa (varios tonos apilados) en vez de una sola sombra plana — da sensación
     de profundidad "táctil" en vez de una simple silueta */
  --shadow-sm:0 0 0 .5px rgba(11,26,58,.04), 0 2px 6px rgba(11,26,58,.05), 0 8px 20px -8px rgba(11,26,58,.12);
  --shadow:0 0 0 .5px rgba(11,26,58,.05), 0 4px 16px rgba(11,26,58,.07), 0 24px 48px -16px rgba(11,26,58,.22);
  --maxw:1140px;
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --font-body:"Mulish",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  /* progreso de la transición del hero (0 = arriba del todo, 1 = cortina asentada). Por defecto
     asentada, para que sin JS / con "reducir movimiento" la página se vea ya en su estado final. */
  --scrollp:1;
}
/* La página usa siempre la paleta clara (azul + blanco), sin importar el tema del dispositivo. */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--font-body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:900; line-height:1.05; margin:0; text-wrap:balance; letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
img{display:block; max-width:100%}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}
.section{padding:74px 0}
.eyebrow{
  font-family:var(--font-display); font-weight:800; font-size:.8rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--blue-bright);
  display:inline-block; margin-bottom:14px;
}
.section h2{font-size:clamp(1.8rem,1.1rem + 2.6vw,2.75rem); color:var(--ink)}
.section .intro{color:var(--ink-soft); max-width:56ch; margin-top:12px; font-size:1.05rem}
.prose{max-width:64ch; margin-top:16px; color:var(--ink-soft); font-size:1.02rem}
.prose p + p{margin-top:12px}
.prose strong{color:var(--ink)}

/* buttons */
.btn{
  --_bg:var(--wa); --_fg:#062b1c;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display); font-weight:800; font-size:1rem;
  padding:15px 26px; border-radius:14px; text-decoration:none; cursor:pointer;
  background:var(--_bg); color:var(--_fg); border:0;
  /* sombra multicapa + brillo interior arriba: da una sensación "táctil", de botón real,
     en vez de una silueta plana */
  box-shadow:
    0 1px 2px rgba(6,60,36,.20),
    0 4px 8px rgba(6,60,36,.16),
    0 10px 16px -4px rgba(6,60,36,.14),
    0 22px 28px -12px rgba(6,60,36,.12),
    inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:
    0 2px 3px rgba(6,60,36,.22),
    0 8px 14px rgba(6,60,36,.18),
    0 16px 26px -6px rgba(6,60,36,.16),
    0 30px 36px -14px rgba(6,60,36,.14),
    inset 0 1px 0 rgba(255,255,255,.45);
}
.btn svg{width:20px;height:20px;flex:none}
.btn.alt{
  --_bg:var(--yellow); --_fg:#3d2c00;
  box-shadow:
    0 1px 2px rgba(90,64,0,.20),
    0 4px 8px rgba(90,64,0,.16),
    0 10px 16px -4px rgba(90,64,0,.14),
    0 22px 28px -12px rgba(90,64,0,.12),
    inset 0 1px 0 rgba(255,255,255,.45);
}
.btn.alt:hover{box-shadow:0 16px 30px rgba(255,198,30,.44)}
.btn.ghost{--_bg:transparent; --_fg:#fff; box-shadow:none; border:2px solid rgba(255,255,255,.35)}
.btn.ghost:hover{border-color:#fff; background:rgba(255,255,255,.08)}
.btn.call{--_bg:transparent; --_fg:var(--blue); box-shadow:none; border:2px solid var(--line)}
.btn.call:hover{border-color:var(--blue-bright); color:var(--blue-bright); transform:translateY(-3px)}
.btn.sm{padding:11px 18px; font-size:.9rem; border-radius:11px}

/* "responde rápido" microcopy */
.quick{display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-size:.9rem; font-weight:700; color:var(--green-deep)}
.quick::before{content:""; width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 28%,transparent)}
.hero .quick{color:#8ff0c8}
.hero .quick::before{background:#8ff0c8; box-shadow:0 0 0 4px rgba(143,240,200,.28)}

/* header */
header.nav{position:sticky; top:0; z-index:60; background:color-mix(in srgb,var(--surface) 88%,transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:12px; padding-bottom:12px}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--font-display); font-weight:900; font-size:1.12rem; color:var(--ink); letter-spacing:-.02em; text-decoration:none}
.brand .m{width:38px; height:38px; border-radius:11px; flex:none; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue-bright),var(--blue)); color:#fff; font-size:.95rem}
.brand small{display:block; font-family:var(--font-body); font-weight:600; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft)}

/* hero */
.hero{position:relative; overflow:hidden; background:radial-gradient(120% 120% at 85% 0%, var(--navy-2), var(--navy) 55%, #061236 100%); color:#fff}
.hero .wrap{
  position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; padding:66px 20px 100px;
  transform:scale(calc(1 + var(--scrollp) * 0.07));
  filter:blur(calc(var(--scrollp) * 4px));
  will-change:transform, filter;
}
.hero-copy{will-change:transform,opacity}

/* velo que oscurece el hero a medida que la cortina de abajo sube y lo cubre */
.hero-fade{
  position:absolute; inset:0; z-index:3; pointer-events:none;
  background:linear-gradient(180deg, transparent 25%, #020714 100%);
  opacity:calc(var(--scrollp) * .62);
}

/* onda: el borde curvo (no recto) entre el hero y la sección siguiente */
.hero-wave{position:absolute; left:0; right:0; bottom:-1px; z-index:4; line-height:0; pointer-events:none; overflow:hidden}
.hero-wave svg{display:block; width:112%; margin-left:-6%; height:96px; animation:waveDrift 15s ease-in-out infinite alternate}
.hero-wave path{fill:var(--ground)}
@keyframes waveDrift{from{transform:translateX(0)} to{transform:translateX(3.5%)}}

/* cortina: la siguiente sección "llega" sobre el hero al hacer scroll — crece desde un 93% y la
   sombra se asienta a medida que --scrollp pasa de 0 a 1 (la curva la aporta la onda de arriba) */
.curtain{
  position:relative; z-index:2; background:var(--ground);
  margin-top:-1px;
  transform-origin:top center;
  transform:translateY(calc((1 - var(--scrollp)) * 30px)) scale(calc(0.96 + var(--scrollp) * 0.04));
  box-shadow:0 calc(-10px - var(--scrollp) * 8px) calc(30px + var(--scrollp) * 26px) calc(-14px - var(--scrollp) * 6px) rgba(3,10,32, calc(.16 + var(--scrollp) * .16));
  will-change:transform, box-shadow;
}
.hero .eyebrow{color:var(--yellow); line-height:1.5}
.hero h1{font-size:clamp(2.3rem,1.2rem + 4.3vw,3.8rem); color:#fff}
.hero h1 .hl{position:relative; white-space:nowrap; color:var(--navy)}
.hero h1 .hl::before{content:""; position:absolute; inset:-2px -10px; background:var(--yellow); border-radius:8px; transform:rotate(-1.4deg); z-index:-1}
.hero .sub{margin-top:20px; font-size:1.15rem; color:#cdd9f2; max-width:44ch}
.hero .cta{display:flex; flex-wrap:wrap; gap:13px; margin-top:28px}

.shot{position:relative; justify-self:center}
.shot .frame{
  position:relative; width:min(400px,80vw); aspect-ratio:4/5; border-radius:26px; overflow:hidden;
  background:linear-gradient(160deg,var(--blue-bright),var(--blue)); border:6px solid rgba(255,255,255,.14);
  box-shadow:0 30px 60px rgba(3,10,32,.55);
}
.shot .face{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%}
.shot .ph{position:absolute; inset:0; display:grid; place-content:center; text-align:center; color:rgba(255,255,255,.9); gap:12px; padding:24px}
.shot .ph svg{width:96px; height:96px; margin:0 auto; opacity:.7}
.shot .ph b{font-family:var(--font-display); font-weight:800; letter-spacing:.14em; font-size:.78rem}
.shot .ring{position:absolute; inset:-16px; border:3px dashed var(--yellow); border-radius:32px; opacity:.5}
.shot .price-badge{
  position:absolute; right:-14px; bottom:26px; background:var(--yellow); color:#3d2c00;
  font-family:var(--font-display); font-weight:900; padding:12px 16px; border-radius:14px; line-height:1;
  box-shadow:var(--shadow); text-align:center;
}
.shot .price-badge span{display:block; font-family:var(--font-body); font-weight:700; font-size:.62rem; letter-spacing:.1em; margin-bottom:3px}
.shot .price-badge b{font-size:1.5rem}
.spark{position:absolute; width:22px; height:22px; background:var(--yellow); clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%); animation:tw 3s ease-in-out infinite}
.spark.s2{width:14px; background:#fff; animation-delay:.8s}
.spark.s3{width:28px; animation-delay:1.6s}
@keyframes tw{0%,100%{opacity:.25; transform:scale(.7) rotate(0)}50%{opacity:1; transform:scale(1.1) rotate(45deg)}}

/* facts */
.facts{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; position:relative; z-index:5}
.fact{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; text-align:center; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease}
.fact:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.fact b{font-family:var(--font-display); font-weight:900; font-size:1.9rem; color:var(--blue-bright); display:block; line-height:1}
.fact span{font-size:.86rem; color:var(--ink-soft); font-weight:600}

/* plans */
#planes{background:var(--surface-2)}
.plangrid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:38px}
.plan{
  position:relative; display:flex; flex-direction:column; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px 24px;
  box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.plan:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--blue-bright)}
.plan.feat{border:2px solid var(--yellow); box-shadow:0 20px 44px rgba(233,161,0,.22)}
.plan .ribbon{position:absolute; top:-13px; left:22px; background:var(--yellow); color:#3d2c00; font-family:var(--font-display); font-weight:900; font-size:.72rem; letter-spacing:.08em; padding:5px 12px; border-radius:8px; text-transform:uppercase}
.plan .ops{display:flex; gap:6px; margin-bottom:12px}
.plan .ops i{font-style:normal; font-family:var(--font-display); font-weight:800; font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; padding:4px 9px; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-soft)}
.plan h3{font-family:var(--font-display); font-weight:900; font-size:1.35rem; color:var(--ink)}
.plan .kicker{font-size:.84rem; color:var(--ink-soft); font-weight:600; margin-top:2px}
.plan .price{margin:16px 0 4px; display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 6px}
.plan .price .was{font-size:.9rem; color:var(--ink-soft); text-decoration:line-through; font-weight:700}
.plan .price b{font-family:var(--font-display); font-weight:900; font-size:2.25rem; color:var(--ink); line-height:1}
.plan .price .per{font-size:.8rem; color:var(--ink-soft); font-weight:700}
.plan .fix{font-size:.78rem; font-weight:700; color:var(--green-deep)}
.plan ul{list-style:none; padding:0; margin:16px 0; display:grid; gap:9px; flex:1}
.plan li{position:relative; padding-left:26px; font-size:.92rem; color:var(--ink)}
.plan li::before{content:""; position:absolute; left:0; top:3px; width:17px; height:17px; border-radius:50%; background:color-mix(in srgb,var(--green) 20%,transparent); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312BE7B' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E"); background-size:12px; background-repeat:no-repeat; background-position:center}
.plan .btn{width:100%}
.plans-note{margin-top:18px; font-size:.82rem; color:var(--ink-soft); max-width:66ch}

/* condensed plan list (páginas de municipio) */
.planlist{margin-top:30px; display:grid; gap:12px}
.planrow{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px;
  background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px 20px;
}
.planrow .n{font-family:var(--font-display); font-weight:900; color:var(--ink); font-size:1.05rem}
.planrow .d{color:var(--ink-soft); font-size:.9rem; flex:1; min-width:180px}
.planrow .p{font-family:var(--font-display); font-weight:900; color:var(--blue-bright); font-size:1.1rem}

/* benefits */
.benefits{background:var(--surface)}
.bgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:34px}
.ben{display:flex; gap:13px; align-items:flex-start; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:16px 18px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.ben:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm); border-color:var(--blue-bright)}
.ben svg{width:24px; height:24px; flex:none; color:var(--blue-bright)}
.ben b{font-family:var(--font-display); font-weight:800; font-size:.98rem; display:block; margin-bottom:2px; color:var(--ink)}
.ben span{font-size:.86rem; color:var(--ink-soft)}

/* steps */
.steps{counter-reset:s; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:38px}
.step{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.step:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--blue-bright)}
.step::before{counter-increment:s; content:counter(s); display:grid; place-items:center; width:40px; height:40px; border-radius:11px; background:var(--yellow); color:#3d2c00; font-family:var(--font-display); font-weight:900; font-size:1.15rem; margin-bottom:14px}
.step h3{font-size:1.06rem; color:var(--ink); font-weight:800; margin-bottom:5px}
.step p{font-size:.94rem; color:var(--ink-soft)}

/* coverage + faq */
.split{display:grid; grid-template-columns:1fr 1fr; gap:44px}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
.chips span,.chips a{background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:.85rem; font-weight:600; text-decoration:none; color:var(--ink); transition:border-color .15s ease, color .15s ease}
.chips a:hover{border-color:var(--blue-bright); color:var(--blue-bright)}
details{border-bottom:1px solid var(--line); padding:15px 0}
summary{cursor:pointer; font-family:var(--font-display); font-weight:800; color:var(--ink); list-style:none; display:flex; justify-content:space-between; gap:12px; font-size:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; color:var(--blue-bright); font-weight:700}
details[open] summary::after{content:"–"}
details p{margin-top:9px; color:var(--ink-soft); font-size:.94rem}

/* municipios: enlaces internos */
.covlinks{background:var(--surface)}
.covgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px; margin-top:30px}
.covcard{
  display:flex; align-items:center; gap:10px; text-decoration:none;
  background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:15px 16px;
  font-family:var(--font-display); font-weight:800; color:var(--ink); font-size:.98rem;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.covcard:hover{transform:translateY(-3px); border-color:var(--blue-bright); box-shadow:var(--shadow-sm)}
.covcard svg{width:18px; height:18px; flex:none; color:var(--blue-bright)}

/* franja WhatsApp intermedia */
.walink{background:linear-gradient(135deg, color-mix(in srgb,var(--green) 14%,var(--surface)), var(--surface))}
.walink .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding-top:34px; padding-bottom:34px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-sm); padding-left:28px; padding-right:28px}
.walink .t{font-family:var(--font-display); font-weight:900; font-size:1.15rem; color:var(--ink)}
.walink .t span{display:block; font-family:var(--font-body); font-weight:600; font-size:.9rem; color:var(--ink-soft); margin-top:3px}
.walink .acts{display:flex; flex-wrap:wrap; gap:10px}

/* mini-formulario de cobertura */
.covform{background:var(--surface-2)}
.covform form{display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; max-width:640px}
.covform input{
  flex:1; min-width:220px; font-family:var(--font-body); font-size:1rem;
  padding:15px 18px; border-radius:13px; border:1px solid var(--line); background:var(--surface); color:var(--ink);
}
.covform input:focus{outline:2px solid var(--blue-bright); outline-offset:1px; border-color:var(--blue-bright)}
.covform .hint{margin-top:12px; font-size:.85rem; color:var(--ink-soft)}

/* cta band */
.cta-band{background:linear-gradient(135deg,var(--green-deep),var(--green)); color:#fff; text-align:center}
.cta-band .wrap{padding:66px 20px}
.cta-band h2{color:#fff; font-size:clamp(1.7rem,1.1rem + 2.4vw,2.6rem)}
.cta-band p{color:rgba(255,255,255,.92); margin:12px auto 0; max-width:46ch}
.cta-band .cta{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:26px}
.cta-band .btn{
  --_bg:#fff; --_fg:var(--green-deep);
  box-shadow:0 3px 6px rgba(0,0,0,.14), 0 16px 30px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.7);
}
.cta-band .btn.call{--_bg:transparent; --_fg:#fff; border-color:rgba(255,255,255,.5)}
.cta-band .btn.call:hover{border-color:#fff; color:#fff}

/* footer */
footer.site{background:var(--navy); color:#c4d1ee; padding:40px 0 96px}
footer.site .wrap{display:flex; flex-wrap:wrap; gap:20px 40px; justify-content:space-between}
footer.site .brand{color:#fff}
footer.site .brand small{color:#8fa3ce}
footer.site a{color:#fff; font-weight:700}
footer.site p{font-size:.86rem; max-width:44ch}
footer.site nav{display:flex; flex-wrap:wrap; gap:6px 16px; font-size:.85rem}
footer.site nav a{font-weight:600; color:#c4d1ee}
footer.site nav a:hover{color:#fff}
.disclaimer{width:100%; font-size:.76rem; color:#8093bd; border-top:1px solid rgba(255,255,255,.1); padding-top:16px; margin-top:4px; max-width:none}

/* floating whatsapp */
/* pastilla flotante inferior: chip de marca + botón de WhatsApp, siempre visible */
.bottom-nav{
  position:fixed; left:50%; bottom:16px; z-index:70;
  display:flex; align-items:center; gap:8px;
  background:var(--surface); border-radius:999px; padding:7px 7px 7px 7px;
  box-shadow:
    0 0 0 .5px rgba(11,26,58,.06),
    0 4px 10px rgba(11,26,58,.10),
    0 20px 40px -14px rgba(11,26,58,.30),
    inset 0 1px 0 rgba(255,255,255,.8);
  animation:bnFloat 3.4s ease-in-out infinite;
}
@keyframes bnFloat{0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-6px)}}
.bn-chip{
  width:38px; height:38px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--blue-bright),var(--blue)); color:#fff;
  font-family:var(--font-display); font-weight:900; font-size:.92rem; letter-spacing:.01em;
}
.btn.sm.bn-btn{padding:11px 20px 11px 16px; border-radius:999px; font-size:.92rem}
.bn-btn svg{width:19px; height:19px}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* scroll progress */
.progress{position:fixed; left:0; top:0; height:3px; width:0; z-index:90; background:linear-gradient(90deg,var(--yellow),var(--green)); box-shadow:0 0 12px rgba(255,198,30,.5)}

/* scroll reveal */
html.js .reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.22,.68,.24,1); will-change:opacity,transform}
html.js .reveal.in{opacity:1; transform:none}
html.js .plan.reveal{transform:translateY(30px) scale(.98)}
html.js .plan.reveal.in{transform:none}
html.js .reveal.done{will-change:auto}

/* hero entrance */
@keyframes heroRise{from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:none}}
@keyframes heroFade{from{opacity:0} to{opacity:1}}
html.js .hero .eyebrow{animation:heroRise .55s .04s both}
html.js .hero h1{animation:heroRise .6s .13s both}
html.js .hero .sub{animation:heroRise .6s .24s both}
html.js .hero .cta{animation:heroRise .6s .34s both}
html.js .hero .shot{animation:heroFade .9s .1s both}

@media (prefers-reduced-motion:reduce){
  .spark,.bottom-nav,.hero-wave svg{animation:none}
  html.js .reveal{opacity:1 !important; transform:none !important; transition:none}
  html.js .hero .eyebrow,html.js .hero h1,html.js .hero .sub,html.js .hero .cta,html.js .hero .shot{animation:none}
  html.js .hero-copy{transform:none !important; opacity:1 !important}
  .progress{display:none}
}

@media (max-width:1000px){
  .plangrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:840px){
  /* en móvil el desenfoque tapaba el contenido — en su lugar el hero se desliza hacia arriba,
     se encoge un poco y se atenúa (sin blur) a medida que sube --scrollp */
  .hero .wrap{
    grid-template-columns:1fr; gap:34px; padding-top:44px; padding-bottom:66px; text-align:center;
    filter:none;
    transform:translateY(calc(var(--scrollp) * -34px)) scale(calc(1 - var(--scrollp) * 0.05));
    opacity:calc(1 - var(--scrollp) * 0.4);
  }
  .hero-wave svg{height:54px}
  .hero .eyebrow{display:block}
  .hero .cta,.hero .quick{justify-content:center}
  .hero .quick{display:inline-flex}
  .hero .sub{margin-left:auto; margin-right:auto}
  .shot{order:-1}
  .bgrid,.steps,.split{grid-template-columns:1fr}
  .walink .wrap{flex-direction:column; align-items:flex-start}
  .bn-btn .lbl{display:none}
  .btn.sm.bn-btn{padding:11px; border-radius:50%}
  .bottom-nav{bottom:14px}
  .section{padding:54px 0}
}
@media (max-width:640px){
  .plangrid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .facts{grid-template-columns:1fr}
  .brand small{display:none}
}
