@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,500;9..40,600;9..40,700&family=Manrope:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

:root{
  --bg:#f3f0e8;
  --paper:#fffdf8;
  --ink:#18231f;
  --green:#176b5b;
  --deep:#0d3831;
  --coral:#ff5a36;
  --lime:#b8d941;
  --line:#cbd6cc;
  --display:"DM Sans",sans-serif;
  --body:"Manrope",sans-serif;
  --mono:"Space Mono",monospace;
  --pad:clamp(20px,7.5vw,132px);
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--ink);font:500 16px/1.6 var(--body);overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.062em;line-height:.94}
h1{font-size:clamp(3.8rem,7.4vw,8.4rem)}
h2{font-size:clamp(2.8rem,5.1vw,5.9rem)}
h3{font-size:clamp(1.7rem,2.5vw,3rem)}
em{font-style:normal;color:var(--green)}
::selection{background:var(--lime);color:var(--ink)}
:focus-visible{outline:3px solid var(--coral);outline-offset:5px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow,.section-index,dt,.class-row span,.today-note,.today-status,.signal-data,.contact-facts span,.form-heading,.faq-grid article>span{
  font:700 11px/1.35 var(--mono);
  letter-spacing:.075em;
}
.eyebrow span{color:var(--coral)}
.site-header{
  height:86px;padding:13px clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;
  border-bottom:2px solid var(--ink);background:var(--bg);position:relative;z-index:20
}
.brand{display:block;line-height:0}
.brand img{width:150px;max-height:55px;object-fit:contain;object-position:left center}
.site-nav{display:flex;gap:29px;align-items:center;font-size:14px;font-weight:700}
.site-nav>a:not(.nav-call){position:relative;padding:11px 0}
.site-nav>a:not(.nav-call):after{
  content:"";position:absolute;bottom:2px;left:0;width:100%;height:2px;background:var(--green);
  transform:scaleX(0);transform-origin:right;transition:transform .3s ease
}
.site-nav>a:hover:after,.site-nav>a:focus-visible:after,.site-nav .active:after{transform:scaleX(1);transform-origin:left}
.nav-call{padding:12px 17px;background:var(--green);color:var(--paper);border:2px solid var(--green);border-radius:10px;transition:background .2s,color .2s}
.nav-call:hover{background:var(--ink);border-color:var(--ink)}
.nav-call i{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--lime)}
.menu-toggle{display:none}

.hero{display:grid;grid-template-columns:1.04fr .96fr;min-height:calc(100vh - 86px);overflow:hidden}
.hero-copy{position:relative;padding:clamp(72px,11vw,154px) clamp(35px,6vw,96px) 100px var(--pad);display:flex;flex-direction:column;align-items:flex-start}
.hero-copy .eyebrow{margin-bottom:28px}
.hero-copy h1{max-width:760px}
.hero-lead{max-width:510px;margin:35px 0;font-size:clamp(16px,1.35vw,19px)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px}
.button{
  display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 17px;
  border:2px solid var(--ink);border-radius:10px;font:700 13px var(--body);transition:box-shadow .2s,transform .2s,background .2s
}
.button span{font-size:20px;line-height:1}
.button:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--deep)}
.button-coral{background:var(--coral)}
.button-ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.button-ink:hover{box-shadow:5px 5px 0 var(--paper)}
.text-link{display:inline-block;border-bottom:2px solid var(--ink);padding:6px 0;font-size:14px;font-weight:700;transition:color .2s,border-color .2s}
.text-link:hover{color:var(--green);border-color:var(--green)}
.text-link span{margin-left:12px;color:var(--coral)}
.hero-route{
  position:absolute;right:0;bottom:25px;width:61%;height:145px;border-top:5px solid var(--green);border-right:5px solid var(--green);
  border-radius:0 44px 0 0;pointer-events:none
}
.hero-route b{position:absolute;right:-11px;bottom:-11px;width:18px;height:18px;border-radius:50%;background:var(--coral)}
.image-frame{position:relative;overflow:hidden;background:var(--deep)}
.image-frame:after{
  content:"";position:absolute;inset:0;border-top:5px solid var(--paper);border-left:5px solid var(--paper);
  border-radius:42px 0 0 0;pointer-events:none
}
.image-frame img{width:100%;height:100%;object-fit:cover}
.hero-image{min-height:630px;border-radius:25px 0 0 25px}
.hero-image figcaption,.story-image figcaption,.space-main figcaption{
  position:absolute;left:26px;bottom:22px;color:var(--paper);font:700 10px/1.3 var(--mono);letter-spacing:.08em;z-index:1
}
.hero-image figcaption span{display:inline-block;width:10px;height:10px;margin-right:8px;background:var(--lime);border-radius:50%}

.availability{padding:102px var(--pad);background:var(--deep);color:var(--paper)}
.section-topline{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:38px}
.availability .eyebrow,.space-principles .eyebrow{color:var(--lime)}
.section-index{color:#9bb4aa}
.availability-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid #66847a}
.availability article{padding:27px 32px 10px 0;min-height:230px;border-right:2px solid #66847a}
.availability article+article{padding-left:32px}
.availability article:last-child{border-right:0}
.availability article>span,.service-number,.principle>span,.space-caption>span{font:700 12px var(--mono);color:var(--lime)}
.availability h3{margin:31px 0 14px;font-size:30px;letter-spacing:-.045em}
.availability p{max-width:285px;font-size:14px}

.story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(45px,10vw,155px);padding:140px clamp(20px,10vw,166px)}
.story-image{height:620px;border-radius:24px}
.story-copy p:not(.eyebrow){max-width:465px;margin:31px 0}
.story-copy h2{font-size:clamp(3.3rem,5.2vw,6.1rem)}

.today{position:relative;padding:112px var(--pad);background:var(--paper)}
.today:before{content:"";position:absolute;right:0;top:0;width:26%;height:8px;background:var(--coral)}
.today-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:58px}
.today-heading h2{text-align:right;font-size:clamp(2.7rem,4.8vw,5.3rem)}
.today-status{display:flex;gap:9px;align-items:center;margin-top:19px;color:var(--green)}
.today-status b,.today-note b{width:11px;height:11px;border-radius:50%;background:var(--lime)}
.class-list{border-top:2px solid var(--ink)}
.class-row{
  display:grid;grid-template-columns:27% 1fr 32px;gap:20px;align-items:center;padding:24px 11px;
  border-bottom:2px solid var(--ink);transition:background .25s,padding .25s
}
.class-row:hover{padding-left:22px;background:var(--lime)}
.class-row strong{font:600 20px var(--display);letter-spacing:-.025em}
.class-row i{font-style:normal;font-size:30px}
.today-note{display:flex;align-items:center;gap:12px;margin-top:23px}

.route-section{display:grid;grid-template-columns:1fr 1fr;padding:0 var(--pad);min-height:870px}
.route-sticky{height:fit-content;padding-top:120px}
.route-sticky h2{margin:22px 0}
.route-sticky>p:last-of-type{max-width:290px}
.route-mini{display:flex;gap:8px;margin-top:45px}
.route-mini i{width:12px;height:12px;border:2px solid var(--green);border-radius:50%}
.route-mini i:first-child{background:var(--coral);border-color:var(--coral)}
.route-steps{padding-top:120px}
.route-steps article{position:relative;min-height:225px;padding:0 0 37px 58px;border-left:3px solid var(--green)}
.route-steps article:before{content:"";position:absolute;top:2px;left:-10px;width:17px;height:17px;border-radius:50%;background:var(--coral)}
.route-steps article:last-child{border-color:transparent}
.route-steps span{font:700 12px var(--mono);color:var(--green)}
.route-steps h3{margin:14px 0;font-size:34px;letter-spacing:-.045em}
.route-steps p{max-width:365px}

.signal{position:relative;overflow:hidden;min-height:535px;padding:110px var(--pad) 35px;background:var(--coral)}
.signal .eyebrow{position:relative;z-index:1}
.signal h2{position:relative;z-index:1;margin:25px 0 40px}
.signal h2 em{color:var(--paper)}
.signal .button{position:relative;z-index:1}
.signal-route{
  position:absolute;right:-20px;top:-60px;width:42%;height:67%;border:6px solid var(--ink);border-left:0;border-radius:0 0 58px 0;opacity:.95
}
.signal-route:after{content:"";position:absolute;bottom:-12px;left:-10px;width:20px;height:20px;border-radius:50%;background:var(--lime)}
.signal-data{position:relative;z-index:1;display:flex;justify-content:space-between;gap:20px;margin-top:94px;padding-top:16px;border-top:2px solid var(--ink)}

.page-intro{position:relative;overflow:hidden;min-height:515px;padding:130px max(20px,14vw) 105px}
.page-intro h1{max-width:1060px;margin:25px 0}
.page-intro>p:last-child{max-width:610px;font-size:18px}
.intro-route{position:absolute;right:9%;top:0;width:17vw;height:105px;border-left:5px solid var(--green);border-bottom:5px solid var(--green);border-radius:0 0 0 42px}
.intro-route:after{content:"";position:absolute;left:-11px;bottom:-11px;width:17px;height:17px;border-radius:50%;background:var(--coral)}

.service-feature{display:grid;grid-template-columns:12% 43% 1fr;gap:25px;padding:76px var(--pad);border-top:2px solid var(--ink);align-items:start}
.service-number{font-size:21px;color:var(--green)}
.service-feature h2{margin-top:20px;font-size:clamp(3rem,4.7vw,5.4rem)}
.service-description{max-width:400px;padding-top:48px}
.service-description p+p{margin-top:18px}
.service-green{background:var(--green);color:var(--paper);border-color:var(--green)}
.service-green .service-number,.service-green .eyebrow{color:var(--lime)}
.service-visual{display:grid;grid-template-columns:1.3fr .7fr;margin:0;background:var(--deep);color:var(--paper)}
.wide-image{height:635px;border-radius:0 24px 24px 0}
.service-visual aside{padding:95px 52px}
.service-visual aside>span{font:700 13px var(--mono);color:var(--lime)}
.service-visual aside .eyebrow{margin-top:23px;color:var(--lime)}
.service-visual h2{margin:23px 0}
.light-link{margin-top:28px;border-color:var(--paper)}
.light-link:hover{color:var(--lime);border-color:var(--lime)}
.nutrition{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;padding:125px max(20px,15vw)}
.nutrition h2{margin-top:22px}
.nutrition>div:last-child{max-width:420px}
.nutrition .button{margin-top:30px}

.space-intro{padding-bottom:65px}
.space-image-layout{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;padding:0 var(--pad) 130px}
.space-main{height:625px;border-radius:24px}
.space-caption{padding:60px 0 15px 65px}
.space-caption h2{margin:19px 0;font-size:clamp(2.8rem,4.5vw,5rem)}
.space-caption p{max-width:360px}
.space-principles{padding:105px var(--pad);background:var(--deep);color:var(--paper)}
.space-principles .section-topline{margin-bottom:64px}
.principle{display:grid;grid-template-columns:12% 1fr 29%;align-items:start;padding:34px 0;border-top:2px solid #66847a}
.principle h3{font-size:clamp(2.2rem,3.4vw,4rem)}
.principle p{padding-top:12px}
.practical{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:130px max(20px,15vw)}
.practical h2{margin-top:22px}
.practical dl{margin:0}
.practical dl div{padding:18px 0 23px;border-top:2px solid var(--ink)}
.practical dd{margin-top:8px;font-size:17px}

.contact-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(50px,8vw,120px);padding:115px clamp(20px,10vw,166px);background:var(--paper)}
.contact-hero h1{margin:23px 0 29px}
.contact-copy>p:not(.eyebrow){max-width:490px}
.contact-facts{margin-top:58px;border-top:2px solid var(--ink)}
.contact-facts p{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.contact-facts span{display:block;margin-bottom:3px;color:var(--green)}
.contact-form{align-self:start;padding:30px;background:var(--bg);border:2px solid var(--ink);border-radius:14px}
.form-heading{display:flex;gap:14px;align-items:center;margin-bottom:30px;color:var(--green)}
.form-heading span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--lime);color:var(--ink)}
.contact-form label{display:block;margin-bottom:20px;font:700 11px/1.4 var(--mono);letter-spacing:.06em}
.contact-form input,.contact-form textarea{
  display:block;width:100%;margin-top:8px;padding:11px 0;background:transparent;border:0;border-bottom:2px solid var(--ink);
  border-radius:0;color:var(--ink);font:500 15px var(--body);outline:0
}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--coral)}
.contact-form textarea{resize:vertical}
.contact-form .button{margin-top:5px}
.form-note{margin-top:16px;font-size:12px}
.questions{padding:115px var(--pad)}
.questions h2{margin:20px 0 57px}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 58px;border-top:2px solid var(--ink)}
.faq-grid article{padding:26px 0 30px;border-bottom:2px solid var(--ink)}
.faq-grid article>span{color:var(--green)}
.faq-grid h3{margin:14px 0;font-size:25px;letter-spacing:-.045em}
.faq-grid p{max-width:475px;font-size:14px}

.site-footer{display:grid;grid-template-columns:1.3fr 1.3fr 1fr;gap:30px;align-items:start;padding:53px var(--pad) 28px;background:var(--ink);color:var(--paper)}
.site-footer>p{max-width:260px;font-size:14px}
.site-footer nav{display:flex;gap:19px;flex-wrap:wrap;font-size:13px;font-weight:700}
.site-footer nav a:hover{color:var(--lime)}
.site-footer small{grid-column:1/-1;padding-top:25px;border-top:1px solid #50625c;color:#b8c6bf;font:11px var(--mono)}

@media(max-width:760px){
  :root{--pad:20px}
  .site-header{height:72px;padding:10px 20px}
  .brand img{width:126px}
  .menu-toggle{display:flex;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:0;background:transparent}
  .menu-toggle span{display:block;width:23px;height:2px;background:var(--ink);transition:transform .2s}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .site-nav{display:none;position:absolute;top:70px;left:0;width:100%;padding:15px 20px 20px;background:var(--paper);border-bottom:2px solid var(--ink);flex-direction:column;align-items:stretch;gap:1px}
  .site-nav.open{display:flex}
  .site-nav a{padding:12px}
  .site-nav .nav-call{text-align:center;margin-top:6px}
  h1{font-size:clamp(3.35rem,15vw,4.8rem)}
  h2{font-size:clamp(2.7rem,12vw,4.3rem)}
  .hero{grid-template-columns:1fr}
  .hero-copy{padding:70px 20px 103px}
  .hero-lead{margin:26px 0;font-size:16px}
  .hero-actions{gap:19px}
  .hero-route{height:100px;width:72%;bottom:19px}
  .hero-image{min-height:445px;border-radius:24px 24px 0 0}
  .availability,.today,.signal,.space-principles,.questions{padding:72px 20px}
  .availability-grid{grid-template-columns:1fr}
  .availability article,.availability article+article{min-height:0;padding:21px 0;border-right:0;border-bottom:1px solid #66847a}
  .availability article:last-child{border-bottom:0}
  .availability h3{margin:18px 0 10px;font-size:27px}
  .story{grid-template-columns:1fr;gap:45px;padding:82px 20px}
  .story-image{height:435px}
  .today-heading{display:block;margin-bottom:42px}
  .today-heading h2{text-align:left;margin-top:24px}
  .class-row{grid-template-columns:1fr 27px;gap:8px;padding:20px 5px}
  .class-row:hover{padding-left:12px}
  .class-row strong{grid-row:2;font-size:16px}
  .class-row i{grid-column:2;grid-row:1/3}
  .today-note{font-size:9px}
  .route-section{grid-template-columns:1fr;min-height:0}
  .route-sticky{padding:74px 0 42px}
  .route-steps{padding:0}
  .route-steps article{min-height:174px;padding-left:34px}
  .route-steps h3{font-size:28px}
  .signal{min-height:450px}
  .signal-route{right:-35px;width:59%;height:46%}
  .signal-data{display:grid;gap:11px;margin-top:66px;font-size:9px}
  .page-intro{min-height:0;padding:81px 20px 75px}
  .page-intro>p:last-child{font-size:16px}
  .intro-route{right:5%;width:85px;height:70px}
  .service-feature{grid-template-columns:1fr;gap:15px;padding:48px 20px}
  .service-number{font-size:14px}
  .service-feature h2{font-size:clamp(2.9rem,12vw,4.2rem)}
  .service-description{padding-top:0}
  .service-visual{grid-template-columns:1fr}
  .wide-image{height:430px;border-radius:0}
  .service-visual aside{padding:55px 20px}
  .nutrition{grid-template-columns:1fr;gap:26px;padding:75px 20px}
  .space-image-layout{grid-template-columns:1fr;padding:0 20px 75px}
  .space-main{height:435px}
  .space-caption{padding:37px 0 0}
  .space-principles .section-topline{margin-bottom:40px}
  .principle{grid-template-columns:43px 1fr;gap:9px;padding:25px 0}
  .principle h3{font-size:28px}
  .principle p{grid-column:2;padding-top:0}
  .practical{grid-template-columns:1fr;gap:42px;padding:78px 20px}
  .contact-hero{grid-template-columns:1fr;gap:47px;padding:78px 20px}
  .contact-form{padding:24px 20px}
  .faq-grid{grid-template-columns:1fr;gap:0}
  .site-footer{grid-template-columns:1fr;gap:20px;padding:46px 20px 25px}
  .site-footer small{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}