@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;450;500;550;600;650;700&display=swap');

:root { --ink:#171717; --muted:#62615c; --paper:#faf9f6; --red:#b64036; --red-dark:#96372f; --line:#dedcd6; --gutter:clamp(20px,4.3vw,72px); --space:clamp(76px,8vw,128px); color-scheme:light; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 16px/1.55 Onest,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body,button,a { -webkit-tap-highlight-color:transparent; }
button,input { font:inherit; }
a { color:inherit; text-decoration:none; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
img,video { display:block; max-width:100%; }
h1,h2,h3,p,figure { margin:0; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #3155b4; outline-offset:6px; }
[hidden] { display:none!important; }
.skip-link { position:absolute; z-index:30; top:0; left:20px; padding:10px 20px; background:#fff; transform:translateY(-120%); }
.skip-link:focus { transform:translateY(0); }
.section-shell { width:min(100%,1584px); padding-left:var(--gutter); padding-right:var(--gutter); margin-left:auto; margin-right:auto; }
.section-space { padding-top:var(--space); padding-bottom:var(--space); }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; margin-bottom:24px; }
h2 { font-size:clamp(38px,4.3vw,65px); font-weight:500; letter-spacing:-.052em; line-height:1.06; }
em { color:var(--red); font-style:normal; }
.nowrap { white-space:nowrap; }
.body-copy { margin-top:26px; color:var(--muted); }
.button { display:inline-flex; gap:32px; justify-content:space-between; align-items:center; min-height:56px; padding:17px 24px; border:1px solid transparent; border-radius:4px; color:#fff; background:var(--red); font-size:14px; line-height:1.35; font-weight:550; transition:background .25s,transform .25s; }
.button:hover { background:var(--red-dark); transform:translateY(-2px); }
.button span { font-size:19px; line-height:1; }
.button--small { min-height:46px; padding:13px 20px; font-size:13px; gap:22px; }
.button--white { background:#fff; color:var(--ink); }
.button--white:hover { background:var(--paper); }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:44px; font-size:14px; font-weight:500; border-bottom:1px solid var(--line); transition:color .25s,border-color .25s; }
.text-link:hover { color:var(--red); border-color:var(--red); }
.text-link span { color:var(--red); font-size:20px; }
.preview-note { display:flex; justify-content:space-between; align-items:center; min-height:29px; padding:4px var(--gutter); background:#eeede9; font-size:10px; letter-spacing:.04em; color:#66645e; }
.preview-note a { display:inline-flex; align-items:center; gap:10px; }
.site-header { position:sticky; z-index:20; top:0; min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:12px var(--gutter); background:rgba(250,249,246,.97); border-bottom:1px solid var(--line); }
.brand { flex:0 0 auto; }
.brand img { width:132px; height:60px; object-fit:contain; filter:invert(1); }
.desktop-nav { display:flex; align-items:center; gap:clamp(16px,1.8vw,30px); font-size:12px; font-weight:500; }
.desktop-nav a { padding:13px 0; position:relative; }
.desktop-nav a::after { content:''; position:absolute; left:0; right:0; bottom:6px; height:1px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.desktop-nav a:hover,.desktop-nav a.is-active { color:var(--red); }
.desktop-nav a:hover::after,.desktop-nav a.is-active::after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:10px; }
.menu-toggle { display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:4px; background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:6px; }
.menu-toggle span { display:block; width:21px; height:1px; background:var(--ink); transition:transform .25s; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
.mobile-menu { position:absolute; inset:100% 0 auto; background:var(--paper); padding:15px var(--gutter) 24px; box-shadow:0 18px 25px #0000000a; border-bottom:1px solid var(--line); }
.mobile-menu a { display:flex; align-items:center; justify-content:space-between; min-height:48px; font-size:20px; border-bottom:1px solid var(--line); }
.hero { display:grid; grid-template-columns:1.17fr 1fr; gap:4%; padding-top:32px; padding-bottom:56px; align-items:stretch; }
.hero-copy { padding-top:40px; display:flex; align-items:flex-start; flex-direction:column; }
.hero h1 { font-size:clamp(45px,5.45vw,85px); font-weight:500; letter-spacing:-.065em; line-height:1.02; }
.hero h1 span { color:var(--red); }
.hero-lead { font-size:clamp(19px,1.6vw,25px); line-height:1.35; letter-spacing:-.025em; margin-top:32px; }
.hero-description { font-size:14px; line-height:1.65; color:var(--muted); margin-top:18px; }
.hero-actions { display:flex; gap:28px; align-items:center; margin-top:32px; flex-wrap:wrap; }
.hero-foot { width:100%; display:flex; gap:26px; padding-top:40px; margin-top:auto; color:var(--muted); font-size:11px; }
.hero-foot span::before { content:'·'; display:inline-block; margin-right:8px; }
.hero-visual { min-width:0; position:relative; background:#222; height:clamp(580px,49vw,725px); overflow:hidden; border-radius:5px; }
.hero-visual video { width:100%; height:100%; object-fit:cover; object-position:50% 47%; }
.video-controls { display:flex; gap:8px; position:absolute; right:16px; top:16px; }
.video-controls button { min-height:39px; padding:10px 13px; color:#fff; background:#202020a6; border:1px solid #ffffff80; border-radius:3px; font-size:11px; line-height:1.2; backdrop-filter:blur(6px); }
.video-controls button:hover { background:#000; }
.video-caption { position:absolute; left:20px; bottom:20px; color:white; background:#2020208c; padding:7px 10px; font-size:11px; }
.video-status { position:absolute; bottom:65px; left:16px; right:16px; background:#171717d9; color:white; padding:10px 14px; font-size:12px; }
.video-fallback { position:absolute; bottom:70px; left:20px; background:#fff; padding:12px; }
.directions { display:grid; grid-template-columns:1fr 1fr; gap:8%; border-top:1px solid var(--line); }
.section-intro h2 { font-size:clamp(37px,3.6vw,55px); }
.freedom-drawing { width:185px; height:205px; object-fit:contain; margin:35px auto 0 24%; }
.concern-list { border-top:1px solid var(--line); }
.concern-list>a:not(.concern-all) { display:flex; justify-content:space-between; gap:24px; padding:25px 0; border-bottom:1px solid var(--line); }
.concern-list h3 { font-size:clamp(20px,1.85vw,28px); font-weight:500; letter-spacing:-.04em; line-height:1.2; }
.concern-list p { color:var(--muted); font-size:13px; margin:9px 0 13px; }
.format-label { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--red); }
.link-arrow { color:var(--red); font-size:25px; flex-shrink:0; transition:transform .25s; }
.concern-list a:hover .link-arrow { transform:translate(3px,-3px); }
.concern-list a:hover h3 { color:var(--red); }
.concern-all { display:flex; justify-content:space-between; align-items:center; min-height:64px; font-size:13px; }
.stage-story { display:grid; grid-template-columns:1.2fr 1fr; background:var(--ink); color:#fff; }
.stage-story figure { position:relative; min-height:520px; }
.stage-story figure img { width:100%; height:100%; object-fit:cover; position:absolute; }
figcaption { font-size:10px; }
.stage-story figcaption { position:absolute; left:20px; bottom:16px; background:#171717b0; padding:5px 8px; color:#fff; }
.stage-copy { align-self:center; padding:70px clamp(35px,6vw,100px); }
.stage-copy .eyebrow { color:#bfbfb7; }
.stage-copy h2 { font-size:clamp(44px,4.5vw,68px); }
.stage-copy p:not(.eyebrow) { color:#bebeb7; font-size:15px; max-width:350px; margin-top:26px; }
.text-link--light { color:#fff; border-color:#ffffff50; margin-top:28px; }
.text-link--light span { color:#d96c61; }
.text-link--light:hover { color:#ef9d92; border-color:#ef9d92; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:36px; margin-bottom:48px; }
.section-heading>p { color:var(--muted); font-size:14px; padding-bottom:5px; }
.program-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.program { border-top:1px solid var(--ink); padding:28px 6px 0; display:flex; flex-direction:column; }
.program--featured { border-top:2px solid var(--red); padding-top:27px; }
.program-kicker { font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-bottom:17px; }
.program h3 { font-size:clamp(28px,2.65vw,39px); line-height:1.15; letter-spacing:-.045em; font-weight:500; }
.program-description { font-size:14px; color:var(--muted); margin-top:18px; max-width:320px; min-height:86px; }
.program-bottom { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:25px; margin-top:auto; }
.program-price { font-size:23px; line-height:1.3; letter-spacing:-.035em; font-weight:500; }
.program-price>span { display:block; font-size:11px; font-weight:400; color:var(--muted); letter-spacing:0; margin-top:4px; }
.program-bottom>a { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; color:var(--red); font-size:26px; border:1px solid var(--line); border-radius:50%; transition:background .25s,color .25s; }
.program-bottom>a:hover { background:var(--red); color:#fff; border-color:var(--red); }
.price-note { font-size:11px; color:var(--muted); line-height:1.55; margin-top:18px; max-width:315px; min-height:35px; }
.early-start { display:grid; grid-template-columns:1fr 1fr; gap:9%; padding:36px; margin-top:60px; background:#efede7; border-left:3px solid var(--red); }
.early-start .eyebrow { color:var(--red); margin-bottom:15px; }
.early-start h3 { font-size:clamp(25px,2.5vw,37px); letter-spacing:-.045em; line-height:1.18; font-weight:500; }
.early-start>div:last-child { align-self:center; }
.early-start p:not(.eyebrow) { font-size:14px; }
.early-start .text-link { margin-top:14px; }
.more-formats { display:flex; align-items:center; gap:25px; margin-top:26px; font-size:12px; flex-wrap:wrap; }
.more-formats>span { color:var(--muted); margin-right:auto; }
.more-formats a:hover { color:var(--red); }
.kids-section { display:grid; grid-template-columns:1fr 1.02fr; background:#eee8df; }
.kids-content { padding:68px var(--gutter); }
.kids-content .eyebrow { color:var(--red); }
.kids-content h2 { font-size:clamp(39px,4vw,62px); }
.kids-lead { font-size:20px; line-height:1.4; margin:26px 0 18px; letter-spacing:-.02em; }
.kids-content>p:not(.eyebrow):not(.kids-lead) { font-size:14px; max-width:390px; color:var(--muted); }
.kids-photo { position:relative; min-width:0; }
.kids-photo img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:48% center; }
.kids-photo figcaption { position:absolute; bottom:16px; right:20px; padding:5px 8px; color:#fff; background:#1717179c; }
.kids-directions { display:flex; flex-wrap:wrap; gap:22px; margin:24px 0 30px; }
.kids-directions a { display:inline-flex; align-items:center; gap:15px; font-size:13px; min-height:40px; border-bottom:1px solid #aca69b; }
.kids-directions a:hover { color:var(--red); }
.kids-directions span { color:var(--red); }
.teachers-section { padding-bottom:0; }
.teachers-stripes { padding:36px 0 40px; background:repeating-linear-gradient(135deg,#1717170d 0 1px,transparent 1px 8px),#f4f3ee; }
.teachers-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.teacher { background:var(--paper); min-width:0; }
.teacher>img { width:100%; height:auto; aspect-ratio:1/1.07; object-fit:cover; border-radius:3px 3px 0 0; }
.teacher>div { padding:22px 18px; }
.teacher h3 { font-weight:500; font-size:clamp(18px,1.8vw,27px); letter-spacing:-.045em; line-height:1.2; }
.teacher p { margin-top:11px; font-size:11px; line-height:1.65; color:var(--muted); min-height:38px; }
.teacher span { display:block; margin-top:17px; font-size:11px; color:var(--red); }
.teacher:hover h3 { color:var(--red); }
.studio-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:9%; padding-top:var(--space); padding-bottom:var(--space); align-items:center; }
.studio-art { display:flex; justify-content:center; }
.studio-art img { width:330px; height:420px; object-fit:contain; }
.studio-copy h2 { font-size:clamp(36px,4vw,61px); }
.studio-copy>p:not(.eyebrow) { font-size:15px; max-width:450px; margin-top:25px; color:var(--muted); }
.studio-links { margin-top:28px; max-width:480px; }
.studio-links a { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); min-height:56px; padding:10px 0; font-size:13px; }
.studio-links span { color:var(--red); font-size:22px; }
.studio-links a:hover { color:var(--red); }
.faq-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:10%; border-top:1px solid var(--line); }
.faq-section .text-link { margin-top:25px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { display:grid; grid-template-columns:minmax(0,1fr) 22px; align-items:center; gap:28px; padding:24px 0; cursor:pointer; list-style:none; font-size:20px; letter-spacing:-.035em; font-weight:500; line-height:1.35; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::marker { content:''; }
.faq-list summary i { display:block; width:20px; height:20px; position:relative; flex-shrink:0; }
.faq-list summary i::before,.faq-list summary i::after { content:''; width:18px; height:1px; position:absolute; left:1px; top:9px; background:var(--red); }
.faq-list summary i::after { transform:rotate(90deg); transition:transform .25s; }
.faq-list details[open] summary i::after { transform:rotate(0); }
.faq-list details>div { padding:0 48px 25px 0; font-size:14px; color:var(--muted); line-height:1.75; }
.faq-list details>div a { display:inline-block; color:var(--red); margin-top:14px; }
.final-cta { background:var(--red); color:#fff; padding:85px var(--gutter) 78px; text-align:center; }
.final-cta .eyebrow { color:#fff; }
.final-cta h2 { font-size:clamp(37px,5.2vw,79px); }
.final-cta h2 span { color:#f1d8d4; }
.final-cta p:not(.eyebrow) { font-size:16px; margin:28px 0; line-height:1.6; }
.final-cta strong { font-weight:500; }
.final-cta .button { margin-top:4px; min-width:220px; }
.final-cta p.final-note { font-size:11px; color:#f0d6d2; line-height:1.65; margin:25px 0 0; }
.site-footer { padding-top:44px; padding-bottom:24px; background:var(--paper); }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-bottom:40px; border-bottom:1px solid var(--line); }
.footer-brand img { filter:invert(1); width:145px; height:66px; object-fit:contain; }
.footer-top p { font-size:14px; }
.footer-top>div>a { display:block; font-size:12px; margin-top:10px; color:var(--muted); }
.footer-phone { font-size:21px; letter-spacing:-.025em; white-space:nowrap; }
.footer-bottom { display:flex; gap:24px; align-items:center; justify-content:space-between; padding-top:24px; font-size:10px; color:var(--muted); }
.footer-bottom>div { display:flex; gap:22px; }
.has-reveal [data-reveal] { transition:opacity .75s ease,transform .85s cubic-bezier(.2,.65,.2,1); }
.has-reveal [data-reveal]:not(.is-visible) { opacity:0; transform:translateY(24px); }
.has-reveal [data-reveal].is-visible { opacity:1; transform:translateY(0); }

@media(min-width:1584px) { .site-header,.preview-note { padding-left:max(var(--gutter),calc((100vw - 1440px)/2)); padding-right:max(var(--gutter),calc((100vw - 1440px)/2)); } }
@media(max-width:1120px) {
 .desktop-nav { gap:17px; font-size:11px; }
 .hero { grid-template-columns:1.17fr 1fr; gap:3%; }
 .hero-copy { padding-top:25px; }
 .hero h1 { font-size:5.5vw; }
 .hero-visual { height:590px; }
 .hero-actions { gap:16px; }
 .hero-actions .button { padding-left:18px; padding-right:18px; gap:20px; }
 .hero-actions .text-link { font-size:12px; gap:15px; }
 .teacher>div { padding:18px 12px; }
 .teacher h3 { font-size:20px; }
 .teacher p { min-height:56px; }
 .kids-content { padding:50px 5vw; }
 .program-description { min-height:104px; }
}
@media(max-width:920px) {
 .desktop-nav { display:none; }
 .menu-toggle { display:flex; }
 .hero { grid-template-columns:1fr 1fr; }
 .hero h1 { font-size:5.45vw; }
 .hero-visual { height:610px; }
 .hero-lead { font-size:20px; }
 .hero-description { font-size:13px; }
 .hero-actions { align-items:flex-start; flex-direction:column; margin-top:26px; gap:8px; }
 .hero-foot { flex-direction:column; gap:5px; padding-top:24px; }
 .directions { gap:6%; }
 .directions h2 { font-size:36px; }
 .body-copy { font-size:14px; }
 .concern-list h3 { font-size:21px; }
 .stage-copy { padding:46px 30px; }
 .stage-story figure { min-height:475px; }
 .stage-copy h2 { font-size:44px; }
 .program-grid { gap:22px; }
 .program h3 { font-size:29px; }
 .program-price { font-size:21px; }
 .program-description { font-size:13px; }
 .early-start { padding:28px; gap:5%; }
 .teachers-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .teacher>div { padding:22px; }
 .teacher h3 { font-size:26px; }
 .teacher p { min-height:38px; font-size:12px; }
 .teacher span { font-size:12px; }
 .kids-section { grid-template-columns:1.05fr 1fr; }
 .kids-content h2 { font-size:40px; }
 .kids-lead { font-size:18px; }
 .kids-content .button { padding:16px 18px; font-size:13px; gap:14px; }
 .kids-directions { gap:17px; }
 .kids-directions a { gap:8px; }
 .studio-section { gap:6%; }
 .studio-art img { width:250px; height:370px; }
 .studio-copy h2 { font-size:38px; }
 .faq-section { gap:6%; }
 .footer-top { gap:20px; }
 .footer-phone { font-size:18px; }
}
@media(max-width:680px) {
 :root { --gutter:22px; --space:70px; }
 html { scroll-padding-top:95px; }
 .site-header { min-height:80px; padding-top:10px; padding-bottom:10px; gap:12px; }
 .brand img { width:108px; height:50px; }
 .button--small { gap:12px; padding:12px 14px; font-size:12px; }
 .button--small span { display:none; }
 .header-actions { gap:8px; }
 .preview-note { font-size:9px; min-height:25px; }
 .hero { grid-template-columns:1fr; padding-top:30px; gap:29px; padding-bottom:40px; }
 .hero-copy { padding-top:0; }
 .eyebrow { font-size:10px; margin-bottom:21px; }
 .hero h1 { font-size:clamp(37px,9.9vw,64px); line-height:1.02; letter-spacing:-.064em; }
 .hero-lead { font-size:21px; margin-top:26px; }
 .hero-description { font-size:13px; margin-top:14px; }
 .hero-actions { flex-direction:row; align-items:center; gap:22px; flex-wrap:wrap; margin-top:25px; }
 .hero-actions .button { padding:16px 19px; gap:20px; font-size:13px; min-height:53px; }
 .hero-actions .text-link { font-size:12px; gap:14px; }
 .hero-foot { flex-direction:row; gap:20px; font-size:10px; padding-top:23px; }
 .hero-visual { height:480px; border-radius:4px; }
 .hero-visual video { object-position:50% 48%; }
 .video-controls { right:12px; top:12px; gap:6px; }
 .video-controls button { min-height:42px; }
 .video-caption { left:12px; bottom:12px; font-size:10px; }
 .directions { grid-template-columns:1fr; gap:28px; position:relative; }
 .directions h2 { font-size:36px; }
 .section-intro { position:relative; padding-right:5px; }
 .section-intro .body-copy { max-width:320px; font-size:13px; }
 .freedom-drawing { width:110px; height:118px; margin:25px 16px 0 auto; }
 .concern-list>a:not(.concern-all) { padding:23px 0; gap:18px; }
 .concern-list h3 { font-size:24px; }
 .concern-list p { font-size:12px; }
 .concern-all { min-height:60px; }
 .stage-story { grid-template-columns:1fr; }
 .stage-story figure { min-height:0; aspect-ratio:1.3; }
 .stage-copy { padding:40px var(--gutter) 47px; }
 .stage-copy h2 { font-size:46px; }
 .stage-copy p:not(.eyebrow) { font-size:14px; max-width:380px; margin-top:22px; }
 .stage-copy h2 br:nth-of-type(2) { display:none; }
 .section-heading { display:block; margin-bottom:32px; }
 .section-heading h2 { font-size:38px; }
 .section-heading>p { margin-top:20px; font-size:13px; }
 .section-heading .text-link { margin-top:22px; }
 .program-grid { grid-template-columns:1fr; gap:39px; }
 .program { padding-top:24px; }
 .program h3 { font-size:37px; }
 .program-description { min-height:0; max-width:400px; font-size:14px; margin-top:15px; }
 .program-bottom { padding-top:25px; }
 .program-price { font-size:25px; }
 .price-note { max-width:340px; }
 .early-start { grid-template-columns:1fr; gap:22px; padding:26px 22px; margin-top:45px; }
 .early-start h3 { font-size:31px; }
 .early-start p:not(.eyebrow) { font-size:13px; }
 .more-formats { gap:20px; row-gap:13px; }
 .more-formats>span { width:100%; }
 .kids-section { grid-template-columns:1fr; }
 .kids-content { padding:45px var(--gutter); }
 .kids-content h2 { font-size:44px; }
 .kids-content .button { padding:17px 22px; gap:30px; font-size:13px; }
 .kids-lead { font-size:20px; margin-top:24px; }
 .kids-content>p:not(.eyebrow):not(.kids-lead) { font-size:14px; }
 .kids-directions { gap:27px; margin-bottom:27px; }
 .kids-photo { min-height:0; aspect-ratio:1.07; }
 .kids-photo img { object-position:48% center; }
 .teachers-stripes { padding-top:26px; padding-bottom:28px; }
 .teachers-grid { gap:15px; }
 .teacher>img { aspect-ratio:1/1.16; }
 .teacher>div { padding:17px 12px; }
 .teacher h3 { font-size:19px; }
 .teacher p { font-size:10px; line-height:1.6; min-height:65px; }
 .teacher span { font-size:11px; margin-top:12px; }
 .studio-section { grid-template-columns:1fr; gap:35px; }
 .studio-art img { width:200px; height:245px; }
 .studio-copy h2 { font-size:38px; }
 .studio-copy>p:not(.eyebrow) { font-size:14px; }
 .studio-links a { font-size:12px; min-height:58px; }
 .faq-section { grid-template-columns:1fr; gap:35px; }
 .faq-section h2 { font-size:42px; }
 .faq-section h2 br { display:none; }
 .faq-section .text-link { margin-top:20px; }
 .faq-list summary { font-size:21px; grid-template-columns:minmax(0,1fr) 20px; gap:24px; padding:23px 0; }
 .faq-list details>div { font-size:13px; padding-right:24px; }
 .final-cta { padding:59px var(--gutter) 54px; }
 .final-cta h2 { font-size:clamp(29px,7.8vw,48px); }
 .final-cta p:not(.eyebrow) { font-size:14px; margin:25px 0; }
 .final-cta p.final-note { font-size:10px; margin-top:22px; }
 .footer-top { align-items:flex-start; flex-direction:column; gap:26px; padding-bottom:30px; }
 .footer-brand img { width:130px; height:59px; }
 .footer-phone { font-size:23px; }
 .footer-bottom { flex-direction:column; align-items:flex-start; gap:13px; padding-top:24px; }
 .footer-bottom>div { flex-wrap:wrap; gap:18px; }
}
@media(max-width:370px) {
 :root { --gutter:18px; }
 .hero h1 { font-size:36px; }
 .hero-foot { gap:12px; font-size:9px; }
 .hero-visual { height:415px; }
 .hero-actions { gap:14px; }
 .hero-actions .button { font-size:12px; padding:16px; gap:16px; }
 .hero-actions .text-link { gap:9px; font-size:11px; }
 .teacher h3 { font-size:17px; }
 .teacher>div { padding:15px 10px; }
 .teachers-grid { gap:12px; }
 .program h3 { font-size:34px; }
 .kids-content h2 { font-size:39px; }
 .kids-content .button { padding:16px 18px; gap:19px; }
 .directions h2 { font-size:32px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none!important; animation:none!important; }
 .has-reveal [data-reveal]:not(.is-visible) { opacity:1; transform:none; }
 .button:hover { transform:none; }
}
