
:root{--navy:#17252E;--ice:#B6C7CB;--line:#5E797F;--orange:#E1824F;--white:#FAFAF7;--ink:#19242B;--slate:#4C5860;--border:#D1D7D7;--paper:#F6F6F2;--rich:#263841}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font:16px/1.6 'Inter Display',Inter,'Arial',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.07;letter-spacing:-.035em}h1{font-size:clamp(48px,5.9vw,96px);font-weight:900;margin:16px 0 25px}h2{font-size:clamp(34px,4.1vw,59px);font-weight:850;margin:12px 0 20px}h3{font-size:clamp(20px,2.2vw,28px);font-weight:800}p{color:var(--slate)}strong{font-weight:800}button,a{transition:opacity .15s,transform .15s}a:hover{opacity:.88}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.container{width:min(1200px,calc(100% - 68px));margin:auto}.skip{position:absolute;top:-100px;left:8px;background:white;color:black;padding:8px;z-index:100}.skip:focus{top:8px}.notice{background:var(--orange);color:var(--navy);font-weight:850;text-transform:uppercase;letter-spacing:.12em;font-size:11px;text-align:center;padding:9px 14px}.notice a{text-decoration:underline;text-underline-offset:3px}.site-header{background:var(--navy);color:var(--white);position:relative;z-index:20}.topbar{max-width:1350px;margin:auto;padding:18px 34px;display:flex;align-items:center;gap:28px}.wordmark{display:flex;align-items:center;gap:13px;min-width:220px}.wordmark:before{content:'';width:5px;height:48px;background:var(--orange);display:block}.wordmark strong{display:block;line-height:1;font-size:25px;letter-spacing:-1px;font-weight:900}.wordmark small{display:block;font-size:9px;letter-spacing:.31em;color:var(--ice);font-weight:800;margin-top:7px}.nav{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex:1}.nav a,.nav summary{font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:#E9EEEE;white-space:nowrap;cursor:pointer}.nav a.active{color:var(--orange)}.nav .nav-button{background:var(--orange);color:var(--navy);padding:12px 15px;border-radius:2px}.nav details{position:relative}.nav details>summary{list-style:none}.nav details>summary::-webkit-details-marker{display:none}.nav .pop{position:absolute;right:0;top:30px;background:white;min-width:185px;padding:13px;box-shadow:0 8px 25px #0003;border:1px solid var(--border)}.nav .pop a{color:var(--ink);display:block;padding:9px 5px}.nav .pop a:hover{color:var(--orange)}.menu-toggle{display:none;background:none;color:white;border:1px solid #66777D;padding:9px 13px;border-radius:2px;cursor:pointer}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.21em;color:var(--ice);font-weight:850}.accent{width:95px;height:5px;background:var(--orange);margin:22px 0}.accent.small{width:57px;height:4px;margin:15px 0 22px}.btn{display:inline-flex;min-height:52px;align-items:center;justify-content:center;border:0;padding:14px 24px;font-size:12px;line-height:1.1;text-transform:uppercase;letter-spacing:.07em;font-weight:900;border-radius:2px;gap:8px;text-align:center;cursor:pointer}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--orange);color:var(--navy)}.btn-white{background:var(--white);color:var(--navy)}.btn-outline{border:1px solid #91A1A5;color:var(--white);background:transparent}.btn-navy{background:var(--navy);color:var(--white)}.actions{display:flex;gap:13px;flex-wrap:wrap}.hero{background:var(--navy);display:grid;grid-template-columns:47% 53%;min-height:570px;overflow:hidden}.hero .hero-text{color:white;display:flex;flex-direction:column;justify-content:center;padding:74px 5vw 76px max(calc((100vw - 1200px)/2),40px)}.hero .hero-text p{color:#C4D0D2;line-height:1.55;max-width:500px;font-size:17px}.hero h1 em{color:var(--ice);font-style:normal}.hero .hero-media{position:relative;min-height:500px;overflow:hidden}.hero .hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}.hero .hero-media .credit{position:absolute;right:18px;bottom:16px;color:white;background:#17252EA8;padding:5px 10px;font-size:10px;letter-spacing:.05em}.hero.compact{min-height:475px}.hero.compact .hero-media{min-height:440px}.hero.compact h1{font-size:clamp(44px,5.1vw,72px)}.hero.compact .hero-text{padding-top:60px;padding-bottom:60px}.strip{background:var(--navy);color:white;padding:30px 0}.strip-inner{display:flex;gap:28px;justify-content:space-between;align-items:center}.strip p{color:var(--ice);margin:0}.strip strong{font-size:21px;font-weight:850}.section{padding:85px 0}.section.tight{padding:60px 0}.section.alt{background:var(--paper)}.section.dark{background:var(--navy);color:var(--white)}.section.dark p{color:#C3CFD2}.intro{max-width:790px;margin-bottom:38px}.intro p{font-size:18px}.kicker{color:var(--line);font-size:12px;font-weight:900;letter-spacing:.19em;text-transform:uppercase}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{background:white;border:1px solid var(--border);padding:28px;min-height:210px;display:flex;flex-direction:column;align-items:flex-start}.card h3{margin-bottom:12px}.card p{margin-bottom:19px}.card a.text-link{color:var(--navy);font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:12px;margin-top:auto;border-bottom:2px solid var(--orange);padding-bottom:4px}.card.big{padding:38px;min-height:245px}.card.orange-top{border-top:5px solid var(--orange)}.stat{font-size:clamp(40px,4.5vw,66px);font-weight:900;letter-spacing:-.055em;color:var(--navy);margin-bottom:7px}.split{display:grid;grid-template-columns:1fr 1fr;min-height:470px}.split.flip .photo{order:2}.split .photo{position:relative;overflow:hidden}.split .photo img{width:100%;height:100%;object-fit:cover}.split .copy{background:var(--paper);padding:65px max(5vw,40px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.split .copy h2{max-width:630px}.split .copy p{max-width:550px}.split.dark .copy{background:var(--navy);color:white}.split.dark p{color:var(--ice)}.split .photo .credit{position:absolute;right:16px;bottom:13px;background:#17252EB3;color:white;padding:4px 9px;font-size:11px}.big-photo{width:100%;max-height:640px;object-fit:cover}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.feature{background:var(--paper);padding:26px;border-left:4px solid var(--orange)}.feature h3{margin:0 0 10px}.feature p{margin:0}.price{display:flex;align-items:flex-end;gap:8px;font-size:38px;font-weight:900;line-height:1;color:var(--navy);letter-spacing:-.05em;margin:16px 0}.price small{font-size:13px;color:var(--slate);letter-spacing:0;padding-bottom:3px}.note{background:#EEF0ED;border-left:4px solid var(--line);padding:17px 22px;color:var(--slate);font-size:14px}.actionbar{background:var(--orange);padding:46px 0}.actionbar .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.actionbar h2{font-size:38px;margin:0 0 5px}.actionbar p{color:#273944;margin:0}.simple-list{list-style:none;padding:0;margin:0}.simple-list li{border-bottom:1px solid var(--border);padding:17px 0;display:flex;gap:14px;align-items:baseline}.simple-list li::before{content:'';width:7px;height:7px;background:var(--orange);flex:none}.details{border:1px solid var(--border);padding:22px 26px;background:white}.details+ .details{border-top:0}.details summary{font-size:18px;font-weight:800;cursor:pointer}.details p{margin:14px 0 0}.label{font-size:10px;letter-spacing:.16em;font-weight:900;color:var(--line);text-transform:uppercase}.card-photo{background:var(--paper);overflow:hidden}.card-photo img{height:245px;width:100%;object-fit:cover}.card-photo .inner{padding:28px}.card-photo h3{margin-bottom:12px}.card-photo p{margin-bottom:15px}.contact-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.contact-tile{background:var(--paper);padding:30px;min-height:170px}.contact-tile b{font-size:16px}.contact-tile p{margin-top:11px;word-break:break-word}.site-footer{background:var(--navy);color:var(--white);padding:61px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}.site-footer p{color:var(--ice)}.site-footer a{display:block;font-size:13px;margin:9px 0}.site-footer h3{font-size:15px;letter-spacing:.06em}.site-footer .bottom{margin-top:48px;border-top:1px solid #5E797F;padding-top:20px;color:var(--ice);font-size:11px;display:flex;justify-content:space-between;gap:20px}.badge-label{display:inline-block;padding:7px 12px;font-size:12px;color:#17252E;background:#F1D0B9;letter-spacing:.08em;font-weight:900;text-transform:uppercase}.mini{font-size:13px}.measure{max-width:720px}.linkline{font-weight:800;color:var(--navy);border-bottom:2px solid var(--orange)}.photo-label{font-size:11px;color:var(--slate);text-align:right;padding:7px 16px}.inline-callout{margin-top:26px;padding:22px 26px;background:var(--paper);border-left:4px solid var(--orange)}
@media(max-width:1120px){.topbar{padding:16px 22px}.nav{gap:12px}.nav a,.nav summary{font-size:10px}.wordmark{min-width:200px}.wordmark strong{font-size:23px}.hero .hero-text{padding-left:40px}.hero h1{font-size:clamp(42px,5.3vw,80px)}}
@media(max-width:860px){.topbar{justify-content:space-between;flex-wrap:wrap}.menu-toggle{display:inline-flex}.nav{display:none;width:100%;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:12px 0}.nav.open{display:flex}.nav>a,.nav>details{padding:11px 0;border-top:1px solid #53656C}.nav details .pop{position:static;min-width:0;background:#253942;box-shadow:none;border:0}.nav details .pop a{color:white}.nav .nav-button{align-self:flex-start;border:0;margin-top:8px;padding:12px 18px}.hero,.split{grid-template-columns:1fr}.hero .hero-media,.hero.compact .hero-media{min-height:330px}.hero .hero-text{padding:64px 34px}.split .photo{min-height:340px}.split.flip .photo{order:0}.split .copy{padding:46px 34px}.grid3{grid-template-columns:1fr 1fr}.contact-tiles{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.strip-inner{align-items:flex-start;flex-direction:column}.actionbar .container{align-items:flex-start;flex-direction:column}.section{padding:64px 0}}
@media(max-width:600px){.container{width:calc(100% - 38px)}.wordmark strong{font-size:19px}.wordmark small{font-size:8px}.wordmark{min-width:0}.hero h1{font-size:clamp(43px,13vw,62px)}.hero.compact h1{font-size:clamp(42px,11vw,58px)}.hero .hero-text{padding:49px 23px 55px}.hero .hero-media{min-height:285px}.grid2,.grid3,.feature-grid{grid-template-columns:1fr}.btn{width:100%}.actions{width:100%}.card,.card.big{padding:24px}.footer-grid{grid-template-columns:1fr}.site-footer .bottom{flex-direction:column}.section{padding:52px 0}h2{font-size:35px}.actionbar h2{font-size:30px}}

/* Version 2: rate sheets, Snowfest, employment and event venue */
.event-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.event-facts>div{padding:27px;background:var(--paper);border-top:4px solid var(--orange)}.event-facts strong{display:block;font-size:clamp(25px,2.5vw,39px);color:var(--navy);line-height:1.2;margin:10px 0}.event-facts p{margin:0}.rate-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0}.rate-tabs a{padding:11px 16px;background:var(--navy);color:var(--white);font-weight:800;font-size:13px;border-bottom:3px solid var(--orange)}.price-panel{background:#fff;padding:28px;border:1px solid var(--border);border-top:4px solid var(--orange)}.price-panel h3{margin-bottom:25px}.price-table{width:100%;border-collapse:collapse}.price-table th,.price-table td{text-align:left;padding:10px 5px;border-bottom:1px solid #DBE0DF;font-size:15px}.price-table th{font-weight:600;color:var(--ink)}.price-table td{text-align:right;font-weight:800;color:var(--navy);white-space:nowrap}.price-note{margin:18px 0 0}.rate-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rate-source{margin:0;background:var(--paper);border:1px solid var(--border);overflow:hidden}.rate-source img{width:100%;height:auto;display:block}.rate-source figcaption{padding:12px 15px;color:var(--ink);font-weight:800}.venue-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.venue-gallery figure{margin:0;background:white;border:1px solid var(--border)}.venue-gallery img{display:block;aspect-ratio:3/2;width:100%;object-fit:cover;image-rendering:auto}.venue-gallery figcaption{padding:16px;font-size:13px;color:var(--slate);font-weight:700}.lesson-announcement{background:var(--paper);border-left:6px solid var(--orange);padding:clamp(28px,5vw,60px);max-width:1000px}.lesson-announcement h2{max-width:900px}.lesson-announcement p{max-width:730px;font-size:18px}.lesson-announcement .btn{margin-top:10px}.job-list{border-top:1px solid var(--border)}.job-entry{padding:0 20px;border:1px solid var(--border);border-top:0;background:white}.job-entry summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 4px;cursor:pointer;list-style:none}.job-entry summary::-webkit-details-marker{display:none}.job-entry summary strong{display:block;font-size:20px;color:var(--navy)}.job-entry summary small{display:block;margin-top:4px;font-size:13px;color:var(--slate)}.job-expand{font-size:12px;font-weight:800;color:var(--orange);text-transform:uppercase;white-space:nowrap}.job-entry[open] .job-expand{font-size:0}.job-entry[open] .job-expand:after{content:'Close';font-size:12px}.job-details{border-top:1px solid var(--border);padding:22px 4px 0;display:grid;grid-template-columns:1fr 1fr;gap:40px}.job-details h4{font-size:14px;color:var(--navy);text-transform:uppercase;letter-spacing:.08em}.job-details li{padding:4px 0}.job-entry>.text-link{font-size:13px;font-weight:800;display:inline-block;margin:0 0 25px 4px;border-bottom:2px solid var(--orange)}.volunteer-card{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.volunteer-photo{position:relative;min-height:300px;height:100%}.volunteer-photo img{width:100%;height:100%;object-fit:cover}.volunteer-photo .credit{position:absolute;bottom:12px;right:14px;color:white;background:#17252Eaa;padding:4px 8px;font-size:11px}
@media(max-width:860px){.event-facts{grid-template-columns:1fr 1fr}.rate-source-grid{grid-template-columns:1fr 1fr}.volunteer-card{grid-template-columns:1fr}}
@media(max-width:600px){.event-facts,.rate-source-grid,.venue-gallery,.job-details{grid-template-columns:1fr}.job-entry summary{align-items:flex-start}.job-details{gap:6px}.rate-tabs a{flex:1 1 auto;text-align:center}.price-panel{padding:20px}.venue-gallery img{max-height:300px}}


/* Version 3 — constrained hero images and responsive headline fix (all pages).
   Keep photo inside its column; never allow intrinsic image dimensions to
   increase the grid track or cover the headline on desktop displays. */
.hero{
  grid-template-columns:minmax(0,47%) minmax(0,53%);
  min-height:0;
  align-items:stretch;
}
.hero > .hero-text, .hero > .hero-media { min-width:0; }
.hero .hero-text{
  position:relative;
  z-index:1;
  padding:clamp(44px,5vw,78px) clamp(22px,3vw,58px) clamp(44px,5vw,78px) clamp(32px,7vw,120px);
}
.hero:not(.compact) h1{
  font-size:clamp(38px,4.25vw,73px);
  max-width:100%;
  line-height:1.1;
}
.hero .hero-media {
  position:relative;
  isolation:isolate;
  width:100%;
  height:clamp(420px,39vw,590px);
  min-height:0;
  overflow:hidden;
}
.hero .hero-media img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  max-width:none;
}
.hero.compact .hero-media{height:clamp(390px,34vw,520px);min-height:0}
.hero .hero-media .credit{z-index:1}
.early-bird-offer{
  background:#17252E;color:#FAFAF7;border-left:5px solid #E1824F;
  padding:18px 22px;margin:18px 0 24px;
}
.early-bird-offer strong{display:block;font-size:18px;letter-spacing:.03em;margin-bottom:4px}
.early-bird-offer span{display:block;color:#B6C7CB;font-size:14px;line-height:1.5}
@media(max-width:1080px){
  .topbar{justify-content:space-between;flex-wrap:wrap}
  .menu-toggle{display:inline-flex}
  .nav{display:none;width:100%;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:12px 0}
  .nav.open{display:flex}
  .nav>a,.nav>details{padding:11px 0;border-top:1px solid #53656C}
  .nav details .pop{position:static;min-width:0;background:#253942;box-shadow:none;border:0}
  .nav details .pop a{color:white}
  .nav .nav-button{align-self:flex-start;border:0;margin-top:8px;padding:12px 18px}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero .hero-text{padding:48px clamp(24px,6vw,65px);min-width:0}
  .hero .hero-media,.hero.compact .hero-media{height:clamp(260px,40vw,440px);min-height:0}
  .hero:not(.compact) h1{font-size:clamp(43px,7vw,68px)}
}
@media(max-width:600px){
  .hero .hero-text{padding:48px 24px 52px}
  .hero .hero-media,.hero.compact .hero-media{height:310px;min-height:0}
  .hero:not(.compact) h1{font-size:clamp(40px,11vw,58px)}
}
