@font-face{font-family:"DM Sans";src:url("assets/dm-sans-latin.woff2") format("woff2");font-style:normal;font-weight:400 700;font-display:swap}
:root{color-scheme:dark;--bg:#111612;--bg-soft:#171e19;--bg-deep:#0c110e;--text:#f4f5ef;--muted:#b8c3b8;--line:rgba(230,241,223,.22);--accent:#cde899;--ink:#18241a;--font:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:7rem}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.55;overflow-x:clip}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[role=tabpanel]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}
.skip-link{position:absolute;z-index:100;left:1rem;top:-5rem;padding:.65rem 1rem;background:var(--accent);color:var(--ink)}.skip-link:focus{top:1rem}
.section-shell{max-width:1540px;margin-inline:auto;padding-inline:clamp(1.3rem,5.5vw,6rem)}.section-pad{padding-block:clamp(5.5rem,10vw,10rem)}
/* Selective web frosted-glass approximation, not Apple platform Liquid Glass. */
.glass{border:1px solid rgba(255,255,255,.25);background:linear-gradient(130deg,rgba(255,255,255,.16),rgba(255,255,255,.055) 52%,rgba(255,255,255,.09)),rgba(25,35,28,.35);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(255,255,255,.06),0 24px 70px rgba(0,0,0,.16)}
.site-header{position:fixed;z-index:30;top:0;left:0;right:0;padding:clamp(1rem,2.4vw,2.4rem) clamp(1rem,3.5vw,4rem)}.nav-glass{max-width:1500px;min-height:72px;margin:auto;border-radius:999px;padding:.65rem 1.1rem .65rem 1.65rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:block;width:102px;line-height:0;flex:none}.brand img{width:100%;height:auto}.primary-nav{display:flex;gap:clamp(1.4rem,3vw,3rem);align-items:center}.primary-nav a{font-size:.88rem;font-weight:600;color:#e7eae2;transition:color .22s,transform .22s;white-space:nowrap}.primary-nav a:hover,.primary-nav a[aria-current]{color:var(--accent)}.primary-nav a:hover{transform:translateY(-2px)}.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;background:var(--bg-deep);min-height:100dvh;overflow:hidden}.hero-media{position:absolute;inset:0 0 0 auto;width:70%;height:100%;z-index:-2;mask-image:linear-gradient(90deg,transparent 0%,#000 29%)}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:52% 42%;animation:hero-image 1.5s cubic-bezier(.16,1,.3,1) both}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,14,10,.93),rgba(8,14,10,.38) 56%,rgba(8,14,10,.1)),linear-gradient(0deg,rgba(8,14,10,.83),transparent 38%)}.hero-inner{position:relative;max-width:1540px;min-height:100dvh;margin:auto;padding:clamp(9.5rem,16vh,12rem) clamp(1.3rem,5.5vw,6rem) clamp(3.5rem,8vh,6rem);display:flex;align-items:center}.hero-copy{position:relative;z-index:2;max-width:1180px}.eyebrow{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.19em;color:var(--accent);margin:0 0 1.8rem}.hero-eyebrow{animation:fade-up .75s .1s both}.hero h1{font-size:clamp(4.8rem,8.5vw,9.1rem);font-weight:600;letter-spacing:-.092em;line-height:.98;text-transform:uppercase;margin:0 0 2.2rem}.title-clip{display:block;overflow:hidden;line-height:1.05;padding-bottom:.06em}.title-clip>span{display:block;animation:title-rise 1s cubic-bezier(.16,1,.3,1) both}.title-clip:nth-child(2)>span{animation-delay:.12s}.hero-description{font-size:clamp(1.03rem,1.45vw,1.23rem);line-height:1.65;max-width:27rem;color:#e0e8df;margin:0 0 2rem;animation:fade-up .8s .45s both}.hero-actions{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;animation:fade-up .8s .6s both}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:54px;padding:.85rem 1.5rem;border-radius:999px;border:1px solid transparent;font-size:.92rem;font-weight:700;white-space:nowrap;transition:transform .25s cubic-bezier(.16,1,.3,1),background .25s,box-shadow .25s}.button:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.18)}.button:active{transform:translateY(1px)}.button-accent{background:var(--accent);color:var(--ink)}.button-accent:hover{background:#dff3b9}.button span,.underlined-link span{font-size:1.15em;font-weight:400;line-height:1}.underlined-link{display:inline-flex;align-items:center;gap:.75rem;width:max-content;max-width:100%;border-bottom:1px solid rgba(205,232,153,.75);padding:.2rem 0;font-size:.92rem;font-weight:600;transition:color .25s,border-color .25s,transform .25s}.underlined-link:hover{color:var(--accent);transform:translateY(-2px)}.hero-note{position:absolute;right:clamp(1.3rem,5.5vw,6rem);bottom:clamp(3.5rem,8vh,6rem);border-radius:20px;padding:1.25rem 1.5rem;width:290px;display:flex;flex-direction:column;gap:.25rem;animation:fade-up .8s .75s both}.hero-note span{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}.hero-note strong{font-weight:600;font-size:.98rem}.hero-note small{font-size:.82rem;color:#e3e9dc}
@keyframes title-rise{from{transform:translateY(120%);opacity:.3}to{transform:translateY(0);opacity:1}}@keyframes fade-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-image{from{opacity:.4;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes panel-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:781px){.motion-ready .reveal{opacity:0;transition:opacity .65s ease}.motion-ready .reveal.is-visible{opacity:1}}
.services{background:var(--bg)}.section-intro{max-width:850px;margin-bottom:clamp(3rem,6vw,6rem)}.section-intro .eyebrow{margin-bottom:1rem}.section-intro h2,.faq h2,.contact h2,.experience h2{font-size:clamp(3.35rem,6.4vw,6.8rem);font-weight:500;letter-spacing:-.075em;line-height:1.05;margin:0 0 1.2rem}.section-intro>p:last-child{font-size:1.06rem;max-width:34rem;color:var(--muted);margin:0}
.ritual-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);gap:2rem}.ritual-tab{text-align:left;position:relative;border:0;background:none;color:#8e9c8e;padding:1rem 0 1.3rem;font-size:clamp(1.15rem,2.3vw,2rem);font-weight:600;letter-spacing:-.045em;cursor:pointer;transition:color .25s}.ritual-tab span{font-size:.7rem;letter-spacing:.04em;font-weight:700;vertical-align:top;margin-right:.5rem;color:var(--accent)}.ritual-tab:hover,.ritual-tab[aria-selected=true]{color:var(--text)}.ritual-tab:after{content:"";position:absolute;height:2px;left:0;bottom:-1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}.ritual-tab[aria-selected=true]:after{transform:scaleX(1)}
.ritual-panels{padding-top:2rem}.ritual-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:550px;border-radius:24px;overflow:hidden;background:#202922;animation:panel-in .55s cubic-bezier(.16,1,.3,1) both}.ritual-photo{min-height:550px;overflow:hidden}.ritual-photo img{width:100%;height:100%;object-fit:cover;object-position:center 52%;transition:transform .7s cubic-bezier(.16,1,.3,1)}.ritual-panel:hover .ritual-photo img{transform:scale(1.025)}.ritual-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(2.5rem,5.5vw,6rem)}.ritual-kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 1rem}.ritual-content h3{font-size:clamp(2.4rem,4.2vw,4.5rem);font-weight:500;letter-spacing:-.075em;line-height:1.07;margin:0 0 1.2rem}.ritual-content>p:not(.ritual-kicker){font-size:1rem;line-height:1.7;color:#c4cfc1;max-width:29rem;margin:0 0 1.5rem}.ritual-content ul{list-style:none;margin:0 0 2rem;padding:0;width:100%;max-width:27rem}.ritual-content li{padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.94rem;color:#e4e9e1}
.experience{position:relative;min-height:780px;isolation:isolate;display:flex;align-items:flex-end;overflow:hidden}.experience-media,.experience-shade{position:absolute;inset:0}.experience-media{z-index:-2}.experience-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.experience-shade{z-index:-1;background:linear-gradient(90deg,rgba(9,15,10,.68),rgba(9,15,10,.12) 72%),linear-gradient(0deg,rgba(9,15,10,.68),transparent 55%)}.experience-inner{width:100%;padding-block:5rem}.experience-card{max-width:610px;padding:clamp(2.2rem,4vw,4rem);border-radius:24px}.experience-overline,.contact-overline{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 1.2rem}.experience h2{font-size:clamp(2.9rem,5vw,5rem)}.experience-card>p:not(.experience-overline){font-size:1.05rem;line-height:1.7;color:#edf0e9;max-width:29rem;margin:0 0 1.8rem}
.faq{background:var(--bg-soft)}.faq-shell{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:clamp(3rem,8vw,9rem)}.faq h2{font-size:clamp(3rem,5.3vw,5.8rem);max-width:34rem}.faq-heading p{color:var(--muted);font-size:1.05rem}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;position:relative;cursor:pointer;padding:1.55rem 2.5rem 1.55rem 0;font-size:1.04rem;font-weight:600}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:.15rem;top:1.15rem;font-size:1.6rem;font-weight:400;color:var(--accent)}.faq-list details[open] summary:after{content:"−"}.faq-list details p{color:var(--muted);margin:0;padding:0 2rem 1.6rem 0;line-height:1.7}.faq-list>.underlined-link{margin-top:2rem}
.contact{background:var(--bg)}.contact-glass{border-radius:28px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(3rem,8vw,9rem);padding:clamp(2.4rem,6vw,6rem);background:radial-gradient(circle at 4% 100%,rgba(205,232,153,.15),transparent 34%),linear-gradient(130deg,rgba(255,255,255,.13),rgba(255,255,255,.04)),rgba(31,42,33,.56)}.contact h2{font-size:clamp(3.1rem,5.7vw,6rem);margin-bottom:2.2rem}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:2.2rem 2.5rem;align-content:end}.contact-details>div:first-child{grid-column:1/-1}.contact-details span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-weight:700;margin-bottom:.75rem}.contact-details p{font-size:1rem;line-height:1.7;margin:0 0 .7rem}.contact-details .underlined-link{font-size:.9rem}
.site-footer{min-height:230px;padding-block:3rem;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:2rem;align-items:center;border-top:1px solid var(--line)}.footer-brand{width:112px}.footer-brand img{width:100%;height:auto}.site-footer p{color:var(--muted);max-width:17rem;font-size:.92rem;margin:0}.footer-links{justify-self:end;display:flex;gap:1.4rem}.footer-links a{font-size:.85rem;color:var(--muted)}.footer-links a:hover{color:var(--accent)}
@media (max-width:1100px){.hero-note{display:none}.hero h1{font-size:clamp(4.8rem,8.5vw,8rem)}.ritual-content{padding:3rem}.ritual-photo{min-height:500px}.ritual-panel{min-height:500px}}
@media (max-width:780px){html{scroll-padding-top:6rem}.site-header{padding:1rem}.nav-glass{min-height:64px;padding:.55rem .65rem .55rem 1rem}.brand{width:86px}.menu-toggle{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:var(--text);padding:.5rem .8rem;border-radius:999px;font-size:.86rem;font-weight:600;cursor:pointer}.menu-icon{width:17px;height:12px;display:flex;flex-direction:column;justify-content:space-between}.menu-icon span{display:block;width:100%;height:1px;background:currentColor;transition:transform .25s}.menu-toggle[aria-expanded=true] .menu-icon span:first-child{transform:translateY(5.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon span:last-child{transform:translateY(-5.5px) rotate(-45deg)}.primary-nav{display:none;position:absolute;top:calc(100% - .25rem);left:1rem;right:1rem;padding:1.1rem;border-radius:22px;border:1px solid rgba(255,255,255,.25);background:rgba(17,24,19,.94);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 20px 50px rgba(0,0,0,.25);flex-direction:column;align-items:stretch;gap:0}.primary-nav.is-open{display:flex}.primary-nav a{padding:.7rem .5rem;font-size:1rem}.hero-inner{padding-top:9rem;padding-bottom:3rem;align-items:flex-end}.hero-media{width:100%;mask-image:none}.hero-media img{object-position:56% 30%}.hero-shade{background:linear-gradient(0deg,rgba(8,14,10,.97) 0%,rgba(8,14,10,.75) 37%,rgba(8,14,10,.08) 82%),linear-gradient(90deg,rgba(8,14,10,.25),transparent)}.hero h1{font-size:clamp(2.8rem,10vw,5.7rem);margin-bottom:1.4rem}.hero-description{font-size:1rem;max-width:23rem}.hero-actions{gap:1.5rem}.ritual-tabs{gap:1rem}.ritual-tab{font-size:1.2rem}.ritual-panel{grid-template-columns:1fr}.ritual-photo{height:48vw;min-height:300px;max-height:500px}.ritual-content{padding:2.4rem}.ritual-content h3{font-size:2.8rem}.experience{min-height:720px}.experience-inner{padding-block:3rem}.faq-shell{grid-template-columns:1fr;gap:2rem}.contact-glass{grid-template-columns:1fr;gap:3rem}.contact-details{align-content:start}.site-footer{grid-template-columns:1fr 1fr}.site-footer p{justify-self:end;text-align:right}.footer-links{grid-column:1/-1;justify-self:start}}
@media (max-width:520px){.hero{min-height:720px}.hero-inner{min-height:720px}.hero h1{font-size:clamp(2.6rem,10vw,3.7rem)}.hero-actions{align-items:flex-start;flex-direction:column}.hero-description{margin-bottom:1.5rem}.section-pad{padding-block:5.5rem}.section-intro h2{font-size:clamp(3.1rem,13vw,4.6rem)}.ritual-tabs{display:flex;gap:1.4rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.ritual-tabs::-webkit-scrollbar{display:none}.ritual-tab{flex:0 0 auto;scroll-snap-align:start;font-size:1.08rem;white-space:nowrap}.ritual-photo{height:80vw;min-height:280px}.ritual-content{padding:2rem 1.5rem 2.5rem}.ritual-content h3{font-size:2.5rem}.experience{min-height:660px}.experience-media img{object-position:60% center}.experience-inner{padding:2rem 1.2rem}.experience-card{padding:1.6rem;border-radius:20px}.experience h2{font-size:2.7rem}.faq h2{font-size:3.2rem}.contact-glass{padding:2rem 1.4rem;border-radius:22px}.contact h2{font-size:3rem}.contact-details{grid-template-columns:1fr;gap:1.5rem}.contact-details>div:first-child{grid-column:auto}.site-footer{padding-block:3rem;gap:1.5rem}.footer-brand{width:90px}.site-footer p{font-size:.85rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1;transform:none}}@media (prefers-reduced-transparency:reduce){.glass,.nav-glass,.primary-nav{background:#253128!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}

/* Inner-page system */
.inner-hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(790px,87dvh);background:var(--bg-deep)}
.inner-hero-image{position:absolute;inset:0 0 0 auto;z-index:-2;width:64%;height:100%;mask-image:linear-gradient(90deg,transparent 0%,#000 26%)}
.inner-hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 44%;animation:hero-image 1.5s cubic-bezier(.16,1,.3,1) both}
.inner-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,14,10,.9),rgba(8,14,10,.23) 66%,rgba(8,14,10,.06)),linear-gradient(0deg,rgba(8,14,10,.6),transparent 34%)}
.inner-hero-content{min-height:inherit;padding-top:10rem;padding-bottom:5rem;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative}
.inner-hero h1{font-size:clamp(5rem,9vw,10rem);font-weight:600;letter-spacing:-.088em;line-height:.97;text-transform:uppercase;margin:0 0 1.5rem;animation:fade-up .9s .12s both}
.inner-hero-content>p:not(.eyebrow){max-width:33rem;color:#e0e8df;font-size:clamp(1.05rem,1.55vw,1.3rem);line-height:1.65;margin:0 0 2rem;animation:fade-up .9s .25s both}
.inner-hero-content>.button{animation:fade-up .9s .4s both}
.small-label{font-size:.74rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}
.menu-section{background:var(--bg)}
.menu-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.52fr);gap:4rem;align-items:end;margin-bottom:4rem}
.menu-lead h2,.contact-page-head h2,.visit-copy h2{font-size:clamp(3.7rem,7vw,7.3rem);line-height:1.02;letter-spacing:-.08em;font-weight:500;margin:0}
.menu-lead>p{max-width:24rem;margin:0 0 .5rem;color:var(--muted);font-size:1rem;line-height:1.65}
.menu-jump{position:sticky;z-index:10;top:1rem;display:flex;gap:.4rem;width:max-content;max-width:100%;padding:.4rem;border:1px solid var(--line);border-radius:999px;background:rgba(26,35,28,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);margin:0 0 6rem;box-shadow:0 12px 35px rgba(0,0,0,.2)}
.menu-jump{overflow-x:auto;scrollbar-width:none}.menu-jump::-webkit-scrollbar{display:none}
.menu-jump a{padding:.65rem 1.2rem;font-size:.86rem;font-weight:700;border-radius:999px;white-space:nowrap;transition:background .2s,color .2s}
.menu-jump a:hover,.menu-jump a:focus-visible{background:var(--accent);color:var(--ink)}
.menu-block{display:grid;grid-template-columns:minmax(210px,.36fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);padding:4.5rem 0;scroll-margin-top:6rem;border-top:1px solid var(--line)}
.menu-block-title{position:sticky;top:6rem;align-self:start}.menu-block-title span{font-size:.72rem;letter-spacing:.16em;color:var(--accent);font-weight:700}
.menu-block-title h2{font-size:clamp(2.5rem,4.1vw,4.7rem);font-weight:500;line-height:1.08;letter-spacing:-.075em;margin:1.2rem 0 0;max-width:9ch}
.menu-rows{border-top:1px solid var(--line)}.menu-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.78fr);gap:2rem;border-bottom:1px solid var(--line);padding:1.45rem 0}
.menu-name h3{font-weight:600;font-size:clamp(1.05rem,1.35vw,1.25rem);letter-spacing:-.025em;line-height:1.3;margin:0}.menu-name p{font-size:.87rem;line-height:1.5;color:var(--muted);margin:.5rem 0 0}
.menu-code{display:block;margin-bottom:.5rem;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em;line-height:1.5;text-transform:uppercase}
.menu-prices{display:flex;flex-direction:column;gap:.42rem}.menu-prices span{display:flex;gap:1.1rem;justify-content:space-between;font-size:.93rem;color:#dce6d8;white-space:nowrap}.menu-prices b{font-weight:400;color:var(--muted)}.menu-prices em{font-style:normal;font-variant-numeric:tabular-nums}
.menu-addon{background:var(--bg-soft);border:1px solid var(--line);border-radius:24px;padding:clamp(2rem,4vw,4rem);display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-top:3rem}
.menu-addon h2{font-size:clamp(2rem,3.3vw,3.8rem);font-weight:500;line-height:1.1;letter-spacing:-.065em;margin:.8rem 0 0}.menu-addon p{line-height:2;white-space:nowrap;margin:0}.menu-addon strong{font-weight:600;color:var(--accent);margin-left:1.5rem}
.end-cta{background:var(--bg-deep)}.end-cta-panel{border-radius:28px;padding:clamp(2.5rem,6vw,6rem);display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;background:radial-gradient(circle at 0 100%,rgba(205,232,153,.13),transparent 36%),linear-gradient(130deg,rgba(255,255,255,.12),rgba(255,255,255,.04)),rgba(31,42,33,.56)}
.end-cta h2{font-size:clamp(3rem,6vw,6.5rem);line-height:1.05;letter-spacing:-.08em;font-weight:500;margin:0}
.about-hero .inner-hero-image{width:76%;mask-image:linear-gradient(90deg,transparent 0%,#000 30%)}.about-hero .inner-hero-image img{object-position:center 42%}
.about-statement{max-width:1060px;margin:0 0 clamp(5rem,10vw,11rem)}.about-statement h2{font-size:clamp(3.7rem,7.5vw,8rem);letter-spacing:-.085em;font-weight:500;line-height:1.02;margin:0 0 2rem}.about-statement>p:last-child{font-size:clamp(1.1rem,1.7vw,1.45rem);max-width:48rem;line-height:1.65;color:var(--muted);margin:0}
.about-story-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(3rem,9vw,10rem);align-items:center}.about-story-photo{height:clamp(480px,65vw,780px);overflow:hidden;border-radius:24px}.about-story-photo img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.about-story-copy h2{font-size:clamp(3rem,5.6vw,6rem);font-weight:500;letter-spacing:-.075em;line-height:1.05;margin:1rem 0 1.5rem}.about-story-copy p{max-width:29rem;font-size:1.08rem;line-height:1.75;color:var(--muted);margin:0 0 2rem}
.principles{background:var(--bg-soft)}.principle-heading h2{font-size:clamp(3.4rem,6.7vw,7rem);font-weight:500;letter-spacing:-.078em;line-height:1.04;margin:0 0 clamp(4rem,8vw,8rem)}.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem)}.principle{border-top:1px solid var(--line);padding-top:1.6rem}.principle>span{font-size:.74rem;color:var(--accent);font-weight:700}.principle h3{font-size:clamp(1.35rem,1.9vw,2.1rem);line-height:1.2;letter-spacing:-.045em;font-weight:500;margin:2rem 0 .8rem}.principle p{color:var(--muted);font-size:.96rem;line-height:1.6;margin:0}
.about-image-section{position:relative;min-height:780px;display:flex;align-items:flex-end;overflow:hidden}.about-image-section>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 41%;filter:brightness(.68)}.about-image-caption{position:relative;margin:4rem clamp(1.3rem,5.5vw,6rem);max-width:620px;border-radius:24px;padding:clamp(2rem,4vw,4rem)}.about-image-caption h2{font-size:clamp(3rem,5vw,5rem);font-weight:500;letter-spacing:-.075em;line-height:1.05;margin:0 0 2rem}
.faq-hero{display:flex;align-items:center}.faq-hero-content{z-index:1}.faq-hero-photo{position:absolute;right:7%;bottom:-18%;width:34%;height:110%;transform:rotate(7deg);border-radius:220px 220px 0 0;overflow:hidden;opacity:.65}.faq-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%}.faq-hero-glow{position:absolute;inset:0;background:radial-gradient(circle at 65% 55%,rgba(205,232,153,.14),transparent 38%)}
.faq-group{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);gap:clamp(3rem,7vw,8rem);border-top:1px solid var(--line);padding:4rem 0}.faq-group-heading span{font-size:.78rem;font-weight:700;color:var(--accent)}.faq-group-heading h2{font-size:clamp(2.4rem,4vw,4.5rem);font-weight:500;letter-spacing:-.075em;line-height:1.08;margin:1rem 0 0;max-width:10ch}.faq-group .faq-list{border-top:0}.faq-group .faq-list details:first-child{border-top:1px solid var(--line)}
.contact-hero .inner-hero-image{width:67%}.contact-hero .inner-hero-image img{object-position:center 43%}
.contact-page{background:var(--bg)}.contact-page-head{max-width:840px;margin-bottom:4rem}.contact-page-head p:last-child{font-size:1.1rem;color:var(--muted);max-width:34rem;margin:1.4rem 0 0}
.contact-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.contact-method{border-radius:24px;min-height:295px;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(2rem,3vw,3rem);transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s}.contact-method:first-child{grid-column:1/-1;min-height:260px;background:radial-gradient(circle at 100% 0,rgba(205,232,153,.13),transparent 35%),linear-gradient(130deg,rgba(255,255,255,.14),rgba(255,255,255,.05)),rgba(25,35,28,.35)}.contact-method:hover{transform:translateY(-5px);background-color:rgba(40,60,44,.52)}.contact-method h3{font-size:clamp(2.1rem,3.4vw,3.8rem);font-weight:500;line-height:1.1;letter-spacing:-.065em;margin:1rem 0 .5rem}.contact-method p{color:var(--muted);margin:0;font-size:1.03rem}.method-action{margin-top:auto;padding-top:2rem;color:var(--accent);font-weight:700;font-size:.91rem;border-bottom:1px solid var(--accent)}.contact-extra{color:var(--muted);font-size:.96rem;margin:2rem 0 0}
.visit-section{background:var(--bg-soft)}.visit-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:clamp(3rem,7vw,8rem);align-items:center}.visit-copy h2{margin-bottom:3rem}.visit-line{border-top:1px solid var(--line);padding:1.4rem 0;display:grid;grid-template-columns:110px 1fr;gap:1rem}.visit-line span{font-size:.73rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:700;padding-top:.3rem}.visit-line p{font-size:1.04rem;line-height:1.7;margin:0}.visit-copy>.button{margin-top:2rem}.visit-photo{height:clamp(480px,52vw,700px);border-radius:24px;overflow:hidden;position:relative}.visit-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s cubic-bezier(.16,1,.3,1)}.visit-photo:hover img{transform:scale(1.035)}.visit-photo>span{position:absolute;bottom:1.5rem;left:1.5rem;border-radius:999px;padding:.7rem 1.15rem;font-size:.88rem;font-weight:700}
@media(max-width:1100px){.principle-grid{grid-template-columns:repeat(2,1fr)}.menu-block{grid-template-columns:minmax(180px,.3fr) 1fr}.inner-hero h1{font-size:clamp(4.7rem,9vw,8rem)}}
@media(max-width:780px){.inner-hero{min-height:680px}.inner-hero-image,.about-hero .inner-hero-image,.contact-hero .inner-hero-image{width:100%;mask-image:none}.inner-hero-shade{background:linear-gradient(0deg,rgba(8,14,10,.94) 0%,rgba(8,14,10,.55) 50%,rgba(8,14,10,.2))}.inner-hero-content{min-height:680px;justify-content:flex-end;padding-top:9rem;padding-bottom:4rem}.inner-hero h1{font-size:clamp(3.8rem,10vw,6.2rem)}.menu-lead{grid-template-columns:1fr;gap:1rem}.menu-block{grid-template-columns:1fr;gap:2rem}.menu-block-title{position:static}.menu-block-title h2{max-width:none}.about-story-grid,.visit-grid{grid-template-columns:1fr;gap:3rem}.about-story-photo{height:610px}.principle-grid{gap:3rem}.faq-group{grid-template-columns:1fr;gap:2rem}.faq-group-heading h2{max-width:none}.faq-hero-photo{right:-11%;width:55%}.faq-hero .inner-hero-content{justify-content:center}.visit-photo{height:560px}}
@media(max-width:520px){.inner-hero,.inner-hero-content{min-height:660px}.inner-hero h1{font-size:clamp(3.15rem,12.2vw,4.65rem)}.inner-hero-content>p:not(.eyebrow){font-size:1rem}.menu-lead h2,.contact-page-head h2,.visit-copy h2{font-size:clamp(3.2rem,12vw,5rem)}.menu-jump{width:100%;overflow-x:auto;border-radius:18px;scrollbar-width:none;margin-bottom:3.5rem}.menu-jump::-webkit-scrollbar{display:none}.menu-jump a{padding:.6rem .9rem}.menu-block{padding:3rem 0}.menu-row{grid-template-columns:1fr;gap:.8rem}.menu-prices{max-width:270px}.menu-addon,.end-cta-panel{flex-direction:column;align-items:flex-start}.menu-addon p{white-space:normal}.end-cta h2{font-size:3.2rem}.about-statement h2,.principle-heading h2{font-size:clamp(3.2rem,12vw,5rem)}.about-story-photo{height:500px}.principle-grid{grid-template-columns:1fr;gap:2.5rem}.principle h3{margin-top:1.3rem}.about-image-section{min-height:650px}.about-image-caption{margin:1.2rem;padding:2rem}.faq-hero-photo{width:65%;right:-22%;opacity:.4}.faq-group{padding:3rem 0}.contact-methods{grid-template-columns:1fr}.contact-method:first-child{grid-column:auto}.contact-method{min-height:280px}.visit-photo{height:400px}.visit-line{grid-template-columns:80px 1fr}}

/* Persistent navigation and quick contact controls */

.menu-jump{top:7rem}.menu-block{scroll-margin-top:11rem}.contact-page,.messaging-spotlight{scroll-margin-top:8rem}
.contact-details.compact{grid-template-columns:1fr}.contact-details.compact>div:first-child{grid-column:auto}
.quick-dock{position:fixed;z-index:50;right:clamp(1rem,2.2vw,2rem);bottom:clamp(1rem,2.2vw,2rem);width:320px;max-width:calc(100vw - 2rem)}
.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:999px;padding:.34rem;background:linear-gradient(130deg,rgba(255,255,255,.17),rgba(255,255,255,.06)),rgba(19,29,21,.82);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 20px 50px rgba(0,0,0,.32)}
.quick-action{min-height:49px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .22s,color .22s,transform .22s}.quick-action:hover,.quick-action:focus-visible{background:rgba(255,255,255,.14)}.quick-action:last-child{background:var(--accent);color:var(--ink)}.quick-action:last-child:hover{background:#dff3b9;transform:translateY(-1px)}
.back-to-top{position:absolute;right:0;bottom:calc(100% + .8rem);width:52px;height:52px;border-radius:50%;color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer;transition:transform .22s}.back-to-top:hover{transform:translateY(-3px)}
.quick-chat-panel{position:absolute;right:0;bottom:calc(100% + .8rem);width:min(320px,calc(100vw - 2rem));padding:1.25rem;border-radius:22px;background:linear-gradient(130deg,rgba(255,255,255,.14),rgba(255,255,255,.04)),rgba(19,29,21,.94);box-shadow:0 22px 65px rgba(0,0,0,.4)}.quick-chat-title{font-size:1.15rem;font-weight:700;letter-spacing:-.035em;margin:0}.quick-chat-number{color:var(--muted);font-size:.92rem;margin:.2rem 0 1rem}.quick-chat-panel>a,.quick-chat-panel>button{display:flex;align-items:center;width:100%;min-height:44px;padding:.6rem .1rem;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;font-size:.93rem;font-weight:600;cursor:pointer}.quick-chat-panel>a:hover,.quick-chat-panel>button:hover{color:var(--accent)}.quick-chat-panel .quick-chat-all{color:var(--accent)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Contact-page messaging is the lead channel group, not a footnote. */
.messaging-spotlight{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,7rem);padding:clamp(2rem,5vw,5rem);border-radius:28px;background:radial-gradient(circle at 0 0,rgba(205,232,153,.16),transparent 42%),linear-gradient(130deg,rgba(255,255,255,.15),rgba(255,255,255,.04)),rgba(25,35,28,.55);margin-bottom:2rem}
.messaging-intro h3{font-size:clamp(2.8rem,5vw,5.2rem);font-weight:500;line-height:1.04;letter-spacing:-.075em;margin:1.2rem 0}.messaging-intro p{max-width:27rem;font-size:1.08rem;line-height:1.65;color:#dce5d9;margin:0}.messaging-intro strong{font-weight:700;color:var(--accent);white-space:nowrap}
.messaging-rows{border-top:1px solid var(--line)}.messaging-row{min-height:120px;padding:1.15rem 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.messaging-row>div>span{font-size:.7rem;color:var(--accent);font-weight:700}.messaging-row h4{font-size:1.5rem;font-weight:600;letter-spacing:-.04em;margin:.2rem 0}.messaging-row p{color:var(--muted);font-size:.9rem;margin:0}.messaging-row .underlined-link{flex:none;border-top:0;border-left:0;border-right:0;background:none;color:var(--text);font-size:.87rem;cursor:pointer}.messaging-row:hover .underlined-link{color:var(--accent)}
.contact-methods{margin-top:2rem}.contact-method:first-child{grid-column:1/-1}
@media(max-width:780px){.menu-jump{top:6.2rem}.menu-block{scroll-margin-top:10rem}.messaging-spotlight{grid-template-columns:1fr;gap:2rem}.messaging-intro p{max-width:36rem}}
@media(max-width:520px){body{padding-bottom:calc(5.3rem + env(safe-area-inset-bottom))}.quick-dock{right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));width:calc(100vw - 1.5rem);max-width:none}.quick-actions{padding:.28rem}.quick-action{min-height:52px;font-size:.85rem}.quick-chat-panel{width:100%;max-height:min(65dvh,480px);overflow-y:auto}.menu-jump{top:5.8rem}.messaging-spotlight{padding:2rem 1.4rem;border-radius:22px}.messaging-intro h3{font-size:3.1rem}.messaging-intro strong{white-space:normal}.messaging-row{min-height:108px;gap:.7rem}.messaging-row h4{font-size:1.27rem}.messaging-row .underlined-link{font-size:.82rem}.contact-methods{margin-top:1.2rem}}
@media(prefers-reduced-transparency:reduce){.quick-actions,.quick-chat-panel,.messaging-spotlight{background:#253128!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}

/* Treatment navigation: vertical desktop index, in-flow mobile disclosure. */
.treatment-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.treatment-sidebar{position:sticky;top:10.5rem;max-height:calc(100dvh - 12.5rem);overflow-y:auto;scroll-margin-top:7rem}
.service-category-picker>summary{display:none}
.treatment-sidebar .menu-jump{position:static;display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:none;margin:0;padding:.65rem;border-radius:20px;overflow:visible;box-shadow:none}
.treatment-sidebar .menu-jump a{white-space:normal;line-height:1.4;border-radius:12px;min-height:46px;display:flex;align-items:center;padding:.7rem .9rem}
.treatment-sidebar .menu-jump a[aria-current="location"]{background:rgba(205,232,153,.14);color:var(--accent)}
.treatment-content{min-width:0}.treatment-content .menu-block{display:block;padding:3rem 0;scroll-margin-top:8rem}.treatment-content .menu-block:first-child{padding-top:1.5rem}
.treatment-content .menu-block-title{position:static;margin-bottom:2rem}.treatment-content .menu-block-title h2{max-width:none;font-size:clamp(2.5rem,4vw,4rem)}
.category-return{display:none}
@media(max-width:780px){
 .treatment-layout{display:block}.treatment-sidebar{position:static;max-height:none;overflow:visible;margin-bottom:2.5rem;scroll-margin-top:7rem}
 .service-category-picker{border:1px solid var(--line);border-radius:20px;background:var(--bg-soft);overflow:hidden}
 .service-category-picker>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:58px;padding:1rem 1.2rem;font-weight:600;cursor:pointer;list-style:none}
 .service-category-picker>summary::-webkit-details-marker{display:none}.service-category-picker>summary:after{content:'+';font-size:1.4rem;color:var(--accent)}.service-category-picker[open]>summary:after{content:'−'}
 .treatment-sidebar .menu-jump{border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0 .65rem .65rem;border-radius:0}
 .treatment-content .menu-block{scroll-margin-top:7rem}.category-return{display:inline-block;margin-top:1.5rem;font-size:.85rem;color:var(--accent);text-underline-offset:.3em;text-decoration:underline}
}
.hero-media img{object-position:50% 45%}.contact-hero .inner-hero-image img{object-position:50% 40%}

/* Responsive photography: positive stacking and explicit picture dimensions. */
.about-hero .inner-hero-image{inset:0;width:100%;height:auto;z-index:0;mask-image:none;-webkit-mask-image:none}
.about-hero .inner-hero-image picture{position:absolute;inset:0;display:block}
.about-hero .inner-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;animation:none}
.about-hero .inner-hero-shade{z-index:1}.about-hero .inner-hero-content{z-index:2}
@media(max-width:780px){.about-hero .inner-hero-image img{object-position:center 38%}}
.visit-photo{display:block}.visit-photo picture{display:block;width:100%;height:100%}
