:root{--bg:#0A1A2A;--surface:#10263A;--paper:#F4F6F1;--muted:#C3CFC8;--meta:#7C8B9A;--lime:#82C91E;--petrol:#1E4E6B;--line:rgba(244,246,241,.10);color-scheme:dark;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}p{color:var(--muted);font-size:16px;line-height:1.75;margin:0 0 24px}h1,h2,h3,h4{font-family:Archivo,'Arial Black',sans-serif;font-weight:900;letter-spacing:-.02em;margin:0;text-transform:uppercase}h2{font-size:clamp(32px,4.15vw,56px);line-height:1.04}h3{font-size:25px;line-height:1.12}::selection{background:var(--lime);color:var(--bg)}:focus-visible{outline:3px solid var(--lime);outline-offset:5px}.wrap{max-width:1240px;margin:0 auto;width:calc(100% - 80px)}.section{padding:104px 0;scroll-margin-top:68px}.surface{background:var(--surface)}.eyebrow{display:flex;align-items:center;gap:14px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600;color:var(--lime);margin:0 0 25px}.eyebrow .index{font-family:Archivo,sans-serif;font-weight:900;font-size:38px;line-height:1;letter-spacing:-.04em}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:48px}.head h2{max-width:780px}.head p{max-width:335px;margin:0}.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:52px;padding:16px 25px;border:1px solid var(--lime);border-radius:999px;background:var(--lime);color:var(--bg);font-size:14px;font-weight:700;overflow:hidden;transition:background-color .2s,color .2s,border-color .2s}.btn:hover{background:var(--paper);border-color:var(--paper);color:var(--bg)}.btn.secondary{background:transparent;color:var(--paper);border-color:var(--line)}.btn.secondary:hover{background:var(--lime);border-color:var(--lime);color:var(--bg)}.arrow{font-size:20px;line-height:1}.textlink{position:relative;padding:8px 0;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:20px}.textlink:after{content:'';position:absolute;bottom:1px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(.3);transform-origin:left;transition:transform .25s}.textlink:hover:after{transform:scaleX(1)}.skip{position:fixed;top:-100px;left:10px;background:var(--paper);color:var(--bg);z-index:100;padding:15px}.skip:focus{top:10px}.nav{height:68px;position:fixed;inset:0 0 auto;z-index:50;background:rgba(10,26,42,.93);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.nav-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{flex:none;width:215px}.nav-links{display:flex;gap:20px;align-items:center}.nav-links a{font-size:13px;color:var(--muted);padding:22px 0;white-space:nowrap}.nav-links a:hover{color:var(--paper)}.nav-links a[aria-current],.mobile-links a[aria-current]{color:var(--lime)}.nav .btn{font-size:12px;padding:11px 19px;min-height:39px;white-space:nowrap}.mobile-menu{display:none}.mobile-menu summary{list-style:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;width:18px;height:10px;border-top:2px solid var(--paper);border-bottom:2px solid var(--paper)}.mobile-menu[open] summary span{height:2px;transform:rotate(45deg);border-bottom:0}.mobile-links{position:absolute;top:68px;left:0;width:100%;padding:18px 28px 24px;background:var(--surface);border-bottom:1px solid var(--line)}.mobile-links a{display:block;padding:12px 0;color:var(--paper)}
.hero{position:relative;min-height:100dvh;display:flex;align-items:center;isolation:isolate;overflow:hidden;padding:140px 0 90px;background:radial-gradient(ellipse at 6% 5%,rgba(30,78,107,.33),transparent 58%),var(--bg)}.hero-photo{position:absolute;right:0;top:68px;bottom:0;width:52%;z-index:-2;background:url('assets/module-1.webp') center/cover;opacity:.28}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),rgba(10,26,42,.13) 75%),linear-gradient(0deg,var(--bg),transparent 40%)}.hero .wrap{position:relative}.hero h1{font-size:clamp(54px,7.9vw,110px);line-height:.94;max-width:1050px;letter-spacing:-.04em;margin-bottom:31px}.hero h1 span{color:var(--lime)}.hero p{max-width:535px;font-size:18px;margin-bottom:24px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:35px}.tags span{font-size:12px;font-weight:500;padding:8px 13px;border:1px solid rgba(244,246,241,.2);border-radius:999px;color:var(--muted)}.actions{display:flex;align-items:center;gap:30px}.hero .btn{min-height:56px;padding:18px 27px}.hero-number{position:absolute;right:0;bottom:2px;font:900 clamp(65px,11vw,152px)/.85 Archivo,sans-serif;letter-spacing:-.06em;color:var(--lime);opacity:.8;user-select:none}.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.module{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--bg)}.module-image{width:100%;aspect-ratio:16/10;flex:none;position:relative;overflow:hidden}.module-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.6);transition:transform .6s}.module:hover img{transform:scale(1.035)}.module-image:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,var(--bg))}.roman{position:absolute;z-index:1;bottom:16px;left:24px;width:90px;height:58px;text-align:left;color:var(--lime);font:900 58px/1 Archivo,sans-serif;letter-spacing:-.05em}.module-body{display:flex;flex-direction:column;flex:1;padding:14px 26px 30px}.module-body>.topic-list{flex:1}.module-body .meta{font-size:12px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:13px;display:block}.module-body h3{min-height:88px}.topic-list{list-style:none;margin:26px 0 0;padding:0}.topic-list li{position:relative;padding:0 0 15px 15px;font-size:14px;line-height:1.55;color:var(--muted)}.topic-list li:before{content:'';position:absolute;left:0;top:8px;width:4px;height:4px;background:var(--lime);border-radius:50%}.module-bottom{margin:24px 0 0;min-height:56px;line-height:1.5;padding-top:20px;border-top:1px solid var(--line);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--lime)}.stairs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:end;margin-top:52px}.step{padding:28px 24px;border:1px solid var(--line);border-top:2px solid var(--lime);border-radius:16px;background:var(--surface);min-height:220px;display:flex;flex-direction:column;justify-content:space-between}.step:nth-child(2){min-height:265px}.step:nth-child(3){min-height:310px}.step:nth-child(4){min-height:355px;background:var(--lime);color:var(--bg)}.step-number{font-family:Archivo,sans-serif;font-size:48px;font-weight:900;color:var(--lime);margin-bottom:25px;line-height:1}.step h3{margin-bottom:12px}.step p{margin:0;font-size:14px;line-height:1.65}.step:last-child .step-number,.step:last-child p{color:var(--bg)}.paradigm-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}.paradigm-grid h2{margin-bottom:38px}.mind-tools{display:grid;gap:14px}.mind-card{border:1px solid rgba(130,201,30,.65);border-radius:16px;padding:22px 24px}.mind-card h3{font-size:16px;margin-bottom:10px}.mind-card p{font-size:14px;line-height:1.5;margin:0}.countdown{font:900 30px Archivo,sans-serif;color:var(--lime);letter-spacing:.1em}.beliefs{padding-top:20px}.belief{padding:22px 0;border-bottom:1px solid var(--line)}.belief del{display:block;color:var(--muted);text-decoration-color:var(--lime);font-size:15px;margin-bottom:12px}.belief p{font-size:16px;line-height:1.6;color:var(--paper);margin:0}.tools-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:80px;align-items:center}.workbook{background:var(--surface);border-radius:16px;overflow:hidden;position:relative}.workbook img{width:100%;aspect-ratio:4/5;object-fit:cover}.tools-grid h2{margin-bottom:28px}.availability{border:1px dashed rgba(130,201,30,.65);border-radius:16px;padding:24px}.availability p{font-size:14px;margin-bottom:10px}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:40px}.result{border-top:1px solid rgba(244,246,241,.2);padding:28px 0 35px}.result strong{display:block;font:900 65px/1 Archivo,sans-serif;color:var(--lime);letter-spacing:-.04em;margin-bottom:17px}.result h3{font-size:18px;margin-bottom:12px}.result p{font-size:14px;margin:0}.plans-head{max-width:800px;margin-bottom:45px}.plans-head h2{margin-bottom:23px}.plans-head p{max-width:670px}.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}.plan{border:1px solid var(--line);background:var(--surface);padding:31px;border-radius:16px;display:flex;flex-direction:column;position:relative}.plan.featured{border:1px solid var(--lime)}.plan-tag{font-size:11px;text-transform:uppercase;letter-spacing:.09em;background:var(--lime);color:var(--bg);font-weight:700;padding:8px 14px;position:absolute;top:-16px;left:24px;border-radius:999px}.plan .plan-index{color:var(--lime);font-size:12px;letter-spacing:.1em;margin-bottom:25px}.plan h3{font-size:25px;min-height:60px}.price{font-family:Archivo,sans-serif;font-weight:700;color:var(--paper);font-size:20px;margin:30px 0 0}.plan .topic-list{margin-bottom:28px;flex:1}.plan .btn{width:100%}.faq-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:80px}.faq-grid h2{max-width:370px}.faq-list{border-top:1px solid rgba(244,246,241,.2)}.faq-item{border-bottom:1px solid rgba(244,246,241,.2)}.faq-item summary{padding:24px 38px 24px 0;list-style:none;font-size:16px;font-weight:600;position:relative;cursor:pointer;line-height:1.45}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:'+';position:absolute;right:1px;top:20px;color:var(--lime);font-size:25px;font-weight:400}.faq-item[open] summary:after{content:'−'}.faq-item p{font-size:15px;margin:0;padding:0 35px 25px 0}.contact-head{max-width:780px;margin-bottom:46px}.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:80px}.contact-card{background:var(--surface);padding:35px;border:1px solid var(--line);border-radius:16px;height:fit-content}.whatsapp{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--lime);border-radius:16px;padding:20px;color:var(--lime);margin:4px 0 20px}.whatsapp small{display:block;font-size:12px;margin-bottom:5px}.whatsapp strong{font-size:22px;letter-spacing:-.02em}.footer{padding:58px 0 25px;background:var(--surface);border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.4fr .6fr 1fr;gap:80px;padding-bottom:50px}.footer-brand{max-width:310px}.footer-brand p{font-size:14px;max-width:270px;margin:0}.footer h3{font-family:Inter,sans-serif;font-size:12px;letter-spacing:.12em;font-weight:600;margin-bottom:21px;color:var(--lime)}.footer-links{display:grid;gap:13px;font-size:14px;color:var(--muted)}.footer-links a:hover{color:var(--paper)}.footer-bottom{border-top:1px solid var(--line);padding-top:23px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:25px}.to-top{white-space:nowrap}.reveal{transform:translateY(15px);transition:transform .7s ease}.reveal.visible{transform:translateY(0)}
@media(min-width:1500px){.hero h1{font-size:116px}.hero{min-height:850px;min-height:100dvh}}
@media(max-width:1150px){.nav-links{gap:13px}.nav-links a{font-size:12px}.brand{width:185px}.nav-inner{gap:16px}.wrap{width:calc(100% - 48px)}.hero-number{font-size:95px}.paradigm-grid,.contact-grid{gap:50px}.tools-grid{gap:40px}.head{gap:30px}.module-body{padding:14px 20px 28px}.module-body h3{font-size:22px}.plan{padding:28px 23px}.nav .btn{padding:11px 13px}}
@media(max-width:980px){.nav-links,.nav-inner>.btn{display:none}.mobile-menu{display:block}.brand{width:220px}.hero h1{font-size:clamp(58px,10vw,94px)}.hero-number{display:none}.hero-photo{width:65%;opacity:.22}.head{display:block}.head p{max-width:600px;margin-top:24px}.program-grid{gap:14px}.module-body h3{font-size:21px;min-height:88px}.topic-list li{font-size:13px}.stairs{gap:10px}.step{padding:24px 18px}.step h3{font-size:23px}.tools-grid{grid-template-columns:.8fr 1fr;gap:35px}.faq-grid{gap:35px;grid-template-columns:.8fr 1.2fr}.contact-grid{gap:30px}.contact-card{padding:25px}.footer-grid{gap:40px}}
@media(max-width:740px){.wrap{width:calc(100% - 40px)}.section{padding:72px 0}.eyebrow{font-size:11px;margin-bottom:20px}.hero{padding:130px 0 70px;min-height:100dvh}.hero h1{font-size:clamp(49px,12.9vw,84px);line-height:.98;margin-bottom:27px}.hero p{font-size:16px;max-width:430px}.hero-photo{width:100%;opacity:.17}.hero-photo:after{background:linear-gradient(90deg,var(--bg),rgba(10,26,42,.35)),linear-gradient(0deg,var(--bg),transparent 70%)}.hero .actions{gap:24px;flex-wrap:wrap}.hero .btn{padding:16px 21px;min-height:52px}.tags{gap:6px;margin-bottom:30px}.tags span{padding:7px 10px;font-size:11px}.head{margin-bottom:33px}h2{font-size:34px;line-height:1.08}.program-grid{grid-template-columns:1fr;gap:25px}.module-body{padding:14px 25px 28px}.module-body h3{font-size:27px;min-height:0;max-width:330px}.topic-list li{font-size:14px}.module-image{max-height:none}.stairs{grid-template-columns:1fr;margin-top:35px;gap:12px}.step,.step:nth-child(2),.step:nth-child(3),.step:nth-child(4){min-height:0;flex-direction:row;align-items:flex-start;gap:25px;padding:25px}.step-number{font-size:38px;margin:0;min-width:52px}.step>div:last-child{flex:1}.step h3{font-size:23px}.paradigm-grid,.tools-grid,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.beliefs{padding-top:0}.tools-grid .book-column{max-width:450px;width:100%;margin:auto}.tools-grid{gap:45px}.results-grid{grid-template-columns:1fr 1fr;column-gap:24px}.result strong{font-size:52px}.result h3{font-size:16px;line-height:1.2}.result p{font-size:13px}.plans-grid{grid-template-columns:1fr;gap:29px}.plan{padding:30px}.plan h3{min-height:0}.price{margin-top:24px}.plan .topic-list{margin-top:22px}.faq-grid h2{max-width:100%}.contact-head{margin-bottom:35px}.contact-card{padding:28px}.footer-grid{grid-template-columns:1fr 1fr;gap:36px}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:18px}.footer{padding-top:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal{transform:none}.module:hover img,.btn:hover{transform:none}}

@media(max-width:740px){.results-grid{grid-template-columns:1fr}}

/* Program footer bands and WhatsApp-only contact. */
.module-body{padding-bottom:0}
.module-bottom{background:var(--lime);color:var(--bg);border-top:0;font-weight:700;min-height:64px;display:flex;align-items:center;padding:20px 26px;margin:24px -26px 0}
.contact-grid{grid-template-columns:1fr}
.contact-whatsapp-only{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:55px;padding:40px}
.contact-whatsapp-only .whatsapp{margin:0;padding:32px 26px;min-height:160px}
.contact-whatsapp-only .whatsapp strong{display:flex;align-items:center;gap:14px;font-size:clamp(24px,2.8vw,36px);white-space:nowrap}
.contact-whatsapp-only .whatsapp small{font-size:14px;margin-bottom:16px}
.whatsapp-icon{flex:none;width:32px;height:32px}

.footer-whatsapp{display:flex;align-items:center;gap:10px}
.footer-whatsapp .whatsapp-icon{width:20px;height:20px}
@media(max-width:1150px){.module-body{padding-bottom:0}.module-bottom{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.contact-whatsapp-only{gap:30px;padding:30px}}
@media(max-width:740px){.module-body{padding-bottom:0}.module-bottom{margin-left:-25px;margin-right:-25px;padding-left:25px;padding-right:25px}.contact-whatsapp-only{grid-template-columns:1fr;gap:32px;padding:24px}.contact-whatsapp-only .whatsapp{padding:24px 18px;min-height:130px}.contact-whatsapp-only .whatsapp strong{font-size:24px;gap:10px}.eyebrow .index{font-size:34px}}

@media(max-width:480px){.contact-whatsapp-only .whatsapp strong{font-size:clamp(18px,5.2vw,24px)}.contact-whatsapp-only .whatsapp .arrow{display:none}.contact-whatsapp-only .whatsapp-icon{width:28px;height:28px}}

/* Updated teaching materials, centered card footers and published prices. */
.module-bottom{justify-content:center;text-align:center;font-size:14px;letter-spacing:.04em;min-height:74px}
.module-practice{border-top:1px solid var(--line);padding-top:20px;margin-top:14px;min-height:132px}
.module-practice>span{display:block;color:var(--lime);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin-bottom:9px}
.module-practice p{font-size:14px;line-height:1.6;margin:0}
.module-image img{filter:none}
.workbook img{aspect-ratio:1;object-fit:contain}
.workbook-syllabus{margin:30px 0;display:grid;gap:0}
.workbook-syllabus>div{display:flex;gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.workbook-syllabus>div>span{min-width:45px;color:var(--lime);font:900 34px/1 Archivo,sans-serif}
.workbook-syllabus h3{font-size:17px;margin-bottom:8px}
.workbook-syllabus p{font-size:14px;line-height:1.6;margin:0}
.price{min-height:87px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.price .amount{font-size:clamp(28px,2.6vw,36px);line-height:1.15;letter-spacing:-.04em;white-space:nowrap}
.price small{font:600 13px/1.4 Inter,sans-serif;letter-spacing:.04em}

.plan.featured{background:var(--lime);color:var(--bg)}
.plan.featured .plan-index,.plan.featured .price,.plan.featured .topic-list li{color:var(--bg)}
.plan.featured .topic-list li:before{background:var(--bg)}
.plan.featured .plan-tag{background:var(--bg);color:var(--paper);border:1px solid var(--lime)}
.plan.featured .btn{background:var(--bg);border-color:var(--bg);color:var(--paper)}
.plan.featured .btn:hover{background:var(--paper);border-color:var(--paper);color:var(--bg)}
@media(max-width:740px){.module-bottom{font-size:14px}.module-practice{min-height:0;margin-top:10px;padding-bottom:5px}.price .amount{font-size:36px}.workbook-syllabus h3{font-size:16px}}

.plan.featured .btn:focus-visible{outline-color:var(--bg)}

/* Transparent workbook composition and aligned footer identity. */
.workbook{background:transparent;border-radius:0;overflow:visible;box-shadow:none}
.workbook img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.footer-grid{grid-template-columns:1.2fr .8fr 1fr;gap:clamp(28px,4vw,64px)}
.footer-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;justify-self:center;width:100%;max-width:340px;text-align:center;gap:12px}


.footer-brand p{max-width:none;margin:0;font-size:14px;line-height:1.6}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;line-height:1.6;min-width:0}
.footer-contact-item>svg,.footer-contact-item>.whatsapp-icon{width:20px;height:20px;flex:0 0 20px;color:var(--lime);margin-top:1px}
.footer-contact-item>span{overflow-wrap:anywhere}
@media(max-width:740px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}.footer-brand{grid-column:1/-1;margin-bottom:8px}}
@media(max-width:420px){.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-grid>div:not(.footer-brand){width:100%}}

/* Equal-size image windows keep all three covers and half-height steps exact. */
.workbook-staircase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,1fr);column-gap:2%;aspect-ratio:1.04;isolation:isolate}
.workbook-cover{position:relative;overflow:hidden;display:block;min-width:0;grid-row:span 2}
.cover-1{grid-column:1;grid-row:1/3}.cover-2{grid-column:2;grid-row:2/4}.cover-3{grid-column:3;grid-row:3/5}
.workbook-cover img{position:absolute;max-width:none;object-fit:fill;aspect-ratio:auto}
.cover-1 img{width:303.902439%;height:205.032468%;left:-5.365854%;top:-14.285714%}
.cover-2 img{width:319.487179%;height:203.709677%;left:-111.282051%;top:-64.193548%}
.cover-3 img{width:305.392157%;height:216.267123%;left:-202.450980%;top:-114.383562%}

/* Direct WhatsApp invitation with a prominent green action. */
.contact-invitation{font-size:18px;line-height:1.75;margin:0;max-width:580px;color:var(--paper)}
.contact-whatsapp-only{grid-template-columns:1.1fr 1fr;gap:48px}
.contact-whatsapp-only .whatsapp{background:var(--lime);color:var(--bg);border-color:var(--lime);min-height:140px;transition:background-color .2s,border-color .2s}
.contact-whatsapp-only .whatsapp:hover{background:var(--paper);border-color:var(--paper)}
.contact-whatsapp-only .whatsapp small{font-weight:600;margin-bottom:12px}

@media(max-width:740px){.contact-whatsapp-only{grid-template-columns:1fr;gap:26px}.contact-invitation{font-size:16px}.contact-whatsapp-only .whatsapp{min-height:120px}}

/* Section medallions echo the navy frame of the brand symbol. */
.eyebrow .index{display:inline-flex;align-items:center;justify-content:center;flex:0 0 62px;width:62px;height:62px;border-radius:50%;background:#102C46;border:1px solid rgba(130,201,30,.3);color:var(--lime);font-size:34px;line-height:1;letter-spacing:0}
.contact-whatsapp-only .whatsapp{position:relative;justify-self:center;display:flex;align-items:center;justify-content:center;width:100%;max-width:330px;min-height:110px;padding:22px 34px;text-align:center;transition:background-color .25s,border-color .25s,transform .25s,box-shadow .25s}
.contact-whatsapp-only .whatsapp>span:first-child{display:flex;flex-direction:column;align-items:center}
.contact-whatsapp-only .whatsapp small{text-align:center;font-size:14px;margin:0 0 10px}
.contact-whatsapp-only .whatsapp strong{justify-content:center;font-size:24px;gap:10px}
.contact-whatsapp-only .whatsapp-icon{width:28px;height:28px}
.contact-whatsapp-only .whatsapp .arrow{position:absolute;right:12px;top:12px;font-size:17px;line-height:1;transition:transform .25s}
@media(hover:hover) and (pointer:fine){.contact-whatsapp-only .whatsapp:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.18)}.contact-whatsapp-only .whatsapp:hover .arrow{transform:translate(2px,-2px)}}
.contact-whatsapp-only .whatsapp:active{transform:translateY(0);box-shadow:none}
@media(max-width:740px){.eyebrow .index{width:52px;height:52px;flex-basis:52px;font-size:29px}.contact-whatsapp-only .whatsapp{max-width:310px;padding:22px 30px}.contact-whatsapp-only .whatsapp .arrow{display:block}}
@media(prefers-reduced-motion:reduce){.contact-whatsapp-only .whatsapp,.contact-whatsapp-only .whatsapp .arrow{transition:none}.contact-whatsapp-only .whatsapp:hover,.contact-whatsapp-only .whatsapp:hover .arrow{transform:none}}

/* Workbook availability and neutral back-to-top interaction. */
.availability p{font-size:17px;margin:0}
.to-top,.to-top:visited{color:var(--muted);transition:color .2s}
.to-top:hover,.to-top:focus-visible,.to-top:active{color:var(--paper)}
@media(max-width:740px){.availability p{font-size:16px}}

/* Clearer section labels, practice panels, and expanded FAQ states. */
.section .eyebrow{font-size:16px;line-height:1.4;letter-spacing:.1em}
.eyebrow .index{border-width:5px;border-color:var(--lime)}
.module-practice{border:1px dashed rgba(130,201,30,.65);border-radius:16px;padding:24px 18px;min-height:132px;display:flex;align-items:center;justify-content:center;text-align:center;margin-top:14px}
.module-practice p{text-align:center;margin:0}
.footer-contact-item>svg,.footer-contact-item>.whatsapp-icon{display:block;width:20px;height:20px;min-width:20px;max-width:20px;flex:0 0 20px;object-fit:contain}
.faq-item{background:var(--bg);transition:background-color .2s,color .2s}
.faq-item summary{padding-left:20px;padding-right:52px}
.faq-item summary:after{right:20px}
.faq-item p{padding-left:20px;padding-right:35px}
.faq-item[open]{background:var(--lime);color:var(--bg)}
.faq-item[open] summary,.faq-item[open] p,.faq-item[open] summary:after{color:var(--bg)}
.faq-item summary:focus-visible{outline-offset:-4px}
@media(max-width:740px){.module-practice{min-height:0;padding:24px 18px}.section .eyebrow{font-size:16px;letter-spacing:.07em}}
@media(prefers-reduced-motion:reduce){.faq-item{transition:none}}

/* Framed 5×5 hero mark and top-aligned methodology content. */
.hero-number{opacity:1;background:rgba(16,44,70,.94);border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:24px;padding:28px 32px 32px;box-shadow:0 18px 48px rgba(0,0,0,.24);font-size:clamp(80px,9vw,124px);line-height:1;bottom:0}

.step{justify-content:flex-start}

/* Preserve the ascending methodology cards with the expanded classroom copy. */
@media(min-width:741px){.step{min-height:240px}.step:nth-child(2){min-height:285px}.step:nth-child(3){min-height:330px}.step:nth-child(4){min-height:375px}}

/* Program link bullets and the same subtle photo zoom for the workbook group. */
.footer-program-links a{display:flex;align-items:baseline;gap:10px}
.footer-program-links a:before{content:'';display:block;flex:0 0 5px;width:5px;height:5px;border-radius:50%;background:var(--lime);align-self:center}
.workbook-staircase{transition:transform .6s;transform-origin:center}
.book-column:hover .workbook-staircase{transform:scale(1.035)}
@media(prefers-reduced-motion:reduce){.workbook-staircase{transition:none}.book-column:hover .workbook-staircase{transform:none}}

/* ==========================================================================
   PÁGINAS LEGALES — Aviso de Privacidad y Términos y Condiciones
   Bloque añadido al diseño original. Usa los mismos tokens de :root.
   ========================================================================== */

/* Enlaces legales del pie (presentes en todas las páginas) */
/* margin-left:auto agrupa los enlaces legales junto a "Volver arriba", a la derecha */
.footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-left:auto}
.footer-legal a{color:var(--muted);transition:color .2s}
.footer-legal a:hover,.footer-legal a:focus-visible{color:var(--lime)}

/* Encabezado de la página legal */
.legal{padding:72px 0 96px}
.legal-head{max-width:880px}
.legal-head h1{font-size:clamp(34px,5.2vw,64px);line-height:1.02;letter-spacing:-.03em;max-width:none;margin-bottom:22px}
.legal-head .lead{max-width:740px;margin:0;color:var(--muted);font-size:17px;line-height:1.65}
.legal-meta{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--meta)}
.legal-meta strong{color:var(--paper);font-weight:600}

/* Índice de contenidos */
/* max-width igual al de .legal-body para que el fondo no sobresalga del texto */
.legal-toc{max-width:880px;margin:48px 0 0;padding:28px 30px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.legal-toc h2{max-width:none;margin-bottom:16px;font-size:12px;letter-spacing:.16em;color:var(--lime)}
.legal-toc ol{margin:0;padding-left:20px;font-size:14px;line-height:2.05}
.legal-toc a{color:var(--muted)}
.legal-toc a:hover,.legal-toc a:focus-visible{color:var(--lime)}

/* Cuerpo del documento */
.legal-body{max-width:880px;margin-top:60px}
.legal-body section{margin-bottom:54px;scroll-margin-top:96px}
.legal-body h2{display:flex;gap:14px;max-width:none;margin-bottom:20px;font-size:clamp(20px,2.2vw,26px);line-height:1.2}
.legal-body h2 .n{flex:0 0 auto;color:var(--lime)}
.legal-body h3{margin:28px 0 12px;font-size:15px;letter-spacing:.03em}
.legal-body p{margin:0 0 16px;color:var(--muted);font-size:15px;line-height:1.75}
.legal-body ul{margin:0 0 18px;padding:0;list-style:none}
.legal-body li{position:relative;margin-bottom:10px;padding-left:22px;color:var(--muted);font-size:15px;line-height:1.7}
.legal-body li:before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;border-radius:50%;background:var(--lime)}
.legal-body strong{color:var(--paper);font-weight:600}
/* :not(.btn) para no pisar el color ni quitar el estilo del boton de cierre */
.legal-body a:not(.btn){color:var(--lime);text-decoration:underline;text-underline-offset:3px}

/* Bloque destacado dentro del texto */
.legal-callout{margin:24px 0;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--lime);border-radius:12px}
.legal-callout p:last-child{margin-bottom:0}

@media(max-width:740px){
/* el pie se apila en columna: sin el auto, los enlaces quedan alineados como el resto */
.footer-legal{margin-left:0}
.legal{padding:48px 0 72px}
.legal-toc{margin-top:36px;padding:22px 20px}
.legal-body{margin-top:42px}
.legal-body section{margin-bottom:42px}
}

/* ==========================================================================
   VENTANA EMERGENTE de los documentos legales
   El contenido se toma de aviso-de-privacidad.html y terminos-y-condiciones.html,
   así que reutiliza los estilos .legal-head / .legal-toc / .legal-body de arriba.
   ========================================================================== */

.legal-modal{width:min(980px,calc(100vw - 48px));max-height:calc(100dvh - 72px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--bg);color:var(--paper);overflow:hidden}
/* display solo cuando está abierto: el navegador oculta <dialog> sin [open] */
.legal-modal[open]{display:flex;flex-direction:column}
.legal-modal::backdrop{background:rgba(5,14,24,.8)}

/* Barra superior con el título y la X */
.legal-modal-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px;background:var(--surface);border-bottom:1px solid var(--line)}
/* mismo tamaño y altura de línea que .legal-body h2, los encabezados de sección */
.legal-modal-title{margin:0;max-width:none;font-size:clamp(20px,2.2vw,26px);line-height:1.2}
/* Círculo lima con la X oscura y un aro exterior separado.
   El aro se hace con box-shadow, no con outline: el primer reborde usa el color
   de la barra para abrir el hueco y el segundo dibuja el aro. Así outline queda
   libre para señalar el foco del teclado, que si no sería invisible.
   appearance:none evita que iOS Safari imponga su estilo propio de <button>. */
.legal-modal-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--lime);border-radius:50%;background:var(--lime);color:var(--bg);cursor:pointer;-webkit-appearance:none;appearance:none;touch-action:manipulation;box-shadow:0 0 0 5px var(--surface),0 0 0 8px var(--lime);transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}
/* El hover solo donde hay puntero de verdad: en táctil se queda pegado tras el toque. */
@media(hover:hover){.legal-modal-close:hover{background:var(--paper);border-color:var(--paper);box-shadow:0 0 0 5px var(--surface),0 0 0 8px var(--paper)}}
/* Con teclado: el aro pasa a blanco, distinguible del verde de reposo. */
.legal-modal-close:focus-visible{outline:none;background:var(--paper);border-color:var(--paper);box-shadow:0 0 0 5px var(--surface),0 0 0 8px var(--paper)}
.legal-modal-close svg{width:17px;height:17px}

/* Zona desplazable */
/* Recibe el foco al abrir (tabindex="-1"): es un contenedor, no un control,
   así que no debe dibujar el aro de foco del sitio. */
.legal-modal-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px 24px 36px}
.legal-modal-scroll:focus,.legal-modal-scroll:focus-visible{outline:none}

/* Ajustes del contenido reutilizado dentro de la ventana */
.legal-modal .legal-head,.legal-modal .legal-toc,.legal-modal .legal-body{max-width:none}
.legal-modal .legal-head .lead{max-width:none}
.legal-modal .legal-toc{margin-top:26px;padding:22px 22px}
.legal-modal .legal-body{margin-top:32px}
.legal-modal .legal-body section{margin-bottom:38px;scroll-margin-top:14px}
.legal-modal .legal-body section:last-child{margin-bottom:0}

@media(max-width:740px){
.legal-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 28px)}
.legal-modal-bar{padding:14px 16px;gap:14px}
/* 44px es el mínimo recomendado para un objetivo táctil */
.legal-modal-close{width:44px;height:44px}
.legal-modal-scroll{padding:22px 16px 28px}
.legal-modal .legal-toc{padding:20px 18px}
}

/* ==========================================================================
   MENÚ MÓVIL — revelado circular desde el botón + entrada escalonada
   El panel vive FUERA de <details> y también FUERA de <header class="nav">:
     - fuera de <details> porque el navegador aplica content-visibility:hidden
       a su contenido y eso impide animarlo;
     - fuera de la barra porque .nav lleva backdrop-filter, y eso la convierte
       en el bloque contenedor de sus descendientes position:fixed, que
       quedarían recortados a los 68px de alto de la barra.
   Por eso el estado abierto se detecta con :has() y no con el hermano ~.
   El botón de hamburguesa y su giro a diagonal para cerrar no se tocan.
   Se queda en z-index 40, por debajo de la barra (50), para que el botón siga
   accesible por encima del panel.
   ========================================================================== */

.mobile-links{display:none}

@media(max-width:980px){
.mobile-links{
  display:flex;flex-direction:column;justify-content:flex-start;gap:4px;
  position:fixed;inset:0;z-index:40;
  /* 96px abajo: deja libre la esquina donde flota la burbuja de WhatsApp */
  width:100%;padding:92px 22px 96px;margin:0;
  background:var(--bg);border-bottom:0;
  overflow-y:auto;overscroll-behavior:contain;
  /* círculo de radio 0 centrado en la hamburguesa: nada visible */
  clip-path:circle(0% at calc(100% - 42px) 34px);
  visibility:hidden;
  transition:clip-path .55s cubic-bezier(.25,.1,.25,1),visibility 0s linear .55s;
}
:root:has(.mobile-menu[open]) .mobile-links{
  clip-path:circle(150% at calc(100% - 42px) 34px);
  visibility:visible;
  transition:clip-path .55s cubic-bezier(.25,.1,.25,1),visibility 0s;
}

/* Cada elemento entra desde abajo; el retardo los encadena de uno en uno */
.mobile-links>*{opacity:0;transform:translateY(30px) scale(.96);transition:opacity .45s cubic-bezier(.25,.1,.25,1),transform .45s cubic-bezier(.25,.1,.25,1)}
:root:has(.mobile-menu[open]) .mobile-links>*{opacity:1;transform:none}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(1){transition-delay:.10s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(2){transition-delay:.15s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(3){transition-delay:.20s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(4){transition-delay:.25s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(5){transition-delay:.30s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(6){transition-delay:.35s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(7){transition-delay:.40s}
:root:has(.mobile-menu[open]) .mobile-links>:nth-child(8){transition-delay:.45s}


.mobile-links a{
  display:flex;align-items:center;
  padding:15px 18px;border-radius:14px;
  color:var(--paper);font-size:19px;font-weight:600;letter-spacing:-.01em;
  background:transparent;transition:background-color .2s,color .2s}
.mobile-links a:active{background:rgba(244,246,241,.07)}

/* margin-top:auto empuja el botón al fondo del panel, pase lo que pase arriba */
.mobile-links .mobile-cta{margin-top:auto;justify-content:center;background:var(--lime);color:var(--bg)}
.mobile-links .mobile-cta:active{background:var(--paper)}

.mobile-foot{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--meta);text-align:center}

/* Con el panel abierto, la página de detrás no debe desplazarse */
html:has(.mobile-menu[open]){overflow:hidden}
}

@media(max-width:980px) and (prefers-reduced-motion:reduce){
.mobile-links,:root:has(.mobile-menu[open]) .mobile-links{transition:none}
.mobile-links>*,:root:has(.mobile-menu[open]) .mobile-links>*{transition:none;transform:none}
}

/* ==========================================================================
   BURBUJA DE WHATSAPP — fija en todas las vistas
   Mismo planteamiento que el sitio de referencia (píldora abajo a la derecha
   con anillo que late), pero en el lima de la marca y con el icono oscuro que
   ya existe en assets/. El número es el de la empresa.
   z-index 45: por debajo de la barra (50) y del <dialog>, que va en la capa
   superior del navegador.
   ========================================================================== */

.wa-bubble{
  position:fixed;right:20px;bottom:20px;z-index:45;
  display:inline-flex;align-items:center;gap:11px;
  padding:13px 20px 13px 16px;border-radius:999px;
  background:var(--lime);color:var(--bg);
  font-size:14px;font-weight:700;line-height:1;
  box-shadow:0 18px 30px -10px rgba(0,0,0,.45),0 6px 12px -6px rgba(0,0,0,.35);
  transition:transform .25s,box-shadow .25s,background-color .2s}
.wa-bubble img{position:relative;z-index:1;width:24px;height:24px;flex:0 0 auto}


/* Anillo que late detrás de la píldora */
.wa-pulse{
  position:absolute;inset:0;border-radius:inherit;
  background:var(--lime);opacity:.45;
  animation:wa-latido 2.4s cubic-bezier(0,0,.2,1) infinite}
@keyframes wa-latido{
  0%{transform:scale(1);opacity:.45}
  70%{transform:scale(1.18);opacity:0}
  100%{transform:scale(1.18);opacity:0}
}

@media(hover:hover){
.wa-bubble:hover{transform:scale(1.05);background:var(--paper);box-shadow:0 22px 38px -10px rgba(0,0,0,.5)}
.wa-bubble:hover .wa-pulse{background:var(--paper)}
}
.wa-bubble:focus-visible{outline:3px solid var(--paper);outline-offset:4px}

/* En móvil queda solo el círculo con el icono */
@media(max-width:740px){
.wa-bubble{right:16px;bottom:16px;gap:0;padding:14px;border-radius:50%}

}

/* La burbuja sigue visible con el menú móvil abierto: va en z-index 45 y el
   panel en 40. El choque con "Quiero inscribirme" se evita reservando hueco
   al final del panel (ver padding-bottom del menú móvil), no ocultándola.

   scrollbar-gutter:stable reserva siempre el hueco de la barra de scroll. Sin
   esto, al abrir el menú o la ventana legal se aplica overflow:hidden, la barra
   desaparece y todo lo fijado al viewport salta 15px a la derecha. */
html{scrollbar-gutter:stable}

@media(prefers-reduced-motion:reduce){
.wa-pulse{animation:none;opacity:0}
.wa-bubble{transition:none}
}

/* ==========================================================================
   LOGO UNIFICADO — mismo tamaño en la barra y en el pie, en todas las vistas.
   Se adopta el tamaño de la barra (215px) porque es la medida restringida:
   la barra tiene 68px de alto y en móvil comparte sitio con la hamburguesa.
   Estas reglas van al final del archivo, así que ganan por orden a las
   versiones responsive originales (185px / 220px / 300px) sin tocarlas.

   height:auto corrige además la caja del logo de la barra: heredaba el alto
   intrínseco del SVG (248px), así que su enlace desbordaba la barra 90px por
   arriba y 90px por abajo y capturaba clics sobre el contenido de debajo.
   El dibujo se veía bien porque el SVG conserva su proporción dentro de la caja.
   ========================================================================== */

.brand{width:215px}
.brand img{width:100%;height:auto}

/* ==========================================================================
   DATOS PENDIENTES — modo borrador
   Lo que lleva data-pendiente depende de un dato real que todavía no tenemos
   (fechas, profesor, testimonios, garantía, horarios…).
     - En el sitio publicado se oculta solo: nunca se ve un "[fecha]".
     - En local (file://, localhost) o con ?borrador en la URL se muestra con
       un borde punteado amarillo, para saber qué falta y dónde.
     - Con ?publicado se ve en local tal como quedará en línea.
   Para activarlo: escribe el dato real en lugar de los [corchetes] y borra el
   atributo data-pendiente. La clase .borrador la pone un script en el <head>
   de index.html antes de pintar nada, así que no hay parpadeo.
   ========================================================================== */

html:not(.borrador) [data-pendiente]{display:none!important}
/* Excepción: en local se muestran los testimonios de ejemplo para enseñarlos; en línea siguen ocultos. */
html.en-local #testimonios[data-pendiente]{display:block!important}
.borrador [data-pendiente]{outline:2px dashed #FFC83D;outline-offset:4px}
.borrador section[data-pendiente]{outline-offset:-10px}
.borrador body:after{
  content:'BORRADOR · Naranja: dato de ejemplo inventado, cámbialo por el real · Amarillo: no se publica';
  position:fixed;left:16px;bottom:16px;z-index:46;max-width:min(420px,calc(100% - 110px));
  padding:10px 14px;border-radius:12px;background:#FFC83D;color:var(--bg);
  font:700 12px/1.4 Inter,sans-serif;box-shadow:0 10px 24px rgba(0,0,0,.35);pointer-events:none}

/* Numeración automática de las secciones. Las que están ocultas no cuentan,
   así que nunca quedan huecos (1, 2, 4…) mientras falten datos. */
main{counter-reset:seccion}
.eyebrow .index{counter-increment:seccion}
.eyebrow .index:before{content:counter(seccion)}

/* Separador para las secciones que comparten color de fondo con la anterior.
   Las secciones pendientes toman el fondo de su vecina de arriba: ocultas, la
   alternancia azul / azul claro del diseño original queda intacta. */
.divided{border-top:1px solid var(--line)}

/* ==========================================================================
   MEJORAS DE CONVERSIÓN — piezas nuevas
   ========================================================================== */

/* Portada: foto propia (antes repetía la del Módulo I), aviso de próxima
   generación y nota bajo los botones */
/* Burbuja de la portada: centrada, con sus tres datos separados por "·". En
   pantallas angostas cada dato va en su propio renglón y no se corta a la mitad. */
.hero-badge{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;width:fit-content;max-width:100%;margin:0 auto 40px;padding:10px 22px;border:1px solid rgba(130,201,30,.65);border-radius:999px;background:rgba(10,26,42,.55);font-size:13px;font-weight:600;line-height:1.45;text-align:center;color:var(--paper);transition:border-color .2s}
.hero-badge span{white-space:nowrap}
.hero-badge span:first-child:before{content:'';display:inline-block;width:8px;height:8px;margin-right:10px;vertical-align:1px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(130,201,30,.2)}
.hero-badge span+span:before{content:'·';margin:0 .6em;color:var(--lime)}
.hero-badge:hover{border-color:var(--lime)}
@media(max-width:900px){.hero-badge{flex-direction:column;gap:3px;padding:12px 24px;border-radius:22px}.hero-badge span{white-space:normal}.hero-badge span+span:before{content:none}}
@media(max-width:740px){.hero-badge{margin-bottom:30px}}
.hero .hero-note{max-width:none;margin:20px 0 0;font-size:14px;line-height:1.6;color:var(--meta);text-wrap:balance}
/* Nota en un renglón; en computadora no llega a la tarjeta 5×5 de la derecha */
@media(min-width:981px){.hero .hero-note{max-width:calc(100% - 380px)}}

/* Franja de cifras */
.proof{padding:38px 0}
/* Cifra de egresados centrada y, debajo, renglón de logos de empresas */
.proof-wrap{display:flex;flex-direction:column;align-items:center;gap:30px;text-align:center}
.proof-solo{width:min(100%,320px)}
.proof-logos{width:100%;max-width:980px;padding-top:28px;border-top:1px solid var(--line)}
.proof-logos-titulo{margin:0 0 18px;font-size:12px;font-weight:600;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-wrap:balance}
.logo-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.logo-row li{display:flex;align-items:center;justify-content:center;height:72px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
/* Los logos se muestran en blanco para que todos se vean parejos sobre el fondo oscuro */
.logo-row img{max-width:100%;max-height:40px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1);opacity:.7;transition:opacity .2s}
.logo-row li:hover img{opacity:1}
.logo-row li:has(.logo-vacio){border-style:dashed}
.logo-vacio{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.6}
@media(max-width:740px){.logo-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.logo-row li{height:60px}}
@media(max-width:380px){.logo-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.proof-stat{padding:0 28px}
.proof-stat strong{display:block;margin-bottom:8px;font:900 42px/1 Archivo,sans-serif;letter-spacing:-.04em;color:var(--lime)}
.proof-stat{container-type:inline-size}
.proof-stat span{display:block;font-size:min(12px,calc(100cqi / 9));font-weight:600;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* ¿Es para ti?: situaciones frecuentes y a quién va dirigido */
/* "¿Te suena familiar?": ícono, frase, módulo y descripción. Las filas internas
   son una subrejilla: "Módulo …" queda a la misma altura en todas las tarjetas
   de una fila aunque la frase ocupe más renglones. */
.pain-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.pain{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;padding:24px 22px 26px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at 0% 0%,rgba(130,201,30,.1),transparent 60%),var(--surface);transition:border-color .25s}
.pain:hover{border-color:rgba(130,201,30,.55)}
.pain-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:20px;border:1px solid rgba(130,201,30,.65);border-radius:13px;background:#102C46;color:var(--lime)}
.pain-icon svg{width:26px;height:26px}
.pain h3{margin-bottom:20px;font:600 18px/1.35 Inter,sans-serif;letter-spacing:-.01em;text-transform:none}
.pain-module{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:16px;text-align:center;border-top:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.pain p{margin:10px 0 0;font-size:13.5px;line-height:1.55}
/* Cierre de la sección 1: tarjeta "No necesitas experiencia. Necesitas un método." con el recuadro punteado "Aquí se viene a practicar" al pie (mismo diseño que tenía "No es para ti si…") */
.fit{width:fit-content;max-width:100%;margin:44px auto 0;padding:30px;border:1px solid var(--line);border-radius:16px}
.fit h3{font-size:20px;color:var(--paper)}
.fit h3 span{display:block;color:var(--lime)}
.fit-note{display:flex;align-items:flex-start;gap:16px;margin-top:22px;padding:20px;border:1.5px dashed var(--lime);border-radius:14px;background:radial-gradient(ellipse at 0% 0%,rgba(130,201,30,.16),transparent 65%),#102C46}
.fit-note-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--lime);color:var(--bg);box-shadow:0 0 0 5px rgba(130,201,30,.16)}
.fit-note-icon svg{width:24px;height:24px}
@media(max-width:740px){.fit{margin-top:34px;padding:24px}
.fit-note{flex-direction:column;gap:14px;padding:18px}}
.fit-note p{margin:0;font-size:15px;line-height:1.55;color:var(--paper)}
.fit-note strong{display:block;margin-bottom:4px;font:900 19px/1.15 Archivo,'Arial Black',sans-serif;letter-spacing:-.01em;text-transform:uppercase;color:var(--lime)}

/* Recuadro para mamás y papás dentro de "¿Es para ti?" */

/* Programa: etiqueta "Con qué sales" y ayuda para elegir módulo */
.module-practice{flex-direction:column}
.program-help{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:24px 28px;border:1px dashed rgba(130,201,30,.65);border-radius:16px}
.program-help p{margin:0;max-width:640px;font-size:16px;line-height:1.6;color:var(--paper)}
.program-help .btn{flex:none}

/* Cómo funciona: ficha con los datos prácticos del programa */
.facts{margin-top:56px}
.facts>h3{margin-bottom:20px;font-size:20px}
.facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
/* Lo que necesitas saber: mismo fondo; contorno punteado verde, como los demás recuadros de información */
.fact{padding:20px 22px;border:1.5px dashed var(--lime);border-radius:16px;background:var(--surface)}
.fact small{display:block;margin-bottom:8px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.fact strong{display:block;font-size:15px;line-height:1.5;font-weight:600;color:var(--paper)}
.fact-link{color:var(--lime);text-decoration:underline;text-decoration-color:rgba(130,201,30,.4);text-underline-offset:4px;transition:text-decoration-color .2s}
.fact-link:hover{text-decoration-color:var(--lime)}

/* Profesor. Con la foto real, el monograma .teacher-monogram se cambia por
   <img src="assets/profesor.webp" alt="Francisco Ubando" width="800" height="1000">. */
.teacher{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.teacher>img{width:100%;aspect-ratio:4/5;border-radius:16px;object-fit:cover}
.teacher h2{margin-bottom:12px}
.teacher .role{margin-bottom:22px;font-size:16px;font-weight:600;color:var(--lime)}
.teacher-story{margin-bottom:26px}
.teacher-story p{margin:0 0 14px;line-height:1.65}
/* Frase de Francisco en tarjeta con el símbolo del logo (sus dos piezas se separan y se vuelven a unir) y firma;
   el cierre va aparte, en lima y mayúsculas, para que no se confunda con la cita. */
.teacher-quote{display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:start;margin:26px 0;padding:22px 24px 20px;border-radius:14px;background:var(--surface);font:800 22px/1.35 Archivo,sans-serif;letter-spacing:-.01em;color:var(--paper)}
.teacher-quote-mark{width:48px;height:auto;margin-top:2px;overflow:visible}
.teacher-quote-mark .pieza-blanca{animation:pieza-blanca 2.6s ease-in-out infinite}
.teacher-quote-mark .pieza-verde{animation:pieza-verde 2.6s ease-in-out infinite}
@keyframes pieza-blanca{0%,20%,100%{transform:translate(0,0)}55%,65%{transform:translate(-18px,10px)}}
@keyframes pieza-verde{0%,20%,100%{transform:translate(0,0)}55%,65%{transform:translate(18px,-10px)}}
@media(prefers-reduced-motion:reduce){.teacher-quote-mark path{animation:none}}
.teacher-quote footer{margin-top:12px;text-align:right;font:700 12px/1.4 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--lime)}
.teacher-story p.teacher-cierre{margin:20px 0 0;font:900 28px/1.1 Archivo,sans-serif;letter-spacing:-.02em;text-transform:uppercase;color:var(--lime)}
@media(max-width:740px){.teacher-quote{grid-template-columns:36px 1fr;gap:14px;padding:18px 18px 16px;font-size:19px}.teacher-quote-mark{width:36px}.teacher-story p.teacher-cierre{font-size:23px}}
.teacher-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}
/* Cifras del profesor: mismo estilo que las cajas del embudo (20 · 10 · 5 · 2), con la línea verde abajo */
.teacher-facts>div{padding:16px 14px;border:0;border-bottom:3px solid var(--lime);border-radius:12px;background:var(--surface);text-align:center}
.teacher-facts strong{display:block;margin-bottom:8px;font:900 30px/1 Archivo,sans-serif;letter-spacing:-.03em;color:var(--lime)}
.teacher-facts span{display:block;font-size:12px;font-weight:600;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* Testimonios: solo alumnos reales, con nombre y autorización */
/* Carrusel: 3 tarjetas a la vista y un pedazo de la siguiente (2 en tableta, 1 en celular), difuminado en el lado
   donde hay más, número en cada tarjeta y abajo contador, barra de avance y flechas. */
.testimonial-grid{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 60px) / 3.3);grid-template-rows:repeat(4,auto);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.testimonial-grid::-webkit-scrollbar{display:none}
.testimonial-grid>.testimonial{scroll-snap-align:start}
.testimonial-grid.mas-derecha{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent)}
.testimonial-grid.mas-izquierda{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%);mask-image:linear-gradient(to right,transparent,#000 8%)}
.testimonial-grid.mas-izquierda.mas-derecha{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 82%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 82%,transparent)}
.testimonial{position:relative}
.testimonial-person .testimonial-num{display:block;position:absolute;top:14px;right:18px;font:900 18px/1 Archivo,sans-serif;letter-spacing:-.02em;color:var(--lime)}
.testimonial-person .testimonial-num small{display:inline;margin-left:2px;font-size:12px;font-weight:700;letter-spacing:0;color:var(--meta)}
.testimonial-nav{display:flex;align-items:center;gap:28px;margin-top:28px}
.testimonial-progress{flex:1;min-width:0}
.testimonial-count{display:block;margin-bottom:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.testimonial-bar{display:block;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.testimonial-bar span{display:block;width:25%;height:100%;border-radius:4px;background:var(--lime);transition:width .35s ease}
/* Flechas a la derecha, por encima del botón flotante de WhatsApp (z-index 45) para que nunca las tape. */
.testimonial-arrows{position:relative;z-index:46;display:flex;gap:12px}
.testimonial-nav button{display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--paper);transition:background-color .2s,border-color .2s,color .2s,opacity .2s}
.testimonial-nav button:hover:not(:disabled){background:var(--lime);border-color:var(--lime);color:var(--bg)}
.testimonial-nav .testimonial-next:not(:disabled){background:var(--lime);border-color:var(--lime);color:var(--bg)}
.testimonial-nav .testimonial-next:hover:not(:disabled){background:var(--paper);border-color:var(--paper)}
.testimonial-nav button:disabled{opacity:.3;cursor:default}
.testimonial-nav svg{width:22px;height:22px}
@media(prefers-reduced-motion:reduce){.testimonial-grid{scroll-behavior:auto}}
/* Subrejilla: persona, frase y Antes/Después alineados entre tarjetas */
.testimonial{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:20px;padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}
.testimonial-person{display:flex;align-items:center;gap:14px}
/* Fotos reales de los alumnos (cuando las haya): mismo tamaño que las iniciales */
.testimonial-person img{flex:0 0 56px;width:56px;height:56px;border-radius:50%;object-fit:cover}
.testimonial-person strong{display:block;font-size:15px}
.testimonial-person span{display:block;font-size:13px;color:var(--muted)}
.testimonial blockquote{margin:0;font-size:16px;line-height:1.65;color:var(--paper)}
/* Calificación: 5 estrellas grises y encima las verdes, que se llenan de izquierda a derecha hasta la calificación
   (--rating, admite medias) cuando la tarjeta aparece en pantalla o entra al carrusel. */
.testimonial-rating{display:flex;align-items:center;gap:10px}
.stars{position:relative;display:block;width:120px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-1 -1 26 24'%3E%3Cpath fill='%23324B60' d='M12 1.5l3.09 6.26 6.91 1.01-5 4.87 1.18 6.88L12 17.27l-6.18 3.25L7 13.64 2 8.77l6.91-1.01z'/%3E%3C/svg%3E") repeat-x left center/24px 22px}
.stars>span{position:absolute;inset:0 auto 0 0;width:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-1 -1 26 24'%3E%3Cpath fill='%2382C91E' d='M12 1.5l3.09 6.26 6.91 1.01-5 4.87 1.18 6.88L12 17.27l-6.18 3.25L7 13.64 2 8.77l6.91-1.01z'/%3E%3C/svg%3E") repeat-x left center/24px 22px;transition:width 1.4s cubic-bezier(.2,.7,.2,1) .2s}
.stars.llenas>span{width:calc(var(--rating) / 5 * 100%)}
.testimonial-rating b{font:800 15px/1 Archivo,sans-serif;color:var(--paper)}
@media(prefers-reduced-motion:reduce){.stars>span{transition:none}}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.before-after small{display:block;margin-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.before-after span{font-size:14px;color:var(--muted)}

/* Cuadernos disponibles: mismo marco y fondo que la foto del profesor (antes, contorno punteado) */
.availability{border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:16px;background:radial-gradient(ellipse at 30% 20%,rgba(30,78,107,.55),transparent 60%),#102C46}
.availability-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/* Precios: ahorro del programa completo, pagos y garantía */
.plans-note{margin:28px 0 0;font-size:14px;text-align:center}
.guarantee{display:flex;align-items:center;gap:26px;margin-top:28px;padding:28px 30px;border:1px solid rgba(130,201,30,.65);border-radius:16px;background:var(--surface)}
.guarantee-seal{flex:0 0 92px;height:92px;display:grid;place-items:center;border:5px solid var(--lime);border-radius:50%;background:#102C46;font:900 13px/1 Archivo,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--lime)}
.guarantee h3{margin-bottom:8px;font-size:20px}
.guarantee p{margin:0;font-size:15px}

/* Preguntas: acceso directo a WhatsApp bajo el título */
.faq-more{margin:28px 0 0;font-size:15px;color:var(--muted)}
/* Preguntas frecuentes: cada pregunta es una tarjeta. El botón circular con "+"
   gira a "×" y se llena de verde al abrir; la respuesta se despliega con
   animación donde el navegador lo permite (::details-content). */
.faq-list{display:grid;gap:12px;border-top:0}
.faq-item{border:1px solid var(--line);border-radius:16px;background:var(--bg);transition:border-color .25s,background-color .25s}
.faq-item:hover{border-color:rgba(130,201,30,.45)}
.faq-item[open]{border-color:rgba(130,201,30,.65);background:radial-gradient(ellipse at 0% 0%,rgba(130,201,30,.12),transparent 60%),#102C46;color:var(--paper)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 18px 18px 24px;transition:color .2s}
.faq-item summary:hover,.faq-item[open] summary{color:var(--lime)}
.faq-item summary:after,.faq-item[open] summary:after{content:'';position:static;flex:none;width:36px;height:36px;border:1.5px solid rgba(130,201,30,.65);border-radius:50%;background:linear-gradient(var(--lime),var(--lime)) center/12px 2px no-repeat,linear-gradient(var(--lime),var(--lime)) center/2px 12px no-repeat;transition:transform .3s ease,background-color .25s,border-color .25s}
.faq-item summary:hover:after{border-color:var(--lime)}
.faq-item[open] summary:after{transform:rotate(45deg);border-color:var(--lime);background-color:var(--lime);background-image:linear-gradient(var(--bg),var(--bg)),linear-gradient(var(--bg),var(--bg))}
.faq-item p,.faq-item[open] p{margin:0 24px;padding:16px 0 22px;border-top:1px solid var(--line);font-size:15px;line-height:1.65;color:var(--muted)}
@supports selector(::details-content){.faq-item{interpolate-size:allow-keywords}.faq-item::details-content{block-size:0;overflow:clip;transition:block-size .35s ease,content-visibility .35s allow-discrete}.faq-item[open]::details-content{block-size:auto}}
@media(max-width:740px){.faq-item summary{padding:16px 14px 16px 18px;gap:14px}.faq-item summary:after{width:32px;height:32px}.faq-item p,.faq-item[open] p{margin:0 18px}}
@media(prefers-reduced-motion:reduce){.faq-item,.faq-item summary,.faq-item summary:after,.faq-item::details-content{transition:none}}
.faq-more .textlink{display:flex;width:fit-content;margin-top:6px;color:var(--lime)}

/* Inscripción: los tres pasos, todos por WhatsApp */
.enroll-steps{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:18px;counter-reset:paso}
.enroll-steps li{display:flex;align-items:flex-start;gap:16px}
.enroll-steps li:before{counter-increment:paso;content:counter(paso);flex:0 0 44px;height:44px;display:grid;place-items:center;border:3px solid var(--lime);border-radius:50%;background:#102C46;font:900 19px/1 Archivo,sans-serif;color:var(--lime)}
.enroll-steps h3{margin:2px 0 4px;font-size:17px}
.enroll-steps p{margin:0;font-size:15px;line-height:1.6}

/* Guion de llamada (guia-de-llamada.html): reutiliza el diseño de las páginas
   legales. Al imprimir o guardar en PDF sale en blanco y negro legible, sin
   menú, pie ni burbuja de WhatsApp. */
.guide-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:30px}
/* Páginas tipo documento (guía, aviso y términos): el título quedaba pegado a
   la barra fija de 68px; se le da el mismo aire que al resto de secciones. */
.legal{padding-top:124px}
@media(max-width:740px){.legal{padding-top:104px}}
.print-only{display:none}
@media print{
/* color-scheme:dark de :root pinta de negro los márgenes de la hoja */
:root{color-scheme:light!important}
html,body{background:#fff!important}
.nav,.mobile-links,.footer,.wa-bubble,.skip,.legal-modal,.no-print{display:none!important}
.guide{padding:0!important}
.guide *{color:#0A1A2A!important}
.guide .eyebrow,.guide .legal-body h2 .n{color:#4A7A0C!important}
.guide .legal-head h1{font-size:30px;margin-bottom:12px}
.guide .legal-head .lead{font-size:13px;line-height:1.55}
.guide .legal-body{margin-top:24px}
.guide .legal-body section{break-inside:avoid;margin-bottom:18px}
.guide .legal-body h2{font-size:16px;margin-bottom:8px}
.guide .legal-body p{font-size:12.5px;line-height:1.55;margin-bottom:8px}
.guide .legal-callout{margin:8px 0 0;padding:10px 16px;background:#F4F6F1!important;border-color:#82C91E!important}
.guide .print-only{display:block;margin-top:24px;padding-top:12px;border-top:1px solid #C3CFC8;font-size:11px}
}

@media(max-width:1150px){
.pain-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:980px){
.teacher{grid-template-columns:1fr;gap:36px}
.teacher>img{max-width:360px}
.testimonial-grid{grid-auto-columns:calc((100% - 40px) / 2.3)}
.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:740px){
.pain-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pain{padding:20px 16px}
.pain-icon{width:40px;height:40px;margin-bottom:16px}
.pain-icon svg{width:24px;height:24px}
.pain h3{font-size:16px;margin-bottom:16px}

.program-help{flex-direction:column;align-items:flex-start;padding:22px}
.program-help .btn,.availability-actions .btn{width:100%}
.facts{margin-top:40px}
.teacher-facts{grid-template-columns:1fr}
.proof-stat{padding:0 14px}
.proof-stat strong{font-size:32px}
.guarantee{flex-direction:column;align-items:flex-start;padding:24px}
.hero .hero-note{font-size:13px}
.hero-badge{font-size:12px}
}
@media(max-width:560px){.facts-grid{grid-template-columns:1fr}}
@media(max-width:420px){.pain-grid{grid-template-columns:1fr}}

/* Portada "Vender es la habilidad más grande que debes tener": título largo que
   cabe en dos líneas en computadora (se redeclaran los cortes porque esta regla
   va después de los del diseño original). */
/* Título en 4 renglones cortos: "Vender no es un / oficio, es la habilidad / que te consigue /
   todo lo demás…" ("Vender" y "todo lo demás…" en lima). En celular los cortes se quitan y el
   texto se acomoda solo. La continuación ("un mejor trabajo…") va abajo como frase destacada. */
.hero h1{max-width:1180px;font-size:clamp(40px,5.4vw,74px);line-height:1;text-wrap:balance}
@media(min-width:1500px){.hero h1{font-size:76px}}
@media(max-width:980px){.hero h1{font-size:clamp(40px,5.6vw,54px)}}
@media(max-width:740px){.hero h1{font-size:min(38px,9.4vw);line-height:1.04}.hero h1 br{display:none}}
/* Frase destacada como cita: barra verde a la izquierda y letra un poco más grande */
.hero p.hero-lead{max-width:660px;margin:-6px 0 24px;padding:2px 0 2px 22px;border-left:5px solid var(--lime);font:600 clamp(20px,1.8vw,26px)/1.4 Inter,sans-serif;color:var(--paper)}
@media(max-width:740px){.hero p.hero-lead{margin-top:-4px;padding-left:16px;border-left-width:4px;font-size:19px}}
.hero p strong{color:var(--paper);font-weight:700}

/* ==========================================================================
   TARJETA DEL MÉTODO 5×5 EN LA PORTADA
   Cada 5 lleva su etiqueta debajo (Contactos + Presentaciones) y una franja
   lima al pie, como las bandas de los módulos. Reemplaza el "5×5" solo.
   ========================================================================== */
.hero-number{display:grid;padding:24px 26px 0;overflow:hidden;border:1px solid rgba(130,201,30,.65);border-radius:24px;background:radial-gradient(ellipse at 50% 0%,rgba(130,201,30,.18),transparent 62%),rgba(16,44,70,.96);box-shadow:0 22px 50px -18px rgba(0,0,0,.6);font-size:16px;line-height:1;letter-spacing:0}
/* Tarjeta 5×5: subida 110 % de su propia altura (antes 50 %; se subió a 100 % y luego a 110 % el 2026-11-04) */
.hero-number{transform:translateY(-110%)}
.m55-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px 10px;text-align:center}
.m55-n{font:900 clamp(78px,7.2vw,108px)/.88 Archivo,sans-serif;letter-spacing:-.05em;color:var(--lime)}
.m55-x{font:900 clamp(28px,2.4vw,38px)/1 Archivo,sans-serif;color:var(--paper)}
.m55-l{font:700 11px/1.2 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--paper)}
.m55-plus{font:900 18px/1 Archivo,sans-serif;color:var(--lime)}
.m55-band{margin:18px -26px 0;padding:12px 16px;background:var(--lime);color:var(--bg);font:800 12px/1 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-align:center}
/* Como en el diseño original, la tarjeta solo se muestra en computadora */
@media(max-width:980px){.hero-number{display:none}}

/* ==========================================================================
   AHORRO DEL PROGRAMA COMPLETO — sello girado en la esquina de la tarjeta
   El aro punteado va 10px adentro del borde y el monto es chico a propósito:
   el texto nunca toca la línea punteada (en celular el sello se reduce).
   ========================================================================== */
.price .price-before{display:block;font:600 14px/1.2 Inter,sans-serif;letter-spacing:0;opacity:.75}
.price .price-before s{margin-left:4px;text-decoration-thickness:2px}
.saving-sticker{position:absolute;z-index:1;top:58px;right:20px;width:140px;height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin:0;border-radius:50%;background:var(--bg);text-align:center;transform:rotate(-10deg);box-shadow:0 14px 28px -12px rgba(0,0,0,.55),0 0 0 4px rgba(10,26,42,.18)}
.saving-sticker:before{content:'';position:absolute;inset:20px;border:1.5px dashed rgba(130,201,30,.7);border-radius:50%}
.saving-sticker span{font:700 10px/1 Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--paper)}
.saving-sticker strong{font:900 18px/1 Archivo,sans-serif;letter-spacing:-.01em;color:var(--lime)}
/* Frase "Con duración de un mes" girando alrededor del sello, igual que el sello de garantía (el sello no se mueve, solo el texto).
   El texto va pegado al borde para que la franja oscura no sea más alta que la letra. */
.saving-ring{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);overflow:visible;animation:girar-garantia 24s linear infinite}
@media(prefers-reduced-motion:reduce){.saving-ring{animation:none}}
.saving-ring text{fill:var(--lime);font:800 16.2px Archivo,sans-serif;letter-spacing:.02em}
.saving-sticker .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:740px){.saving-sticker{top:48px;right:8px;width:118px;height:118px;gap:4px}.saving-sticker:before{inset:17px}.saving-ring text{font-size:16.8px}.saving-sticker span{font-size:9px}.saving-sticker strong{font-size:15px}}

/* ==========================================================================
   ROMPER PARADIGMAS — textos del Cuaderno de trabajo, Módulo I (Día 3)
   ========================================================================== */
.paradigm-grid h2{margin-bottom:18px}
.mind-intro{margin:0 0 30px;max-width:520px;font-size:17px;line-height:1.65;color:var(--paper)}
.mind-card p{font-size:14px;line-height:1.6}
.beliefs-title{margin-bottom:6px;font-size:18px;line-height:1.25;color:var(--lime)}
.belief:first-of-type{padding-top:22px}
.mind-transform{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:center;margin-top:60px;padding:36px 40px;border:1px solid rgba(130,201,30,.65);border-radius:16px;background:var(--bg)}
.mind-transform h3{margin-bottom:18px;font-size:22px}
.mind-from{margin:0}
.mind-from del{color:var(--muted);text-decoration-color:var(--lime);text-decoration-thickness:2px;font-size:16px}
.mind-change{margin:10px 0 6px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.mind-to{margin:0;font-size:19px;line-height:1.5;font-weight:600;color:var(--paper)}
.mind-goals-label{margin:0 0 14px;font-size:15px;line-height:1.55;color:var(--paper)}
.mind-funnel{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px;padding:0}
.mind-funnel li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px 14px;border-radius:12px;background:var(--surface);border-top:3px solid var(--lime)}
.mind-funnel li:nth-child(2){border-top-color:rgba(130,201,30,.75)}
.mind-funnel li:nth-child(3){border-top-color:rgba(130,201,30,.5)}
.mind-funnel li:nth-child(4){border-top-color:rgba(130,201,30,.3)}
.mind-funnel strong{font:900 36px/1 Archivo,sans-serif;letter-spacing:-.03em;color:var(--lime)}
.mind-funnel li{container-type:inline-size}
.mind-funnel span{font-size:min(11px,calc(100cqi / 10.4));font-weight:600;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.mind-goals-note{margin:0;font-size:14px;text-align:center}
/* Verdad importante: mismo fondo; contorno completo punteado verde */
.mind-truth{margin:44px 0 0;padding:28px 34px;border:1.5px dashed var(--lime);border-radius:16px;background:rgba(130,201,30,.08);font:900 clamp(22px,2.6vw,32px)/1.2 Archivo,sans-serif;letter-spacing:-.01em;text-transform:uppercase;color:var(--paper)}
.mind-truth span{display:block;margin-bottom:10px;font:600 12px/1 Inter,sans-serif;letter-spacing:.16em;color:var(--lime)}
@media(max-width:980px){.mind-transform{grid-template-columns:1fr;gap:28px;padding:30px}}
/* En esa franja de anchos cuatro cajas en fila no caben: van de dos en dos */
@media(min-width:981px) and (max-width:1359px){.mind-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mind-funnel li{padding:14px 8px}.proof-stat{padding:0 8px}.proof-stat span{letter-spacing:.04em;font-size:min(12px,calc(100cqi / 8.6))}}
@media(max-width:740px){.mind-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}.mind-transform{padding:24px}.mind-to{font-size:17px}.mind-truth{padding:22px 20px}}

/* ==========================================================================
   DATOS DE EJEMPLO — inventados para ver el sitio completo mientras llegan los
   reales. Se ven en todas partes (también publicados): hay que cambiarlos
   antes de subir el sitio. En local se marcan en naranja; en el código, busca
   data-ejemplo y bórralo cuando pongas el dato real.
   ========================================================================== */
.borrador [data-ejemplo]{outline:2px dashed #FF8A3D;outline-offset:2px;border-radius:3px}

/* Iniciales en lugar de foto (se cambian por la foto real) */
.testimonial-person .avatar{flex:0 0 56px;display:grid;place-items:center;width:56px;height:56px;border:2px solid var(--lime);border-radius:50%;background:#102C46;font:900 18px/1 Archivo,sans-serif;letter-spacing:.02em;color:var(--lime)}
.teacher-monogram{display:grid;place-items:center;width:100%;aspect-ratio:4/5;border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:16px;background:radial-gradient(ellipse at 30% 20%,rgba(30,78,107,.55),transparent 60%),#102C46;font:900 clamp(90px,11vw,150px)/1 Archivo,sans-serif;letter-spacing:-.04em;color:var(--lime)}
/* Inscripción: el recuadro de los pasos lleva el mismo marco que la foto del profesor */
.contact-card.contact-whatsapp-only{border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:16px;background:radial-gradient(ellipse at 30% 20%,rgba(30,78,107,.55),transparent 60%),#102C46}

/* El método 5x5 como fórmula: 5 contactos + 5 presentaciones = ventas. Tres
   tarjetas a la misma altura unidas por los signos; no es la escalera de la
   metodología. */
.formula{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;margin-top:52px}
.formula-card{display:flex;flex-direction:column;padding:30px 28px 32px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.formula-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(130,201,30,.65);border-radius:15px;background:#102C46;color:var(--lime)}
.formula-icon svg{width:28px;height:28px}
.formula-card h3{margin:24px 0 12px;font-size:23px;text-wrap:balance}
.formula-card h3 span{color:var(--lime)}
.formula-card p{margin:0;font-size:15px;line-height:1.6}
/* Signos + y =: círculo verde con el signo oscuro */
.formula-op{position:relative;z-index:1;align-self:center;display:grid;place-items:center;width:60px;height:60px;margin:0 -10px;border:2px solid var(--lime);border-radius:50%;background:var(--lime);color:var(--bg)}
.formula-op svg{width:28px;height:28px;fill:currentColor;stroke:none}
.formula-result{border-color:var(--lime);background:radial-gradient(ellipse at 100% 0%,rgba(130,201,30,.2),transparent 60%),#102C46}
.formula-result .formula-icon{border-color:var(--lime);background:var(--lime);color:var(--bg)}
@media(max-width:980px){.formula-card{padding:24px 20px 26px}.formula-card h3{font-size:20px}}
@media(max-width:740px){.formula{grid-template-columns:1fr;margin-top:36px}.formula-op{justify-self:center;margin:-10px 0}}
/* Mismo fondo de antes; contorno completo punteado verde (como "Con qué sales") */
.method-note{margin-top:40px;padding:28px 34px;border:1.5px dashed var(--lime);border-radius:16px;background:rgba(130,201,30,.08);text-align:center}
.method-note h3{margin-bottom:10px;font-size:clamp(22px,2.4vw,30px);text-wrap:balance}
.method-note p{margin:0;color:var(--paper);text-wrap:balance}

/* Todo lo que incluye */
/* El recuadro "Valor real" mide lo mismo que la lista (sin el botón): la lista y
   el botón ocupan dos filas de la rejilla y el recuadro solo la primera */
.value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;column-gap:32px;row-gap:30px;align-items:stretch}
.value-grid>div:first-child{grid-row:1 / span 2;display:grid;grid-template-rows:subgrid}
.value-grid>div:first-child .btn{justify-self:start;align-self:start}
.value-box{grid-row:1}
@media(max-width:767px){.value-grid{grid-template-columns:1fr;grid-template-rows:none;row-gap:32px}.value-grid>div:first-child{grid-row:auto;display:block}.value-grid>div:first-child .btn{margin-top:30px}.value-box{grid-row:auto}}
/* Lista de lo que incluye: separadores punteados verdes */
.value-list{list-style:none;margin:0;padding:0;border-top:1px dashed rgba(130,201,30,.7)}
.value-list li{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px dashed rgba(130,201,30,.7);font-size:16px;color:var(--paper)}
.value-list li>span{position:relative;padding-left:18px}
.value-list li>span:before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--lime)}
.value-list b{flex:none;font:700 16px Archivo,sans-serif;color:var(--muted)}
/* Valor real: mismo marco y fondo que la foto del profesor; contenido centrado a lo ancho y a lo alto */
.value-box{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:32px;border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:16px;background:radial-gradient(ellipse at 30% 20%,rgba(30,78,107,.55),transparent 60%),#102C46}
.value-label{margin:0;font-size:30px;line-height:1.2;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.value-total{margin:10px 0 16px;font:900 clamp(52px,6.6vw,88px)/1 Archivo,sans-serif;letter-spacing:-.04em;color:var(--paper)}
.value-box p:last-child{margin:0;font-size:19px;line-height:1.55;text-wrap:balance}
.value-pay{white-space:nowrap;font-weight:700;color:var(--lime)}
.value-pay strong{font:900 1.6em/1 Archivo,sans-serif;letter-spacing:-.02em}
@media(max-width:740px){.value-box p:last-child{font-size:17px}}
@media(max-width:380px){.value-label{font-size:24px;letter-spacing:.1em}}

/* Garantía: sello con escudo, anillo de texto que gira despacio y franja lima.
   Sustituye al bloque sencillo anterior (estas reglas van después y ganan). */
.guarantee{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:44px;margin-top:40px;padding:44px 48px;border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:24px;background:radial-gradient(ellipse at 12% 50%,rgba(130,201,30,.16),transparent 52%),radial-gradient(ellipse at 100% 0%,rgba(30,78,107,.6),transparent 58%),var(--surface);box-shadow:0 26px 60px -28px rgba(0,0,0,.6)}
.guarantee-watermark{position:absolute;z-index:-1;right:-36px;bottom:-70px;width:300px;height:300px;fill:none;stroke:var(--lime);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.07;transform:rotate(-12deg)}
.guarantee-seal{position:relative;flex:none;width:184px;height:184px;display:grid;place-items:center;border:5px solid var(--lime);border-radius:50%;background:#102C46;box-shadow:0 0 0 10px rgba(130,201,30,.08),0 18px 40px -16px rgba(0,0,0,.6);font-size:16px}
.guarantee-ring{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);animation:girar-garantia 28s linear infinite}
.guarantee-ring text{fill:var(--lime);font:800 15px Archivo,sans-serif;letter-spacing:.02em}
.guarantee-shield{width:68px;height:68px;fill:rgba(130,201,30,.12);stroke:var(--lime);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@keyframes girar-garantia{to{transform:rotate(360deg)}}
.guarantee-label{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.guarantee h3{margin-bottom:16px;font-size:clamp(34px,4.2vw,56px);line-height:1}
.guarantee .guarantee-text{margin:0;max-width:560px;font-size:18px;line-height:1.6;color:var(--paper)}
@media(prefers-reduced-motion:reduce){.guarantee-ring{animation:none}}
/* "Para mamás y papás" (sección 1): mismo diseño que la garantía, con un sello de familia */
.guarantee.parents-card{margin-top:28px}
/* Íconos de Phosphor: son rellenos (no trazos); la capa suave del duotone ya trae su opacidad */
.guarantee-shield.ph-icono{width:76px;height:76px;fill:var(--lime);stroke:none}
.guarantee-watermark.ph-icono{fill:var(--lime);stroke:none}
@media(max-width:980px){.guarantee-shield.ph-icono{width:62px;height:62px}}
@media(max-width:740px){.guarantee-shield.ph-icono{width:54px;height:54px}}
.guarantee.parents-card h3{font-size:clamp(24px,2.3vw,32px);line-height:1.08;text-wrap:balance}
/* El final del título ("y abrirse puertas donde otros se quedan esperando.") en lima, como en la portada */
.guarantee.parents-card h3 span{color:var(--lime)}
/* El botón "Quiero inscribir a mi hijo(a)" va abajo del texto, alineado a la derecha */
.guarantee.parents-card{grid-template-columns:auto minmax(0,1fr);row-gap:24px}
.guarantee.parents-card .guarantee-cta{grid-column:2;justify-self:end}
@media(max-width:740px){.guarantee.parents-card{grid-template-columns:1fr}.guarantee.parents-card .guarantee-cta{grid-column:1;justify-self:stretch}}
.guarantee.parents-card .guarantee-text{max-width:620px;font-size:16px}


/* Recurso gratis */
.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.resource-grid h2{margin-bottom:24px}
.resource-grid .lead-text{margin:0;max-width:520px}
.resource-card{padding:32px;border:1px solid rgba(130,201,30,.65);border-radius:16px;background:var(--surface)}
.resource-steps{list-style:none;display:grid;gap:10px;margin:0 0 26px;padding:0}
.resource-steps li{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font:900 15px/1.2 Archivo,sans-serif;letter-spacing:.02em;text-transform:uppercase;color:var(--paper)}
.resource-steps li span{flex:none;display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--lime);border-radius:50%;background:#102C46;color:var(--lime);font-size:15px}
.resource-card .btn{width:100%}
.resource-card .note{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--meta);text-align:center}

@media(max-width:980px){
.guarantee{grid-template-columns:auto minmax(0,1fr);gap:32px;padding:36px}
.guarantee-seal{width:150px;height:150px}
.guarantee-shield{width:56px;height:56px}
.guarantee-cta{grid-column:1/-1;justify-self:start}
.resource-grid{grid-template-columns:1fr}
.resource-grid{gap:36px}
.teacher-monogram{max-width:360px}
}
@media(max-width:740px){
.method-note{padding:22px 20px}
.value-list li{font-size:15px}
.guarantee{grid-template-columns:1fr;align-items:center;gap:24px;padding:30px 24px}
.guarantee-seal{width:132px;height:132px;box-shadow:0 0 0 8px rgba(130,201,30,.08)}
.guarantee-shield{width:48px;height:48px}
.guarantee-watermark{width:220px;height:220px;right:-50px;bottom:-60px}
.guarantee .guarantee-text{font-size:16px}
.guarantee-cta{width:100%}
.resource-card{padding:24px}
}

/* ==========================================================================
   AJUSTES DE LECTURA (pedidos al revisar el sitio)
   ========================================================================== */

/* Encabezados de sección: el párrafo va debajo del título, no a su derecha,
   para que todo el texto se lea en un solo bloque. */
.head{display:block}
.head h2{max-width:900px}
.head p{max-width:660px;margin:20px 0 0;font-size:17px;line-height:1.65}

/* Pie de cada módulo: ya no es una franja verde (parecía botón); queda como
   frase discreta y centrada, separada por una línea fina. */
.module-bottom{justify-content:center;gap:12px;min-height:0;margin-top:22px;padding-top:18px;padding-bottom:22px;border-top:1px solid var(--line);background:transparent;color:var(--lime);font-size:12px;font-weight:700;letter-spacing:.14em;text-align:center}

/* "Con qué sales": mismo fondo de antes; el contorno completo es una línea punteada verde */
.module-practice{display:block;margin-top:16px;padding:18px 20px;border:1.5px dashed var(--lime);border-radius:12px;background:rgba(130,201,30,.07);text-align:left}
.module-practice>span{margin-bottom:8px}
.module-practice p{text-align:left;color:var(--paper)}

/* Cada tarjeta del programa abre su detalle por separado: las demás no se estiran */
.program-grid{align-items:start}
/* En tableta "Módulo II · La práctica diaria" ocupa 2 renglones: las otras dos reservan el mismo espacio para que las tarjetas cerradas midan igual */
@media(min-width:741px) and (max-width:1150px){.module-body .meta{min-height:29px}}

/* Detalle de cada módulo (temas y "Al finalizar el módulo sabrás"): cada tarjeta lo muestra y oculta con su propio botón. */
.module-topics{margin-top:22px}
.module-topics summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid rgba(130,201,30,.45);border-radius:10px;list-style:none;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lime);transition:background-color .2s,border-color .2s}
.module-topics summary::-webkit-details-marker{display:none}
.module-topics summary:hover{border-color:var(--lime);background:rgba(130,201,30,.08)}
.module-topics .caret{display:grid;place-items:center;transition:transform .25s}
.module-topics .caret svg{width:16px;height:16px}
.module-topics[open] .caret{transform:rotate(180deg)}
.module-topics .ocultar,.module-topics[open] .ver{display:none}
.module-topics[open] .ocultar{display:inline}
.module-topics .topic-list{margin-top:20px}
@media(prefers-reduced-motion:reduce){.module-topics .caret{transition:none}}
/* Los <br> antes del cuadro punteado (Módulos I y III) solo sirven para emparejarlo cuando los módulos van lado a lado;
   en celular, con un módulo por renglón, se ocultan. */
@media(max-width:740px){.module-topics br.solo-columnas{display:none}}

/* Ayuda para elegir módulo: tarjeta con icono, título y botón principal */
.program-help{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px 26px;margin-top:28px;padding:26px 30px;border:1px solid rgba(130,201,30,.65);border-bottom:5px solid var(--lime);border-radius:16px;background:radial-gradient(ellipse at 30% 20%,rgba(30,78,107,.55),transparent 60%),#102C46}
.program-help-icon{display:grid;place-items:center;width:56px;height:56px;border:3px solid var(--lime);border-radius:50%;background:#102C46;font:900 26px/1 Archivo,sans-serif;color:var(--lime)}
.program-help h3{margin-bottom:6px;font-size:20px}
.program-help p{margin:0;max-width:640px;font-size:15px;line-height:1.6;color:var(--muted)}
.program-help .btn{flex:none}

/* ==========================================================================
   PARA EMPRESAS — bloque propio (otro público): texto y botón a la izquierda,
   beneficios con iconos a la derecha, sobre un fondo con resplandor y retícula.
   ========================================================================== */
.business{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:56px;padding:52px;border:1px solid rgba(130,201,30,.45);border-radius:24px;background:radial-gradient(ellipse at 0% 0%,rgba(30,78,107,.75),transparent 60%),var(--bg);box-shadow:0 26px 60px -30px rgba(0,0,0,.6)}
.business:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(244,246,241,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(244,246,241,.04) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,transparent,#000 70%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 70%)}
.business-text h2{margin-bottom:20px}
.business-text>p{max-width:480px;margin:0 0 30px;font-size:17px;line-height:1.65}
.business-text .business-note{margin:14px 0 0;font-size:13px;color:var(--meta)}
.business-list{list-style:none;display:grid;gap:0;margin:0;padding:0;border-radius:18px;background:rgba(16,38,58,.75);border:1px solid var(--line)}
.business-list li{display:flex;align-items:flex-start;gap:18px;padding:24px 26px;border-top:1px solid var(--line)}
.business-list li:first-child{border-top:0}
.business-icon{flex:0 0 48px;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(130,201,30,.65);border-radius:14px;background:#102C46;color:var(--lime)}
.business-icon svg{width:26px;height:26px}
/* "Elevamos tu nivel de ventas": el beneficio que más resalta (fondo verde suave e ícono lleno, sin líneas) */
.business-list li.business-destacado{background:rgba(130,201,30,.12);border-top:0;border-radius:0 0 17px 17px}
.business-destacado .business-icon{background:var(--lime);border-color:var(--lime);color:var(--bg)}
.business-destacado .business-icon svg path[opacity]{opacity:.35}
.business-list .business-destacado h3{color:var(--lime)}
.business-list .business-destacado p{color:var(--paper)}
.business-list h3{margin:2px 0 6px;font-size:18px}
.business-list p{margin:0;font-size:14px;line-height:1.6}

@media(max-width:980px){
.business{grid-template-columns:1fr;gap:36px;padding:40px 32px}
.program-help{grid-template-columns:auto minmax(0,1fr)}
.program-help .btn{grid-column:1/-1;justify-self:start}
}
@media(max-width:740px){
.head p{font-size:16px}
.module-practice{min-height:0}
.program-help{grid-template-columns:1fr;padding:22px}
.program-help .btn{width:100%}
.business{padding:30px 20px;border-radius:20px}
.business-text .btn{width:100%}
.business-list li{padding:20px 18px;gap:14px}
}

/* Burbuja de WhatsApp: blanca con el logo en el verde oficial de WhatsApp, para
   que no se confunda con los botones lima. */
/* Solo el círculo con el logo, en todas las pantallas (sin el texto "Escríbenos") */
.wa-bubble{gap:0;padding:12px;border-radius:50%;background:var(--paper);color:var(--bg)}
.wa-bubble img{width:34px;height:34px}
/* Pulso y resplandor como el botón de domina-tus-ventas.base44.app (animate-ping de
   Tailwind), en el blanco de la burbuja y menos ancho: un aro al 40 % que cada
   segundo crece a 1.5 veces y se desvanece, y un resplandor corto debajo. Con el
   cursor encima el pulso y el resplandor se detienen; la burbuja solo crece. */
.wa-bubble{box-shadow:0 6px 18px rgba(244,246,241,.3)}
.wa-pulse{background:rgba(244,246,241,.4);opacity:1;animation:wa-ping 1s cubic-bezier(0,0,.2,1) infinite}
@keyframes wa-ping{75%,100%{transform:scale(1.5);opacity:0}}
@media(hover:hover){.wa-bubble:hover{background:var(--paper);box-shadow:0 10px 22px -8px rgba(0,0,0,.45)}.wa-bubble:hover .wa-pulse{animation:none;opacity:0}}
@media(prefers-reduced-motion:reduce){.wa-pulse{animation:none;opacity:0}}
.wa-bubble:focus-visible{outline-color:var(--lime)}

/* Profesor: su libro (título en cursiva) y, en otro renglón, sus años de experiencia */
#profesor .role{text-wrap:balance}
#profesor .role cite{font-style:italic;white-space:nowrap}


/* Íconos de Phosphor Icons (licencia MIT): son rellenos, no trazos */
.program-help-icon svg{width:26px;height:26px}
/* El círculo del "?" late todo el tiempo con una onda verde, como la burbuja de WhatsApp */
@keyframes ayuda-ping{0%{box-shadow:0 0 0 0 rgba(130,201,30,.55)}75%,100%{box-shadow:0 0 0 14px rgba(130,201,30,0)}}
.program-help-icon{animation:ayuda-ping 1s cubic-bezier(0,0,.2,1) infinite}
@media(prefers-reduced-motion:reduce){.program-help-icon{animation:none}}
.footer-contact-item>svg{fill:currentColor;stroke:none}
.ph-flecha{display:inline-block;flex:none;width:14px;height:14px;vertical-align:-2px}

/* Pie: la frase lleva el estilo de "Elige tu plan" (sección 15) a 14 px, centrada a lo ancho y a lo alto en la columna izquierda; "El programa" y "Contacto"
   a la derecha */
.footer-grid{grid-template-columns:1.25fr .75fr 1fr;align-items:start}
.footer-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;justify-self:center;align-self:center;max-width:460px;gap:14px;text-align:center}
.footer-brand p{max-width:460px;font:900 14px/1.25 Archivo,'Arial Black',sans-serif;letter-spacing:-.02em;text-transform:uppercase;color:var(--paper);text-wrap:balance}
@media(max-width:740px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;max-width:none}}

/* Botones y ligas de WhatsApp: la flecha va junto al texto (antes los separaban 26 px) */
.btn{gap:8px}
.textlink{gap:8px}

/* Herramientas (sección 6), en celular: los cuadernos van al final de la sección,
   debajo del recuadro "Los cuadernos de trabajo están disponibles…"; antes quedaban
   arriba del título y parecían de la sección anterior */
@media(max-width:740px){.tools-grid .book-column{order:2}}

/* Preguntas frecuentes: la columna del título es más ancha y la de las preguntas
   15 % más angosta que antes (.65fr/1.35fr en computadora, .8fr/1.2fr en tablet) */
.faq-grid{grid-template-columns:.85fr 1.15fr}
/* Título en dos renglones ("Antes de dar el / siguiente paso"): la letra se ajusta
   al ancho de su columna ("ANTES DE DAR EL" mide 9.22 veces el tamaño), sin pasar
   del tamaño normal de los títulos. La medida se toma de .faq-titulo, que solo
   envuelve al título: si incluyera el número de la sección, el contador se
   reiniciaría y mostraría "1" en lugar de "14". */
.faq-titulo{container-type:inline-size}
.faq-grid h2{max-width:none;font-size:min(clamp(32px,4.15vw,56px),calc(100cqi / 9.4))}
@media(max-width:980px){.faq-grid{grid-template-columns:.98fr 1.02fr}}
@media(max-width:740px){.faq-grid{grid-template-columns:1fr}.faq-grid h2{font-size:min(34px,calc(100cqi / 9.4))}}

/* Cómo funciona: los escalones 1, 2 y 3 se llenan de verde sólido desde abajo
   (25 %, 50 %, 75 % y 100 %). La capa .step-fill es una copia del
   contenido en verde con texto oscuro, recortada a la altura del nivel: así el
   texto se ve oscuro sobre el verde y claro arriba. El nivel sube al aparecer. */
.step{position:relative;overflow:hidden}
.step:nth-child(1){--nivel:25%}
.step:nth-child(2){--nivel:50%}
.step:nth-child(3){--nivel:75%}
/* El 4 también se llena (100 %): empieza oscuro como los demás y el verde lo cubre completo */
.step:nth-child(4){--nivel:100%;background:var(--surface);color:var(--paper)}
.step:last-child>.step-number{color:var(--lime)}
.step:last-child>div:last-child p{color:var(--muted)}
.step-fill{position:absolute;inset:0;z-index:1;display:inherit;flex-direction:inherit;justify-content:inherit;align-items:inherit;gap:inherit;padding:inherit;background:var(--lime);color:var(--bg);clip-path:inset(100% 0 0 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1) .15s;pointer-events:none}
.step.visible .step-fill{clip-path:inset(calc(100% - var(--nivel)) 0 0 0)}
.step-fill .step-number,.step-fill h3,.step-fill p{color:var(--bg)}
@media(max-width:740px){.step-fill>div:last-child{flex:1}}
@media(prefers-reduced-motion:reduce){.step-fill{transition:none}}
@media(max-width:740px){.testimonial-grid{grid-auto-columns:84%}.testimonial-nav{gap:16px}}
