@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700&family=Comfortaa:wght@500;700&family=Fredoka:wght@400;500;600&family=Noto+Sans:wght@400;600;700;800&family=Nunito:wght@400;600;700;800&display=swap');
:root{font-family:Nunito,'Noto Sans',system-ui,sans-serif;color:#1F2A44;background:#FFF9F0;font-size:17px;line-height:1.45;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,select{font:inherit}button,a,select,input{outline-offset:3px}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3{font-family:Fredoka,Comfortaa,Nunito,sans-serif;font-weight:500;line-height:1.11;margin:0}h1{font-size:clamp(2.25rem,5vw,4.5rem)}h2{font-size:clamp(1.7rem,3vw,2.6rem)}h3{font-size:1.55rem}p{margin:.6rem 0 0;color:#5B6785}.container{width:min(100% - 3rem,1400px);margin-inline:auto}#main{min-height:70vh;padding-block:2rem 5rem}.site-header{background:#fff;border-bottom:1px solid #E7E9F1}.header-inner{min-height:82px;display:flex;align-items:center;gap:2rem}.brand{font-family:Fredoka,Comfortaa,sans-serif;font-size:1.35rem;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#4F6BED;color:#fff;margin-inline-end:.3rem}.desktop-nav{display:flex;align-items:center;gap:.35rem;margin-inline:auto}.nav-link{display:flex;align-items:center;gap:.4rem;padding:.65rem .8rem;border-radius:12px;color:#5B6785;font-weight:800;white-space:nowrap}.nav-link.active,.nav-link:hover{background:#EFF1FF;color:#4F6BED}.icon{font-size:1.2rem;line-height:1}.header-tools{display:flex;align-items:center;gap:.8rem}.header-tools select,.filters select{border:1px solid #CCD3EB;border-radius:12px;background:white;padding:.55rem;color:#1F2A44;max-width:180px}.header-test{color:#4F6BED;font-weight:800;white-space:nowrap}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:.75rem 1.3rem;border:2px solid #4F6BED;border-radius:16px;background:#4F6BED;color:#fff;font-weight:800;box-shadow:0 7px 16px rgba(79,107,237,.18);text-align:center;transition:transform .18s,box-shadow .18s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(79,107,237,.23)}.button:disabled{opacity:.45;cursor:default}.button-secondary{background:transparent;color:#5B6785;border-color:#CFD4E2;box-shadow:none}.button-secondary:hover{box-shadow:none}.text-link{color:#4F6BED;font-weight:800;white-space:nowrap}.text-link::after{content:' →'}[dir=rtl] .text-link::after{content:' ←'}.hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.8fr);align-items:center;gap:2rem;background:#EFF1FF;border-radius:28px;padding:clamp(2rem,5vw,4.5rem);overflow:hidden}.hero-copy{min-width:0}.hero h1{margin:.5rem 0 1rem}.hero p{font-size:1.18rem}.hero-mascot{width:100%;max-height:360px;object-fit:contain}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4F6BED}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:3.4rem 0 1.2rem}.goal-grid,.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{min-width:0;display:flex;flex-direction:column;gap:.65rem;background:#fff;border:1px solid #E9EAF2;border-radius:24px;padding:1.5rem;box-shadow:0 8px 24px rgba(31,42,68,.06)}.card-art{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:color-mix(in srgb,var(--card-color) 18%,white);color:var(--card-color);font-size:1.7rem}.badge{align-self:start;display:inline-block;border-radius:100px;padding:.22rem .65rem;background:#EBF8F4;color:#176E59;font-size:.78rem;font-weight:800}.card h3{margin:.25rem 0 0}.card p{margin:0}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-top:auto;padding-top:1rem;flex-wrap:wrap}.card-bottom>span{font-size:.85rem;color:#5B6785}.placement-strip{display:flex;justify-content:space-between;align-items:center;gap:2rem;background:#FFE9DD;border-radius:24px;padding:2rem;margin-top:2rem}.placement-strip h2{margin:.35rem 0}.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.level-tile{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:18px;padding:1rem;min-width:0;box-shadow:0 5px 18px rgba(31,42,68,.04)}.level-tile span:nth-child(2){flex:1;min-width:0;font-size:.88rem}.level-bubble{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:#2EC4A6;color:#fff;font-family:Fredoka;font-size:1.15rem}.level-bubble.a2{background:#8BD450}.level-bubble.b1{background:#FFC857;color:#1F2A44}.level-bubble.b2{background:#FF9F43}.level-bubble.c1{background:#FF7A59}.level-bubble.c2{background:#8E6CEF}.page-head{padding:2rem 0 1.5rem}.page-head h1{margin:.35rem 0 .75rem}.catalog-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 1.4rem}.tabs{display:flex;flex-wrap:wrap;gap:.5rem}.tab{border:0;border-radius:100px;background:#fff;padding:.65rem 1rem;color:#5B6785;font-weight:800}.tab.selected{background:#4F6BED;color:#fff}.filters{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.filters label{font-size:.84rem;font-weight:800;color:#5B6785}.check-filter{white-space:nowrap}.check-filter input{accent-color:#4F6BED}.detail-hero{border-radius:24px;background:#fff;padding:2.2rem;margin:1rem 0 2rem}.detail-hero h1{margin:.6rem 0}.detail-hero .badge{margin-top:1.3rem}.lesson-shell,.placement-shell{width:100%;margin-inline:auto}.lesson-top{margin-bottom:1.5rem}.lesson-top h1{margin:.35rem 0 1.3rem}.step-labels{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;font-size:.8rem;font-weight:800;color:#7D879D}.step-labels .current{color:#4F6BED}.progress-track{height:10px;border-radius:100px;background:#E1E5F6;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:100px;background:#2EC4A6;transition:width .2s}.content-card{background:#fff;border-radius:24px;padding:2rem;box-shadow:0 8px 25px rgba(31,42,68,.06);margin-top:1.5rem}.player-placeholder{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:18px;background:#EFF1FF}.player-placeholder>span{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#4F6BED;color:white;font-size:2rem}.transcript{margin-top:1.5rem}.transcript p{padding:.9rem 0;border-bottom:1px solid #E9EAF2}.transcript strong{display:inline-block;min-width:5rem;color:#1F2A44}.vocab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.vocab-card strong{font-size:1.5rem;color:#4F6BED}.vocab-card small{display:block;color:#5B6785}.examples{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.examples span{background:#EBF8F4;border-radius:12px;padding:.65rem}.step-nav,.exercise-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}.exercise h2{margin:.5rem 0 1.5rem}.answers{display:grid;gap:.7rem}.answer{width:100%;padding:1rem;border:2px solid #D6DDED;border-radius:14px;background:#fff;text-align:start;color:#1F2A44;font-weight:800;transition:background .18s,border .18s}.answer:hover,.answer.selected{background:#EFF1FF;border-color:#4F6BED}.answer.selected::after{content:'✓';float:inline-end;color:#4F6BED}.answer-builder .answers{grid-template-columns:repeat(3,1fr)}.exercise input{width:100%;min-height:52px;border:2px solid #D6DDED;border-radius:14px;padding:.75rem;margin-top:1rem}.feedback{border-radius:14px;padding:1rem;margin-top:1rem}.feedback.good{background:#E4F9F3}.feedback.retry{background:#FFF2E5}.feedback p{margin:.2rem 0}.summary-mascot{width:140px;float:inline-end}.placement-shell{background:#fff;border-radius:24px;padding:2rem;margin-top:2rem}.placement-shell h1{font-size:clamp(1.8rem,3vw,2.7rem);margin:1.5rem 0}.placement-shell .progress-track{margin-top:1rem}.site-footer{background:#fff;border-top:1px solid #E9EAF2}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:2rem;color:#5B6785;font-size:.82rem}.footer-inner>div{display:flex;flex-wrap:wrap;gap:1rem}.footer-inner a{text-decoration:underline}.independence{flex-basis:100%;font-size:.75rem}.mobile-nav{display:none}.cookie-banner{position:fixed;inset:auto 0 0;background:#fff;box-shadow:0 -5px 24px rgba(31,42,68,.12);padding:1rem max(1.5rem,calc((100vw - 1400px)/2));display:flex;justify-content:space-between;align-items:center;gap:1rem;z-index:10}.cookie-banner[hidden]{display:none}.cookie-banner>div{display:flex;gap:.5rem;align-items:center}.cookie-banner .button-secondary{border:0;color:#5B6785;font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[dir=rtl]{font-family:Cairo,Nunito,sans-serif}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,[dir=rtl] .brand{font-family:Cairo,Nunito,sans-serif}[dir=rtl] .answer{text-align:right}
@media(max-width:1000px){.desktop-nav{display:none}.header-inner{justify-content:space-between}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-controls{align-items:start;flex-direction:column}}
@media(max-width:700px){:root{font-size:17px}.container{width:calc(100% - 2rem)}#main{padding-top:1rem;padding-bottom:7rem}.site-header .header-inner{min-height:68px}.brand{font-size:1.08rem}.header-test{display:none}.header-tools select{max-width:120px;font-size:.8rem}.hero{grid-template-columns:1fr;padding:1.5rem;gap:.2rem}.hero h1{font-size:2.1rem}.hero p{font-size:1rem}.hero-mascot{width:170px;height:170px;justify-self:center}.hero-actions{margin-top:1.2rem}.hero-actions .button{flex:1}.goal-grid,.card-grid,.level-grid,.vocab-grid{grid-template-columns:1fr}.card{padding:1.2rem}.section-heading{margin-top:2.4rem}.placement-strip{align-items:start;flex-direction:column;padding:1.4rem}.placement-strip .button{width:100%}.mobile-nav{position:fixed;display:flex;inset:auto 0 0;background:#fff;border-top:1px solid #E9EAF2;justify-content:space-around;padding:.45rem .5rem env(safe-area-inset-bottom);z-index:8}.mobile-nav .nav-link{flex-direction:column;gap:0;font-size:.7rem;padding:.2rem .35rem}.mobile-nav .icon{font-size:1.4rem}.cookie-banner{bottom:59px;flex-direction:column;align-items:stretch;padding:1rem;font-size:.85rem}.cookie-banner>div{justify-content:space-between}.cookie-banner .button{padding:.55rem .8rem;min-height:48px}.cookie-banner .button-secondary{padding:.4rem}.footer-inner{padding-bottom:4rem}.step-labels{font-size:.64rem}.content-card,.placement-shell{padding:1.2rem}.answer-builder .answers{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
form{display:grid;gap:.8rem;margin-top:1.2rem}form input,form textarea{width:100%;border:2px solid #D6DDED;border-radius:14px;padding:.75rem;background:#fff;color:#1F2A44}form textarea{resize:vertical;min-height:200px}.writing-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.player-placeholder audio{width:100%}.transcript p.highlight{background:#FFF1C8;border-radius:10px;padding-inline:.7rem}.vocab-card .translation{display:block;color:#176E59;font-weight:800;margin-top:.2rem}
.auth-actions{display:flex;gap:.7rem;flex-wrap:wrap}.auth-actions .button{flex:1}#google-signin{margin-top:1rem}
.admin-list{display:grid;gap:.6rem;margin-block:1rem}.admin-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;border-bottom:1px solid #E9EAF2;padding:.5rem 0}.admin-row span{flex:1}.admin-row .button{min-height:40px}form select{border:2px solid #D6DDED;border-radius:14px;padding:.75rem;background:#fff}
.annotated-text{white-space:pre-wrap;margin-top:1.5rem;line-height:1.9}.annotated{display:inline;border:0;border-bottom:2px solid #FF7A59;background:#FFF1E9;color:#1F2A44;padding:0 .1rem;border-radius:3px}
body:has(#cookie-banner:not([hidden])) .footer-inner{padding-bottom:8rem}
@media(max-width:700px){body:has(#cookie-banner:not([hidden])) .footer-inner{padding-bottom:15rem}}
.exam-format{margin-bottom:1.5rem}.exam-format h3{margin-top:1.2rem}.format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.5rem;margin:1rem 0}.format-grid p{background:#FFF9F0;border-radius:12px;padding:.8rem;margin:0}@media(max-width:700px){.format-grid{grid-template-columns:1fr}}

.lesson-objective{margin:-.9rem 0 1.2rem;color:#5B6785}
.step-hint{margin:0 0 1rem;color:#36405C;font-weight:600}
.prompt-support{margin:-1rem 0 1.4rem;color:#5B6785}
@media(min-width:701px) and (max-width:900px){.vocab-grid{grid-template-columns:1fr}}
@media(min-width:901px) and (max-width:1000px){.vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.programme-offer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2rem;padding:2rem;border-radius:24px;background:#EFF1FF}.programme-offer h2{margin:.35rem 0}.programme-offer .text-link{flex:none}.programme-list{list-style:none;margin:1.2rem 0 0;padding:0}.programme-row{display:flex;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid #E9EAF2;min-width:0}.programme-row:last-child{border-bottom:0}.programme-index{font-weight:800;color:#4F6BED;flex:none;font-variant-numeric:tabular-nums}.programme-title{flex:1;min-width:0;overflow-wrap:normal}.programme-tag{flex:none;color:#176E59;font-size:.8rem;font-weight:800}.programme-row .programme-tag:first-child{min-width:9rem}.programme-offer p{margin-top:.35rem}[dir=rtl] .programme-title[lang=en]{text-align:right}
@media(max-width:700px){.programme-offer{padding:1.4rem;align-items:start;flex-direction:column}.programme-row:not(.exam-row){display:grid;grid-template-columns:auto minmax(0,1fr);gap:.3rem .6rem}.programme-row:not(.exam-row) .programme-index{grid-column:1;grid-row:1}.programme-row:not(.exam-row) .programme-tag{grid-column:2;grid-row:1}.programme-row:not(.exam-row) .programme-title{grid-column:1/-1;grid-row:2}.programme-row.exam-row{display:block}.programme-row.exam-row .programme-tag{display:inline;margin-inline-end:.7rem;min-width:0}.programme-row.exam-row .programme-title{display:inline}}
.translation,.step-hint,.prompt-support,.lesson-objective,.feedback p{text-wrap:pretty}
.lesson-shell [lang="en"]{unicode-bidi:plaintext}
.back-link{display:inline-block;margin-top:1rem}.text-link.back-link::after,[dir=rtl] .text-link.back-link::after{content:none}.back-link::before{content:'← '}[dir=rtl] .back-link::before{content:'→ '}
.lock-card{display:grid;justify-items:start;gap:.6rem;background:#fff;border-radius:24px;padding:clamp(1.4rem,4vw,3rem);margin-top:1rem;box-shadow:0 8px 25px rgba(31,42,68,.06)}.lock-card h1{font-size:clamp(1.9rem,4vw,3.2rem);margin:.2rem 0}.lock-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#EFF1FF;font-size:1.9rem}.lock-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}
.exam-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 0}.exam-facts span{background:#EFF1FF;color:#36405C;border-radius:100px;padding:.3rem .8rem;font-size:.85rem;font-weight:800}
.exam-intro p{max-width:none}.programme-title{color:inherit}a.programme-title:hover{color:#4F6BED;text-decoration:underline}.programme-tag.locked{color:#5B6785}
.exam-shell{margin-top:1rem}.exam-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:#1F2A44;color:#fff;border-radius:16px;padding:.8rem 1.2rem;font-weight:800}.exam-timer{font-variant-numeric:tabular-nums;font-size:1.25rem;background:#4F6BED;border-radius:12px;padding:.2rem .8rem;white-space:nowrap}
.part-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.part-chip{min-width:44px;min-height:44px;border:2px solid #D6DDED;border-radius:12px;background:#fff;font-weight:800;color:#36405C}.part-chip.done{background:#E4F9F3;border-color:#2EC4A6}.part-chip.current{border-color:#4F6BED;background:#4F6BED;color:#fff}
.part-head h2{margin:.4rem 0}.passage{background:#FFF9F0;border-radius:16px;padding:1.2rem;margin-top:1rem}.passage p{color:#1F2A44;white-space:pre-wrap}.exam-item{border-top:1px solid #E9EAF2;margin-top:1.4rem;padding-top:1.2rem}.item-prompt{color:#1F2A44;font-weight:700;display:flex;gap:.6rem;align-items:baseline}.item-context{color:#5B6785}.q-chip{display:inline-grid;place-items:center;flex:none;min-width:2rem;height:2rem;padding:0 .4rem;border-radius:10px;background:#EFF1FF;color:#4F6BED;font-weight:800;font-size:.85rem}.q-chip.done{background:#E4F9F3;color:#176E59}
.exam-item .answers{margin-top:.8rem}.option-key{display:inline-grid;place-items:center;min-width:1.8rem;padding:0 .35rem;height:1.8rem;border-radius:8px;background:#EFF1FF;color:#4F6BED;margin-inline-end:.5rem}.token-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.token{border:2px solid #D6DDED;border-radius:12px;background:#fff;padding:.5rem .8rem;font-weight:700}.exam-input{display:flex;align-items:center;gap:.5rem;margin-top:.8rem}.exam-input input{flex:1;min-width:0;min-height:52px;border:2px solid #D6DDED;border-radius:14px;padding:.75rem}.exam-item textarea{width:100%;min-height:260px;border:2px solid #D6DDED;border-radius:14px;padding:.9rem;margin-top:1rem;font:inherit}
.review-list,.result-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.6rem}.review-part{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;border:1px solid #E9EAF2;border-radius:14px;background:#fff;padding:.8rem;text-align:start}.review-part strong{margin-inline-end:.6rem}
.score-card{text-align:center;display:grid;justify-items:center}.score-big{font-family:Fredoka,Comfortaa,Nunito,sans-serif;font-size:clamp(2.6rem,7vw,4.5rem);color:#1F2A44;margin:.3rem 0 0}.score-big strong{color:#2EC4A6;font-weight:600}.time-up{background:#FFF2E5;border-radius:12px;padding:.6rem 1rem;color:#1F2A44;font-weight:800}
.result-row{display:flex;gap:.8rem;align-items:flex-start;border-bottom:1px solid #E9EAF2;padding-bottom:.8rem}.result-row>div{flex:1;min-width:0}.result-row.correct .q-chip{background:#E4F9F3;color:#176E59}.result-row.incorrect .q-chip,.result-row.unanswered .q-chip{background:#FFF2E5;color:#B5491D}.rationale{color:#36405C}
.study h3,.study h4{margin-top:1.2rem}.study-block{border-top:1px solid #E9EAF2;margin-top:.8rem;padding-top:.4rem}.study ul{padding-inline-start:1.2rem}.model-text{white-space:pre-wrap;background:#FFF9F0;border-radius:16px;padding:1.2rem;margin-top:.6rem}
[dir=rtl] .review-part{text-align:right}
@media(max-width:700px){.exam-bar{border-radius:0;margin-inline:-1rem;padding:.7rem 1rem}.lock-actions .button{width:100%}.score-card{text-align:start;justify-items:start}}
.lock-card p,.exam-intro p,.programme-offer p{text-wrap:pretty}
.lock-card h1,.detail-hero h1,.exam-shell h1,.lock-actions .button{text-wrap:balance}
.programme-offer .button{flex:none}
.benefit-list{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.6rem}.benefit-list li{display:flex;gap:.7rem;align-items:baseline;color:#1F2A44;font-weight:700}.benefit-list li::before{content:'✓';color:#176E59;font-weight:800;flex:none}
.buy-panel{display:grid;justify-items:start;gap:.9rem;margin-top:1.8rem;padding-top:1.6rem;border-top:1px solid #E9EAF2}.consent-row{display:flex;gap:.8rem;align-items:flex-start;font-weight:700;color:#1F2A44;cursor:pointer}.consent-row input{width:22px;height:22px;flex:none;margin:.15rem 0 0;accent-color:#4F6BED}
.soon-note,.secure-note{font-size:.85rem;font-weight:800;color:#5B6785}.legal-links{display:flex;flex-wrap:wrap;gap:1rem;margin:0;font-size:.85rem}.legal-links a{text-decoration:underline;color:#5B6785}.buy-panel p{margin:0}
.legal-page h2{font-size:1.3rem;margin:1.6rem 0 0}.legal-page h2:first-child{margin-top:0}.legal-page p{color:#36405C;text-wrap:pretty}
.notice{background:#E4F9F3;border-radius:14px;padding:.8rem 1rem;font-weight:800;color:#1F2A44;margin:0 0 1rem}
@media(max-width:700px){.buy-panel .button{width:100%}}
.chart{margin:1rem 0 0}.chart img{display:block;max-width:100%;height:auto;border-radius:12px;background:#fff}.table-wrap{overflow-x:auto;margin-top:1rem}.chart-table{border-collapse:collapse;width:100%}.chart-table caption{text-align:start;font-weight:700;padding-bottom:.4rem}.chart-table th,.chart-table td{border:1px solid #E9EAF2;padding:.35rem .6rem;text-align:end;font-variant-numeric:tabular-nums}.chart-table thead th,.chart-table tbody th{text-align:start;background:#FFF9F0}
.preview-strip{background:#1F2A44;color:#fff;text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.3rem 1rem}
.page-head p,.benefit-list li,.lesson-objective,.step-hint{text-wrap:pretty}.page-head h1,.lesson-top h1{text-wrap:balance}
@media(min-width:900px){.pricing-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:3rem;align-items:start}.pricing-card h2{grid-column:1/-1}.pricing-card .benefit-list{grid-column:1;margin-top:1.2rem}.pricing-card .buy-panel{grid-column:2;margin-top:1.2rem;padding-top:0;border-top:0}}
/* Nothing sticks out sideways in any locale: the header may wrap on a narrow desktop, a button label wraps instead of widening its row, and the exam navigation drops its third button to a new row when the labels are long. */
.header-inner{gap:clamp(.75rem,2vw,2rem);flex-wrap:wrap}
.header-tools{flex-wrap:wrap}
.button{white-space:normal}
.step-nav{flex-wrap:wrap}.step-nav .button{flex:1 1 auto}
.photo{margin:1rem 0 0}.photo img{display:block;max-width:100%;max-height:70vh;width:auto;height:auto;margin-inline:auto;border-radius:12px;background:#fff}
@media(max-width:700px){.header-inner{flex-wrap:nowrap;gap:.6rem}.brand{display:flex;align-items:center;gap:.4rem;min-width:0;white-space:normal;line-height:1.1}.header-tools{flex:none}.hero-actions .button{flex:1 1 auto}}
/* Between phone and wide desktop the header stays on one row: the navigation icons give way before the labels do. */
@media(min-width:1001px) and (max-width:1320px){.desktop-nav .icon{display:none}.nav-link{padding-inline:.6rem}.header-inner{gap:clamp(.5rem,1.4vw,2rem)}}
@media(min-width:1001px) and (max-width:1160px){.header-test{display:none}}
/* Writing task: the assessment criteria sit under the prompt, opened on demand. */
.rubric-note{margin-top:.8rem}.rubric-note summary{cursor:pointer;font-weight:800;color:#4F6BED}.rubric-note ul{margin:.5rem 0 0;padding-inline-start:1.2rem}.rubric-note li{margin:.3rem 0}
/* Line breaks in every locale (job 3537, report-v2). Headings, labels and button text balance their lines so no word is left alone; running text avoids a one-word last line; a long compound (German "Sprachverwendung") breaks instead of widening the page. */
h1,h2,h3,h4,summary,.button,.eyebrow,.hero-actions .button,.step-nav .button,.exercise-actions .button{text-wrap:balance}
h1,h2,h3,h4{overflow-wrap:break-word;hyphens:auto}
p,li,label,figcaption,.programme-title{text-wrap:pretty}
.exam-facts span{text-wrap:balance}
@media(max-width:700px){.detail-hero{padding:1.4rem}.exam-intro h1,.exam-shell h1{font-size:clamp(1.3rem,6.1vw,2.25rem)}}
/* Chart and its data table on a phone: a link opens the full-size picture; the table's title sits above its scroll box so it is never cut. */
.chart-open{display:none}.table-title{font-weight:700;margin:1rem 0 0;color:#1F2A44}
@media(max-width:700px){.chart-open{display:block;margin-top:.5rem;font-weight:800}.chart-open a{color:#4F6BED;text-decoration:underline}.chart-table{font-size:.85rem}.chart-table th,.chart-table td{padding:.3rem .4rem}}
/* The cookie banner's two buttons keep their labels on one line in every locale; when they do not fit side by side the quiet one moves to the next row. */
.cookie-banner .button{white-space:nowrap}.cookie-banner>div{flex-wrap:wrap}
@media(min-width:701px){.cookie-banner>div{flex:none}}
/* A section heading never shares a row so tightly that its words break: the link beside it drops to the next row first. */
.section-heading{flex-wrap:wrap}
/* The exam start button keeps its label on one line on a phone in es, pt, el, pl and de (a classic scrollbar leaves a 293 px column at 390 px). */
@media(max-width:700px){.exam-intro .hero-actions .button{font-size:.9rem}}
/* Level test: the Full Access strip above each question, and the result's offer and answers to review. Everything sits in the page flow (no fixed or sticky layer), so nothing covers an answer on a phone; rows wrap instead of narrowing. */
.placement-offer-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin-top:1rem;padding:.7rem 1rem;border-radius:16px;background:#EFF1FF;font-size:.95rem}
.placement-offer-strip .strip-text{flex:1 1 auto;text-wrap:balance}
.placement-offer-strip .button{flex:none;min-height:40px;padding:.4rem 1rem;font-size:.9rem;box-shadow:none}
.placement-score{margin:0;font-size:1.25rem;font-weight:800}
.placement-basis{margin-top:.65rem;line-height:1.8}
.placement-basis span{white-space:nowrap;font-weight:800;color:#1F2A44}
.placement-capture{margin:0 0 1.5rem}
.placement-capture form{display:grid;gap:.8rem;margin-top:1rem}
.inline-capture{margin-block:1.5rem}
.inline-capture form{display:grid;gap:.8rem;margin-top:1rem}
.inline-capture form[hidden]{display:none}
.inline-capture form>label:first-child{display:grid;gap:.35rem;font-weight:700}
.inline-capture input[type=email]{width:100%;min-height:52px;border:2px solid #D6DDED;border-radius:14px;padding:.75rem;background:#fff}
.inline-capture .button{justify-self:start}
@media(max-width:700px){.inline-capture .button{width:100%}}
.placement-capture input[type=email]{width:100%;min-height:52px;border:2px solid #D6DDED;border-radius:14px;padding:.75rem}
.placement-capture .consent-row{display:flex;align-items:flex-start;gap:.6rem}
.placement-capture .consent-row input{flex:none;margin-top:.35rem}
.placement-capture .button{justify-self:start}
.placement-offer{margin-top:0;margin-bottom:1.5rem}
.offer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem}
.placement-picks{margin-top:2rem}
.review-card h2{margin-top:0}
.review-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1.2rem}
.review-item{padding-bottom:1.2rem;border-bottom:1px solid #E1E5F6}
.review-item:last-child{padding-bottom:0;border-bottom:0}
.review-prompt{margin:0 0 .5rem;font-weight:800}
.review-answers{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin:0 0 .5rem}
.review-answers>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem}
.review-answers dt{color:#5B6785;font-size:.9rem;font-weight:700}
.review-answers dd{margin:0;padding:.1rem .6rem;border-radius:10px;font-weight:800}
.review-wrong dd{background:#FFE9DD;color:#8A3B1E}
.review-right dd{background:#DDF6EF;color:#116B58}
.review-why,.review-perfect{margin:0}
.review-perfect{font-weight:800}
/* Lock card (2026-10-10): the buy button is the only button; "I already have Full Access" is a quiet link under it. */
.lock-card .lock-have{display:block;margin-top:.9rem;color:#5B6785;font-weight:700;font-size:.95rem;white-space:normal}
/* Sellability fixes (2026-10-10): concrete hero with the price and a real screenshot, product screenshots, exam header,
   pricing order, lesson end, account. No width caps: every block takes the width its parent gives it. */
.hero h1{font-size:clamp(2rem,3.4vw,3.3rem);text-wrap:balance}
.hero .hero-price{font-size:1.25rem;color:#1F2A44;margin:0}
.hero .hero-price strong{color:#4F6BED}
.hero-free{margin:1rem 0 0}
.hero-shot{margin:0;min-width:0}
.hero-shot img,.shot img{display:block;width:100%;height:auto;border-radius:18px;border:1px solid #DDE2F2;box-shadow:0 14px 34px rgba(31,42,68,.14);background:#fff}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.shot-strip{margin-top:2.5rem}
.shot-strip h2{margin-bottom:1.2rem}
.shot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.shot{margin:0;display:grid;gap:.7rem}
.shot figcaption{font-weight:800;color:#1F2A44;text-wrap:balance}
.per-month strong{color:#1F2A44}
.exam-name-list{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.exam-name-list li,.exam-includes li{background:#EFF1FF;color:#36405C;border-radius:100px;padding:.35rem .9rem;font-weight:800;font-size:.95rem}
.pricing-card h3{margin-top:1.6rem;font-size:1.2rem}
.exam-hero .exam-hero-lead{font-size:1.15rem;color:#1F2A44;font-weight:700;margin:.4rem 0 0}
.exam-includes{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.exam-includes li strong{font-weight:800}
.exam-hero .hero-actions{margin-top:1.4rem}
.programme-row .programme-title{margin-inline-end:.75rem}
.summary-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem}
.account-benefit{margin:.3rem 0 1rem;font-weight:700;color:#1F2A44}
.have-account{margin-top:1.2rem;border-top:1px solid #E9EAF2;padding-top:1rem}
.have-account summary{cursor:pointer;color:#4F6BED;font-weight:800}
.have-account[open] summary{margin-bottom:.8rem}
.have-account .button{margin-top:.8rem}
@media(min-width:900px){
 .pricing-card .buy-panel{grid-column:2;grid-row:2/span 4;margin-top:1.2rem}
 .pricing-card .benefit-list,.pricing-card h3,.pricing-card .exam-name-list{grid-column:1}
}
@media(max-width:1000px){
 .hero{grid-template-columns:1fr}
 .shot-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
 .hero h1{font-size:1.7rem}
 .hero .hero-price{font-size:1.05rem}
 .hero-shot{margin-top:1.2rem}
 .pricing-card .buy-panel{margin-top:1rem}
 .summary-actions .button{flex:1 1 100%}
}
.footer-link{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
/* Home v2 (2026-10-11): mobile first. The hero says what is sold, for whom, the outcome, the price and one button; then figures,
   four benefits with large device mockups of real screens, the seven exams, three steps, the free test, the price, FAQ and a close.
   Inner blocks take the full width of their column; only the phone frames are held to the screen height so a phone never outgrows the viewport. */
.home2{display:grid;gap:clamp(2.6rem,6vw,5rem)}
.home2>*{min-width:0}
.hero2{display:grid;gap:1.8rem;align-items:center;background:#EFF1FF;border-radius:28px;padding:clamp(1.4rem,4.5vw,4rem)}
.hero2-copy{min-width:0}
.hero2 h1{font-size:clamp(1.75rem,3.1vw,3.1rem);margin:.7rem 0 0;text-wrap:balance}
.hero2-sub{font-size:clamp(1.02rem,1.25vw,1.2rem);color:#36405C;margin-top:1rem}
.hero2-price{margin:1rem 0 0;font-size:clamp(1.08rem,1.4vw,1.3rem);color:#1F2A44}
.hero2-price strong{font-weight:800}
.hero2-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.hero2-actions .button{font-size:1.08rem;padding-inline:2rem}
.hero2-free{margin:1rem 0 0;text-wrap:balance}
.home2 .text-link{white-space:normal}
.mockup{margin:0;display:grid;justify-items:center;align-content:center;gap:.9rem;min-width:0}
.mockup picture{display:block;width:100%}
.mockup img{display:block;width:100%;height:auto}
.mockup-phone img{width:auto;max-width:100%;max-height:min(80vh,720px);margin-inline:auto}
.mockup figcaption{font-weight:800;color:#1F2A44;text-align:center;font-size:1.05rem;text-wrap:balance}
.home-numbers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.home-numbers li{flex:1 1 100%;display:flex;align-items:center;gap:.8rem;background:#fff;border-radius:18px;padding:.9rem 1.2rem;box-shadow:0 5px 18px rgba(31,42,68,.05);font-weight:700;color:#36405C;text-wrap:balance}
.home-numbers li::before{content:'✓';flex:none;color:#2EC4A6;font-weight:800}
.home-numbers strong{font-family:Fredoka,Comfortaa,Nunito,sans-serif;font-weight:600;font-size:1.45rem;color:#4F6BED;white-space:nowrap}
.benefits{display:grid;gap:clamp(3rem,7vw,6rem)}
.benefit{display:grid;gap:1.6rem;align-items:center;min-width:0}
.benefit h2{font-size:clamp(1.6rem,2.6vw,2.4rem);text-wrap:balance}
.benefit p,.home-free p,.section-sub{font-size:1.08rem;color:#36405C}
.home-exams h2,.home-steps h2,.home-faq h2{text-wrap:balance}
.exam-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem;margin-top:1.6rem}
.exam-card{display:flex;flex-direction:column;gap:.6rem;min-width:0;background:#fff;border:1px solid #E9EAF2;border-radius:22px;padding:1.4rem;box-shadow:0 8px 24px rgba(31,42,68,.06);transition:border-color .18s,transform .18s}
.exam-card:hover{border-color:#4F6BED;transform:translateY(-2px)}
.exam-card h3{font-size:1.35rem}
.exam-card p{margin:0;flex:1}
.steps{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:1rem}
.steps li{display:flex;gap:1rem;align-items:flex-start;background:#fff;border-radius:22px;padding:1.4rem;min-width:0}
.steps li>div{min-width:0}
.step-num{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#4F6BED;color:#fff;font-family:Fredoka,Cairo,sans-serif;font-size:1.4rem}
.steps h3{font-size:1.25rem}
.steps p{margin-top:.4rem}
.home-free{display:grid;gap:1.8rem;align-items:center;background:#FFE9DD;border-radius:28px;padding:clamp(1.4rem,4vw,3.5rem)}
.home-price{display:grid;gap:2rem;background:#fff;border:2px solid #4F6BED;border-radius:28px;padding:clamp(1.4rem,4vw,3.5rem);box-shadow:0 10px 30px rgba(79,107,237,.12)}
.home-price h2{margin-top:.4rem}
.price-amount{font-size:clamp(3rem,6vw,4.6rem);color:#1F2A44}
.price-period{font-size:clamp(1.2rem,2vw,1.6rem);color:#5B6785;white-space:nowrap}
.price-month{font-weight:800;color:#4F6BED;font-size:1.15rem;margin-top:.4rem}
.price-once{font-weight:700;color:#1F2A44}
.price-delivery{font-size:.92rem}
.price-includes h3{font-size:1.3rem}
.faq-list{display:grid;gap:.8rem;margin-top:1.4rem}
.faq-item{background:#fff;border-radius:18px;padding:1.1rem 1.3rem;box-shadow:0 5px 18px rgba(31,42,68,.05);min-width:0}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-weight:800;color:#1F2A44;font-size:1.08rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';flex:none;color:#4F6BED;font-size:1.5rem;line-height:1}
.faq-item[open] summary::after{content:'\2212'}
.faq-item p{margin-top:.7rem}
.home-final{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem 2.4rem;background:#1F2A44;border-radius:28px;padding:clamp(1.6rem,4vw,3.5rem)}
.home-final>div:first-child{flex:1 1 26rem;min-width:0}
.home-final h2{color:#fff;text-wrap:balance}
.home-final p{color:#D6DCF0;font-size:1.08rem}
.final-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}
.home-final .text-link{color:#C9D3FF}
.shot-grid .mockup-phone img{max-height:min(70vh,640px)}
@media(max-width:700px){
 .hero2-actions .button,.final-actions .button{flex:1 1 100%}
 .mockup-laptop img{width:auto;max-width:100%;max-height:min(80vh,720px);margin-inline:auto}
 .home-final{padding:1.4rem}
}
@media(min-width:701px){
 .home-numbers li{flex:1 1 auto;justify-content:center}
}
@media(min-width:900px){
 .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-price{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
}
@media(min-width:1001px){
 .hero2{grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);gap:2.5rem}
 .benefit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3.5rem}
 .benefit-wide{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
 .benefit:nth-child(even) .benefit-copy{order:2}
 .benefit-wide:nth-child(even){grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
 .home-free{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(min-width:1200px){
 .home-numbers li{padding:1.1rem 1.3rem}
}
@media(min-width:1100px){.faq-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
/* Home v2 line breaks: short blocks balance their lines so no word or number is left alone (long German compounds, Greek labels). */
.home2 p,.home2 li,.home2 summary,.home2 figcaption,.home2 .button,.shot-strip figcaption{text-wrap:balance}
@media(max-width:700px){.hero2-actions .button,.final-actions .button{padding-inline:1rem}}
.home2 .text-link{text-wrap:balance}
.benefit-copy p,.faq-item p,.home-free-copy p,.hero2-sub{text-wrap:pretty}
.wordmark{font-weight:700;letter-spacing:-.01em;color:#1F2A44}
.wordmark-wide{color:#4F6BED}
/* Home v3 and the clean navigation (2026-10-11, Alan's approved prototype "EnglishWide rediseño home.html"): lavender base, coral
   for the free level test, one colour per goal (set inline as --ink and --soft). Mobile first; inner blocks use their parent's width. */
:root{background:#F6F3FF}
.site-header{background:#FBFAFF;border-bottom-color:#E6E0FA}
.site-footer{background:#FBFAFF}
.nav-link{color:#1E2440}
.nav-link.active,.nav-link:hover{background:#E3DAFF;color:#3A47C9}
.site-header .header-test{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1.15rem;border-radius:999px;background:#E4532D;color:#fff;font-weight:800;white-space:nowrap;box-shadow:0 4px 0 #B63E1C;transition:transform .15s}
.site-header .header-test:hover{transform:translateY(-1px)}
.site-header .header-buy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1rem;border-radius:999px;background:#5B6BE8;color:#fff;font-weight:800;text-align:center;line-height:1.15}
.mobile-nav .nav-link{flex:1 1 0;justify-content:center;align-items:center;min-height:46px;font-size:.84rem;padding:.3rem .35rem;text-align:center;white-space:normal;line-height:1.15}
@media(max-width:700px){.site-header .header-test{min-height:40px;padding:.4rem .8rem;font-size:.85rem;box-shadow:0 3px 0 #B63E1C}.header-tools{gap:.5rem}.header-tools select{max-width:6.6rem;padding:.45rem .4rem}.brand .wordmark{font-size:1.15rem}}
@media(max-width:700px){.site-header .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;padding-block:.45rem}.site-header .header-tools{display:contents}.site-header #locale-picker{grid-column:2;grid-row:1}.site-header .header-test,.site-header .header-buy{grid-row:2;min-width:0;font-size:.8rem;padding:.4rem .55rem}.site-header .header-test{grid-column:1}.site-header .header-buy{grid-column:2}.site-header .brand{grid-column:1;grid-row:1}}
@media(max-width:380px){.header-tools select{max-width:5.4rem}}
.home3{display:flex;flex-direction:column;gap:clamp(2.6rem,6vw,5rem);color:#1E2440}
.home3>*{min-width:0}
.home3 p{color:#3D4463;text-wrap:balance}
.home3 li,.home3 summary,.home3 a,.home3 .hm-goal-line{text-wrap:balance}
.home3 h2,.home3 h3,.home3 h4{font-family:Fredoka,Comfortaa,Nunito,sans-serif;font-weight:600;color:inherit;text-wrap:balance;overflow-wrap:break-word}
.home3 h2{font-size:clamp(1.85rem,4.2vw,2.8rem)}
.hm-kicker{display:block;font-family:Nunito,'Noto Sans',sans-serif;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink,#3A47C9)}
.hm-icon{width:26px;height:26px}
.hm-hero{display:grid;gap:1.25rem;align-items:center}
.hm-hello{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;margin:0 0 1rem}
.hm-greet{display:inline-flex;align-items:center;min-height:2.6rem;padding:.3rem 1.15rem;border-radius:999px;background:#E3DAFF;color:#3A47C9;font-weight:800;font-size:1.2rem}
.hm-greet.hm-flip{animation:hm-flip .45s ease}
@keyframes hm-flip{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}
.home3 .hm-langs{font-weight:700;color:#4A5175}
.hm-langs strong{color:#1E2440}
.hm-hero h1{font-size:clamp(2.6rem,8vw,5rem);font-weight:600;line-height:1.02;margin:0 0 1rem;text-wrap:balance}
.hm-hero h1 em{font-style:normal;color:#5B6BE8}
.home3 .hm-sub{font-size:clamp(1.12rem,2vw,1.35rem);line-height:1.5;margin:0 0 .8rem}
.home3 .hm-hero-price{margin:0 0 1.5rem;font-size:1.1rem}
.hm-hero-price strong{color:#1E2440}
.hm-actions{display:flex;flex-wrap:wrap;gap:.9rem 1rem;align-items:center}
.hm-cta{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:.85rem 1.7rem;border-radius:999px;background:#E4532D;color:#fff;font-weight:800;font-size:1.12rem;line-height:1.2;text-align:center;box-shadow:0 6px 0 #B63E1C;transition:transform .15s;text-wrap:balance}
.hm-cta:hover{transform:translateY(-2px)}
.hm-cta.hm-buy{background:#5B6BE8;box-shadow:0 6px 0 #3A47C9}
.hm-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.7rem 1.4rem;border-radius:999px;border:2px solid #1E2440;color:#1E2440;font-weight:800;line-height:1.2;text-align:center;text-wrap:balance}
.hm-ghost:hover{background:#1E2440;color:#fff}
.hm-hero-art picture,.hm-hero-art img{display:block;width:100%;height:auto}
.summary-mascot picture,.summary-mascot img{display:block;width:140px;height:140px;object-fit:cover;border-radius:18px}
.hm-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem}
.hm-stats li{background:#fff;border:2px solid #ECE7FB;border-radius:20px;padding:.85rem 1rem;font-size:.95rem;font-weight:700;color:#3D4463;line-height:1.3;text-wrap:balance}
.hm-stats strong{font-family:Fredoka,Comfortaa,sans-serif;font-weight:600;font-size:1.55rem;color:#1E2440}
.hm-goals h2{margin-bottom:1.1rem}
.hm-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.hm-goal:first-child{grid-column:1/-1}
.hm-goal{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:start;padding:1rem;border-radius:22px;background:#fff;border:3px solid #ECE7FB;color:#1E2440;min-width:0;transition:transform .15s,box-shadow .15s,background .15s}
.hm-goal:hover{transform:translateY(-3px)}
.hm-goal[aria-pressed=true]{background:var(--soft);border-color:var(--ink);box-shadow:0 6px 0 var(--ink)}
.hm-goal-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--soft);color:var(--ink)}
.hm-goal[aria-pressed=true] .hm-goal-icon{background:#fff}
.hm-goal-title{font-family:Fredoka,Comfortaa,sans-serif;font-weight:600;font-size:clamp(1.12rem,3.6vw,1.3rem);line-height:1.1;text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
.hm-goal-tag{font-size:.78rem;font-weight:800;letter-spacing:.03em;color:var(--ink)}
.hm-goal-line{font-size:.95rem;color:#3D4463;text-wrap:pretty}
.hm-route{margin-top:1rem;background:#fff;border:3px solid var(--ink);border-radius:28px;padding:clamp(1.1rem,3vw,2rem)}
.hm-route[hidden]{display:none}
.hm-route-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem}
.hm-route-head>div{flex:1 1 15rem}
.hm-route h3{font-size:clamp(1.45rem,3vw,2rem);margin-top:.25rem}
.hm-dark{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.65rem 1.3rem;border-radius:999px;background:#1E2440;color:#fff;font-weight:800;line-height:1.2;text-align:center;text-wrap:balance}
.hm-exam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem}
.hm-exam{display:flex;flex-direction:column;gap:.5rem;background:var(--soft);border-radius:22px;padding:1.2rem;min-width:0}
.hm-exam-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#fff;color:var(--ink)}
.hm-exam h4{font-size:1.35rem;margin:.2rem 0 0;line-height:1.15}
.home3 .hm-who{margin:0;color:#1E2440}
.home3 .hm-len{margin:0;font-weight:800;color:var(--ink)}
.hm-explore{margin-top:auto;border-top:2px solid rgba(30,36,64,.12);padding-top:.3rem}
.hm-explore summary{cursor:pointer;font-weight:800;min-height:44px;display:flex;align-items:center}
.home3 .hm-explore p{margin:.2rem 0 .6rem}
.hm-explore .text-link{white-space:normal;display:inline-block;min-height:44px;padding-top:.5rem;color:var(--ink)}
.hm-levels{list-style:none;padding:0;margin:.3rem 0 .4rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,9rem),1fr));gap:.45rem}
.hm-levels a{display:flex;gap:.45rem;align-items:center;min-height:44px;background:#fff;border-radius:12px;padding:.4rem .7rem}
.hm-levels strong{color:var(--ink)}
.hm-how{background:#1E2440;border-radius:28px;padding:clamp(1.5rem,4vw,3rem)}
.home3 .hm-how h2{color:#fff;margin-bottom:1.4rem}
.hm-how ol{list-style:none;margin:0;padding:0;display:grid;gap:1.3rem}
.hm-how li{display:flex;gap:1rem;align-items:flex-start}
.hm-step{flex:none;font-family:Fredoka,Comfortaa,sans-serif;font-weight:600;font-size:2.7rem;line-height:1;color:#FF8A6A}
.hm-how li:nth-child(2) .hm-step{color:#FFC94D}
.hm-how li:nth-child(3) .hm-step{color:#7FD8BE}
.home3 .hm-how h3{color:#fff;font-size:1.3rem}
.home3 .hm-how p{color:#C9CCE0;margin:.25rem 0 0}
.hm-test{display:grid;gap:1.5rem;align-items:center;background:#FFE3D8;border-radius:28px;padding:clamp(1.4rem,4vw,3rem)}
.home3 .hm-test p{font-size:1.15rem;margin:.6rem 0 1.5rem}
.hm-phone{display:block}
.hm-phone img{display:block;width:100%;height:auto}
.hm-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1.2rem 0 1rem}
.hm-tab{min-height:48px;padding:.55rem 1.1rem;border-radius:999px;border:2px solid #1E2440;background:#fff;color:#1E2440;font-weight:800;font-size:1rem;line-height:1.15}
.hm-tab[aria-selected=true]{background:#1E2440;color:#fff}
.hm-panel{display:grid;gap:1.5rem;align-items:center;background:var(--soft);border-radius:28px;padding:clamp(1.25rem,4vw,3rem)}
.hm-panel[hidden]{display:none}
.hm-panel h3{font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.1}
.home3 .hm-panel p{font-size:1.15rem;margin-top:.7rem}
.hm-price{display:grid;gap:1.5rem;background:#fff;border:3px solid #5B6BE8;border-radius:28px;padding:clamp(1.4rem,4vw,3rem)}
.home3.courses-only .hm-price{grid-template-columns:1fr}
.home3.courses-only .hm-product>.card-grid{margin-top:1.2rem}
.home3 .hm-price .hm-kicker{color:#5B6BE8;font-size:.9rem}
.home3 .hm-amount{font-family:Fredoka,Comfortaa,sans-serif;font-weight:600;font-size:clamp(4rem,11vw,6rem);line-height:1;margin:.3rem 0 0;color:#1E2440}
.home3 .hm-terms{font-size:1.25rem;font-weight:800;color:#1E2440;margin:.5rem 0 .2rem}
.hm-price .button{margin-top:1.3rem;background:#5B6BE8;border-color:#5B6BE8;border-radius:999px}
.hm-figs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;align-content:center}
.hm-figs li{background:var(--soft);border-radius:18px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.2rem;min-width:0}
.hm-figs strong{font-family:Fredoka,Comfortaa,sans-serif;font-weight:600;font-size:2.3rem;line-height:1}
.hm-figs span{font-weight:700;color:#1E2440;line-height:1.25;text-wrap:balance}
@media(max-width:560px){.hm-actions>a,.hm-price .button,.hm-test .hm-cta{flex:1 1 100%;width:100%;padding-inline:.8rem}}
@media(min-width:600px){.hm-tabs{display:flex;flex-wrap:wrap}.hm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:700px){.hm-goal-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.hm-goal{grid-column:span 2}.hm-goal:nth-child(n+4){grid-column:span 3}.hm-goal:first-child{grid-column:span 2}}
@media(min-width:800px){.hm-test{grid-template-columns:minmax(0,1fr) 19rem}.hm-panel{grid-template-columns:minmax(0,1fr) 19rem}}
@media(min-width:900px){.hm-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:3rem}.hm-how ol{grid-template-columns:repeat(3,minmax(0,1fr))}.hm-price{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}}
@media(min-width:1100px){.hm-stats{grid-template-columns:repeat(4,auto)}.hm-goal-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.hm-goal,.hm-goal:first-child,.hm-goal:nth-child(n+4){grid-column:auto}}
@media(min-width:600px){.home3.courses-only .hm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.hm-greet.hm-flip{animation:none}.hm-goal,.hm-cta{transition:none}}
.answer-back{display:inline-block;align-self:start;padding:.3rem 0;border:0;background:transparent;color:#5B6785;font-size:.85rem;font-weight:800;text-decoration:underline;text-underline-offset:.2em}
.answer-back:hover,.answer-back:focus-visible{color:#4F6BED}
.page-head .answer-back{margin-inline-start:.75rem}
/* Put the purchase action immediately after the price and deadline on phones. */
@media(max-width:700px){
 .page-head:has(+ .pricing-card){padding-bottom:.35rem}
 .pricing-card{display:flex;flex-direction:column;margin-top:.35rem}
 .pricing-card .buy-panel{order:-1;margin:0;padding:0;border:0;gap:.65rem;width:100%}
 .pricing-card .buy-panel .button{width:100%}
 .pricing-card h2{margin-top:1.4rem}
}
@media(min-width:900px){
 .pricing-card .per-month{grid-column:1;grid-row:2;margin-top:1.2rem}
 .pricing-card .benefit-list{grid-row:3}
}

/* Dated launch price (2026-10-15): the bar above the header of every page and the line beside each buy button. No width cap anywhere. */
.launch-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.1rem 1rem;padding:.5rem 1rem;background:#1F2A44;color:#fff;font-size:.92rem;font-weight:800;line-height:1.3;text-align:center}
.launch-bar .launch-text{text-wrap:balance}
.launch-bar .launch-left{white-space:nowrap;color:#DDE2FF}
.launch-bar strong{color:#fff;font-variant-numeric:tabular-nums}
.launch-line{margin:.45rem 0 0;color:#B63E1C;font-weight:800;text-wrap:balance}
span.launch-line{margin:0}
.hm-hero-price+.launch-line{margin:-1rem 0 1.5rem}
.hm-amount+.launch-line{margin:0 0 .6rem}
.lock-actions+.launch-line,.hero-actions+.launch-line{margin-top:.8rem}

.exercise .answer.selected.incorrect::after{content:'✕';color:#B63E1C}

/* Paid-buyer access (2026-10-22): the return link and the code form use the full card width; the field shrinks, the button wraps below. */
.return-link-box{margin-block:1.25rem}
.return-link{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.return-link input{flex:1 1 14rem;min-width:0;font-size:.9rem}
.have-code{margin-block-start:1rem}
.have-code summary{cursor:pointer;font-weight:700}
#code-form input{letter-spacing:.2em;font-size:1.2rem}
.auth-actions .button:disabled{opacity:.65;cursor:default}

/* Email capture check (2026-10-23): the "did you mean" note under an email field and the "check your email" line after a capture. No width cap. */
.email-check{margin:.4rem 0 .8rem;font-size:.95rem;line-height:1.45;text-wrap:pretty}
.email-check__fix{font:inherit;font-weight:800;color:#3A47C9;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;overflow-wrap:anywhere}
.email-hint{margin:.6rem 0 0;padding:.65rem .9rem;border-radius:12px;background:#FDECEA;color:#8A2E1C;font-weight:700;line-height:1.4;overflow-wrap:anywhere;text-wrap:pretty}
