/* Production corrections and shared page layouts. Original visual system retained. */
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/noto-sans-400.woff2") format("woff2")}
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/noto-sans-500.woff2") format("woff2")}
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/noto-sans-600.woff2") format("woff2")}
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/noto-sans-700.woff2") format("woff2")}
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/noto-sans-800.woff2") format("woff2")}
:root{--text-xs:.8125rem;--text-base:1rem;--text-title:clamp(2rem,4vw,3.25rem);--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-16:4rem;--brand-ink:#0f2a24;--brand-green:#2f5d3a;--paper:#fffdfa}
html{scroll-padding-top:100px;color-scheme:light}
body{overflow-wrap:break-word}
img{max-width:100%;height:auto}
a,button,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #a85a00;outline-offset:5px}
.btn:active{transform:translateY(1px)}
.reveal{opacity:1;transform:none;transition:none}
.skip:focus{color:#0f2a24}
.header{background:var(--cream);border-bottom:1px solid var(--line)}
.header-inner{gap:20px}
.logo{gap:8px;letter-spacing:-.035em}
.logo img{width:40px;height:40px;border-radius:50%}
.nav{gap:16px}
.nav a{padding:12px 0;white-space:nowrap}
.nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px}
.nav a:hover,.footer a:hover{text-decoration:underline;text-underline-offset:5px}
.header-phone{font-size:13px}
.hero:after{display:none}
.hero{padding-top:64px}
.hero-card{padding:10px}
.hero-photo{height:490px;object-position:42% center}
.hero h1{max-width:12ch}
.hero-badge{left:-18px;max-width:260px}
.hero-badge strong{font-size:23px;margin-bottom:5px}
.btn-primary{color:var(--brand-ink)}
.section{padding-block:clamp(56px,7vw,100px)}
.section-head .btn{flex-shrink:0}
.fact b{font-size:24px}
.teacher-photo{aspect-ratio:4/4;height:auto;object-fit:cover}
.price-main{background:var(--brand-green);color:var(--paper)}
.price-main .btn{color:var(--brand-ink)}
.contact,.footer{background:var(--brand-ink);color:var(--paper)}
.contact .eyebrow{color:#f7d48f}
.contact .contact-info a{font-size:clamp(17px,2vw,20px)}
.contact .contact-info a:hover{text-decoration:underline}
.contact h2{max-width:17ch}
.footer{padding-bottom:32px}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.footer-nav a{padding-block:8px}
.footer-meta{padding-top:24px;border-top:1px solid #ffffff25;margin-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-provider{margin-top:12px;line-height:1.7;color:rgba(255,253,250,.8)}
.provider-details{margin:24px 0}
.provider-details>div{padding:18px 0;border-bottom:1px solid var(--line)}
.provider-details dt{color:var(--muted);font-size:14px;margin-bottom:8px}
.provider-details dd{font-size:18px;font-weight:600;overflow-wrap:anywhere}
.theme-toggle{color:inherit;background:transparent;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.modal-open{overflow:hidden}
dialog.contact-dialog{border:1px solid var(--line);border-radius:24px;padding:32px;background:var(--cream);color:var(--ink);margin:auto;width:min(430px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(15,42,36,.67)}
dialog:not([open]){display:none}
.contact-dialog h2{font-size:32px;margin:8px 35px 16px 0}
.contact-dialog p{color:var(--muted);margin-bottom:24px}
.modal-close{color:var(--ink)}
.choice:hover{background:var(--cream-dark)}
.choice-icon{font-size:18px;min-width:40px}
.page-intro{padding:40px 0 64px}
.breadcrumbs{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-bottom:32px}
.breadcrumbs a{padding:6px 0}
.page-intro h1{font-size:clamp(38px,5.5vw,64px);max-width:21ch}
.page-intro .lead{margin:24px 0 28px;max-width:60ch}
.page-intro .eyebrow{display:block;margin-bottom:16px}
.prose{max-width:76ch}
.prose p{margin:20px 0;color:var(--muted)}
.prose h2{margin:40px 0 20px;max-width:26ch;font-size:32px}
.prose ul{padding-left:20px;display:grid;gap:14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.split h2{max-width:22ch}
.list-panel{border-top:1px solid var(--line)}
.list-panel article{padding:24px 0;border-bottom:1px solid var(--line)}
.list-panel p{margin-top:12px;color:var(--muted)}
.list-panel h3{font-size:22px}
.route-strip{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}
.route-strip a{padding:14px 18px;border:1px solid var(--line);border-radius:100px;text-decoration:none;font-size:14px}
.route-strip a[aria-current="page"]{background:var(--matcha);color:var(--cream)}
.reviews{grid-template-columns:1fr 1fr}
.review-image{display:block;width:100%;margin-top:20px;border-radius:8px}
.review-link{display:inline-flex;margin-top:16px;min-height:44px;align-items:center;font-weight:600}
.classroom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8) var(--space-6)}
.classroom-photo{margin:0;min-width:0}
.classroom-photo img{display:block;width:100%;height:auto;border-radius:var(--r);background:var(--cream);border:1px solid var(--line)}
.classroom .section-head h2{max-width:19ch}
@media(max-width:680px){.classroom-grid{grid-template-columns:1fr}.classroom .section-head{margin-bottom:var(--space-8)}}
.report-label{font-size:13px;color:var(--muted);margin-top:20px}
.skill-row{gap:20px}
.skill-row .skill-note{font-size:13px;color:var(--muted);text-align:right}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.person-photo{aspect-ratio:1;object-fit:cover;width:100%;border-radius:18px;background:var(--cream-dark)}
.person h2{font-size:30px;margin:24px 0 8px}
.person p{color:var(--muted);margin-top:12px}
.person .role{color:var(--matcha);font-weight:600}
.person-photo.alena{object-position:51% center}
.callout{background:var(--cream-dark);padding:32px;border-radius:18px}
.callout p{margin-top:16px;color:var(--muted)}
.callout .btn{margin-top:24px}
.price-details{margin-top:40px}
.price-details h2{max-width:30ch}
.price-details table{width:100%;border-collapse:collapse;margin-top:24px}
.price-details th,.price-details td{text-align:left;padding:18px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.price-details th{font-weight:600}
.price-details td{width:45%}
.contact-links{display:grid;gap:16px;margin-top:24px}
.contact-links a{display:block;padding:20px;border:1px solid var(--line);border-radius:12px;text-decoration:none;font-weight:700}
.contact-links small{display:block;font-weight:400;color:var(--muted);margin-top:8px}
.noscript{background:var(--cream-dark);padding:16px}
[data-theme="dark"]{--ink:#eeeadd;--cream:#15291f;--cream-dark:#20372b;--matcha:#aed1ae;--muted:#bdc4b9;--line:rgba(238,234,221,.18);--white:#1d3327;color-scheme:dark}
[data-theme="dark"] .hero-photo{background:var(--cream-dark)}
[data-theme="dark"] .price-aside{background:var(--white)}
[data-theme="dark"] .hero-badge{background:var(--cream-dark)}
[data-theme="dark"] .hero-badge span{color:var(--muted)}
[data-theme="dark"] .contact,[data-theme="dark"] .footer{background:#0c1b13}
@media(max-width:1100px){
 .header .header-phone{display:none}
 .header-inner{height:72px}
 .menu-toggle{display:block;font-size:14px;min-height:44px;padding:10px;color:var(--ink);background:transparent}
 .header .btn{margin-left:auto}
 .nav{display:none}
 .nav.is-open{display:flex;position:absolute;left:0;right:0;top:72px;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);padding:16px 24px;border-bottom:1px solid var(--line);box-shadow:var(--shadow);max-height:calc(100dvh - 160px);overflow:auto}
 .nav.is-open a{padding:14px 8px}
}
@media(max-width:850px){
 .hero-grid,.diagnostic,.teacher,.pricing,.contact-grid,.split{grid-template-columns:1fr;gap:36px}
 .hero{padding-top:40px}
 .hero h1{font-size:clamp(40px,8vw,60px);max-width:14ch}
 .hero-photo{height:auto;aspect-ratio:4/3}
 .hero-badge{left:20px;bottom:24px;max-width:255px}
 .team-grid{grid-template-columns:1fr;gap:40px}
 .person{display:grid;grid-template-columns:180px 1fr;gap:24px}
 .person h2{margin-top:0}
 .section-head .btn{margin-top:24px}
 .mobile-cta{background:var(--cream);padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .footer{padding-bottom:100px}
 .reviews{grid-template-columns:1fr}
}
@media(max-width:480px){
 .container{width:calc(100% - 36px)}
 .facts{margin-inline:auto}
 .fact{padding:20px 12px}
 .fact b{font-size:21px}
 .fact span{font-size:13px}
 .hero-actions{width:100%}
 .hero-actions .btn{width:100%}
 .hero-badge{padding:14px;bottom:18px;left:14px}
 .hero-badge strong{font-size:20px}
 .step{grid-template-columns:38px 1fr;gap:18px}
 .person{display:block}
 .person h2{margin-top:24px}
 .person-photo{max-width:360px}
 .page-intro h1{font-size:38px}
 .page-intro{padding-bottom:40px}
 .price-aside,.review{padding:24px}
 .price-details th,.price-details td{padding:16px 8px;font-size:14px}
 .contact-dialog .choice{padding:14px;gap:8px}
 .contact-dialog .choice small{font-size:12px}
 .breadcrumbs{font-size:13px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.header,.mobile-cta,.footer,.contact,.btn,dialog{display:none!important}.section{padding:24px 0}body{color:#000;background:white}.container{width:100%}.reveal{opacity:1}}
