@font-face{font-family:Outfit;src:url(/v/outfit.6c18d579fd.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(/v/dm-sans.9fea608a94.woff2) format('woff2');font-weight:100 1000;font-style:normal;font-display:swap}
:root{--ink:#19211f;--navy:#172b4c;--blue:#224bc8;--cream:#fffaf1;--line:#dcded8;--mute:#53605e;--sun:#ffdc54;--display:Outfit,'Century Gothic',Arial,sans-serif;--body:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:20px}body{margin:0;color:var(--ink);font-family:var(--body);background:#fff;font-size:16px;line-height:1.55}body:has(.mobile-menu[aria-expanded=true]){overflow-x:hidden}a{color:inherit;text-decoration:none}button,select,input,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button{background:none;border:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--display);font-weight:700;text-wrap:balance}h1,h2,h3{letter-spacing:-.055em}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #1683e8;outline-offset:4px}#main:focus{outline:none}[hidden]{display:none!important}svg{display:block}.wrap{width:min(1336px,calc(100% - clamp(36px,8.5vw,152px)));margin-inline:auto}.skip{position:fixed;z-index:100;left:15px;top:-80px;background:white;border:2px solid;padding:8px 15px}.skip:focus{top:7px}.announce{background:#ffde62;font-size:13px;color:#1f282b}.announce .wrap{min-height:35px;display:flex;align-items:center;justify-content:center;gap:9px}.announce a{margin-left:12px;text-decoration:underline;text-underline-offset:3px;font-weight:700}.spark-symbol{font-size:21px;line-height:1}.head{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:78px}header{position:relative;background:white;border-bottom:1px solid #e5e5de;z-index:15}.brand{display:inline-flex;gap:6px;align-items:center;line-height:0;flex-shrink:0}.brand .bot{width:44px;height:auto}.brand .wordmark{width:94px;height:auto}.head nav{display:flex;align-items:center;gap:clamp(11px,1.65vw,30px)}.head nav>a,.about-menu>button{font-size:14px;line-height:22px;white-space:nowrap;font-weight:600;padding:7px 0;position:relative;display:block}.head nav>a[aria-current=page]:after,.about-menu:has(button.active)>button:after{content:'';position:absolute;height:2px;background:var(--blue);bottom:1px;left:0;width:100%;border-radius:5px}.head nav>a[aria-current=page],.about-menu .active{color:var(--blue)}.head nav a:hover,.about-menu>button:hover{color:var(--blue)}.about-menu{position:relative}.down-chevron{font-size:18px;vertical-align:1px;margin-left:2px}#about-links{position:absolute;background:white;z-index:20;right:0;top:100%;width:190px;padding:8px;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #18232716}#about-links a{display:block;padding:8px 12px;font-size:14px;border-radius:6px}#about-links a:hover{background:var(--cream)}.header-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;font-weight:700;line-height:1.2;border-radius:9px;transition:transform .15s,background .15s}.header-cta{background:var(--ink);color:white;white-space:nowrap;padding:12px 17px;font-size:14px}.header-cta:hover,.btn:hover{transform:translateY(-2px)}.mobile-menu{display:none}.btn{padding:15px 21px;min-height:46px;background:var(--blue);color:white;font-size:15px}.btn:hover{background:#163daa}.btn.dark{background:var(--ink)}.btn.secondary{background:white;color:var(--ink);border:1px solid #aeb7b4}.btn.block{width:100%}.btn svg,.header-cta svg{width:17px;height:17px}.link-btn{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.link-btn:hover{color:var(--blue)}.ico{display:inline-block;width:18px;height:18px;vertical-align:middle;flex-shrink:0}.kicker{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;line-height:1.25;display:flex;align-items:center;gap:8px}.kicker .ico{width:16px;height:16px}.blue{color:var(--blue)}
.hero{background:var(--cream);border-bottom:1px solid #e2dfd5}.hero-in{display:grid;grid-template-columns:.93fr 1.07fr;gap:clamp(24px,4vw,74px);padding-block:clamp(27px,3vw,49px);align-items:center}.hero-copy{padding-block:10px}.hero .kicker{margin-bottom:17px}.hero .kicker:before{content:'';height:2px;width:27px;background:var(--blue)}.hero h1{font-family:var(--display);font-size:clamp(57px,5.65vw,89px);line-height:1.015;letter-spacing:-.068em;color:#172321}.hero h1 .color{color:var(--blue);white-space:nowrap}.ink-mark{position:relative;isolation:isolate;display:inline-block}.ink-mark:after{content:'';position:absolute;z-index:-1;left:-1%;right:1%;height:.14em;background:#ffdc53;bottom:.02em;border-radius:60% 14% 45% 25%;transform:rotate(-2deg)}.hero-copy>p{max-width:460px;color:#43504d;margin:21px 0;font-size:clamp(16px,1.17vw,19px);line-height:1.52}.actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hero-cities{margin-top:25px;display:flex;align-items:center;gap:9px;color:#475550;font-size:12px;font-weight:600}.hero-cities button{padding:3px 0;font-size:inherit;font-weight:inherit}.hero-cities button:hover{text-decoration:underline;color:var(--blue)}.city-sep{width:3px;height:3px;border-radius:50%;background:#8b9691}.hero-cities .ico{height:15px;width:15px}.hero-poster{display:block;position:relative;aspect-ratio:1.6;border-radius:19px;isolation:isolate;background:#274895;overflow:hidden}.hero-poster>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.hero-poster:hover>img{transform:scale(1.025)}.poster-label{position:absolute;bottom:18px;left:18px;display:flex;align-items:center;gap:17px;padding:10px 12px 10px 15px;color:white;background:#142644ed;border:1px solid #ffffff52;border-radius:11px}.poster-label small{font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:750;display:block;color:#f9d969}.poster-label strong{font-family:var(--display);letter-spacing:-.035em;font-size:19px;line-height:1.2}.poster-label .round{margin:0;background:white;color:var(--navy);width:29px;height:29px}.round{display:grid;place-items:center;width:34px;height:34px;border:1px solid #c9cfca;border-radius:50%;flex:none}.round .ico{width:16px;height:16px}
.offer-strip{border-bottom:1px solid var(--line);background:white}.offer-strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);padding-block:18px}.offer-mini{display:flex;align-items:center;gap:13px;padding:1px 0}.offer-mini+.offer-mini{border-left:1px solid var(--line);padding-left:clamp(14px,3.2vw,53px)}.offer-icon{width:34px;height:34px;display:grid;place-items:center;background:var(--sun);border-radius:50%;flex:none}.offer-icon .ico{width:18px;height:18px}.offer-mini:nth-child(2) .offer-icon{background:#d9caf8}.offer-mini:nth-child(3) .offer-icon{background:#c7e9d9}.offer-mini strong{font-size:14px;display:block;line-height:1.4}.offer-mini small{display:block;font-size:12px;color:var(--mute)}.offer-mini:hover strong{text-decoration:underline;text-underline-offset:3px}
.catalog{padding-block:clamp(38px,4.2vw,66px) 52px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px}.section-head h2,.page h1,.secondary-head{font-family:var(--display);font-size:clamp(38px,3.65vw,57px);line-height:1.08;letter-spacing:-.061em}.section-head p{color:var(--mute);font-size:15px;margin-top:7px}.control{display:inline-flex;align-items:center;gap:7px;border:1px solid #cdd3ce;border-radius:10px;position:relative;padding:0 11px;background:white}.control .ico{width:16px;height:16px}.control select{background:transparent;border:0;appearance:none;padding:11px 25px 11px 1px;font-size:14px;font-weight:650;min-width:75px}.control:after{content:'';position:absolute;width:6px;height:6px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg);right:13px;top:42%;pointer-events:none}.sr{position:absolute;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap;width:1px;height:1px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:23px 0 0}.filter{padding:9px 16px;border:1px solid #d5d9d4;border-radius:50px;background:white;font-size:13px;font-weight:650;display:inline-flex;align-items:center;gap:7px;line-height:1.4}.filter.active{background:var(--ink);color:white;border-color:var(--ink)}.filter:hover:not(.active){background:#f3f5f1}.filter .ico{height:15px;width:15px}.listing-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px;border-top:1px solid var(--line);padding-top:21px;gap:15px}.listing-head h3{font-size:clamp(26px,2.3vw,35px);line-height:1.2}.group-title{display:flex;align-items:center;flex-wrap:wrap;gap:11px}.audience{font-size:11px;font-weight:650;color:#52605c;border-left:1px solid #bac2bb;padding-left:11px}.season-control select{font-size:13px;padding-top:8px;padding-bottom:8px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.program-card{--series:#6387ed;--tint:#e9f0ff;display:flex;flex-direction:column;border:1px solid #d3d7d2;border-radius:15px;overflow:hidden;background:white;transition:transform .22s,box-shadow .22s}.program-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #15222213}.program-art{position:relative;overflow:hidden;background:var(--tint);aspect-ratio:2.03}.program-art>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.program-card:hover .program-art>img{transform:scale(1.035)}.card-copy{border-top:4px solid var(--series);padding:18px 19px 0;display:flex;flex-direction:column;flex:1}.series-tag{font-weight:750;letter-spacing:.065em;text-transform:uppercase;font-size:10px;line-height:1.4;display:inline-flex;gap:6px;align-items:center}.series-tag .ico{width:14px;height:14px}.series-tag:before{content:'';height:8px;width:8px;border-radius:50%;background:var(--series);border:1px solid #0002}.program-card h4{font-size:clamp(25px,2vw,33px);margin:5px 0 6px;line-height:1.13}.program-card p{font-size:14px;line-height:1.48;color:var(--mute);margin-bottom:17px;flex:1}.card-end{border-top:1px solid #e6e9e4;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:53px;font-size:12px;font-weight:600}.card-end .ico{width:15px;height:15px}.card-end>span:first-child{display:flex;align-items:center;gap:6px}.card-end .round{width:28px;height:28px;background:var(--tint);border:0}.catalog-note{font-size:13px;color:var(--mute);margin-top:12px}.catalog-note a{text-decoration:underline}.planner-link{margin-top:17px;color:var(--blue)}.compact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.compact-card{border:1px solid #d9dfdb;border-radius:13px;padding:19px;display:flex;flex-direction:column;align-items:start;background:#f3f6fb}.compact-card:hover,.school-card:hover{border-color:#6185d5}.icon-tile{width:42px;height:42px;border-radius:12px;background:#d6e3ff;display:grid;place-items:center}.icon-tile .ico{width:23px;height:23px}.compact-card h4{margin:13px 0 5px;font-size:22px;line-height:1.2}.compact-card p{font-size:13px;color:var(--mute);flex:1;margin-bottom:15px}.small-action{font-size:12px;color:var(--blue);font-weight:750}.school-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.school-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:12px;padding:15px}.school-card small{color:#396b6c;font-weight:650;font-size:11px}.school-card h4{font-family:var(--body);font-size:15px;line-height:1.3;letter-spacing:0;margin-top:4px}.empty{background:#f3f7f4;padding:25px;border-radius:12px}.empty p{margin:6px 0 11px;color:var(--mute)}
.partnership-band{background:#eaf2ea;padding:30px 0}.partnership-band .wrap{display:flex;align-items:center;gap:25px}.partnership-band h2{font-size:28px}.partnership-band p{color:#43534c;font-size:15px}.partnership-band .btn{margin-left:auto;white-space:nowrap}.school-illustration{width:108px;height:72px;object-fit:cover;border-radius:10px}
footer{background:#f6f6ef;border-top:1px solid #ddded5;padding:40px 0 19px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.05fr;gap:30px}.footer-top>div{display:flex;flex-direction:column;align-items:start;gap:6px}.footer-top .brand{margin-bottom:8px}.footer-top p,.footer-top a:not(.brand){font-size:13px;color:#53615a}.footer-top a:hover{text-decoration:underline}.footer-top strong{font-size:14px;margin:3px 0 8px}.footer-bottom{margin-top:32px;border-top:1px solid #d5dacf;padding-top:14px;display:flex;justify-content:space-between;font-size:11px;color:#627069}
.page{padding-top:26px;padding-bottom:65px;min-height:48vh}.crumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--mute);margin-bottom:24px}.crumb a{text-decoration:underline;text-underline-offset:3px}.detail-cover{display:grid;grid-template-columns:1.1fr 1fr;border-radius:19px;overflow:hidden;border:1px solid #15222217;background:var(--tint)}.detail-intro{align-self:center;padding:clamp(22px,3.6vw,59px)}.detail-intro h1{margin:8px 0 13px;font-size:clamp(38px,4.4vw,67px)}.detail-intro>p{max-width:600px;color:#3d4844}.detail-intro .btn{margin-top:19px}.detail-art{min-height:250px;position:relative;overflow:hidden;display:grid;place-items:center;background:var(--series)}.detail-art>img{width:100%;height:100%;position:absolute;object-fit:cover}.detail-art>.ico{width:100px;height:100px;color:white;transform:rotate(-8deg)}.detail-columns{display:grid;grid-template-columns:1.65fr 1fr;gap:clamp(27px,6vw,100px);margin-top:36px}.detail-columns h2,.form-box h2,.info-content h2,.calendar-block h2,.offer-block h2,.story h2{font-size:clamp(25px,2.5vw,36px);line-height:1.2;margin-bottom:13px}.detail-columns h3{font-size:19px;letter-spacing:-.025em;margin-bottom:3px}.learning-step{display:grid;grid-template-columns:30px auto;gap:13px;margin:20px 0}.learning-step>span{background:var(--tint);font-size:13px;font-weight:750;display:grid;place-items:center;width:29px;height:29px;border-radius:50%}.learning-step p,.project-note p,.fact p,.page-lead,.info-content p,.story p{color:var(--mute);line-height:1.6}.project-note{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.fact,.form-box,.review-box{border:1px solid var(--line);border-radius:15px;padding:24px;align-self:start;background:#fff}.fact{background:#fafbf7}.fact h2{font-size:25px}.facts{margin:0}.facts>div{display:grid;grid-template-columns:.75fr 1.2fr;gap:13px;border-bottom:1px solid #dce1da;padding:10px 0;font-size:14px}.facts dt{color:var(--mute)}.facts dd{margin:0;font-weight:650}.fact .btn{margin-top:18px}.fact p{font-size:13px;margin-top:12px}.fact label{display:flex;gap:8px;font-size:13px;font-weight:650;align-items:center;margin-top:11px}.fact select,.form-box input:not([type=checkbox]),.form-box select,.form-box textarea{width:100%;display:block;border:1px solid #acb7b0;border-radius:7px;background:white;padding:10px 12px;min-height:43px;font-size:15px}.fact select{width:auto;max-width:160px;font-size:13px;min-height:35px;padding:6px 10px}.page-lead{max-width:720px;font-size:17px;margin-top:12px}.page-heading{background:var(--cream);border-radius:16px;padding:clamp(24px,4vw,56px);margin-bottom:28px}.page-heading .kicker,.form-head .kicker{margin:0 0 10px}.page-heading h1{text-wrap:pretty}.page-heading .btn{margin-top:20px}.stripe{border-left:5px solid var(--series);background:var(--tint);padding:10px 13px;border-radius:4px;font-size:13px;font-weight:650;display:inline-flex;align-items:center;gap:8px;margin-top:16px}.calendar-block{padding:23px 0;border-top:1px solid var(--line)}.calendar-block:first-of-type{border:0}.cal-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}.cal-head h2{margin:0}.cal-head span{font-size:14px;color:var(--mute)}.calendar-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.cal-card{padding:14px;border:1px solid #0001;border-top:5px solid var(--series);background:var(--tint);border-radius:9px;display:flex;flex-direction:column;align-items:start;gap:7px}.cal-card .series-tag{font-size:9px}.cal-card strong{font-size:16px;line-height:1.3}.cal-card small{font-size:11px;color:#4a534e;margin-top:auto}.cal-card:hover strong{text-decoration:underline}.offer-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:23px 0 30px}.offer-block{border-radius:14px;padding:22px;background:#fff1b7}.offer-block:nth-child(2){background:#ebe2fb}.offer-block:nth-child(3){background:#d8efe4}.offer-block .ico{width:30px;height:30px}.offer-block h2{margin:16px 0 7px}.offer-block .percent{font-family:var(--display);font-size:37px;letter-spacing:-.06em}.offer-block p{font-size:15px;margin-top:7px}.offer-block .date-line{font-size:12px;font-weight:bold}.info-content{max-width:880px}.info-content>section,.story section{margin:23px 0}.info-content p,.story p{margin:8px 0}.info-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}.info-tile{padding:21px;border:1px solid var(--line);border-radius:12px;background:#fafaf5}.info-tile h3{font-size:22px;margin:10px 0 6px}.info-tile p{font-size:14px;color:var(--mute)}.info-tile .small-action{display:inline-block;margin-top:12px}.story{max-width:780px}.form-head{margin-bottom:23px}.form-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:25px;max-width:1030px}.form-box{display:grid;gap:16px}.form-box label{display:grid;gap:5px;font-size:14px;font-weight:650}.form-box label.check{display:flex;gap:9px;align-items:start;font-weight:500}.form-box input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue);margin:3px 0 0}.form-box fieldset{border:0;padding:0;margin:0;display:grid;gap:10px}.form-box legend{font-size:14px;font-weight:650;margin:0 0 6px}.form-box textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-help{color:var(--mute);font-size:13px}.preview-note{background:#f4f6ef;padding:12px 14px;border-radius:7px;color:#415047;font-size:13px}.booking-offer{margin-top:10px;background:#f9efc5;border-radius:7px;padding:10px;font-size:13px}.review-box{max-width:760px}.review-box .facts{margin-bottom:21px}.review-box .actions{margin:20px 0 10px}.review-box p{font-size:14px;color:var(--mute)}.status{color:var(--blue);font-size:13px}.article-links{margin:20px 0}.article-links a{display:block;padding:18px 0;border-bottom:1px solid var(--line)}.article-links a:hover strong{text-decoration:underline}.article-links small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-weight:700}.article-links strong{display:block;font-size:21px;font-family:var(--display);letter-spacing:-.035em}.story p{margin-bottom:18px}.info-content .link-btn{margin-top:10px}
@media(min-width:1500px){.hero-in{gap:74px}.hero h1{font-size:90px}.hero-copy>p{font-size:19px}}
@media(max-width:1120px){.head{gap:11px}.head nav{gap:12px}.head nav>a,.about-menu>button{font-size:12px}.header-cta{padding:10px 12px;font-size:13px}.brand .bot{width:36px}.brand .wordmark{width:81px}.hero-in{gap:27px}.hero h1{font-size:clamp(54px,6.1vw,70px)}.hero-copy>p{margin:15px 0}.hero-cities{margin-top:17px}.hero-poster{aspect-ratio:1.42}.card-grid{gap:14px}.card-copy{padding:15px 14px 0}.offer-mini+.offer-mini{padding-left:18px}.offer-mini{gap:9px}.offer-mini strong{font-size:13px}.offer-mini small{font-size:11px}.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.head{min-height:65px}.mobile-menu{display:inline-flex;align-items:center;gap:7px;font-weight:650;font-size:14px;margin-left:auto}.head nav{display:none;position:absolute;left:0;right:0;top:100%;padding:12px 6%;background:white;border-bottom:1px solid var(--line);box-shadow:0 12px 18px #17242110}.head.open nav{display:block}.head nav>a,.about-menu>button{font-size:15px;padding:9px 0}.head nav>a[aria-current=page]:after,.about-menu>button.active:after{display:none}.head .header-cta{margin-left:5px}.about-menu #about-links{position:static;box-shadow:none;border:0;background:#f6f8f4;width:100%}.hero h1{font-size:clamp(48px,6.3vw,64px)}.hero-in{grid-template-columns:.96fr 1.04fr;gap:19px}.hero-cities{font-size:11px}.hero .actions{gap:12px}.actions .link-btn{font-size:13px}.hero .kicker{font-size:10px}.hero .btn{padding:12px 15px;font-size:14px}.hero-poster{aspect-ratio:1.26}.hero-copy>p{font-size:15px}.card-end{font-size:11px}.compact-grid{grid-template-columns:repeat(2,1fr)}.school-list{grid-template-columns:repeat(2,1fr)}.offer-icon{width:26px;height:26px}.offer-icon .ico{width:15px;height:15px}.offer-mini+.offer-mini{padding-left:12px}.partnership-band .wrap{gap:14px}.school-illustration{width:70px;height:62px}.footer-top{grid-template-columns:1.3fr 1fr 1fr;gap:18px}.footer-top>div:last-child{grid-column:2}.detail-columns{gap:25px;grid-template-columns:1.25fr 1fr}.detail-cover{grid-template-columns:1.15fr .85fr}.form-grid{grid-template-columns:1.15fr .9fr;gap:14px}.form-row{grid-template-columns:1fr}.offer-cards,.info-cards{gap:10px}.offer-block,.info-tile{padding:16px}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.announce{font-size:11px}.announce .wrap{gap:5px;min-height:30px}.announce a{margin-left:4px}.announce .ann-extra{display:none}.head{min-height:59px}.brand .bot{width:34px}.brand .wordmark{width:75px}.header-cta{font-size:12px}.hero-in{grid-template-columns:1fr;gap:20px;padding-block:26px}.hero-copy{padding:0}.hero .kicker{margin-bottom:9px}.hero h1{font-size:clamp(53px,11.9vw,73px);line-height:1.015}.hero-copy>p{font-size:15px;margin:12px 0 15px;max-width:450px}.hero-cities{margin-top:12px}.hero .actions{gap:18px}.hero-poster{aspect-ratio:1.8;border-radius:14px}.hero-poster>img{object-position:50% 43%}.poster-label{bottom:10px;left:10px;padding:6px 8px 6px 10px;gap:12px;border-radius:7px}.poster-label small{font-size:8px}.poster-label strong{font-size:16px}.poster-label .round{width:24px;height:24px}.offer-strip .wrap{padding-block:12px;gap:6px}.offer-mini{display:block;padding:0}.offer-mini+.offer-mini{padding-left:8px}.offer-mini .offer-icon{display:none}.offer-mini strong{font-size:11px;line-height:1.22}.offer-mini small{font-size:10px;line-height:1.35;margin-top:3px}.section-head{align-items:flex-start;flex-wrap:wrap}.section-head h2,.page h1{font-size:37px}.section-head p{font-size:14px}.catalog{padding-block:30px}.filters{gap:6px;margin-top:14px}.filter{padding:7px 11px;font-size:12px}.filter .ico{width:13px;height:13px}.listing-head{align-items:start;flex-wrap:wrap;padding-top:15px;margin-top:18px}.listing-head h3{font-size:26px}.group-title{gap:7px}.audience{font-size:10px;padding-left:7px}.card-grid{grid-template-columns:1fr;gap:14px}.program-art{aspect-ratio:2.05}.program-card h4{font-size:27px}.card-copy{padding:15px 17px 0}.card-end{font-size:12px}.program-card p{margin-bottom:13px}.school-list{grid-template-columns:1fr}.compact-card{padding:14px}.school-illustration{display:none}.partnership-band .wrap{align-items:flex-start;flex-wrap:wrap}.partnership-band .btn{margin-left:0}.footer-top{grid-template-columns:1fr 1fr;gap:21px}.footer-top>div:last-child{grid-column:auto}.footer-bottom{gap:10px}.page{padding-bottom:38px}.detail-cover,.detail-columns,.form-grid{grid-template-columns:1fr}.detail-art{order:-1;min-height:0;aspect-ratio:2.1}.detail-columns{margin-top:24px}.page-heading{padding:22px}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-block{padding:17px 0}.cal-head{gap:7px}.cal-head span{font-size:12px}.cal-card{padding:11px}.cal-card strong{font-size:15px}.offer-cards,.info-cards{grid-template-columns:1fr}.offer-block{padding:19px}.offer-block h2{margin:8px 0 4px}.footer-top .brand .wordmark{width:71px}.form-box,.fact,.review-box{padding:17px}.form-grid>.fact{order:-1}.form-grid>.fact .facts{display:none}.form-grid>.fact h2{font-size:20px}.form-grid>.fact p{margin:3px 0}.form-grid>.fact .booking-offer{margin-top:6px}.hero .link-btn{font-size:13px}.form-box .btn,.review-box .btn{font-size:14px}.crumb{margin-bottom:15px}.page-heading .page-lead{font-size:15px}}
@media(max-width:355px){.wrap{width:calc(100% - 26px)}.hero h1{font-size:47px}.compact-grid{grid-template-columns:1fr}.offer-mini strong{font-size:10px}.header-cta{padding:9px}.head{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
.price-arrow{display:inline-flex;align-items:center;gap:10px}.card-price{font-size:14px}.cal-card>span:not(.series-tag){font-size:12px;color:#33463f}.hero-cities a:hover{text-decoration:underline}

/* AICAMP’s deep charcoal and yellow frame the photographs and illustrated programs. */
:root{--ink:#171716;--sun:#f7d305;--cream:#fcfbf6;--blue:#174ba2}
.announce{background:var(--sun)}
header{background:#171716;color:#fff;border-color:#171716}
.head{min-height:75px}
.head nav>a[aria-current=page],.head nav a:hover,.about-menu>button:hover,.about-menu .active{color:#ffe34e}
.head nav>a[aria-current=page]:after,.about-menu:has(button.active)>button:after{background:var(--sun)}
#about-links{background:#252522;border-color:#45453f;color:#fff}
#about-links a:hover{background:#34342e}
.header-cta,.hero .btn,.tour-header .btn{background:var(--sun);color:#171716}
.header-cta>span,.hero .btn>.ico,.tour-header .btn>.ico{box-sizing:content-box;display:grid;place-items:center;background:var(--ink);color:white;border-radius:5px;padding:4px;width:16px;height:16px;line-height:1}
.header-cta{padding:8px 9px 8px 14px;gap:12px}
.hero .btn,.tour-header .btn{padding:11px 12px 11px 19px}
.hero .btn:hover,.tour-header .btn:hover,.header-cta:hover{background:#ffdc20}
.hero{background:#f9f8f2}
.hero-in{grid-template-columns:.86fr 1.14fr;gap:clamp(23px,3.8vw,70px);padding-block:clamp(26px,2.6vw,43px)}
.hero .kicker{color:#3c4545;letter-spacing:.11em}
.hero .kicker:before{background:var(--sun);height:4px;width:25px}
.hero h1{font-weight:680;letter-spacing:-.058em;line-height:1.02}
.hero h1 .color{color:var(--ink)}
.hero .ink-mark:after{background:var(--sun);height:.12em;bottom:.045em}
.hero-copy>p{color:#404b47}
.hero-collage{position:relative;isolation:isolate;aspect-ratio:1.58;margin-right:4px}
.classroom-photo{display:block;width:95%;height:94%;object-fit:cover;object-position:50% 48%;border-radius:16px;box-shadow:0 0 0 1px #0001}
.hero-collage:before{content:'';position:absolute;z-index:-1;inset:8% 3.5% 3.5% 4%;background:#f7d305;border-radius:16px;transform:rotate(1.7deg)}
.mission-postcard{position:absolute;bottom:0;right:0;display:block;width:32%;max-width:190px;background:#fffaf0;padding:5px;border:1px solid #dbd6bf;border-radius:8px;box-shadow:0 4px 13px #1b211e30;transform:rotate(4deg);transition:transform .2s}
.mission-postcard:hover{transform:rotate(1deg) translateY(-2px)}
.mission-postcard .postcard-art{display:block;width:100%;height:auto;aspect-ratio:2.05;object-fit:cover;object-position:50% 42%;border-radius:4px}
.mission-postcard>span{display:block;padding:5px 5px 3px}
.mission-postcard small{display:block;font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.11em;line-height:1.2}
.mission-postcard strong{font:650 clamp(12px,1.3vw,21px)/1.2 var(--display);letter-spacing:-.02em;display:flex;align-items:center;justify-content:space-between;gap:5px}
.mission-postcard .ico{width:14px;height:14px}
.age-stamp{position:absolute;left:12px;top:11px;font-weight:700;font-size:11px;line-height:1.2;background:#fffef5ec;border:1px solid #17242120;padding:5px 9px;border-radius:14px;color:#151715}
.listing-head h3,.path-heading h4{font-weight:650}
.pathway-picker{display:inline-flex;flex-wrap:wrap;gap:3px;padding:4px;border-radius:11px;border:1px solid #deded6;background:#f5f5ef}
.pathway-picker button{padding:6px 11px;border-radius:8px;font-size:12px;font-weight:650}
.pathway-picker button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #17171627}
.pathway-picker button:hover{background:white}
.holiday-path{margin-top:22px}
.holiday-path+.holiday-path{margin-top:31px}
.path-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 13px;margin-bottom:10px}
.path-heading h4{font-size:23px;line-height:1.18;letter-spacing:-.035em}
.path-heading>span{color:#55615a;font-size:12px}
.tour-callout{display:flex;align-items:center;gap:14px;padding:16px 20px;background:#fff6cd;border:1px solid #e8db9d;border-radius:13px;margin:10px 0 15px}
.tour-symbol{background:#f8da36;color:#161615;width:41px;height:41px;border-radius:50%;display:grid;place-items:center;flex:none}
.tour-symbol .ico{width:22px;height:22px}
.tour-callout small,.tour-header .kicker{font-weight:750;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#5d4e0a}
.tour-callout h4{font-size:23px;line-height:1.15;letter-spacing:-.035em;margin:2px 0 4px}
.tour-callout p{color:#4a4e42;font-size:14px;line-height:1.45}
.tour-callout .link-btn{margin-left:auto;white-space:nowrap;font-size:13px}
#detail-tour .tour-callout{flex-wrap:wrap}
#detail-tour .tour-symbol{display:none}
#detail-tour .link-btn{margin-left:0}
.tour-header{display:grid;grid-template-columns:1.3fr .8fr;gap:32px;align-items:center;background:#faf4d8;border:1px solid #e7dfbd;border-radius:17px;padding:clamp(24px,4vw,54px)}
.tour-header h1{margin:10px 0 15px;max-width:650px}.tour-header p{max-width:650px;color:#40493e;margin-bottom:17px}
.tour-header-art img{width:100%;display:block;border-radius:15px}
.tour-booking-note{font-size:13px;line-height:1.45;margin-top:12px}
@media(max-width:1000px){.hero h1{font-size:clamp(48px,6.5vw,66px)}.hero-collage{aspect-ratio:1.34}}
@media(max-width:860px){.head{min-height:63px}.head nav,.about-menu #about-links{background:#20201d;color:#fff}.head nav{border-color:#393933}.hero-in{gap:18px}.hero-copy>p{font-size:15px}.mission-postcard{width:36%}.tour-header{grid-template-columns:1.2fr .8fr;padding:24px;gap:20px}}
@media(max-width:650px){.head{min-height:59px}.hero-in{grid-template-columns:1fr;padding-block:24px;gap:19px}.hero h1{font-size:clamp(50px,11vw,72px)}.hero-collage{width:100%;aspect-ratio:1.65}.mission-postcard{width:30%;max-width:145px;padding:4px}.mission-postcard small{font-size:7px}.mission-postcard>span{padding:4px 2px 2px}.mission-postcard .ico{width:11px;height:11px}.header-cta{padding:7px 8px 7px 10px}.header-cta>span{width:12px;height:12px}.tour-callout{flex-wrap:wrap;padding:14px;gap:8px 12px}.tour-symbol{display:none}.tour-callout .link-btn{margin-left:0}.tour-header{grid-template-columns:1fr;gap:15px}.tour-header-art{order:-1}.tour-header-art img{height:135px;object-fit:cover}.path-heading>span{font-size:11px}.path-heading h4{font-size:22px}.pathway-picker button{font-size:11px;padding:6px 7px}}
.partnership-band{background:#f3f2eb;padding:32px 0}
.partnership-band .wrap{display:grid;grid-template-columns:1fr 260px;align-items:center;gap:32px}
.school-invite .kicker{color:#5d5948;margin-bottom:9px}
.school-invite h2{font-size:clamp(28px,3vw,44px);font-weight:650}
.school-invite p{max-width:620px;margin:5px 0 14px}
.school-invite .btn{min-height:39px;padding:10px 14px;border-color:#babbae;font-size:13px;margin:0}
.school-photo{width:100%;aspect-ratio:1.9;object-fit:cover;object-position:center 54%;display:block;border-radius:13px}
@media(max-width:650px){.partnership-band .wrap{grid-template-columns:1fr;gap:18px}.school-photo{width:min(100%,420px);aspect-ratio:2}}

/* Printed project covers pair a student photograph with an illustrated project scene. */
.project-picture{position:relative;isolation:isolate;display:block;width:100%;aspect-ratio:1.82;overflow:hidden;flex:none;background:var(--tint,#eaf4fa)}
.project-picture img{display:block;pointer-events:none}
.project-picture .scene-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portrait-cover .scene-layer{width:99%;left:17%;object-position:50% 49%}
.portrait-cover.subject-right .scene-layer{left:auto;right:17%}
.portrait-cover:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to right,var(--tint) 0%,transparent 29%);opacity:.63}
.portrait-cover.subject-right:before{transform:scaleX(-1)}
.portrait-cover .portrait-layer{position:absolute;z-index:2;height:104%;width:auto;max-width:none;bottom:-9%;left:-8%;filter:drop-shadow(1px 1px 0 #fff7) drop-shadow(-1px -1px 0 #fff7)}
.portrait-cover.subject-right .portrait-layer{left:auto;right:-8%}
.subject-portrait-jump .portrait-layer{height:109%;bottom:-12%}
.subject-portrait-braids .portrait-layer{height:106%;bottom:-10%;left:-23%}
.subject-portrait-braids.subject-right .portrait-layer{left:auto;right:-21%}
.subject-portrait-pair .portrait-layer{height:102%;bottom:-8%;left:-13%}
.subject-portrait-pair.subject-right .portrait-layer{left:auto;right:-13%}
.photo-cover .scene-layer{width:47%;inset:0 0 0 auto;object-position:50% 50%}
.photo-cover .activity-layer{position:absolute;left:0;top:0;width:75%;height:100%;object-fit:cover;object-position:var(--photo-focus,50% 45%);clip-path:polygon(0 0,100% 0,95% 25%,91.5% 43%,88.6% 57%,85.5% 76%,81% 100%,0 100%)}
.photo-cover.subject-right .activity-layer{left:auto;right:0;clip-path:polygon(19% 0,100% 0,100% 100%,0 100%,4.5% 75%,9% 54%,12% 37%)}
.photo-cover.subject-right .scene-layer{left:0;right:auto}
.program-card{border-radius:16px}
.photo-course .card-copy,.weekend-card .card-copy{position:relative;border-top:0;background:var(--tint);padding:17px 19px 0}
.photo-course .card-copy>p,.weekend-card .card-copy>p{font-size:14px;color:#404a46;line-height:1.47;margin-bottom:13px}
.card-ribbon{position:absolute;top:-20px;right:16px;display:grid;place-items:center;width:38px;height:38px;border:3px solid white;background:var(--series);color:#162324;border-radius:100%;z-index:3}
.card-ribbon .ico{width:18px;height:18px}
.photo-course .series-tag,.weekend-card .series-tag{padding-right:35px}
.photo-course h4,.weekend-card h4{letter-spacing:-.042em}
.photo-course .card-end,.weekend-card .card-end{border-top:1px solid #1e332522;min-height:44px}
.photo-course .card-end .round,.weekend-card .card-end .round{height:25px;width:25px;background:white;color:var(--ink)}
.card-when{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:620;margin:0 0 8px}
.card-when .ico{width:14px;height:14px}
.weekend-card .project-picture{aspect-ratio:1.78}.weekend-card .card-copy{padding:17px 15px 0}
.weekend-card h4{font-size:23px}
.school-list{gap:16px}
.school-card.campus-card{display:flex;flex-direction:column;gap:0;align-items:stretch;padding:0;overflow:hidden;border-radius:14px;background:white;transition:box-shadow .2s,transform .2s}
.school-card.campus-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #19211f10}
.school-picture{background:#eeeae2;aspect-ratio:2.78}
.school-picture .workshop-photo{width:63%;height:100%;position:absolute;right:0;object-fit:cover;object-position:var(--photo-focus)}
.school-mark{position:absolute;inset:0 auto 0 0;width:49%;padding:13px 17px 13px 10px;display:grid;place-items:center;background:var(--logo-paper);clip-path:polygon(0 0,100% 0,87% 100%,0 100%)}
.school-mark .school-emblem{position:absolute;left:5%;top:14%;width:82%;height:72%;max-height:none;object-fit:contain}
.campus-copy{padding:14px 16px;display:flex;flex-direction:column;align-items:start;flex:1}
.campus-copy small{display:inline-flex;align-items:center;gap:4px}
.campus-copy small .ico{width:13px;height:13px}
.school-card .campus-copy h4{font:640 clamp(18px,1.6vw,25px)/1.15 var(--display);letter-spacing:-.033em;margin:5px 0 9px}
.campus-copy .small-action{color:#263d36;display:flex;align-items:center;gap:6px;margin-top:auto}
.campus-copy .small-action .ico{width:12px;height:12px}
.detail-art .project-picture{align-self:stretch;aspect-ratio:auto;min-height:250px}
.detail-art .project-picture.school-picture{min-height:200px}
.detail-art .school-picture .school-mark{padding:20px 24px 20px 14px}
.detail-art .project-picture .portrait-layer{max-height:330px}
.detail-art .project-picture.portrait-cover{background:var(--tint)}
.calendar-intro{display:grid;grid-template-columns:1.55fr .75fr;align-items:stretch;border:1px solid #deded1;border-radius:18px;overflow:hidden;background:#f7f5eb;margin-bottom:30px}
.calendar-intro>div:first-child{padding:clamp(18px,2.7vw,42px)}
.calendar-intro .kicker{color:#424c43;font-size:10px;margin-bottom:9px}
.calendar-intro h1{font-size:clamp(38px,4.2vw,66px);line-height:1.04}
.calendar-intro p{color:#46524b;font-size:15px;line-height:1.48;max-width:570px;margin-top:9px}
.season-links{margin-top:19px;display:flex;gap:6px;flex-wrap:wrap}
.season-links button{font-size:12px;line-height:1.2;border:1px solid #c4cabb;border-radius:20px;padding:7px 10px;display:flex;align-items:center;gap:4px;font-weight:650;background:#fffdf5}
.season-links button .ico{height:12px;width:12px}.season-links button:hover{background:#ffe15e;border-color:#e7cd49}
.calendar-cover{position:relative;isolation:isolate;overflow:hidden;min-height:170px;background:#6366af}
.calendar-sky{position:absolute;height:100%;width:100%;object-fit:cover;object-position:70% 40%}
.calendar-maker{position:absolute;max-width:none;width:auto;height:84%;bottom:-4%;right:11%;filter:drop-shadow(1px -1px 0 #fff9)}
.calendar-block .cal-head h2{font-family:var(--display);font-weight:650}
.cal-card.picture-cal-card{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden;border:1px solid #1e332520;border-radius:12px;background:var(--tint);transition:transform .2s,box-shadow .2s}
.cal-card.picture-cal-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #15222212}
.cal-card.picture-cal-card .project-picture{aspect-ratio:1.62}
.cal-card-copy{flex:1;display:flex;flex-direction:column;padding:12px 12px 0;border-top:3px solid var(--series)}
.cal-card-copy .series-tag{font-size:9px;line-height:1.32;letter-spacing:.047em}
.cal-card-copy .series-tag:before{width:6px;height:6px}
.cal-card-copy strong{font:650 clamp(18px,1.3vw,24px)/1.1 var(--display);letter-spacing:-.032em;margin:6px 0 10px}
.cal-date{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;margin-top:auto;line-height:1.35;padding-bottom:9px}
.cal-date .ico{width:12px;height:12px}
.cal-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;border-top:1px solid #26352723;min-height:34px;font-size:10px;color:#344338}
.cal-foot b{font-size:12px;color:var(--ink)}
@media(min-width:1151px){.calendar-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}}
@media(min-width:651px) and (max-width:1150px){.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}}
@media(max-width:860px){.card-copy .card-ribbon{right:10px}.photo-course .card-copy{padding:15px 13px 0}.calendar-intro{grid-template-columns:1.6fr .74fr}.school-picture{aspect-ratio:2.4}.cal-card-copy strong{font-size:20px}}
@media(max-width:650px){.calendar-intro{grid-template-columns:1fr;margin-bottom:20px}.calendar-cover{display:none}.season-links{margin-top:13px}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calendar-block .cal-head h2{font-size:28px}.cal-card-copy{padding:10px 9px 0}.cal-card-copy strong{font-size:19px}.cal-date{font-size:10px}.cal-foot{font-size:10px}.school-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.school-picture{aspect-ratio:1.66}.school-mark{padding:8px 10px 8px 5px}.school-card .campus-copy h4{font-size:17px}.campus-copy{padding:10px}.campus-copy small{font-size:10px}.detail-art .project-picture,.detail-art .project-picture.school-picture{aspect-ratio:1.9;min-height:0}.card-ribbon{width:33px;height:33px;top:-16px}.card-ribbon .ico{width:16px;height:16px}.detail-art{width:100%;aspect-ratio:1.9}.photo-course .project-picture{aspect-ratio:1.88}.weekend-card .card-copy{padding:14px 10px 0}.weekend-card .card-copy>p{font-size:12px}.weekend-card .series-tag{font-size:8px;padding-right:17px}.weekend-card h4{font-size:21px}.weekend-card .card-ribbon{width:27px;height:27px;right:6px;top:-13px}}
@media(max-width:375px){.school-list{grid-template-columns:1fr}.school-picture{aspect-ratio:2.4}.cal-date .ico{display:none}.cal-card-copy strong{font-size:17px}}

.footer-bottom a{text-decoration:underline;text-underline-offset:3px}

/* The 2027 artwork is composed at 3:2, including the printed club crests. */
.project-picture,
.weekend-card .project-picture,
.photo-course .project-picture,
.cal-card.picture-cal-card .project-picture,
.detail-art .project-picture {
  width: 100%;
  aspect-ratio: 3 / 2;
  height: auto;
  min-height: 0;
}
.project-picture .program-cover {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
.detail-art {
  aspect-ratio: auto;
  min-height: 0;
  align-items: center;
  background: var(--tint);
}
.detail-art .project-picture {align-self: center}
.tour-header-art .program-cover {height: auto; border-radius: 0}
.tour-header-art .project-picture {border-radius: 14px}
.calendar-cover {min-height: 0; display: grid; align-content: center; background: #aa83e8}
.calendar-cover .project-picture {background: transparent}
.booking-summary .project-picture {border-radius: 9px; margin-bottom: 17px}
.catalog .section-head h1 {font-family: var(--display); font-size: clamp(38px,3.65vw,57px); line-height: 1.08; letter-spacing: -.055em}
.cover-hero {background: #f8f6eb}
.cover-hero .hero-in {grid-template-columns: 1fr 1.07fr; gap: clamp(32px, 5vw, 90px); padding-block: clamp(30px, 3.4vw, 54px)}
.cover-hero h1 {font-size: clamp(60px, 6.05vw, 94px); line-height: .99; letter-spacing: -.064em; color: #171716}
.cover-hero .kicker {margin-bottom: 18px}
.cover-hero .hero-copy>p {max-width: 475px; margin-block: 20px 24px}
.cover-hero .hero-cities {margin-top: 20px}
.cover-hero .hero-cities a {text-decoration: underline; text-decoration-color: #b5b6a5; text-underline-offset: 3px}
.feature-frame {width: 100%; max-width: 575px; justify-self: end; overflow: hidden; border-radius: 20px; border: 1px solid #d8d6ca; background: white}
.feature-art {display: block}
.feature-caption {display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 18px 13px}
.feature-caption small {display: block; color: #595b53; font-size: 10px; letter-spacing: .085em; font-weight: 750; text-transform: uppercase}
.feature-name {font: 670 clamp(20px,1.6vw,25px)/1.16 var(--display); letter-spacing: -.04em; display: inline-flex; gap: 7px; align-items: center}
.feature-name .ico {width: 15px; height: 15px}
.feature-controls {display: flex; gap: 6px}
.feature-controls button {width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid #c5c8bd; border-radius: 50%; background: #fff; color: #1f251f}
.feature-controls button:hover {background: #fff1a1; border-color: #d7bd44}
.feature-controls button:first-child .ico {transform: rotate(180deg)}
.feature-controls .ico {width: 17px; height: 17px}
.project-picture:has(.program-cover) {background: var(--tint,#f4f2e8)}
@media (min-width: 1001px) {
  .cover-hero .hero-copy {padding-left: 4px}
  .card-grid:has(>.program-card:nth-child(2):last-child) {grid-template-columns: repeat(3,minmax(0,1fr))}
}
@media (max-width: 860px) {
  .cover-hero .hero-in {gap: 22px}
  .cover-hero h1 {font-size: clamp(48px,6.8vw,60px)}
  .cover-hero .hero-copy>p {margin-block: 13px 18px}
}
@media (max-width: 650px) {
  .cover-hero .hero-in {grid-template-columns: 1fr; padding-block: 25px; gap: 21px}
  .cover-hero .kicker {margin-bottom: 11px}
  .cover-hero h1 {font-size: clamp(54px, 11vw, 68px)}
  .cover-hero .hero-cities {margin-top: 14px}
  .feature-frame {max-width: 100%; border-radius: 13px}
  .feature-caption {padding: 9px 12px}
  .feature-controls button {width: 38px; height: 38px}
  .calendar-cover {display: none}
  .detail-art {width: 100%; aspect-ratio: auto}
  .school-card .campus-copy h4 {overflow-wrap: break-word}
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important}
}

.weekend-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:14px;margin:0 0 20px}
.weekend-location{border:1px solid #d2e1f1;border-radius:14px;background:#f1f6fc;padding:15px 18px}
.weekend-location>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:0 0 8px}
.weekend-location strong{font-size:1.13rem}.weekend-location>div>span{font-size:.9rem;font-weight:650;color:#204e84}
.weekend-location p{display:flex;align-items:baseline;gap:8px;margin:3px 0;color:#354345;font-size:.9rem}
.weekend-location .ico{width:15px;height:15px;align-self:center;flex:none}
.club-policy{margin:0 0 16px;color:#47504c;font-size:.95rem;line-height:1.5}
.pay-panel{border:2px solid var(--blue);border-radius:13px;padding:20px;margin:0 0 20px;background:#f5f8ff;display:grid;gap:10px}.pay-panel h2{font-size:26px}.pay-amount{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.pay-amount strong{font-family:var(--display);font-size:34px;color:var(--ink)}.pay-note,.pay-test{background:#fff7d6;border-radius:7px;padding:9px 12px;font-size:13px}.pay-panel .actions{margin:4px 0 0}.btn[disabled]{opacity:.6;cursor:wait;transform:none}.pay-badge{display:inline-block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:5px 10px;border-radius:20px;margin-bottom:12px;background:#eee}.pay-paid{background:#d8efe4;color:#14664c}.pay-pending{background:#fff2c2}.pay-failed,.pay-expired,.pay-cancelled{background:#fde4dc;color:#8a2c12}
/* Online enrolment, forms, newsletter and policy pages */
.child-block{border:1px solid var(--line)!important;border-radius:11px;padding:16px!important;background:#fbfbf8}
.child-block legend{padding:0 6px;font-family:var(--display);font-size:18px}
.child-block small.form-help{font-weight:400}
.remove-child{justify-self:start;font-size:13px;background:none;border:0;padding:0;cursor:pointer;color:var(--blue)}
#add-child{justify-self:start}
.voucher-row{display:flex;gap:10px}.voucher-row input{flex:1}.voucher-row .btn{margin:0;white-space:nowrap}
.enrol-price{margin:14px 0 4px;display:grid;gap:6px;font-size:14px}
.enrol-price>div{display:flex;justify-content:space-between;gap:12px}
.enrol-total{border-top:1px solid var(--line);padding-top:8px;margin-top:4px;align-items:baseline}
.enrol-total strong{font-family:var(--display);font-size:30px}
.enrol-alt{margin-top:18px}
.contact-form-wrap{max-width:720px;margin-top:30px}
.site-form .form-help{margin:0}
.md h2{font-size:clamp(22px,2vw,28px);margin:26px 0 8px}.md h3{font-size:19px;margin:20px 0 6px}
.md ul,.md ol{color:var(--mute);line-height:1.6;padding-left:1.3em}.md li{margin:4px 0}.md strong{color:var(--ink)}
.policy{max-width:820px}
#newsletter{margin-top:26px;border-top:1px solid #ddded5;padding-top:22px}
.newsletter{display:grid;gap:8px;max-width:560px}.newsletter p{margin:0;color:var(--mute);font-size:14px}
.newsletter-row{display:flex;gap:10px}.newsletter-row input{flex:1;border:1px solid #acb7b0;border-radius:7px;padding:10px 12px;font-size:15px;min-height:43px}
.newsletter-row .btn{margin:0}
.newsletter .check{display:flex;gap:8px;align-items:start;font-size:13px;color:var(--mute)}
.newsletter .check a{text-decoration:underline}
@media(max-width:650px){.voucher-row,.newsletter-row{flex-direction:column}}
.md-img{display:block;max-width:100%;height:auto;border-radius:12px;margin:18px 0}
.preview-bar{position:sticky;top:0;z-index:50;background:#1d4fd8;color:#fff;text-align:center;font-size:13px;font-weight:650;padding:8px 12px}
.article-links a .news-summary{display:block;font-size:14px;color:var(--mute);font-weight:400;margin-top:4px}
.article-links a .news-thumb{display:block;width:100%;max-width:320px;aspect-ratio:3/2;object-fit:cover;border-radius:10px;margin-bottom:8px}
.news-byline{color:var(--mute);font-size:14px;margin:4px 0 14px}.news-cover{width:100%;max-height:480px;object-fit:cover;border-radius:14px;margin:6px 0 18px}
.news-tags{margin-top:18px}.news-tag{display:inline-block;background:#f0f2ec;border-radius:999px;padding:3px 10px;font-size:12px;margin:0 4px 4px 0}
.block-image{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;margin:30px 0}.block-image.right .block-photo{order:2}
.block-photo{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px}.block-cta .btn,.block-image .btn{margin-top:14px}
.block-cases{margin:30px 0}.case-photo{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;margin-bottom:10px}.case-school{display:block;font-size:12px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.06em}
.block-faq{margin:30px 0}.faq-item{border-top:1px solid var(--line);padding:12px 0}.faq-item:last-child{border-bottom:1px solid var(--line)}.faq-item summary{cursor:pointer;font-weight:650;font-size:16px}.faq-item .md{margin-top:8px}
@media(max-width:760px){.block-image{grid-template-columns:1fr}.block-image.right .block-photo{order:0}}
.home-block{margin-top:30px;margin-bottom:30px}.block-text{margin:23px 0}.block-cta{margin:20px 0}

/* Header logo: mascot + wordmark about 15% larger, same proportions (header only). */
.head .brand .bot{width:51px}.head .brand .wordmark{width:108px}
@media(max-width:1120px){.head .brand .bot{width:41px}.head .brand .wordmark{width:93px}}
@media(max-width:650px){.head .brand .bot{width:39px}.head .brand .wordmark{width:86px}}
@media(max-width:355px){.head .brand .bot{width:34px}.head .brand .wordmark{width:75px}}

/* Home page program search */
.hero-search{display:grid;grid-template-columns:1fr 1.25fr auto;gap:8px;align-items:end;margin:18px 0 14px;padding:10px;background:#fff;border:1px solid #dcd8cb;border-radius:14px;box-shadow:0 6px 18px rgba(30,30,20,.06);max-width:560px}
.hero-search label{display:flex;flex-direction:column;gap:2px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);min-width:0}
.hero-search select{width:100%;border:1px solid #cdd3ce;border-radius:9px;padding:10px 9px;font-size:14px;font-weight:650;text-transform:none;letter-spacing:0;color:var(--ink);background:#fff}
.hero-search .btn{white-space:nowrap;min-height:44px}
@media(max-width:650px){.hero-search{grid-template-columns:1fr;max-width:none}.hero-search .btn{width:100%;justify-content:center}}

/* Program finder and calendar filters */
.finder-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.finder-controls .control select{max-width:220px}
@media(max-width:650px){.section-head{flex-wrap:wrap}.finder-controls{width:100%}.finder-controls .control{flex:1 1 140px}.finder-controls .control select{max-width:none;width:100%}}
.no-results{margin-top:22px}.no-results .btn{margin-top:6px}

/* Calendar */
.cal-app{margin:26px 0 34px}
.cal-controls{margin-bottom:14px}
.view-toggle{display:inline-flex;border:1px solid #cdd3ce;border-radius:10px;overflow:hidden}
.view-toggle button{border:0;background:#fff;padding:10px 14px;font-size:14px;font-weight:650;cursor:pointer}
.view-toggle button[aria-pressed=true]{background:var(--ink);color:#fff}
.cal-note{font-size:14px;color:var(--mute);margin:0 0 14px}
.cal-year{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:1120px){.cal-year{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.cal-year{grid-template-columns:repeat(2,1fr)}}
.cal-month{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.cal-month.quiet{background:#fafaf6}
.cal-month h3{margin:0 0 8px;font-size:16px}.cal-month h3 .link-btn{font:inherit;font-weight:700}
.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:12px}
.cal-wd{font-size:10px;font-weight:700;color:var(--mute);padding:2px 0}
.cal-day{padding:4px 0;border-radius:6px;color:#9aa19c;border:0;background:none;font:inherit;line-height:1.2}
.cal-day.has{color:var(--ink);background:#fff3b8;cursor:pointer;font-weight:700;position:relative}
.cal-day.has:hover,.cal-day.sel{background:var(--sun)}
.cal-day .dot{display:block;width:4px;height:4px;border-radius:50%;background:var(--blue);margin:1px auto 0}
.cal-month-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.cal-month-list .muted{font-size:13px;margin:4px 0 0}
.cal-item{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:9px;border-left:4px solid var(--series);background:var(--tint);font-size:13px;line-height:1.35}
.cal-item strong{font-size:14px}
.cal-status{align-self:flex-start;margin-top:3px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px;background:#fff;border:1px solid #cdd3ce}
.cal-status.st-ok{background:#e1f5e6;border-color:#9fd4ad}.cal-status.st-full{background:#fff1d6;border-color:#f0c97a}.cal-status.st-closed{background:#eee;color:#555}
.cal-month-nav{display:flex;align-items:center;gap:12px;margin:6px 0 12px}.cal-month-nav h2{margin:0;font-size:22px;min-width:190px;text-align:center}
.cal-month-grid.big{gap:4px;font-size:13px}
.cal-month-grid.big .cal-day{min-height:86px;text-align:left;padding:6px;border:1px solid var(--line);display:flex;flex-direction:column;gap:3px;background:#fff}
.cal-month-grid.big .cal-day.has{background:#fffbea}.cal-month-grid.big .cal-day.sel{outline:2px solid var(--ink)}
.cal-month-grid.big .cal-day i{font-style:normal;font-size:11px;font-weight:600;background:var(--tint);border-left:3px solid var(--series);border-radius:4px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-month-grid.big .cal-day i.more{background:none;border:0;color:var(--mute)}
.cal-month-grid.big .cal-blank{min-height:86px}
.cal-agenda{display:none;flex-direction:column;gap:8px}
.cal-detail{margin-top:18px;border:2px solid var(--ink);border-radius:12px;padding:14px;background:#fff}
.cal-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.cal-detail h3{margin:0 0 10px}
.cal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
/* Small screens: lists instead of crowded grids. */
@media(max-width:650px){
  .cal-year{grid-template-columns:1fr}
  .cal-month .cal-month-grid{display:none}
  .cal-month.quiet{padding:10px 12px}
  .cal-month-grid.big{display:none}
  .cal-agenda{display:flex}
  .cal-month-nav h2{min-width:0;flex:1;font-size:19px}
  .view-toggle{flex:1 1 100%}.view-toggle button{flex:1}
}
.cal-empty-month{background:#f3f7f4;border-radius:10px;padding:12px 14px;margin:0 0 12px;font-size:14px}
.finder-side{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:flex-end}
.finder-cal{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-weight:650}.finder-cal .ico{width:16px;height:16px}
@media(max-width:650px){.finder-side{width:100%;justify-content:flex-start;gap:12px}}
/* Footer social links */
.socials{display:flex;gap:10px;margin-top:10px}.footer-top .socials a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid #d5dacf;color:var(--navy);transition:background .15s,color .15s,border-color .15s}.footer-top .socials a:hover,.footer-top .socials a:focus-visible{background:var(--navy);border-color:var(--navy);color:#fff;text-decoration:none}.socials svg{width:18px;height:18px}
/* Content blocks: photos and videos, partner logos */
.block-head{max-width:720px;margin-bottom:20px}.block-head h2{font-size:clamp(28px,3.4vw,38px);margin:0 0 6px}.block-head p{color:var(--mute);font-size:15px;margin:0}
.block-gallery,.block-logos{margin:10px 0}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.video-grid.one{grid-template-columns:minmax(0,820px)}
.video-card{margin:0}.video-card .yt,.video-card iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:14px;overflow:hidden;background:#0d1512}
.video-card .yt{position:relative;padding:0;cursor:pointer}.video-card .yt img{width:100%;height:100%;object-fit:cover;transition:transform .3s,opacity .2s;opacity:.92}.video-card .yt:hover img{transform:scale(1.03);opacity:1}
.yt-play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:#fff;box-shadow:0 6px 22px #0005;transition:transform .2s}.yt-play:after{content:"";position:absolute;left:27px;top:21px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent var(--blue)}.video-card .yt:hover .yt-play,.video-card .yt:focus-visible .yt-play{transform:scale(1.08)}
.video-card .yt:focus-visible,.photo:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.video-card figcaption{padding:10px 2px 0}.video-card figcaption strong{display:block;font-family:var(--display);font-size:18px}.video-card figcaption span{display:block;color:var(--mute);font-size:14px;margin-top:2px}
.photo-head{margin:30px 0 14px}.photo-head h3{font-family:var(--display);font-size:clamp(28px,3.4vw,38px);margin:0 0 6px}.photo-head p{color:var(--mute);font-size:15px;margin:0}
.photo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo-grid li{margin:0}
.photo{display:block;width:100%;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;background:#eef0ea}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.photo:hover img{transform:scale(1.05)}
.photo-cap{display:block;font-size:12.5px;color:var(--mute);margin-top:5px;line-height:1.35}
.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;margin:0;display:none;align-items:center;justify-content:center}.lightbox[open]{display:flex}.lightbox::backdrop{background:#0d1512e8}
.lightbox figure{margin:0;max-width:min(1100px,88vw);text-align:center}.lightbox figure img{max-width:100%;max-height:82vh;border-radius:10px;object-fit:contain}.lightbox figcaption{color:#e9ede9;font-size:14px;margin-top:10px;min-height:1em}
.lightbox button{position:absolute;border:0;background:#ffffff1f;color:#fff;border-radius:50%;width:48px;height:48px;font-size:30px;line-height:1;cursor:pointer}.lightbox button:hover{background:#ffffff40}.lb-close{top:18px;right:18px}.lb-prev{left:18px;top:50%;margin-top:-24px}.lb-next{right:18px;top:50%;margin-top:-24px}.lightbox button[hidden]{display:none}
.logo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.logo-grid li{margin:0}
.logo-grid a,.logo-grid span{display:flex;align-items:center;justify-content:center;height:96px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:12px;transition:border-color .2s,box-shadow .2s}.logo-grid a:hover{border-color:#b9c4bb;box-shadow:0 6px 16px #17242112}
.logo-grid img{max-width:100%;max-height:100%;object-fit:contain}.block-logos.mono img{filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}.block-logos.mono li:hover img,.block-logos.mono a:focus-visible img{filter:none;opacity:1}
@media(max-width:860px){.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.logo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:650px){.video-grid{grid-template-columns:1fr;gap:16px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.logo-grid a,.logo-grid span{height:72px;padding:10px 12px}.yt-play{width:56px;height:56px;margin:-28px 0 0 -28px}.yt-play:after{left:22px;top:17px;border-width:11px 0 11px 18px}.lb-prev,.lb-next{top:auto;bottom:18px;margin:0}.socials{margin-top:6px}}
@media(prefers-reduced-motion:reduce){.photo img,.video-card .yt img,.yt-play{transition:none}.photo:hover img,.video-card .yt:hover img{transform:none}}
/* Shown until the scripts render the page, so the footer doesn't jump up under the header. */
#main.booting{min-height:calc(100vh - 113px)}.boot-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:calc(100vh - 113px);color:#627069;font-size:14px}.boot-placeholder img{animation:boot-bob 1.4s ease-in-out infinite}@keyframes boot-bob{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.boot-placeholder img{animation:none}}
/* Program lists sent by the server for search engines; the site script replaces them on load. */
.seo-list{list-style:none;padding:0;margin:0 0 32px;display:grid;gap:18px}.seo-list p{margin:4px 0 0}.seo-list small{color:#627069}
