@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/cormorant-garamond.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-garamond-400-italic.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/inter.woff2) format('woff2')}

/* Body by Sisily. Glow's bones, concept 2's skin, concept 1's front door. */
:root{
  --ground:#0b0b0b;
  --raised:#16130f;
  --bone:#e6ddcc;
  --bone-2:rgba(230,221,204,.72);
  --gold:#c0ae7a;
  --gold-2:rgba(192,174,122,.22);
  --cream:#f4efe6;
  --ink:#1a1a1a;
  --ink-2:rgba(26,26,26,.72);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --wrap:1120px;
  --gutter:20px;
  --sec:clamp(64px,8vw,100px);
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--ground);color:var(--bone);
  font-family:var(--sans);font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
p a,li a{text-decoration:underline;text-decoration-color:var(--gold)}
p a:hover,li a:hover{color:var(--gold)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.01em;text-wrap:balance;color:inherit}
h1{font-size:clamp(2.6rem,5.2vw,3.9rem)}
h2{font-size:clamp(2.1rem,3.6vw,2.9rem)}
h3{font-size:clamp(1.55rem,2.2vw,1.95rem)}
h4{font-size:1.4rem}
p{max-width:68ch}
ul,ol{padding-left:1.2em}
strong{font-weight:500;color:inherit}
em{font-style:italic}
.wrap{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto}
section,.band{padding:var(--sec) 0}
.raised{background:var(--raised)}
.cream{background:var(--cream);color:var(--ink)}
.cream .eyebrow{color:#7a6a3a}
.cream .muted{color:var(--ink-2)}
.muted{color:var(--bone-2)}
.eyebrow{
  display:block;font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;
}
.lede{font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.35;max-width:36em}
.hair{border:0;height:1px;background:var(--gold-2)}
.prose h2{margin-top:56px;margin-bottom:16px}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:36px;margin-bottom:10px}
.prose p+p{margin-top:16px}
.prose ul,.prose ol{margin:14px 0 14px 0;max-width:68ch}
.prose li+li{margin-top:6px}
.prose blockquote{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.3;color:var(--bone);margin:28px 0;padding-left:22px;border-left:1px solid var(--gold)}
.prose blockquote footer{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:10px}

/* Buttons: 3px radius, color-only hover, never dark text on gold */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 24px;border-radius:3px;border:1px solid transparent;
  font-family:var(--sans);font-size:14px;font-weight:500;line-height:1;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color .3s,color .3s,border-color .3s;
}
.btn-primary{background:var(--bone);color:var(--ground);border-color:var(--bone)}
.btn-primary:hover{background:var(--cream);border-color:var(--cream);color:var(--ground)}
.btn-outline{background:transparent;color:var(--gold);border-color:var(--gold)}
.btn-outline:hover{color:var(--bone);border-color:var(--bone)}
.cream .btn-primary{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.cream .btn-primary:hover{background:#000;border-color:#000}
.cream .btn-outline{color:var(--ink);border-color:var(--ink)}
.cream .btn-outline:hover{color:#7a6a3a;border-color:#7a6a3a}
.btn-lg{padding:18px 32px;font-size:15px}
.textlink{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--gold);border-bottom:1px solid var(--gold-2);padding-bottom:3px;transition:color .3s,border-color .3s}
.textlink:hover{color:var(--bone);border-color:var(--bone)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--bone);color:var(--ground);padding:10px 14px;z-index:100}
.skip:focus{left:12px;top:12px}

/* Header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(11,11,11,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--gold-2)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.brand img{height:50px;width:auto}
/* Nav logo (Ryan, 2026-09-29, option F2): the circle badge without "Wellness
   Rooms" hangs below the 76px bar like a seal, so the bar keeps its height. */
.site-head .brand{align-self:flex-start;margin-top:8px;margin-bottom:-36px;height:68px;position:relative;z-index:2}
.site-head .brand img{height:104px}
@media (max-width:900px){.site-head .brand{margin-top:6px;margin-bottom:-20px;height:70px}.site-head .brand img{height:84px}}
.nav-list{display:flex;gap:30px;list-style:none;padding:0}
.nav-list a{font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--bone-2);transition:color .3s}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:var(--bone)}
.site-head .btn{padding:12px 20px;font-size:13px}
.menu-btn{display:none;background:none;border:1px solid var(--gold-2);border-radius:3px;color:var(--bone);padding:10px 12px;font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.mobile-nav .wrap{display:block}
.mobile-nav{display:none;border-top:1px solid var(--gold-2);background:var(--ground)}
.mobile-nav ul{list-style:none;padding:8px 0 16px}
.mobile-nav a{display:block;padding:14px 0;font-family:var(--serif);font-size:1.6rem;text-decoration:none;color:var(--bone);border-bottom:1px solid rgba(192,174,122,.12)}
.mobile-nav a:hover{color:var(--gold)}
.mobile-nav[data-open="true"]{display:block;max-height:calc(100vh - 77px);max-height:calc(100dvh - 77px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* Open menu (Ryan, 2026-09-29): the menu lives inside the sticky header, so an
   expanded Services list ran past the screen and swipes scrolled the page
   behind it. The menu now scrolls inside the viewport and the page is locked. */
html.nav-open,html.nav-open body{overflow:hidden}
.mobile-nav ul{padding-top:22px}
@media (max-width:900px){
  .nav-list{display:none}
  .menu-btn{display:inline-block}
  .site-head .btn-book{display:none}
}

/* Home hero */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(520px,62vh,640px);display:flex;align-items:flex-end;padding:0}
@media (max-width:820px){.hero{min-height:min(78svh,720px)}}
.hero-bg{position:absolute;inset:0;z-index:-3}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.85) brightness(.85)}
.hero-shade{position:absolute;inset:0;z-index:-2;background:
  linear-gradient(to top,rgba(11,11,11,1) 0%,rgba(11,11,11,.88) 24%,rgba(11,11,11,.35) 62%,rgba(11,11,11,.5) 100%),
  linear-gradient(to right,rgba(11,11,11,.55),rgba(11,11,11,0) 60%)}
.steam{position:absolute;inset:-20% -10%;z-index:-1;pointer-events:none;filter:blur(30px);will-change:transform;
  background:radial-gradient(38% 30% at 30% 40%,rgba(192,174,122,.18),transparent 70%),
             radial-gradient(30% 24% at 72% 30%,rgba(230,221,204,.10),transparent 70%),
             radial-gradient(45% 36% at 55% 75%,rgba(192,174,122,.10),transparent 70%);
  animation:drift 28s ease-in-out infinite alternate}
.steam.two{background:radial-gradient(28% 22% at 60% 50%,rgba(230,221,204,.08),transparent 70%),
                      radial-gradient(34% 28% at 20% 70%,rgba(192,174,122,.10),transparent 70%);animation-duration:36s;animation-delay:-12s}
@keyframes drift{from{transform:translate3d(-3%,2%,0) scale(1)}to{transform:translate3d(4%,-3%,0) scale(1.08)}}
.hero .wrap{position:relative;padding-top:120px;padding-bottom:56px}
.hero h1{font-size:clamp(3rem,8.4vw,6rem);line-height:.92;letter-spacing:-.02em;max-width:11em;margin:0 0 24px}
.hero h1 em{color:var(--gold)}
.hero .lede{color:var(--bone);max-width:30em}
.hero .lede span{color:var(--gold)}
@media (prefers-reduced-motion:no-preference){
  .hero .wrap>*{animation:rise 1s var(--ease) both}
  .hero .wrap>:nth-child(2){animation-delay:.1s}
  .hero .wrap>:nth-child(3){animation-delay:.2s}
  @keyframes rise{from{opacity:0;transform:translateY(16px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
}
@media (prefers-reduced-motion:reduce){.steam{animation:none}html{scroll-behavior:auto}}

/* Three doors */
.doors{padding:0;border-top:1px solid var(--gold-2);border-bottom:1px solid var(--gold-2);background:var(--ground)}
.doors ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.doors li+li{border-left:1px solid var(--gold-2)}
.door{display:flex;flex-direction:column;gap:12px;min-height:250px;padding:40px 32px 36px;text-decoration:none;color:var(--bone);transition:background-color .3s}
.door:hover{background:var(--raised)}
.door strong{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,2.4vw,2.25rem);line-height:1.1}
.door span{color:var(--bone-2);font-size:15px;max-width:28ch}
.door .textlink{margin-top:auto;align-self:flex-start}
.door:hover .textlink{color:var(--bone);border-color:var(--bone)}
@media (max-width:820px){
  .doors ul{grid-template-columns:1fr}
  .doors li+li{border-left:0;border-top:1px solid var(--gold-2)}
  .door{min-height:0;padding:28px 0 26px}
  .doors .wrap{padding:0}
}
@media (min-width:821px){.doors .wrap{width:100%;max-width:none}.doors ul{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto}.doors li:first-child .door{padding-left:0}.doors li:last-child .door{padding-right:0}}

/* Two-column section */
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:start}
.two.center{align-items:center}
.two .copy p+p{margin-top:16px}
.actions{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;margin-top:32px}
@media (max-width:820px){.two{grid-template-columns:1fr;gap:32px}}
.creds{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px 32px;margin-top:32px;padding-top:24px;border-top:1px solid var(--gold-2)}
.creds li{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2)}
.cream .creds{border-color:rgba(26,26,26,.18)}
.cream .creds li{color:var(--ink-2)}

/* Ritual strip (The Well) */
.ritual{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--gold-2);border-bottom:1px solid var(--gold-2)}
.ritual li{padding:26px 24px 28px 0;border-right:1px solid var(--gold-2)}
.ritual li:last-child{border-right:0}
.ritual li+li{padding-left:24px}
.ring{width:32px;height:32px;border-radius:50%;border:1px solid var(--gold);border-right-color:transparent;position:relative;margin-bottom:18px}
.ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--gold)}
.ritual h3{font-size:1.5rem;margin-bottom:4px}
.ritual p{font-size:14px;color:var(--bone-2)}
@media (max-width:820px){
  .ritual{grid-template-columns:1fr 1fr}
  .ritual li{border-right:0;border-bottom:1px solid var(--gold-2);padding:22px 12px 22px 0}
  .ritual li+li{padding-left:0}
  .ritual li:nth-child(odd){border-right:1px solid var(--gold-2);padding-right:16px}
  .ritual li:nth-child(even){padding-left:16px}
  .ritual li:nth-last-child(-n+2){border-bottom:0}
}

/* Timeline */
.timeline{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative;counter-reset:none}
.timeline::before{content:"";position:absolute;left:0;right:0;top:11px;height:1px;background:linear-gradient(to right,var(--gold) 0,var(--gold) 75%,transparent);opacity:.55}
.timeline li{padding-right:28px;position:relative}
.timeline .dot{width:23px;height:23px;border-radius:50%;border:1px solid var(--gold);background:var(--raised);display:grid;place-items:center;position:relative;z-index:1}
.timeline .dot::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.timeline .when{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:22px 0 10px;font-weight:500}
.timeline h3{font-size:1.7rem;margin-bottom:10px}
.timeline p{font-size:15px;color:var(--bone-2);max-width:32ch}
.timeline q{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--bone);display:block;margin-top:12px;line-height:1.35}
@media (max-width:820px){
  .timeline{grid-template-columns:1fr;padding-left:36px}
  .timeline::before{left:11px;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(to bottom,var(--gold) 0,var(--gold) 80%,transparent)}
  .timeline li{padding:0 0 36px}
  .timeline li:last-child{padding-bottom:0}
  .timeline .dot{position:absolute;left:-36px;top:-1px}
  .timeline .when{margin-top:0}
  .timeline p{max-width:none}
}

/* Menu with leaders */
.menu-groups{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(32px,4vw,56px)}
.menu-group h3{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding-bottom:12px;border-bottom:1px solid var(--gold-2);margin-bottom:6px}
.menu-group ul{list-style:none;padding:0}
.menu-group li{border-bottom:1px solid rgba(192,174,122,.12)}
.menu-group li a,.menu-group li .row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:16px 0;text-decoration:none;color:var(--bone);transition:color .3s}
.menu-group li a:hover .n{color:var(--gold)}
.menu-group .n{font-family:var(--serif);font-size:1.4rem;line-height:1.15;transition:color .3s}
.menu-group .n small{display:block;font-family:var(--sans);font-size:13px;color:var(--bone-2);margin-top:3px;letter-spacing:.01em}
.menu-group .p{font-family:var(--serif);font-size:1.3rem;color:var(--gold);white-space:nowrap}
.menu-group .p.ask{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.menu-group li.primary .n{font-size:1.75rem}
.menu-note{margin-top:clamp(40px,5vw,64px);padding-top:32px;border-top:1px solid var(--gold-2);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.menu-note p{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.9rem);max-width:30ch;line-height:1.25}
.menu-note p span{color:var(--gold);font-style:italic}
@media (max-width:820px){.menu-groups{grid-template-columns:1fr;gap:36px}.menu-note .btn{flex:1 1 100%}}

/* Story block (cream) */
.portrait{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:3px;background:#dcd3c3}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.portrait figcaption{position:absolute;left:18px;bottom:16px;right:18px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);background:rgba(26,26,26,.72);padding:8px 12px;border-radius:3px;width:max-content;max-width:100%}
.story p{font-family:var(--serif);font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.45;max-width:52ch}
.story p+p{margin-top:14px}
.story p.big{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.25;margin-bottom:22px}
.story p.sign{font-style:italic;color:#7a6a3a;font-size:clamp(1.35rem,2vw,1.7rem);margin-top:22px}
@media (max-width:820px){.portrait{aspect-ratio:4/5;max-width:420px}}

/* Reviews */
.reviews-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(24px,3vw,40px)}
.reviews-grid .col{display:grid;gap:clamp(24px,3vw,40px)}
.review{border:1px solid var(--gold-2);border-radius:3px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:space-between;gap:24px;background:var(--raised)}
.review blockquote{font-family:var(--serif);font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.35;color:var(--bone);max-width:none}
.review.lead blockquote{font-size:clamp(1.4rem,2.2vw,1.9rem)}
.review.lead{align-self:start}
.review footer{display:flex;align-items:baseline;gap:14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:500}
.review footer span{color:var(--bone-2);letter-spacing:.04em;text-transform:none;font-size:13px;margin-left:auto;font-weight:400}
.stars{display:inline-flex;gap:3px}
.stars svg{width:12px;height:12px;fill:var(--gold)}
.proof{margin-top:clamp(36px,5vw,56px);display:flex;justify-content:center}
.proof a{display:inline-flex;align-items:center;gap:14px;text-decoration:none;padding:16px 26px;border:1px solid var(--gold-2);border-radius:3px;color:var(--bone);transition:border-color .3s}
.proof a:hover{border-color:var(--gold)}
.proof .t{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
@media (max-width:820px){.reviews-grid{grid-template-columns:1fr}.proof a{width:100%;justify-content:center;text-align:center;flex-wrap:wrap}}

/* Service page */
.svc-hero{padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(40px,6vw,72px)}
.crumbs{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--bone-2);margin-bottom:28px}
.crumbs a{text-decoration:none;color:var(--bone-2)}
.crumbs a:hover{color:var(--gold)}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--gold-2)}
.svc-meta{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:baseline;margin-top:28px;padding-top:24px;border-top:1px solid var(--gold-2)}
.svc-meta .price{font-family:var(--serif);font-size:2rem;color:var(--gold);line-height:1}
.svc-meta .price small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.12em;line-height:1.5;text-transform:uppercase;color:var(--bone-2);margin-top:8px}
.svc-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(40px,6vw,80px);align-items:start}
.aside{position:sticky;top:96px;border:1px solid var(--gold-2);border-radius:3px;padding:28px;background:var(--raised)}
.aside h3{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.aside .price{font-family:var(--serif);font-size:2.2rem;color:var(--bone);line-height:1;margin-bottom:6px}
.aside .price small{display:block;font-family:var(--sans);font-size:12px;color:var(--bone-2);margin-top:8px;letter-spacing:.02em}
.aside .btn{width:100%;margin-top:18px}
.aside .fine{font-size:13px;color:var(--bone-2);margin-top:14px;line-height:1.5}
.aside .fine a{color:var(--bone);text-decoration-color:var(--gold)}
.aside ul{list-style:none;padding:0;margin-top:22px;padding-top:18px;border-top:1px solid var(--gold-2)}
.aside ul a{display:block;font-family:var(--serif);font-size:1.15rem;text-decoration:none;color:var(--bone);padding:6px 0}
.aside ul a:hover{color:var(--gold)}
@media (max-width:900px){.svc-body{grid-template-columns:1fr}.aside{position:static}}

/* FAQ */
.faq{border-top:1px solid var(--gold-2)}
.faq details{border-bottom:1px solid var(--gold-2)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.25;color:var(--bone)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:rotate(45deg);transition:transform .3s;margin-right:6px}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq summary:hover{color:var(--gold)}
.faq .a{padding:0 0 24px;color:var(--bone-2);max-width:68ch}
.faq .a p+p{margin-top:12px}

/* Siblings */
.siblings{display:grid;grid-template-columns:1fr 1fr;gap:20px;list-style:none;padding:0}
.siblings a{display:block;padding:26px 28px;border:1px solid var(--gold-2);border-radius:3px;text-decoration:none;color:var(--bone);transition:border-color .3s}
.siblings a:hover{border-color:var(--gold)}
.siblings .n{font-family:var(--serif);font-size:1.6rem;display:block;margin-bottom:6px}
.siblings .d{font-size:14px;color:var(--bone-2)}
.siblings .go{display:block;margin-top:14px}
@media (max-width:640px){.siblings{grid-template-columns:1fr}}

/* Services hub */
.hub-list{list-style:none;padding:0;border-top:1px solid var(--gold-2)}
.hub-list li{border-bottom:1px solid var(--gold-2)}
.hub-list a{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:16px 32px;align-items:baseline;padding:26px 0;text-decoration:none;color:var(--bone);transition:color .3s}
.hub-list a:hover .n{color:var(--gold)}
.hub-list .n{font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.1;transition:color .3s}
.hub-list .d{font-size:15px;color:var(--bone-2);max-width:none}
.hub-list .p{font-family:var(--serif);font-size:1.4rem;color:var(--gold);white-space:nowrap;text-align:right}
.hub-list .p.ask{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.hub-group{margin-top:clamp(40px,6vw,72px)}
.hub-group:first-of-type{margin-top:0}
@media (max-width:820px){.hub-list a{grid-template-columns:1fr auto}.hub-list .d{grid-column:1/-1}}

/* Visit */
.addr{font-family:var(--serif);font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.3}
.addr a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.addr a:hover{border-color:var(--gold)}
.contact-list{list-style:none;padding:0;margin-top:24px;display:grid;gap:10px}
.contact-list a{font-family:var(--sans);font-size:15px;text-decoration:none;color:var(--bone)}
.contact-list a:hover{color:var(--gold)}
.contact-list span{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:500}
.map{aspect-ratio:4/3;border:1px solid var(--gold-2);border-radius:3px;overflow:hidden;background:var(--raised)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.9) sepia(.3)}

/* Local section expander */
.local details summary{cursor:pointer;list-style:none;display:inline-flex}
.local details summary::-webkit-details-marker{display:none}
.local details[open] summary{display:none}
.local .more p+p{margin-top:16px}

/* Transformations */
.tf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;padding:0}
.tf-grid figure{border:1px solid var(--gold-2);border-radius:3px;overflow:hidden;background:var(--raised)}
.tf-grid img{width:100%;aspect-ratio:1;object-fit:cover}
.tf-grid figcaption{padding:12px 16px;font-size:13px;color:var(--bone-2)}
@media (max-width:820px){.tf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tf-grid{grid-template-columns:1fr}}

/* CTA band */
.cta-band{border-top:1px solid var(--gold-2);border-bottom:1px solid var(--gold-2);background:var(--raised)}
.cta-band .wrap{display:grid;grid-template-columns:1fr auto;gap:24px 48px;align-items:center}
.cta-band h2{font-size:clamp(1.9rem,3.4vw,2.7rem);max-width:18ch}
.cta-band p{margin-top:10px;color:var(--bone-2)}
.cta-band .actions{margin-top:0;justify-content:flex-end}
@media (max-width:820px){.cta-band .wrap{grid-template-columns:1fr}.cta-band .actions{justify-content:flex-start}}

/* Footer */
.site-foot{border-top:1px solid var(--gold-2);padding:56px 0 120px;background:var(--ground)}
.site-foot .top{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center}
.site-foot .brand img{height:120px;width:auto}
.site-foot nav ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:center}
.site-foot nav a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--bone-2);transition:color .3s}
.site-foot nav a:hover{color:var(--gold)}
.site-foot .quiet{font-size:12px;color:var(--bone-2);text-decoration:none;letter-spacing:.06em;border-bottom:1px solid transparent}
.site-foot .quiet:hover{color:var(--gold);border-color:var(--gold-2)}
.site-foot .fine{margin-top:28px;padding-top:20px;border-top:1px solid rgba(192,174,122,.12);font-size:13px;color:var(--bone-2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px}
.site-foot .fine a{text-decoration:none;color:var(--bone-2)}
.site-foot .fine a:hover{color:var(--gold)}
@media (max-width:820px){.site-foot .top{grid-template-columns:1fr;justify-items:start}.site-foot nav ul{justify-content:flex-start}}
@media (min-width:821px){.site-foot{padding-bottom:56px}}

/* Sticky mobile bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(11,11,11,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--gold-2)}
.bar .btn{flex:1 1 0;padding:16px 12px}
@media (max-width:820px){.bar{display:flex}}

/* Page hero (interior) */
.page-hero{padding-top:clamp(56px,8vw,96px);padding-bottom:clamp(40px,6vw,72px)}
.page-hero.photo{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(560px,70vh,760px);display:flex;align-items:flex-end;padding-top:120px}
.page-hero.photo .hero-bg img{object-position:center 18%;transform:scaleX(-1)}
.page-hero.photo .crumbs{color:var(--bone-2)}
.well-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}
.price-tag{text-align:right;border-left:1px solid var(--gold-2);padding-left:28px}
.price-tag .from{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:500}
.price-tag .amt{font-family:var(--serif);font-size:clamp(56px,7vw,96px);line-height:1;color:var(--bone);margin:6px 0 4px}
.price-tag .amt sup{font-size:.42em;vertical-align:top;position:relative;top:.35em;color:var(--gold)}
.price-tag .meta{font-size:13px;color:var(--bone-2);line-height:1.5}
@media (max-width:820px){.well-grid{grid-template-columns:1fr;gap:24px}.price-tag{text-align:left;border-left:0;padding-left:0;border-top:1px solid var(--gold-2);padding-top:18px}.price-tag .amt{font-size:52px}}
.page-hero h1{margin-bottom:20px}
.page-hero .lede{color:var(--bone-2)}
.list-plain{list-style:none;padding:0}
.list-plain li{padding:14px 0;border-bottom:1px solid var(--gold-2)}
.list-plain li:first-child{border-top:1px solid var(--gold-2)}
.list-plain b{font-weight:500;color:var(--bone)}
.list-plain span{color:var(--bone-2)}
.notice{font-size:14px;color:var(--bone-2);border-left:1px solid var(--gold);padding-left:16px;margin-top:20px;max-width:56ch}

/* Services mega menu (desktop). Parent li static: the sticky header is the containing block, so the panel spans it. */
.nav-list>li{display:flex;align-items:center;gap:2px}
.nav-list>li.has-menu{position:static}
.nav-chev{display:inline-flex;align-items:center;background:none;border:0;padding:6px 4px;color:var(--bone-2);cursor:pointer;transition:color .3s}
.nav-chev svg{width:12px;height:12px;transition:transform .3s}
.nav-chev:hover,.nav-list>li.dropdown-open .nav-chev{color:var(--bone)}
.nav-list>li.dropdown-open .nav-chev svg{transform:rotate(180deg)}
.nav-mega{position:absolute;left:0;right:0;top:100%;background:rgba(11,11,11,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--gold-2);border-bottom:1px solid var(--gold-2);padding:36px 0 40px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,transform .3s,visibility .3s;z-index:60}
/* hover bridge: the strip between the label and the panel belongs to the panel, so the pointer never leaves the menu */
.nav-mega::before{content:"";position:absolute;left:0;right:0;top:-30px;height:30px}
.nav-list:not(:has(>li.dropdown-open))>li.has-menu:not(.nav-hover-off):hover>.nav-mega,
.nav-list:not(:has(>li.dropdown-open))>li.has-menu:not(.nav-focus-off):focus-within>.nav-mega,
.nav-list>li.dropdown-open>.nav-mega{opacity:1;visibility:visible;transform:none}
.nav-mega-in{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;align-items:start}
.nav-h{display:block;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--gold-2)}
.nav-group ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.nav-group.wide ul{grid-template-columns:1fr 1fr;column-gap:28px}
.nav-list .nav-mega a{display:block;padding:10px 12px;margin:0 -12px;border-radius:3px;font-size:15px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--bone);transition:background-color .3s}
.nav-list .nav-mega a:hover{background:var(--raised);color:var(--bone)}
.nav-mega .l{display:block;line-height:1.3}
.nav-mega a:hover .l{color:var(--gold)}
.nav-mega .d{display:block;font-size:12.5px;color:var(--bone-2);margin-top:2px;line-height:1.4}
@media (max-width:1180px){.nav-mega-in{grid-template-columns:1.6fr 1fr 1fr;gap:32px}}

/* Mobile drawer accordion */
.mobile-nav .acc-row{display:flex;align-items:center;border-bottom:1px solid rgba(192,174,122,.12)}
.mobile-nav .acc-row a{flex:1;border-bottom:0}
.acc-btn{background:none;border:0;padding:14px 4px 14px 18px;color:var(--bone-2);cursor:pointer}
.acc-btn svg{width:16px;height:16px;transition:transform .3s}
.mobile-nav li.acc[data-open="true"] .acc-btn svg{transform:rotate(180deg)}
.mobile-nav .acc-list{display:none;list-style:none;padding:4px 0 10px 18px;border-bottom:1px solid rgba(192,174,122,.12)}
.mobile-nav li.acc[data-open="true"] .acc-list{display:block}
.mobile-nav .acc-list a{font-family:var(--sans);font-size:15px;padding:9px 0;border-bottom:0;color:var(--bone-2)}
.mobile-nav .acc-list a:hover{color:var(--gold)}

/* Header text/call icons */
.head-icons{display:flex;gap:6px;margin-left:auto}
.head-icons a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--gold-2);border-radius:3px;color:var(--bone);transition:border-color .3s,color .3s}
.head-icons a:hover{border-color:var(--gold);color:var(--gold)}
.head-icons svg{width:18px;height:18px}
.site-head nav[aria-label="Primary"]{margin-left:auto}
.site-head nav[aria-label="Primary"]~.head-icons{margin-left:0}
@media (max-width:900px){.head-icons{margin-left:auto}}

/* Contact doors */
.contact-doors .door svg{width:26px;height:26px;color:var(--gold);margin-bottom:4px}
.contact-doors .door .textlink{margin-top:auto}
.contact-doors div.door{cursor:default}
.contact-doors div.door:hover{background:none}
.contact-doors .door .btn{margin-top:auto;align-self:flex-start}
.contact-doors .door small{font-size:13px;letter-spacing:.04em;margin-top:-2px}

/* The Well opening list form */
.well-form{display:grid;gap:18px;align-content:start}
.well-form .field{display:grid;gap:8px}
.well-form label{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2)}
.well-form label .opt{display:block;margin-top:2px;letter-spacing:.02em;text-transform:none;font-weight:400;font-size:12.5px}
.well-form input{width:100%;background:var(--ground);border:1px solid var(--gold-2);border-radius:3px;color:var(--bone);padding:14px 16px;font:400 16px/1.3 var(--sans);transition:border-color .3s}
.well-form input:focus{outline:none;border-color:var(--gold)}
.well-form .hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.well-form .btn{justify-self:start}
.well-form .form-msg{margin:0;min-height:1.4em;color:var(--gold)}
.well-form.done .form-msg{font-family:var(--serif);font-size:1.3rem;color:var(--bone)}

/* Mega menu on one invisible grid (Ryan 2026-09-28): four equal columns, Body spans two,
   every heading on the same line, the same gap between every column. */
.nav-mega.nav-mega .nav-mega-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px;align-items:start}
.nav-group{align-self:start}
.nav-group.wide{grid-column:span 2}
.nav-group.wide ul{column-gap:48px}
@media (max-width:1180px){.nav-mega.nav-mega .nav-mega-in{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.nav-group.wide ul{column-gap:32px}}

/* Credentials: title, "Certified in:", then three bullets (Ryan 2026-09-28) */
.creds-block{margin-top:32px;padding-top:24px;border-top:1px solid var(--gold-2)}
.cream .creds-block{border-color:rgba(26,26,26,.18)}
.creds-block .creds-title{font-family:var(--sans);margin:0;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.creds-block .creds-sub{font-family:var(--sans);margin:10px 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2)}
.cream .creds-sub{color:var(--ink-2)}
.creds-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.creds-list li{position:relative;padding-left:18px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2)}
.creds-list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.cream .creds-list li{color:var(--ink-2)}
/* What others are saying (Breathwork page) */
.say-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.say{margin:0;padding:28px;border:1px solid var(--gold-2);border-radius:4px}
.say blockquote{margin:0;font-family:var(--serif);font-size:22px;line-height:1.4;color:var(--bone)}
.say figcaption{margin-top:18px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
@media (max-width:860px){.say-grid{grid-template-columns:1fr;gap:20px}}
