/* LEAP · páginas de programa (/programas/*) */
:root{
  --teal:#2a5359; --teal-d:#1a3539; --teal-dd:#142a2e; --teal-m:#3a6d75;
  --teal-l:#e1f5ee; --teal-xl:#f0faf7;
  --yellow:#fcd700; --yellow-d:#e6c200;
  --white:#fff; --bg:#f4f6f5; --bg2:#edf4f4;
  --text:#1a2e31; --mid:#4a6366; --muted:#8aa5a8; --border:#d1e2e4;
  --head:'Montserrat',sans-serif; --body:'Lato',sans-serif;
  --max:1240px; --pad:clamp(1.25rem,5vw,4rem);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--text);background:var(--white);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--teal);text-decoration:none}
.brand-logo{height:26px;width:auto;object-fit:contain;align-self:flex-start}

/* ---------- NAV ---------- */
nav{position:sticky;top:0;z-index:60;background:rgba(20,42,46,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-links{display:flex;gap:1.5rem;align-items:center;list-style:none}
.nav-links a{font-family:var(--head);font-weight:600;font-size:.82rem;color:#c2d6d8;transition:color .18s}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--yellow)}
.nav-cta{background:var(--yellow);color:var(--teal-dd)!important;padding:.5rem 1.1rem;border-radius:30px;font-weight:700}
.nav-cta:hover{background:var(--yellow-d)}
@media(max-width:900px){.nav-links li:not(:last-child){display:none}}

/* ---------- HERO ---------- */
.p-hero{background:var(--teal-dd);color:#fff;position:relative;overflow:hidden}
.p-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 0%,rgba(252,215,0,.11),transparent 42%)}
.p-hero-inner{position:relative;z-index:1;max-width:var(--max);margin:0 auto;padding:clamp(2.8rem,6vw,5rem) var(--pad);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.crumb{font-family:var(--head);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.3rem}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--yellow)}
.p-kicker{display:flex;align-items:center;gap:.6rem;font-family:var(--head);font-weight:800;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow);margin-bottom:.9rem}
.p-kicker svg{width:22px;height:22px}
.p-hero h1{font-family:var(--head);font-weight:900;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.07;letter-spacing:-.02em;margin-bottom:1.2rem;max-width:18ch}
.p-hero h1 em{font-style:normal;color:var(--yellow)}
.standfirst{font-size:clamp(1.02rem,1.8vw,1.16rem);color:rgba(255,255,255,.78);max-width:54ch;font-weight:300;margin-bottom:1.7rem}
.facts{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin-bottom:2rem}
.facts li{font-family:var(--head);font-weight:700;font-size:.74rem;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:.42rem .9rem;border-radius:30px}
.facts li:first-child{background:rgba(252,215,0,.15);border-color:rgba(252,215,0,.42);color:var(--yellow)}
.btn{display:inline-block;font-family:var(--head);font-weight:700;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;background:var(--yellow);color:var(--teal-dd);padding:.9rem 1.9rem;border-radius:8px;transition:background .18s,transform .18s}
.btn:hover{background:var(--yellow-d);transform:translateY(-1px)}
.p-hero-photo{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;max-height:540px;width:100%}
.p-hero-photo img{width:100%;height:100%;object-fit:cover}
.p-hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,42,46,.5))}

/* ---------- SECCIONES ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(3rem,6vw,5rem) 0}
.sec.alt{background:var(--bg)}
.sec-head{max-width:760px;margin-bottom:2.2rem}
.sec-head p{font-size:1.02rem}
.kicker{font-family:var(--head);font-weight:800;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-m);margin-bottom:.8rem;display:flex;align-items:center;gap:.5rem}
.kicker::before{content:"";width:20px;height:2px;background:var(--yellow)}
h2{font-family:var(--head);font-weight:800;font-size:clamp(1.55rem,3.2vw,2.3rem);line-height:1.15;letter-spacing:-.01em;color:var(--text);margin-bottom:1rem;max-width:24ch}
p{color:var(--mid);margin-bottom:1rem}
p:last-child{margin-bottom:0}
p strong{color:var(--text)}
.lead{font-size:1.12rem;color:var(--text)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:start}
.split h2{margin-bottom:0}
.muted-note{font-size:.85rem;color:var(--muted)}

/* ---------- CHIPS "IDEAL PARA" ---------- */
.ideal{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin-top:1.4rem}
.ideal li{font-family:var(--head);font-weight:700;font-size:.78rem;background:var(--teal-l);color:var(--teal-d);padding:.45rem 1rem;border-radius:30px}

/* ---------- PASOS / COMPONENTES ---------- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;counter-reset:s}
.step{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.3rem;counter-increment:s}
.step::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--head);font-weight:800;font-size:.7rem;letter-spacing:.14em;color:var(--teal-m);margin-bottom:.55rem}
.steps.no-num .step::before{display:none}
.step h3{font-family:var(--head);font-weight:700;font-size:1rem;line-height:1.3;color:var(--text);margin-bottom:.35rem}
.step p{font-size:.9rem;line-height:1.6}
.sec:not(.alt) .step{background:var(--bg)}

/* ---------- CHECKLIST ---------- */
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.9rem 2rem}
.checks li{display:flex;gap:.75rem;align-items:flex-start;font-size:1rem;line-height:1.5;color:var(--text)}
.checks svg{width:22px;height:22px;color:var(--teal);flex-shrink:0;margin-top:1px}

/* ---------- UMBRALES (el camino del guerrero) ---------- */
.umbrales{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;counter-reset:none}
.umbral{display:flex;gap:1rem;background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.3rem}
.sec.alt .umbral{background:var(--white)}
.sec:not(.alt) .umbral{background:var(--bg)}
.u-n{font-family:var(--head);font-weight:900;font-size:1.15rem;line-height:1;color:var(--teal-m);flex-shrink:0;min-width:2ch;padding-top:.15rem}
.umbral h3{font-family:var(--head);font-weight:800;font-size:1.02rem;line-height:1.3;color:var(--text);margin-bottom:.45rem}
.umbral p{font-size:.88rem;line-height:1.5;margin:0}
.u-zone{font-family:var(--head);font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--teal-m)}
@media(max-width:1000px){.umbrales{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.umbrales{grid-template-columns:1fr}}

/* ---------- CALLOUT ---------- */
.callout{background:var(--teal-d);border-radius:18px;padding:clamp(1.5rem,4vw,2.3rem);display:grid;grid-template-columns:auto 1fr;gap:1.3rem;align-items:start;margin-top:2rem}
.callout svg{width:34px;height:34px;color:var(--yellow)}
.callout h3{font-family:var(--head);font-weight:800;font-size:1.2rem;color:#fff;margin-bottom:.35rem}
.callout p{color:rgba(255,255,255,.76)}

/* ---------- BLOQUES (Ascend) ---------- */
.blocks{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.block{background:var(--white);padding:1.6rem 1.4rem}
.block-n{font-family:var(--head);font-weight:900;font-size:1.9rem;line-height:1;color:var(--border)}
.block-tag{display:block;font-family:var(--head);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-m);margin-top:.8rem}
.block h3{font-family:var(--head);font-weight:800;font-size:1.08rem;color:var(--text);margin:.2rem 0 .5rem}
.block p{font-size:.9rem;line-height:1.55}
.block.final{background:var(--teal-d)}
.block.final .block-n{color:rgba(252,215,0,.55)}
.block.final .block-tag{color:var(--yellow)}
.block.final h3{color:#fff}
.block.final p{color:rgba(255,255,255,.75)}
.note{font-size:.9rem;color:var(--teal-d);background:var(--teal-l);border-radius:10px;padding:.9rem 1.1rem;margin-top:1.1rem}
.temas{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;counter-reset:t;margin-top:2.4rem}
.temas li{counter-increment:t;font-family:var(--head);font-weight:700;font-size:.9rem;color:var(--text);background:var(--white);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}
.temas li::before{content:counter(t,decimal-leading-zero) " ";color:var(--muted)}
.sub-kicker{font-family:var(--head);font-weight:700;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:2.4rem 0 -1.6rem}

/* ---------- CIFRAS ---------- */
.nums{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.num{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.8rem 1.6rem}
.num.main{background:var(--teal-d);border-color:var(--teal-d)}
.num b{display:block;font-family:var(--head);font-weight:900;font-size:clamp(2.3rem,5vw,3.2rem);line-height:1;color:var(--text)}
.num.main b{color:var(--yellow)}
.num span{display:block;font-family:var(--head);font-weight:700;font-size:1rem;color:var(--text);margin:.7rem 0 .3rem}
.num.main span{color:#fff}
.num p{font-size:.92rem}
.num.main p{color:rgba(255,255,255,.72)}

/* ---------- MEDICIÓN ---------- */
.measure{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.m{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:1.3rem}
.m-tag{font-family:var(--head);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.m h3{font-family:var(--head);font-weight:700;font-size:1rem;color:var(--text);margin:.35rem 0 .3rem}
.m p{font-size:.88rem;line-height:1.55}

.sec.alt .m{background:var(--white)}
.m svg{width:26px;height:26px;color:var(--teal);margin-bottom:.55rem;display:block}
.measure.three{grid-template-columns:repeat(3,1fr)}
.steps.three{grid-template-columns:repeat(3,1fr)}

/* ---------- CAPTURAS DE LA APP Y DE LEAP SENSOR ---------- */
.showcase{display:flex;justify-content:center;align-items:flex-start;gap:clamp(1rem,3vw,2.4rem);margin-top:2.6rem}
.phone{margin:0;width:clamp(190px,22vw,250px);flex-shrink:0;text-align:center}
.phone-frame{background:#0d1a1c;border-radius:34px;padding:9px;box-shadow:0 24px 50px rgba(20,42,46,.2),inset 0 0 0 1px rgba(255,255,255,.08)}
.phone img{width:100%;height:auto;border-radius:26px;display:block}
.phone figcaption{font-family:var(--head);font-weight:700;font-size:.82rem;line-height:1.35;color:var(--text);margin-top:.9rem}
.phone figcaption span{display:block;font-family:var(--body);font-weight:400;font-size:.8rem;color:var(--mid);margin-top:.15rem}
.browser{margin:2.4rem 0 0}
.browser-frame{border-radius:14px;overflow:hidden;background:var(--white);border:1px solid var(--border);box-shadow:0 24px 60px rgba(20,42,46,.13)}
.browser-bar{display:flex;gap:6px;align-items:center;padding:.6rem .9rem;background:var(--bg2);border-bottom:1px solid var(--border)}
.browser-bar i{width:9px;height:9px;border-radius:50%;background:var(--border);display:block}
.browser img{width:100%;height:auto;display:block}
.browser figcaption{font-size:.86rem;color:var(--mid);margin-top:.85rem;line-height:1.55}
.browser figcaption strong{color:var(--text)}
.still{margin:2.4rem auto 0;max-width:760px}
.still img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 20px 45px rgba(20,42,46,.16)}
.still figcaption{font-size:.86rem;line-height:1.5;color:var(--mid);margin-top:.85rem;text-align:center}
.duo{display:grid;grid-template-columns:1fr auto;gap:clamp(1.5rem,4vw,4rem);align-items:center;margin-top:2.2rem}
.duo .callout{margin-top:0}
.duo .showcase{margin-top:0}

/* ---------- CATÁLOGO ---------- */
.catalog{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.catalog li{display:flex;align-items:center;gap:.75rem;background:var(--white);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;font-family:var(--head);font-weight:700;font-size:.92rem;color:var(--text);line-height:1.3}
.catalog svg{width:24px;height:24px;color:var(--teal);flex-shrink:0}

/* ---------- NOM ---------- */
.nom{display:flex;gap:.9rem 1.2rem;align-items:center;flex-wrap:wrap;background:var(--teal-xl);border:1px solid var(--border);border-radius:12px;padding:1rem 1.3rem;margin-top:2rem}
.nom-tag{font-family:var(--head);font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);background:var(--teal-l);padding:.35rem .75rem;border-radius:20px;white-space:nowrap}
.nom p{flex:1;min-width:240px;font-size:.9rem;line-height:1.55}

/* ---------- OTROS PROGRAMAS ---------- */
.others{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.other{display:flex;flex-direction:column;gap:.45rem;background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.3rem;transition:border-color .18s,transform .18s,box-shadow .18s}
.other:hover{border-color:var(--teal-m);transform:translateY(-2px);box-shadow:0 10px 26px rgba(26,53,57,.08)}
.other svg{width:24px;height:24px;color:var(--teal)}
.other b{font-family:var(--head);font-weight:800;font-size:1rem;color:var(--text)}
.other span{font-size:.86rem;line-height:1.5;color:var(--mid);flex:1}
.other em{font-style:normal;font-family:var(--head);font-weight:700;font-size:.75rem;color:var(--teal)}
.sec:not(.alt) .other{background:var(--bg)}

/* ---------- CTA ---------- */
.cta{background:var(--teal-dd);color:#fff;text-align:center;padding:clamp(3.2rem,7vw,5rem) var(--pad);position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(252,215,0,.12),transparent 55%)}
.cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
.cta h2{color:#fff;margin:0 auto 1rem;max-width:20ch}
.cta p{color:rgba(255,255,255,.75);margin-bottom:1.9rem}

/* ---------- FOOTER ---------- */
footer{background:var(--teal-dd);color:rgba(255,255,255,.6);padding:3rem var(--pad) 2.2rem;border-top:1px solid rgba(255,255,255,.06)}
.footer-inner{max-width:var(--max);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.3rem;text-align:center}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem;list-style:none}
.footer-links a,.footer-socials a{font-family:var(--head);font-size:.78rem;font-weight:600;color:rgba(255,255,255,.62)}
.footer-links a:hover,.footer-socials a:hover{color:var(--yellow)}
.footer-socials{display:flex;gap:1.4rem}
.footer-copy{font-size:.76rem;color:rgba(255,255,255,.42)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1000px){
  .blocks,.measure,.catalog,.others,.temas{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .p-hero-inner{grid-template-columns:1fr}
  .p-hero-photo{aspect-ratio:16/10;max-height:none}
  .split{grid-template-columns:1fr}
}
@media(max-width:1000px){
  .steps.three,.measure.three{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .duo{grid-template-columns:1fr}
  .duo .phone{margin:0 auto}
}
@media(max-width:640px){
  .steps.three,.measure.three{grid-template-columns:1fr}
  .showcase{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) .6rem;margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));-webkit-overflow-scrolling:touch}
  .showcase .phone{width:58vw;scroll-snap-align:center}
  .duo .showcase .phone{width:44vw}
  .checks,.nums,.blocks,.measure,.others{grid-template-columns:1fr}
  .callout{grid-template-columns:1fr;gap:.8rem}
  .btn{width:100%;text-align:center}
  .catalog li{padding:.85rem .9rem;font-size:.86rem}
  .step,.m,.num,.block,.other{padding:1.15rem 1.1rem}
}
