@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wdth,wght@75..100,400..700&family=Newsreader:opsz,wght@6..72,400..600&display=swap');

:root{--ink:#111a28;--paper:#f4f0e9;--white:#fcfbf8;--mist:#dce5e3;--slate:#7e999b;--bronze:#b08a52;--line:rgba(17,26,40,.16);--display:"Newsreader","Charis SIL",serif;--body:"Instrument Sans","Inter",sans-serif;--header-h:72px;--max:1240px;--pad:clamp(22px,4.2vw,68px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:12px;z-index:1000;background:var(--white);padding:10px 14px;transform:translateY(-150%)}.skip-link:focus{transform:none}.section-shell{width:min(calc(100% - 2*var(--pad)),var(--max));margin-inline:auto}.section-pad{padding-block:clamp(74px,8vw,116px)}.eyebrow{margin:0 0 15px;font-size:11px;font-weight:650;letter-spacing:.18em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;background:var(--ink);color:var(--white);border:1px solid var(--ink);font-size:13px;font-weight:650;letter-spacing:.035em;transition:transform .25s ease,background .25s ease,color .25s ease}.button:hover{transform:translateY(-2px);background:var(--bronze);border-color:var(--bronze)}.button-small{min-height:42px;padding-inline:18px;font-size:12px}.button-light{background:var(--white);color:var(--ink);border-color:var(--white)}.button-light:hover{background:var(--bronze);border-color:var(--bronze);color:var(--white)}.text-link,.text-button{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:8px 0;font-size:13px;font-weight:650;border-bottom:1px solid currentColor;cursor:pointer}.text-link span,.text-button span{transition:transform .25s}.text-link:hover span,.text-button:hover span{transform:translate(3px,3px)}.text-link.light{color:var(--white)}
.site-header{height:var(--header-h);position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:0 var(--pad);background:rgba(244,240,233,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;min-width:210px}.brand-mark{width:36px;height:36px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;position:relative}.brand-mark:before{content:"";position:absolute;width:15px;height:1px;background:var(--bronze);transform:rotate(-52deg)}.brand-mark span{font-family:var(--display);font-size:13px;font-weight:600;z-index:1}.brand-type{display:flex;flex-direction:column;line-height:1.05}.brand-type strong{font-family:var(--display);font-size:17px;font-weight:560}.brand-type small{margin-top:4px;font-size:8px;letter-spacing:.16em;text-transform:uppercase}.site-nav{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.1vw,34px)}.site-nav a{font-size:12px;font-weight:550;position:relative}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--bronze);transition:right .25s}.site-nav a:hover:after{right:0}.menu-toggle{display:none;border:0;background:transparent;padding:6px}.menu-toggle span:not(.sr-only){display:block;width:24px;height:1px;background:var(--ink);margin:5px 0}
.hero{min-height:calc(100svh - var(--header-h));max-height:760px;display:grid;grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);gap:clamp(38px,6vw,94px);align-items:center;padding-block:clamp(38px,5vh,70px)}.hero-copy{padding-left:clamp(0px,2vw,24px)}.hero h1{font-family:var(--display);font-weight:480;font-size:clamp(43px,5.1vw,72px);line-height:.98;letter-spacing:-.035em;max-width:660px;margin:0 0 24px}.hero-intro{font-size:clamp(16px,1.35vw,19px);max-width:580px;color:rgba(17,26,40,.74);margin:0 0 28px}.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.rating-line{display:flex;align-items:center;gap:16px;margin-top:29px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;max-width:450px}.rating-line strong{font-family:var(--display);font-size:21px;font-weight:550}.hero-visual{position:relative}.hero-frame{height:min(66vh,560px);min-height:430px;position:relative;overflow:hidden;border-radius:0 0 168px 0;background:var(--mist)}.hero-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(17,26,40,.15))}.hero-stamp{position:absolute;z-index:2;right:22px;bottom:22px;width:112px;height:112px;border-radius:50%;background:rgba(252,251,248,.92);border:1px solid rgba(17,26,40,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.hero-stamp b{font-family:var(--display);font-size:32px;font-weight:500;line-height:1}.hero-stamp span{font-size:7px;letter-spacing:.2em}.hero-note{display:flex;justify-content:space-between;padding-top:12px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.hero-visual:before{content:"";position:absolute;left:-24px;top:38px;width:48px;height:140px;border-left:1px solid var(--bronze);border-top:1px solid var(--bronze);z-index:3}
.promise-strip{background:var(--ink);color:var(--white);height:60px;display:flex;align-items:center;overflow:hidden}.promise-strip>div{width:min(calc(100% - 2*var(--pad)),var(--max));margin:auto;display:grid;grid-template-columns:repeat(3,1fr)}.promise-strip span{text-align:center;font-size:10px;letter-spacing:.15em;text-transform:uppercase;border-right:1px solid rgba(255,255,255,.2)}.promise-strip span:last-child{border-right:0}
.section-heading{display:grid;grid-template-columns:1fr minmax(300px,.5fr);gap:70px;align-items:end;margin-bottom:44px}.section-heading h2,.gallery-heading h2,.approach h2,.about h2,.reviews h2,.visit h2{font-family:var(--display);font-size:clamp(34px,4vw,54px);font-weight:470;line-height:1.05;letter-spacing:-.025em;margin:0}.section-heading>p{margin:0;color:rgba(17,26,40,.68);max-width:430px}.service-groups{border-top:1px solid var(--line)}.service-group{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line);padding:30px 0 24px}.service-group>h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:5px 0}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:46px}.service-item{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.service-item:nth-last-child(-n+2){margin-bottom:0}.service-top{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}.service-top h4{font-family:var(--display);font-size:25px;font-weight:520;line-height:1.15;margin:0}.service-price{font-size:16px;font-weight:650;white-space:nowrap}.service-meta{display:flex;gap:10px;flex-wrap:wrap;margin:7px 0 12px;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:rgba(17,26,40,.58)}.service-meta .discount{color:#705327}.service-description{font-size:13px;color:rgba(17,26,40,.68);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.service-item.featured{position:relative}.service-item.featured:before{content:"";position:absolute;left:-16px;top:5px;width:5px;height:5px;border-radius:50%;background:var(--bronze)}
.approach{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(0,1.05fr);gap:clamp(60px,8vw,120px);align-items:center;background:var(--mist);width:100%;max-width:none;padding-inline:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)))}.approach-visual{position:relative;padding-left:28px}.tool-frame{height:min(58vh,480px);min-height:390px;overflow:hidden;border-radius:150px 0 0 0}.vertical-label{position:absolute;left:0;top:50%;transform:rotate(-90deg) translateX(-50%);transform-origin:left top;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.approach-copy>p:not(.eyebrow){font-size:16px;color:rgba(17,26,40,.72);max-width:600px}.pathway{margin-top:28px;border-top:1px solid var(--line)}.path-step{display:grid;grid-template-columns:42px 110px 1fr;gap:10px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}.path-step .num{font-size:9px;color:var(--bronze);letter-spacing:.12em}.path-step h3{font-family:var(--display);font-size:21px;font-weight:500;margin:0}.path-step p{font-size:12px;margin:0;color:rgba(17,26,40,.65)}
.gallery-section{background:var(--white)}.gallery-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:34px}.gallery-heading h2{max-width:600px}.gallery-grid{display:grid;grid-template-columns:1.35fr .75fr .9fr;grid-template-rows:190px 190px;gap:14px}.gallery-item{overflow:hidden;position:relative;background:var(--mist)}.gallery-item img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}.gallery-item:hover img{transform:scale(1.035)}.gallery-item:nth-child(1){grid-row:1/3;border-radius:0 0 0 120px}.gallery-item:nth-child(2){border-radius:0 90px 0 0}.gallery-item:nth-child(3){grid-row:1/3}.gallery-item:nth-child(4){border-radius:0 0 90px 0}.gallery-item:nth-child(n+5){display:none}
.about{display:grid;grid-template-columns:minmax(0,.84fr) minmax(300px,.72fr) minmax(285px,.55fr);gap:clamp(30px,4vw,60px);align-items:center}.about-copy>p:not(.eyebrow){font-size:15px;color:rgba(17,26,40,.7);max-width:530px}.about-copy blockquote{font-family:var(--display);font-size:24px;line-height:1.18;margin:34px 0 0;padding-left:20px;border-left:1px solid var(--bronze)}.about-image{height:420px;border-radius:150px 150px 0 0;overflow:hidden}.practitioner-card{align-self:end;background:var(--ink);color:var(--white);padding:22px}.practitioner-photo{aspect-ratio:1/1;overflow:hidden;margin-bottom:20px;background:var(--white)}.practitioner-card h3{font-family:var(--display);font-size:28px;font-weight:500;margin:0}.practitioner-card .role{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.66);margin:4px 0 14px}.practitioner-card p{font-size:12px;color:rgba(255,255,255,.72);margin:0}.practitioner-rating{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2);font-size:11px}
.reviews{background:var(--ink);color:var(--white)}.reviews .section-shell{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:start}.reviews h2{max-width:460px}.review-score{margin-top:28px;display:flex;align-items:end;gap:16px}.review-score b{font-family:var(--display);font-size:56px;font-weight:450;line-height:.8}.review-score span{font-size:11px;color:rgba(255,255,255,.62);max-width:140px}.review-track{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review-card{border:1px solid rgba(255,255,255,.2);padding:24px;min-height:235px;display:flex;flex-direction:column;justify-content:space-between}.review-card blockquote{font-family:var(--display);font-size:22px;line-height:1.28;margin:0}.review-card footer{display:flex;justify-content:space-between;gap:14px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.visit{display:grid;grid-template-columns:1fr .9fr;gap:90px;background:var(--slate);color:var(--white);width:100%;max-width:none;padding-inline:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)))}.visit-main>p:not(.eyebrow){max-width:520px;color:rgba(255,255,255,.76)}.visit-actions{display:flex;align-items:center;gap:26px;margin-top:30px;flex-wrap:wrap}.visit-details{border-top:1px solid rgba(255,255,255,.28)}.visit-details>div{display:grid;grid-template-columns:145px 1fr;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.28);font-size:12px}.visit-details>div>span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.6)}.hours-wrap dl{margin:0}.hours-wrap dl div{display:grid;grid-template-columns:1fr auto;gap:16px}.hours-wrap dt,.hours-wrap dd{margin:0;font-size:11px}.site-footer{background:var(--paper);padding:62px var(--pad) 26px}.footer-wordmark{font-family:var(--display);font-weight:470;font-size:clamp(70px,13vw,180px);line-height:.68;letter-spacing:-.06em;border-bottom:1px solid var(--line);padding-bottom:42px;display:flex;justify-content:space-between}.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-top:18px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.approach,.gallery-section,.about,.reviews{padding-block:68px}.gallery-section{padding-block:60px}.gallery-modal{position:fixed;inset:0;z-index:100;background:rgba(10,15,23,.96);color:white;display:grid;grid-template-columns:80px 1fr 80px;align-items:center;padding:55px 24px 26px}.gallery-modal[hidden]{display:none}.gallery-modal figure{margin:0;height:min(78vh,780px);display:flex;flex-direction:column;align-items:center;justify-content:center}.gallery-modal figure img{width:auto;max-width:100%;height:auto;max-height:calc(100% - 40px);object-fit:contain}.gallery-modal figcaption{font-size:11px;color:rgba(255,255,255,.65);margin-top:14px}.modal-close{position:absolute;right:24px;top:20px;background:transparent;border:0;color:white;font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.modal-arrow{background:transparent;border:0;color:white;font-size:26px;cursor:pointer}.modal-count{position:absolute;left:24px;top:22px;font-size:10px;letter-spacing:.15em}.image-loading{background:linear-gradient(110deg,var(--mist) 25%,#edf1ef 50%,var(--mist) 75%);background-size:200% 100%;animation:load 1.6s linear infinite}.image-loading.loaded{animation:none;background:var(--mist)}@keyframes load{to{background-position-x:-200%}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:none}
@media (max-width:1020px){:root{--header-h:66px}.site-header{grid-template-columns:auto auto 1fr}.site-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;background:var(--paper);padding:24px var(--pad);border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.menu-toggle{display:block;justify-self:end}.header-cta{justify-self:end}.hero{grid-template-columns:1fr 1fr;gap:36px}.hero h1{font-size:clamp(42px,5.8vw,60px)}.service-group{grid-template-columns:170px 1fr}.service-list{grid-template-columns:1fr}.service-item:nth-last-child(-n+2){margin-bottom:22px}.approach{grid-template-columns:.9fr 1.1fr;gap:50px}.about{grid-template-columns:1fr .8fr}.about-image{display:none}.reviews .section-shell{grid-template-columns:1fr}.visit{gap:50px}.footer-wordmark{flex-direction:column;gap:.3em}}
@media (max-width:760px){:root{--pad:20px}.site-header{grid-template-columns:1fr auto;height:62px}.brand{min-width:0}.brand-type small{display:none}.menu-toggle{grid-column:2}.header-cta{display:none}.hero{min-height:auto;max-height:none;grid-template-columns:1fr;padding-block:36px 32px}.hero-copy{order:1}.hero-visual{order:2}.hero h1{font-size:clamp(44px,14vw,62px);max-width:620px}.hero-frame{height:62vh;min-height:430px;border-radius:0 0 90px 0}.promise-strip{height:auto;padding:14px 0}.promise-strip>div{grid-template-columns:1fr;gap:8px}.promise-strip span{border:0}.section-pad{padding-block:72px}.section-heading{grid-template-columns:1fr;gap:18px}.section-heading>p{max-width:600px}.service-group{grid-template-columns:1fr;padding:24px 0}.service-list{margin-top:20px}.service-top h4{font-size:23px}.approach{grid-template-columns:1fr;padding-inline:var(--pad)}.tool-frame{height:58vh;min-height:400px;border-radius:100px 0 0 0}.approach-copy{padding-bottom:12px}.path-step{grid-template-columns:34px 88px 1fr}.gallery-heading{align-items:start;gap:28px}.gallery-grid{grid-template-columns:1.1fr .9fr;grid-template-rows:260px 220px}.gallery-item:nth-child(1){grid-row:1/3;border-radius:0 0 0 70px}.gallery-item:nth-child(3){grid-row:auto}.gallery-item:nth-child(4){display:none}.about{grid-template-columns:1fr}.about-image{display:block;height:400px;order:2}.practitioner-card{order:3}.reviews .section-shell{gap:38px}.review-track{grid-template-columns:1fr;overflow-x:auto;scroll-snap-type:x mandatory}.review-card{scroll-snap-align:start;min-width:84vw}.visit{grid-template-columns:1fr;padding-inline:var(--pad);gap:48px}.visit-details>div{grid-template-columns:110px 1fr}.footer-wordmark{font-size:20vw;line-height:.72}.footer-bottom{flex-direction:column;gap:8px}.gallery-modal{grid-template-columns:44px 1fr 44px;padding-inline:8px}.gallery-modal figure{height:72vh}}
@media (max-width:480px){.brand-mark{width:32px;height:32px}.brand-type strong{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.rating-line{align-items:flex-start;flex-direction:column;gap:2px}.hero-frame{height:54vh;min-height:390px}.hero-stamp{width:86px;height:86px}.hero-stamp b{font-size:24px}.gallery-heading{flex-direction:column;align-items:flex-start}.gallery-grid{grid-template-columns:1fr;grid-template-rows:320px 220px}.gallery-item:nth-child(1){grid-row:auto;border-radius:0 0 0 70px}.gallery-item:nth-child(3){display:none}.path-step{grid-template-columns:30px 1fr}.path-step p{grid-column:2}.review-card{min-width:90vw}.visit-details>div{grid-template-columns:1fr;gap:7px}.footer-wordmark{font-size:19vw}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* iframe embed fix */
.reveal, .reveal-delay { opacity: 1 !important; transform: translateY(0) !important; transition: none !important; }
.reveal.in-view { opacity: 1 !important; transform: none !important; }
:root { --section-pad: 48px !important; }
.hero { min-height: 0 !important; padding-block: 20px !important; }
