/* =================== TOKENS (paleta del logo: #38B6FF · #FFDE59 · #004AAD · blanco) =================== */
:root{
  --bg:#FFFFFF;
  --surface:#FFFFFF;
  --surface-alt:#E3F4FF;
  --ink:#0A2350;
  --ink-soft:#46608F;
  --ink-faint:#7B8FB6;
  --line:#D3E8F9;
  --sky:#38B6FF;
  --sky-wash:#DDF1FF;
  --navy:#004AAD;
  --navy-wash:#DCE8FA;
  --yellow:#FFDE59;
  --yellow-wash:#FFF5C2;
  --accent:#004AAD;
  --primary:#004AAD;
  --on-primary:#FFFFFF;
  --primary-shadow:rgba(0,74,173,.45);
  --hero-bg:#FFFFFF;
  --hero-ink:#0A2350;
  --hero-soft:#46608F;
  --bubble-me:#EAF3FF;
  --shadow-pop: 0 18px 40px -18px rgba(10,35,80,.35);
  --ease-pop: cubic-bezier(.34,1.56,.64,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-snap: cubic-bezier(.65,0,.35,1);
  color-scheme: light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px; overflow-x:hidden;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Nunito Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit;}
::selection{background:var(--sky); color:var(--ink);}
:focus-visible{outline:2.5px solid var(--accent); outline-offset:3px; border-radius:4px;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
h1,h2,h3,h4{font-family:'Fredoka',sans-serif; font-weight:600; margin:0; color:var(--ink);}
button{font-family:inherit;}

/* reveal engine */
.reveal{opacity:0; transition:opacity .6s var(--ease-out), transform .6s var(--ease-pop);}
.reveal[data-anim="up"]{transform:translateY(26px);}
.reveal[data-anim="left"]{transform:translateX(-30px) rotate(-2deg);}
.reveal[data-anim="right"]{transform:translateX(30px) rotate(2deg);}
.reveal[data-anim="scale"]{transform:scale(.85);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
  .marquee-track, .float-deco, .typing i{animation:none !important;}
}

/* =================== BUTTONS =================== */
.btn{display:inline-flex; align-items:center; gap:.5em; font-weight:800; font-size:.95rem;
  padding:.85em 1.5em; border-radius:999px; border:none; cursor:pointer; text-decoration:none;
  transition:transform .25s var(--ease-pop), box-shadow .25s var(--ease-pop);}
.btn:active{transform:scale(.93) rotate(-1deg);}
.btn-primary{background:var(--primary); color:var(--on-primary); box-shadow:0 10px 24px -8px var(--primary-shadow);}
.btn-primary:hover{transform:translateY(-3px) rotate(-1deg); box-shadow:0 16px 30px -8px var(--primary-shadow);}
.btn-ghost{background:var(--surface); color:var(--ink); border:2px solid var(--line);}
.btn-ghost:hover{transform:translateY(-3px) rotate(1deg); border-color:var(--sky);}
.btn-sm{padding:.55em 1.1em; font-size:.82rem;}

/* =================== NAV =================== */
header.nav{position:sticky; top:0; z-index:60; background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:blur(14px); border-bottom:1px solid transparent; transition:background .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);}
header.nav.scrolled{background:color-mix(in srgb, var(--surface) 94%, transparent); border-color:var(--line); box-shadow:0 10px 28px -24px rgba(10,35,80,.7);}
.nav-row{display:flex; align-items:center; justify-content:space-between; height:104px; transition:height .3s var(--ease-out);}
header.nav.scrolled .nav-row{height:88px;}
.brand{display:flex; align-items:center; gap:.5em; text-decoration:none; color:var(--ink);}
.brand-logo{display:block; width:96px; height:96px; object-fit:cover; border-radius:14px;}
.brand .mark{font-family:'Barlow Condensed','Fredoka',sans-serif; font-weight:800; font-size:1.55rem; line-height:1; letter-spacing:.02em; color:var(--yellow); background:var(--navy); padding:.24em .5em .18em; border-radius:10px; display:inline-block; transition:transform .4s var(--ease-pop);}
.brand:hover .mark{transform:rotate(-14deg) scale(1.15);}
.brand .name{font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.15rem;}
nav.links{display:none; gap:1.9rem; font-size:.95rem; font-weight:700;}
nav.links a{text-decoration:none; color:var(--ink-soft); position:relative; padding:.3em 0;}
nav.links a::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:3px; background:var(--sky);
  border-radius:3px; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease-out);}
nav.links a:hover{color:var(--ink);}
nav.links a:hover::after{transform:scaleX(1);}
@media(min-width:980px){ nav.links{display:flex;} }
.nav-actions{display:flex; align-items:center; gap:.8rem;}
.menu-btn{display:inline-flex; background:none; border:none; padding:.4em; cursor:pointer; color:var(--ink);}
@media(min-width:980px){ .menu-btn{display:none;} }

.mobile-drawer{position:fixed; inset:0; z-index:70; background:var(--bg); display:flex; flex-direction:column; padding:24px;
  transform:translateY(-100%); transition:transform .4s var(--ease-pop);}
.mobile-drawer.open{transform:translateY(0);}
.mobile-drawer .top{display:flex; justify-content:space-between; align-items:center; margin-bottom:2.4rem;}
.mobile-drawer nav{display:flex; flex-direction:column; gap:1.3rem;}
.mobile-drawer nav a{font-family:'Fredoka',sans-serif; font-size:1.6rem; text-decoration:none; color:var(--ink);}
.mobile-drawer .foot{margin-top:auto; display:flex; flex-direction:column; gap:1rem;}

@media(max-width:639px){
  .hero{padding:52px 0 64px;}
  .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
  .hero-stats .stat:last-child{grid-column:1 / -1; max-width:calc(50% - 6px);}
  .nav-row{height:86px;}
  header.nav.scrolled .nav-row{height:74px;}
  .brand-logo{width:84px; height:84px; border-radius:12px;}
  .hero-visual{padding-right:8px;}
  .hero-photo{margin-left:8px; margin-bottom:-54px;}
  .hero-photo img{height:230px;}
}

/* =================== HERO =================== */
.hero{padding:76px 0 84px; position:relative; background:linear-gradient(135deg, var(--hero-bg) 0%, var(--hero-bg) 68%, var(--sky-wash) 100%); color:var(--hero-ink); overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media(min-width:960px){ .hero-grid{grid-template-columns:1.05fr .95fr; gap:36px;} }
.pill-eyebrow{display:inline-flex; align-items:center; gap:.5em; background:var(--yellow-wash); color:var(--accent);
  font-weight:800; font-size:.82rem; padding:.5em 1em; border-radius:999px;}
.hero h1{font-size:clamp(2.5rem,4.6vw + .5rem,4.25rem); line-height:1.02; letter-spacing:-.025em; margin-top:.8rem; max-width:13ch;}
.hero h1{color:var(--hero-ink);}
.hero h1 .accent{color:var(--yellow); font-family:'Barlow Condensed','Fredoka',sans-serif; font-weight:800; font-size:1.22em; letter-spacing:.01em; text-shadow:3px 3px 0 var(--navy); display:inline-block; transform:rotate(-3deg);}
.hero p.lede{color:var(--hero-soft); font-weight:700; font-size:1.08rem; max-width:48ch; margin-top:1.25rem;}
.hero p.lede strong{color:var(--hero-ink);}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:2rem;}
.hero-cta .btn-primary{padding:.95em 1.65em;}
.hero-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:2.5rem; max-width:530px;}
.whatsapp-float{position:fixed; right:24px; bottom:24px; z-index:65; width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#25D366; color:#fff; box-shadow:0 12px 28px rgba(10,35,80,.24); transition:transform .2s ease, box-shadow .2s ease;}
.whatsapp-float:hover{color:#fff; transform:translateY(-3px) scale(1.04); box-shadow:0 16px 32px rgba(10,35,80,.3);}
.whatsapp-float:focus-visible{outline:3px solid var(--yellow); outline-offset:4px;}
.whatsapp-float svg{width:29px; height:29px; fill:currentColor;}
@media(max-width:600px){.whatsapp-float{right:16px; bottom:16px; width:54px; height:54px;}.whatsapp-float svg{width:27px;height:27px;}}
.stat{background:color-mix(in srgb, var(--surface) 90%, transparent); border:1px solid color-mix(in srgb, var(--line) 75%, transparent); border-radius:18px; padding:1em 1.05em; box-shadow:0 18px 38px -24px rgba(10,35,80,.55); text-align:left;}
.stat b{display:block; font-family:'Fredoka',sans-serif; font-size:1.5rem; color:var(--accent); line-height:1.1;}
.stat span{font-size:.76rem; color:var(--ink-faint); font-weight:700;}

/* =================== MEDIA =================== */
.academy-media{background:var(--surface-alt);border-top:2px solid var(--line);border-bottom:2px solid var(--line);}
.media-grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media(min-width:820px){.media-grid{grid-template-columns:1fr 1fr;align-items:stretch;}}
.media-card{margin:0;background:var(--surface);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-pop);border:1px solid var(--line);}
.media-promo{min-height:280px;width:min(100%,820px);justify-self:center;}
@media(min-width:820px){.media-promo{grid-column:1 / -1;}}
.media-promo img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;object-position:center;}
.video-card{padding:0;}
.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--navy);}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-frame img{display:block;width:100%;height:100%;object-fit:cover;}
.video-play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(10,35,80,.15);text-decoration:none;}
.video-play span{display:grid;place-items:center;width:72px;height:72px;padding-left:5px;border-radius:50%;background:#e62117;color:#fff;font-size:1.8rem;box-shadow:0 8px 22px rgba(0,0,0,.3);}
.video-note{margin:0;padding:.85rem 1rem;text-align:center;color:var(--ink-faint);font-size:.85rem;font-weight:700;}
.opinions-video{max-width:820px;margin:2rem auto 0;}

.float-deco{position:absolute; opacity:.7; animation:floaty 7s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-14px) rotate(6deg);}}

/* human hero composition */
.hero-visual{position:relative; max-width:440px; margin:0 auto; padding:0 18px 18px 0;}
.hero-photo{position:relative; margin:0 0 -72px 18px; overflow:hidden; border-radius:28px; box-shadow:0 28px 60px -28px rgba(0,74,173,.48); transform:rotate(-2deg);}
.hero-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(10,35,80,.72));}
.hero-photo img{width:100%; height:300px; object-fit:cover;}
.hero-photo figcaption{position:absolute; z-index:1; left:20px; right:20px; bottom:18px; display:flex; flex-direction:column; color:#fff;}
.hero-photo figcaption strong{font-family:'Fredoka',sans-serif; font-size:1.05rem;}
.hero-photo figcaption span{font-size:.78rem; font-weight:700; opacity:.88;}

/* chat demo */
.chat-card{background:var(--surface); border:1px solid color-mix(in srgb, var(--line) 80%, transparent); border-radius:28px; box-shadow:0 28px 60px -26px rgba(0,74,173,.45); padding:22px; max-width:400px; margin:0 auto;
  position:relative; transform:rotate(1.5deg);}
.chat-top{display:flex; align-items:center; gap:.6em; padding-bottom:14px; border-bottom:2px solid var(--line); margin-bottom:16px;}
.chat-top .dot{width:10px; height:10px; border-radius:50%; background:#FF5F57;}
.chat-top .dot:nth-child(2){background:#FEBC2E;}
.chat-top .dot:nth-child(3){background:#28C840;}
.chat-top span{margin-left:.5em; font-weight:800; font-size:.85rem; color:var(--ink-soft);}
.chat-body{display:flex; flex-direction:column; gap:10px; min-height:270px;}
.bubble{max-width:80%; padding:.7em 1em; border-radius:18px; font-size:.92rem; font-weight:600; opacity:0; transform:translateY(10px) scale(.9);
  transition:opacity .4s var(--ease-pop), transform .4s var(--ease-pop);}
.bubble.show{opacity:1; transform:none;}
.bubble.me{align-self:flex-end; background:var(--bubble-me); color:var(--ink); border-bottom-right-radius:4px;}
.bubble.them{align-self:flex-start; background:var(--sky); color:#0A2350; border-bottom-left-radius:4px;}
.typing{align-self:flex-start; background:var(--sky); border-radius:18px; border-bottom-left-radius:4px; padding:.65em 1em; display:none; gap:4px;}
.typing.show{display:flex;}
.typing i{width:6px; height:6px; border-radius:50%; background:#0A2350; display:inline-block; animation:bounceDot 1.1s infinite ease-in-out;}
.typing i:nth-child(2){animation-delay:.15s;} .typing i:nth-child(3){animation-delay:.3s;}
@keyframes bounceDot{0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-5px);}}

/* =================== MARQUEE =================== */
.marquee{border-top:3px solid var(--navy); border-bottom:3px solid var(--navy); background:var(--yellow); padding:16px 0; overflow:hidden; isolation:isolate;}
.marquee-track{display:flex; gap:2.5rem; white-space:nowrap; width:max-content; animation:scrollLeft 32s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
@keyframes scrollLeft{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.marquee-item{font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.05rem; color:#0A2350; display:flex; align-items:center; gap:.6em;}
.marquee-item b{color:#0A2350;}

/* =================== SECTIONS =================== */
.sec{padding:88px 0;}
.sec-head{max-width:640px; margin:0 auto 3rem; text-align:center;}
.sec-head .pill-eyebrow{margin-bottom:.8rem;}
.sec-head h2{font-size:clamp(1.85rem,2.6vw + .5rem,2.5rem); letter-spacing:-.01em;}
.sec-head p{color:var(--ink-soft); margin-top:.7rem; font-size:1.05rem;}

/* supporting academy image */
.academy-photo{position:relative; max-width:980px; height:210px; margin:0 auto 2rem; overflow:hidden; border-radius:24px; box-shadow:0 20px 42px -30px rgba(10,35,80,.65);}
.academy-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,74,173,.62),transparent 65%);}
.academy-photo img{width:100%; height:100%; object-fit:cover; object-position:center 55%;}
.academy-photo figcaption{position:absolute; z-index:1; left:24px; bottom:20px; max-width:270px; color:#fff; font-family:'Fredoka',sans-serif; font-size:1.05rem; line-height:1.25;}

/* =================== METODO (chat-style benefits) =================== */
.method-wrap{max-width:980px; margin:0 auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.msg{display:flex; gap:14px; align-items:flex-start; min-height:132px; padding:1.15rem; border:1px solid var(--line);
  border-radius:22px; background:linear-gradient(145deg,var(--surface),var(--surface-alt)); box-shadow:0 16px 34px -28px rgba(10,35,80,.65);}
.msg .av{width:46px; height:46px; border-radius:15px; background:var(--sky); color:#0A2350; display:flex; align-items:center;
  justify-content:center; font-size:1.3rem; flex-shrink:0; box-shadow:0 8px 16px -10px rgba(0,74,173,.75);}
.msg .bubble2{background:transparent; border-radius:0; padding:0; max-width:none;}
.msg .bubble2 h4{font-size:1rem; line-height:1.25; margin:.1rem 0 .45rem;}
.msg .bubble2 p{margin:0; color:var(--ink-soft); font-size:.88rem; line-height:1.55;}
.msg.alt{flex-direction:row;}
.msg.alt .bubble2{border-radius:0;}
.msg.alt .av{background:var(--yellow);}
.msg:nth-child(5){grid-column:1 / -1; width:min(100%,471px); margin:0 auto;}
@media(max-width:639px){
  .method-wrap{display:flex; flex-direction:column; gap:14px;}
  .msg{min-height:0; padding:1rem;}
  .msg:nth-child(5){width:auto;}
}

/* =================== TABS =================== */
.tabs{display:flex; flex-wrap:wrap; gap:.65rem; justify-content:center; margin-bottom:2.6rem;}
.tab-btn{background:var(--surface); border:2px solid var(--line); color:var(--ink-soft); font-weight:800; font-size:.88rem;
  padding:.7em 1.3em; border-radius:999px; cursor:pointer; transition:color .25s var(--ease-out), background .25s var(--ease-out), border-color .25s var(--ease-out), transform .25s var(--ease-pop);}
.tab-btn:hover{border-color:var(--sky); color:var(--ink);}
.tab-btn:active{transform:scale(.97);}
.tab-btn.active{background:var(--primary); color:var(--on-primary); border-color:var(--primary);}

.course-grid{display:grid; grid-template-columns:1fr; gap:22px; align-items:stretch;}
@media(min-width:680px){ .course-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1000px){ .course-grid{grid-template-columns:repeat(3,1fr);} }
.ccard{position:relative; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:0 0 1.55em; box-shadow:0 18px 40px -28px rgba(10,35,80,.55); transition:transform .3s var(--ease-pop), box-shadow .3s var(--ease-pop), border-color .3s var(--ease-out); overflow:hidden;}
.ccard:hover{transform:translateY(-7px); border-color:var(--sky); box-shadow:0 24px 46px -26px rgba(0,74,173,.42);}
.course-image{display:block; width:100%; height:164px; margin:0 0 1.1rem; object-fit:cover; object-position:center; border-radius:0; filter:saturate(.95);}
.ccard > h4{margin:0 1.55em .55rem;}
.ccard > p{margin:0 1.55em 1.2rem;}
.ccard > dl{margin-left:1.55em !important;margin-right:1.55em !important;}
.ccard > .chips,.ccard > .emoji{margin-left:1.55em;margin-right:1.55em;}
.ccard .emoji{width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:1rem; box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);}
.ccard h4{font-size:1.15rem; line-height:1.2; margin-bottom:.55rem;}
.ccard p{color:var(--ink-soft); font-size:.9rem;}
.ccard dl{margin-top:auto !important; padding-top:.15rem;}
.chips{display:flex; flex-wrap:wrap; gap:.4rem;}
.chip{font-size:.72rem; font-weight:800; padding:.35em .75em; border-radius:999px; background:var(--surface-alt); color:var(--ink-soft);}

@media(max-width:639px){
  .tabs{justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding:2px 2px 8px; margin-right:-24px; padding-right:24px; scrollbar-width:none;}
  .tabs::-webkit-scrollbar{display:none;}
  .tab-btn{flex:0 0 auto;}
}

/* =================== CAMBRIDGE =================== */
.cambridge{background:linear-gradient(135deg,var(--bg) 0%,var(--bg) 62%,var(--sky-wash) 100%); border-top:2px solid var(--line); border-bottom:2px solid var(--line);}
.camb-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media(min-width:900px){ .camb-grid{grid-template-columns:.8fr 1.2fr;} }
.big-stat b{font-family:'Fredoka',sans-serif; font-size:clamp(3.6rem,6vw,5.2rem); line-height:1; display:block; color:var(--accent); letter-spacing:-.04em;}
.big-stat span{color:var(--ink-soft); font-size:1rem; display:block; margin-top:.6rem; max-width:26ch; font-weight:600;}
.seals{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:1.8rem;}
.seal{width:82px; height:82px; border-radius:50%; border:4px solid var(--sky); color:var(--ink); display:flex; align-items:center; justify-content:center; flex-direction:column;
  text-align:center; font-family:'Fredoka',sans-serif; background:var(--surface); box-shadow:var(--shadow-pop); transition:transform .3s var(--ease-pop);}
.seal:hover{transform:scale(1.1) rotate(-6deg);}
.seal b{font-size:1rem; font-weight:700; line-height:1;}
.seal small{font-family:'Nunito Sans',sans-serif; font-size:.58rem; color:var(--ink-faint); margin-top:.2rem; font-weight:700;}
.exam-compare{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media(min-width:640px){ .exam-compare{grid-template-columns:repeat(4,1fr);} }
.exam-compare .ex{background:var(--surface); border-radius:16px; padding:1em; box-shadow:var(--shadow-pop);}
.exam-compare .ex b{font-family:'Fredoka',sans-serif; font-size:.95rem;}
.exam-compare .ex p{font-size:.78rem; color:var(--ink-soft); margin:.3em 0 0;}

/* =================== STEPS =================== */
.steps{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:760px){ .steps{grid-template-columns:repeat(3,1fr);} }
.step{background:var(--surface); border-radius:20px; padding:1.6em; box-shadow:var(--shadow-pop); text-align:center;}
.step .num{width:44px; height:44px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-weight:700; margin:0 auto .8rem;}
.step h4{font-size:1.02rem; margin-bottom:.4rem;}
.step p{color:var(--ink-soft); font-size:.88rem; margin:0;}

/* =================== EQUIPO =================== */
.team{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:760px){ .team{grid-template-columns:repeat(3,1fr);} }
.person{background:var(--surface); border-radius:20px; padding:1.6em; box-shadow:var(--shadow-pop);}
.person .team-photo{display:block; width:100%; height:250px; object-fit:cover; object-position:center 28%; border-radius:15px; margin-bottom:1.15rem;}
.person .avatar{width:58px; height:58px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-size:1.3rem; margin-bottom:1rem; font-weight:700;}
.person h4{font-size:1.08rem;}
.person .role{color:var(--accent); font-size:.8rem; margin:.15rem 0 .7rem; font-weight:800;}
.person p{color:var(--ink-soft); font-size:.9rem; margin:0;}
.team-more{text-align:center; margin-top:1.8rem; color:var(--ink-soft); font-size:.9rem; max-width:60ch; margin-left:auto; margin-right:auto;}

/* =================== TESTIMONIOS (bubbles) =================== */
.testimonials-carousel{position:relative;display:flex;align-items:center;gap:.8rem;margin-top:1.5rem;}
.test-grid{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.35rem .2rem 1rem;flex:1;}
.test-grid::-webkit-scrollbar{display:none;}
.test-grid .tcard{flex:0 0 min(86%,320px);scroll-snap-align:start;}
.carousel-arrow{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 8px 18px rgba(10,35,80,.18);transition:transform .2s ease,background .2s ease;}
.carousel-arrow:hover,.carousel-arrow:focus-visible{background:var(--accent);transform:scale(1.08);}
.review-summary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.75rem 1.1rem;margin:1.25rem auto 0;padding:1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-pop);width:max-content;max-width:100%;text-align:center;}
.review-score{display:flex;align-items:baseline;gap:.2rem;color:var(--accent);}
.review-score strong{font-family:'Fredoka',sans-serif;font-size:1.8rem;line-height:1;}
.review-score small{color:var(--ink-soft);font-size:.85rem;font-weight:800;}
.review-stars{background:linear-gradient(135deg,#ffd45a 0%,#f5a800 45%,#ffe58a 70%,#e59b00 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.55rem;letter-spacing:.1em;line-height:1;white-space:nowrap;text-shadow:0 3px 8px rgba(245,179,1,.28);filter:drop-shadow(0 2px 1px rgba(145,87,0,.18));}
.review-proof{display:flex;flex-direction:column;align-items:center;gap:.1rem;flex-basis:100%;order:-1;}
.review-proof b{color:var(--ink);font-size:.9rem;}
.review-proof span{color:var(--ink-soft);font-size:.78rem;font-weight:700;}
.company-logo-row{display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin:1.5rem auto 0;padding:1rem 0;}
.company-logo{display:grid;place-items:center;position:relative;width:76px;height:76px;margin:-.15rem 0 0 -0.35rem;border:3px solid var(--surface);border-radius:50%;background:var(--navy-wash);color:var(--accent);font-size:.75rem;font-weight:800;box-shadow:0 8px 22px -12px rgba(10,35,80,.6);transition:transform .2s var(--ease-pop),z-index .2s ease;}
.company-logo:first-child{margin-left:0;}
.company-logo:hover{position:relative;z-index:2;transform:translateY(-6px) scale(1.08);}
.company-logo::after{content:attr(title);position:absolute;left:50%;bottom:-2.3rem;z-index:3;padding:.35rem .55rem;border-radius:.4rem;background:var(--navy);color:#fff;font-size:.7rem;font-weight:700;line-height:1.1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,.25rem);transition:opacity .2s ease,transform .2s ease;}
.company-logo:hover::after,.company-logo:focus-within::after{opacity:1;transform:translate(-50%,0);}
.company-logo img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:600px){.company-logo{width:64px;height:64px;margin-left:-.4rem;}}
@media(max-width:520px){.review-proof{border-left:0;padding-left:0;width:100%;}.review-summary{gap:.7rem;}}
@media(max-width:600px){.carousel-arrow{flex-basis:36px;width:36px;height:36px;font-size:1.7rem;}.testimonials-carousel{gap:.35rem;}}
.tcard{background:var(--surface); border-radius:20px; border-top-left-radius:4px; padding:1.4em; box-shadow:var(--shadow-pop); border:1px solid var(--line); transition:transform .25s var(--ease-pop),box-shadow .25s var(--ease-pop);}
.tcard:hover{transform:translateY(-5px);box-shadow:0 18px 32px rgba(10,35,80,.12);}
.tcard p.body{margin:0 0 1rem; font-size:.92rem; color:var(--ink);}
.tcard p.body::before{content:'“';display:block;color:var(--accent);font-family:Georgia,serif;font-size:2.8rem;font-weight:700;line-height:.65;margin-bottom:.35rem;}
.card-stars{color:#f5b301;letter-spacing:.12em;font-size:.9rem;text-shadow:0 2px 5px rgba(245,179,1,.3);margin-bottom:.7rem;}
.tcard .who{display:flex; align-items:center; gap:.6em;}
.tcard .who .dot2{width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-family:'Fredoka',sans-serif; font-size:.85rem;}
.tcard .who div b{display:block; font-size:.85rem;}
.tcard .who div span{font-size:.74rem; color:var(--ink-faint);}

/* =================== CONTACTO =================== */
.contact-grid{display:grid; grid-template-columns:1fr; gap:44px;}
@media(min-width:900px){ .contact-grid{grid-template-columns:.85fr 1.15fr;} }
.info-list dt{font-size:.75rem; color:var(--ink-faint); margin-top:1.3rem; font-weight:800;}
.contact-intro{color:var(--ink-soft);font-size:.98rem;line-height:1.6;max-width:42ch;margin:1rem 0;}
.contact-whatsapp{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:800;text-decoration:none;margin-bottom:.7rem;}
.contact-whatsapp:hover{color:var(--navy);}
.contact-whatsapp span{font-size:1.2rem;transition:transform .2s ease;}
.contact-whatsapp:hover span{transform:translateX(4px);}
.info-list dt:first-child{margin-top:0;}
.info-list dd{margin:.25rem 0 0; font-size:1.02rem; font-weight:700;}
.info-list dd a{text-decoration:none;}
.info-list dd a:hover{color:var(--accent);}
.socials{display:flex; gap:14px; margin-top:1.6rem;}
.socials a{width:40px; height:40px; border-radius:50%; background:var(--surface); box-shadow:var(--shadow-pop); display:flex; align-items:center;
  justify-content:center; color:var(--ink-soft); transition:transform .25s var(--ease-pop);}
.socials a:hover{transform:translateY(-4px) rotate(-8deg); color:var(--accent);}
.map-card{margin-top:2.5rem;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-pop);background:var(--surface);}
.map-card iframe{display:block;width:100%;height:360px;border:0;}
#academy-map{width:100%;height:360px;background:#e8f1e8;}
.leaflet-container{font-family:'Nunito Sans',sans-serif;}
.map-link{display:flex;justify-content:center;gap:.5rem;padding:1rem;color:var(--accent);font-weight:800;text-decoration:none;}
.map-link:hover{text-decoration:underline;}
@media(max-width:600px){.map-card{margin-top:2rem;border-radius:18px;}.map-card iframe{height:300px;}}

.form-card{background:var(--surface); border-radius:26px; padding:2em; box-shadow:var(--shadow-pop);}
.form-kicker{display:block;color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-bottom:.45rem;}
.form-card h3{font-size:1.35rem; margin-bottom:.3rem;}
.form-card p.small{color:var(--ink-soft); font-size:.88rem; margin:0 0 1.4rem;}
.field{margin-bottom:1.05rem;}
.field label{display:block; font-size:.8rem; font-weight:800; color:var(--ink-soft); margin-bottom:.4rem;}
.field input,.field select{width:100%; padding:.8em .95em; border-radius:14px; border:2px solid var(--line); background:var(--bg);
  color:var(--ink); font-family:inherit; font-size:.95rem; font-weight:600; transition:border-color .2s;}
.field input:focus,.field select:focus{border-color:var(--sky); outline:none;}
.form-note{font-size:.76rem; color:var(--ink-faint); margin-top:.9rem;}
.form-ok{display:none; align-items:center; gap:.6em; background:var(--sky-wash); color:var(--accent); padding:.9em 1.1em; border-radius:12px; font-size:.88rem; margin-top:1rem; font-weight:700;}
.form-ok.show{display:flex;}

/* =================== FAQ =================== */
.faq-section{background:var(--surface-alt);border-top:2px solid var(--line);border-bottom:2px solid var(--line);}
.faq-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:start;}
@media(min-width:900px){.faq-grid{grid-template-columns:.8fr 1.2fr;gap:64px;}}
.faq-list{background:var(--surface);border-radius:22px;padding:.35rem 1.35rem;box-shadow:var(--shadow-pop);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item:last-child{border-bottom:0;}
.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 0;background:none;border:0;color:var(--ink);font:inherit;font-size:.98rem;font-weight:800;text-align:left;cursor:pointer;}
.faq-question span{color:var(--accent);font-size:1.35rem;font-weight:400;line-height:1;transition:transform .2s ease;}
.faq-question:hover{color:var(--accent);}
.faq-answer{padding:0 2rem 1.15rem 0;}
.faq-answer p{margin:0;color:var(--ink-soft);font-size:.9rem;line-height:1.6;}

/* =================== FOOTER CTA =================== */
.footer-cta{padding:42px 0;background:var(--navy);color:#fff;}
.footer-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.footer-cta .pill-eyebrow{color:var(--yellow);background:rgba(255,255,255,.1);}
.footer-cta h2{color:#fff;font-size:clamp(1.45rem,2.2vw,2rem);margin:.7rem 0 0;max-width:25ch;}
.footer-cta .btn-primary{background:var(--yellow);color:var(--navy);box-shadow:none;white-space:nowrap;}
@media(max-width:639px){.footer-cta-inner{align-items:flex-start;flex-direction:column;}.footer-cta .btn-primary{width:100%;justify-content:center;}}

/* =================== FOOTER =================== */
footer{border-top:2px solid var(--line); padding:52px 0 30px; background:var(--bg);}
.foot-grid{display:grid; grid-template-columns:1fr; gap:32px;}
@media(min-width:760px){ .foot-grid{grid-template-columns:1.3fr 1fr 1fr;} }
.foot-grid h5{font-size:.78rem; color:var(--ink-faint); margin:0 0 .9rem; font-weight:800;}
.foot-grid a{display:block; text-decoration:none; color:var(--ink-soft); font-size:.92rem; margin-bottom:.55rem; font-weight:600;}
.foot-grid a:hover{color:var(--accent);}
.foot-bottom{margin-top:40px; padding-top:20px; border-top:2px solid var(--line); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.78rem; color:var(--ink-faint); font-weight:700;}
.icon{width:18px; height:18px; flex-shrink:0;}

.hero::before{content:"";position:absolute;right:-140px;top:-100px;width:560px;height:560px;border-radius:50%;background:var(--sky);opacity:.22;}
.hero-grid{position:relative;z-index:1;}
.ccard dl{margin:0 0 1rem;display:grid;gap:.45rem;}
.ccard dl div{display:grid;grid-template-columns:92px 1fr;gap:10px;font-size:.8rem;border-top:1px solid var(--line);padding-top:.45rem;}
.ccard dt{color:var(--ink-faint);font-weight:800;} .ccard dd{margin:0;font-weight:700;}
.schedule-wrap{margin:1rem 1.55em 0;}
.schedule-wrap h5{margin:0 0 .8rem;color:var(--sky);font-size:1.25rem;}
.schedule-button{align-self:flex-start;margin:0 1.55em 1rem;}
.schedule-section{max-width:100%;margin:3rem 0 0;padding-top:2rem;border-top:1px solid var(--line);}
.schedule-section h3{margin:0 0 1rem;color:var(--sky);font-size:clamp(1.35rem,2vw,1.8rem);}
.schedule-toggle{display:inline-flex;align-items:center;gap:.7rem;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:800;cursor:pointer;text-align:left;}
.schedule-toggle span{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border:2px solid currentColor;border-radius:50%;font-size:1.2rem;line-height:1;}
.schedule-scroll{overflow-x:auto;border:1px solid var(--line);}
.support-schedule{width:100%;min-width:720px;border-collapse:collapse;font-size:.78rem;background:var(--surface);}
.support-schedule th{padding:.7rem .6rem;background:#000;color:#fff;text-align:left;font-weight:800;}
.support-schedule td{padding:.8rem .6rem;vertical-align:top;border:1px solid var(--line);line-height:1.45;}
.support-schedule th:nth-child(1),.support-schedule td:nth-child(1){width:80px;}
.support-schedule th:nth-child(2),.support-schedule td:nth-child(2){width:110px;}
.support-schedule th:nth-child(3),.support-schedule td:nth-child(3){width:170px;}
.schedule-note{margin:1.2rem 0 0;color:var(--ink-soft);font-size:.78rem;line-height:1.5;}
button.seal{cursor:pointer;padding:0;font:inherit;font-family:'Fredoka',sans-serif;} button.seal.active{background:var(--yellow);color:#0A2350;transform:scale(1.08);}
.exam-panel{background:var(--surface);border-radius:20px;padding:1.4em;box-shadow:var(--shadow-pop);}
.exam-panel h4{font-size:1.15rem;margin-bottom:.5rem;} .exam-panel p{color:var(--ink-soft);font-size:.92rem;margin:0 0 .8rem;}
.exam-panel ul{margin:0;padding-left:1.1em;font-size:.88rem;font-weight:600;display:grid;gap:.3rem;}
.exam-panel.swap{animation:popin .45s var(--ease-pop);}
@keyframes popin{from{opacity:0;transform:translateY(12px) scale(.97);}to{opacity:1;transform:none;}}
.guarantee{border:3px solid var(--sky);border-radius:26px;padding:2em;display:grid;gap:1.4rem;background:var(--surface);box-shadow:var(--shadow-pop);position:relative;overflow:hidden;}
.guarantee::after{content:"";position:absolute;right:-70px;bottom:-110px;width:230px;height:230px;border-radius:50%;background:var(--yellow);opacity:.22;pointer-events:none;}
@media(min-width:860px){.guarantee{grid-template-columns:.8fr 1.2fr;align-items:center;}}
.guarantee h3{font-size:1.6rem;margin:.6rem 0;} .guarantee p{color:var(--ink-soft);margin:0;}
.guarantee-cta{margin-top:1.2rem;position:relative;z-index:1;}
.guarantee ul{margin:0;padding-left:1.1em;display:grid;gap:.4rem;font-size:.9rem;font-weight:600;}
.pillrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:1.2rem;}
.pillrow span{background:var(--surface-alt);border-radius:999px;padding:.4em 1em;font-size:.82rem;font-weight:800;color:var(--ink-soft);}
.blog-grid{display:grid;gap:14px;} @media(min-width:760px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
.blog-grid a{background:var(--surface);border-radius:18px;padding:1.2em 1.3em;box-shadow:var(--shadow-pop);text-decoration:none;font-weight:700;transition:transform .25s var(--ease-pop);}
.blog-grid a:hover{transform:translateY(-4px) rotate(-.6deg);} .blog-grid small{display:block;color:var(--ink-faint);font-weight:700;margin-bottom:.3rem;}
