:root{--ink:#14232b;--ink2:#1c3039;--cream:#f4f1ea;--paper:#fbfaf6;--acc:#5ab0e2;--accd:#2b7fb3;--mute:#5b6b72;--line:rgba(20,35,43,.16)}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Figtree',sans-serif;color:var(--ink);background:var(--paper);font-size:1.04rem;line-height:1.7}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:300;line-height:1.12;letter-spacing:-.005em}
h2{font-size:clamp(2rem,4.2vw,3.1rem);margin-bottom:1.1rem}
em,.it{font-style:italic}
.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.3em;font-weight:600;color:var(--accd);margin-bottom:1rem;display:block}
.dark .eyebrow,.hero .eyebrow{color:var(--acc)}
section{padding:clamp(4rem,8vw,6rem) 0}
.dark{background:var(--ink);color:var(--cream)}
.cream{background:var(--cream)}
a{color:var(--accd)}
.dark a{color:var(--acc)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.btn{border-radius:1px;font-size:.7rem;text-transform:uppercase;letter-spacing:.24em;font-weight:700;padding:.95rem 2rem;transition:opacity .3s,background .3s,color .3s,border-color .3s}
.btn-acc{background:var(--acc);color:var(--ink);border:1px solid var(--acc)}
.btn-acc:hover{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.btn-ghost{background:transparent;color:inherit;border:1px solid rgba(244,241,234,.4)}
.btn-ghost:hover{border-color:var(--acc);color:var(--acc)}
.cream .btn-ghost,.light .btn-ghost{border-color:rgba(20,35,43,.35);color:var(--ink)}
.cream .btn-ghost:hover{border-color:var(--accd);color:var(--accd)}
/* utility bar + nav */
.util{background:var(--ink2);color:rgba(244,241,234,.82);font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;padding:.5rem 0}
.util a{color:var(--acc);text-decoration:none;font-weight:700}
.navbar{background:rgba(20,35,43,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.7rem 0;border-bottom:1px solid rgba(90,176,226,.2)}
.navbar-brand{display:flex;align-items:center;gap:.65rem;font-family:'Fraunces',serif;font-weight:300;font-size:1.3rem;letter-spacing:.02em;color:var(--cream)!important;line-height:1.1}
.navbar-brand small{display:block;font-family:'Figtree',sans-serif;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--acc);font-weight:600}
.navbar-brand svg{flex:none}
.nav-link{font-size:.66rem;text-transform:uppercase;letter-spacing:.22em;color:rgba(244,241,234,.8)!important;font-weight:600;transition:color .3s}
.nav-link:hover{color:var(--acc)!important}
.navbar-toggler{border-color:rgba(244,241,234,.4)}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23f4f1ea' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
.navbar .btn{padding:.6rem 1.2rem}
/* hero */
.hero{background:var(--ink);color:var(--cream);padding:clamp(2.2rem,5vw,4rem) 0 clamp(2.6rem,5vw,4.2rem);position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.7rem,5.8vw,4.8rem);margin-bottom:1.1rem}
.hero h1 em{color:var(--acc)}
.hero .sub{font-family:'Fraunces',serif;font-style:italic;font-weight:300;font-size:clamp(1.1rem,1.8vw,1.4rem);opacity:.85;max-width:30em}
.hero-photo{position:relative}
.hero-photo img{display:block;width:100%;aspect-ratio:800/572;object-fit:cover;max-height:min(66vh,480px);border:1px solid rgba(90,176,226,.45);padding:8px}
.arc{position:absolute;right:-90px;top:-70px;width:420px;opacity:.14;pointer-events:none}
.arc-div{display:block;width:150px;margin:0 auto 1.4rem;opacity:.7}
.hero-facts{display:flex;flex-wrap:wrap;gap:.4rem 1.8rem;margin-top:1.8rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.22em;opacity:.8}
/* award strip */
.proof{background:var(--cream);padding:2rem 0;border-bottom:1px solid var(--line)}
.proof img{width:92px;height:auto}
.proof p{margin:0;font-family:'Fraunces',serif;font-weight:300;font-size:clamp(1.15rem,2vw,1.5rem)}
/* approach */
.approach .col-copy p{max-width:36em}
.pillars{border-top:1px solid var(--line)}
.pillar{padding:1.4rem 0;border-bottom:1px solid var(--line)}
.pillar h3{font-size:1.3rem;margin-bottom:.4rem}
.pillar p{margin:0;color:var(--mute);font-size:.98rem}
/* methods */
.method{padding:1.1rem 0;border-bottom:1px solid rgba(244,241,234,.16)}
.method h3{font-size:1.25rem;color:var(--cream);margin-bottom:.25rem}
.method p{margin:0;opacity:.78;font-size:.97rem}
.framed{display:block;width:100%;height:auto;border:1px solid rgba(90,176,226,.4);padding:8px;background:transparent}
.cream .framed,.light .framed{border-color:rgba(20,35,43,.2)}
/* programs index */
.prog{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
@media(min-width:992px){.prog{grid-template-columns:1fr 1fr;column-gap:4rem}}
.prog div{padding:1.3rem 0;border-bottom:1px solid var(--line)}
.prog h3{font-family:'Figtree',sans-serif;font-size:.74rem;text-transform:uppercase;letter-spacing:.24em;font-weight:700;color:var(--accd);margin-bottom:.4rem}
.prog p{margin:0;font-size:.97rem;color:var(--ink)}
/* conditions */
.cond h3{font-family:'Figtree',sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.24em;font-weight:700;color:var(--acc);padding-bottom:.6rem;border-bottom:1px solid rgba(90,176,226,.3);margin-bottom:.7rem}
.cond ul{list-style:none;padding:0;margin:0 0 1.8rem;font-size:.97rem}
.cond li{padding:.18rem 0;opacity:.88}
/* visit */
.step{border-top:1px solid var(--line);padding:1.1rem 0}
.step h3{font-family:'Figtree',sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.22em;font-weight:700;color:var(--accd);margin-bottom:.35rem}
.step p{margin:0;font-size:.97rem}
.ins{columns:1;list-style:none;padding:0;margin:0 0 1.4rem}
@media(min-width:576px){.ins{columns:2;column-gap:2rem}}
.ins li{padding:.3rem 0;border-bottom:1px solid var(--line);break-inside:avoid;font-size:.97rem}
.fine h4{font-family:'Figtree',sans-serif;font-size:.68rem;text-transform:uppercase;letter-spacing:.22em;font-weight:700;margin:1.2rem 0 .3rem}
.fine p{font-size:.93rem;color:var(--mute);margin:0}
/* team */
.person img{width:100%;max-width:200px;aspect-ratio:1;object-fit:cover;object-position:50% 25%;display:block;margin-bottom:1rem;border:1px solid var(--line);padding:5px;background:var(--paper)}
.person h3{font-size:1.25rem;margin-bottom:.1rem}
.person .role{font-size:.64rem;text-transform:uppercase;letter-spacing:.22em;font-weight:700;color:var(--accd);margin-bottom:.7rem;display:block}
.person p{font-size:.94rem;color:var(--mute)}
.founder p{color:var(--ink)}
.founder img{max-width:200px}
/* history + gallery */
.gal{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:768px){.gal{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:200px 200px}.gal .a{grid-row:span 2}}
.gal img{width:100%;height:100%;min-height:180px;object-fit:cover;display:block}
/* testimonials */
.quote-band{background:var(--ink);color:var(--cream);padding:clamp(3.5rem,7vw,5rem) 0;text-align:center}
.quote-band blockquote{font-family:'Fraunces',serif;font-weight:300;font-style:italic;font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.3;max-width:26em;margin:0 auto 1rem}
.quote-band cite{font-style:normal;font-size:.68rem;text-transform:uppercase;letter-spacing:.26em;color:var(--acc)}
.tq{border-top:1px solid var(--line);padding:1.4rem 0;height:100%}
.tq p{font-family:'Fraunces',serif;font-weight:300;font-style:italic;font-size:1.12rem;margin-bottom:.6rem}
.tq cite{font-style:normal;font-size:.64rem;text-transform:uppercase;letter-spacing:.24em;font-weight:700;color:var(--accd)}
/* contact */
.hours{list-style:none;padding:0;margin:0;max-width:22rem}
.hours li{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px solid rgba(244,241,234,.18);font-size:.97rem}
.hours li span:first-child{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;font-weight:700;padding-top:.25rem}
.contact-list{list-style:none;padding:0;margin:0 0 1.6rem}
.contact-list li{padding:.35rem 0}
.map{width:100%;height:100%;min-height:340px;border:1px solid rgba(90,176,226,.4)}
footer{background:#0e1a20;color:rgba(244,241,234,.7);padding:2.2rem 0;font-size:.82rem}
footer a{color:var(--acc)}
footer .brand{font-family:'Fraunces',serif;font-weight:300;font-size:1.2rem;color:var(--cream)}
@media(max-width:575px){.hero h1{font-size:2.5rem}.arc{width:300px;right:-80px}}
