/* House rule: no visible scrollbars, scroll still works ("cell-phone scroll
   everywhere"). Applies inside the demo iframe too. Never overflow:hidden —
   scrolling stays fully functional. */
html, body{
  scrollbar-width: none;        /* Firefox */
  -ms-overflow-style: none;     /* old Edge/IE */
}
*::-webkit-scrollbar{ display: none; width: 0; height: 0; }  /* Chrome/Safari/Edge */

/* ───────────────────────────────────────────────────────────────────────────
   2026-10 BELOW-THE-FOLD REVAMP: carries the meadow hero's world down the page.
   Linen and cream grounds, pale sky, warm gold, ink. Instrument Serif headings,
   Instrument Sans UI/body, Cormorant italic only for the wordmark.
   ─────────────────────────────────────────────────────────────────────────── */
:root{
  --ink:#1d1418;            /* = --sh-ink */
  --ink-soft:#4a3f43;       /* body copy on linen (AA+) */
  --muted:#6b5f63;          /* secondary copy (AA on linen/cream) */
  --linen:#f4efe7;
  --cream:#faf7f2;
  --sand:#e9e0d2;
  --sky:#c9dbe9;            /* = --sh-sky */
  --sky-soft:#e4edf4;
  --gold:#c99a5b;           /* decorative gold (rules, dots) */
  --gold-ink:#8a6431;       /* gold for small text (AA on linen) */
  --line:rgba(29,20,24,.12);
  --r:6px; --r-lg:10px;
  --maxw:1240px;
  --pad-x:clamp(1.25rem,4vw,3.6rem);
  --sec-y:clamp(5rem,11vw,9.5rem);
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mark:"Cormorant Garamond",Georgia,serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow:0 1px 2px rgba(29,20,24,.04),0 30px 60px -36px rgba(60,40,20,.35);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;overscroll-behavior:contain}
body{font-family:var(--sans);font-size:1.0625rem;color:var(--ink);background:var(--linen);line-height:1.65;overflow-x:hidden;overscroll-behavior:contain;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.005em}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px;border-radius:4px}
section{position:relative}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x)}
.eyebrow{font:500 .8rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);display:flex;align-items:center;gap:.8rem}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);flex:0 0 auto}
.title{font-size:clamp(2.4rem,5.2vw,4.4rem);margin-top:1.1rem;max-width:16ch}
.title em,.cta__title em{font-style:italic}
.head{margin-bottom:clamp(2.8rem,6vw,4.5rem)}
.head--center{text-align:center}
.head--center .eyebrow{justify-content:center}
.head--center .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold)}
.head--center .title{margin-left:auto;margin-right:auto}
.head__lede{margin-top:1.4rem;max-width:44ch;color:var(--ink-soft);font-size:clamp(1.0625rem,1.3vw,1.1875rem)}

/* buttons: same family as the hero's .sh-btn */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.85rem 1.4rem;border-radius:var(--r);background:var(--ink);color:#fff;font:500 1rem/1 var(--sans);white-space:nowrap;
  transition:transform .6s var(--ease),background-color .6s var(--ease),box-shadow .6s var(--ease)}
.btn:hover{transform:translateY(-2px);background:#3a2c31;box-shadow:0 14px 28px -16px rgba(29,20,24,.55)}
.btn--lg{min-height:54px;padding:1rem 1.75rem;font-size:1.0625rem}
.btn--sm{min-height:44px;padding:.7rem 1.1rem;font-size:.95rem}
.btn[aria-disabled="true"]{background:#5a4f53;pointer-events:none}

/* scroll progress: a hairline of gold */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;pointer-events:none}
.progress__bar{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--sky),var(--gold))}

/* fixed nav (shown after the hero; show/hide rules live in the .sh block below) */
.nav{position:fixed;top:0;left:0;right:0;z-index:55;background:rgba(244,239,231,.82);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:0 1px 0 var(--line)}
.nav__inner{max-width:none;margin:0 auto;padding:.7rem var(--pad-x);display:flex;align-items:center;gap:1.5rem;position:relative;font-family:var(--sans)}
.nav__brand{font-family:var(--mark);font-weight:600;font-style:italic;font-size:1.6rem;line-height:1;white-space:nowrap;color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.nav__brand span{font-family:var(--sans);font-style:normal;font-weight:500;font-size:.5em;letter-spacing:.24em;text-transform:uppercase;margin-left:.55em;transform:translateY(-.1em)}
.nav__links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:clamp(1.1rem,2.2vw,2.15rem)}
.nav__links a{font-size:1rem;padding:.6rem 0;position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:.4rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav__links a:hover::after,.nav__links a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.nav__right{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.nav__burger{display:none;width:44px;height:44px;margin-right:-8px;position:relative;border-radius:8px;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.nav__burger span{position:absolute;left:11px;width:22px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .55s cubic-bezier(.76,0,.24,1),opacity .3s ease,width .55s cubic-bezier(.76,0,.24,1)}
.nav__burger span:nth-child(1){top:17px}
.nav__burger span:nth-child(2){top:22px;width:15px}
.nav__burger span:nth-child(3){top:27px}
.nav__burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav__burger.is-active span:nth-child(2){opacity:0;transform:translateX(10px)}
.nav__burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
body.menu-open .nav{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
@media(max-width:900px){
  .nav__links{display:none}
  .nav__burger{display:block}
}
@media(max-width:400px){.nav__right .btn--sm{padding:.7rem .8rem}.nav__brand{font-size:1.45rem}.nav__brand span{display:none}}

/* 1 · PROMISE */
.promise{padding:var(--sec-y) 0 calc(var(--sec-y)*.8);background:linear-gradient(180deg,var(--cream) 0%,var(--linen) 100%)}
.promise__statement{font-size:clamp(1.9rem,3.9vw,3.5rem);line-height:1.18;margin-top:1.6rem;max-width:26ch}
.promise__statement .sw{opacity:1}
.promise__list{list-style:none;padding:0;margin-top:clamp(3.5rem,7vw,5.5rem);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.promise__list li{border-top:1px solid var(--line);padding-top:1.3rem}
.promise__k{display:block;font-family:var(--serif);font-size:1.6rem;line-height:1.15;margin-bottom:.55rem}
.promise__v{display:block;color:var(--ink-soft);font-size:1rem}
@media(max-width:980px){.promise__list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.promise__list{grid-template-columns:1fr}.promise__v{font-size:1.0625rem}}

/* 2 · TREATMENTS */
.treatments{padding:calc(var(--sec-y)*.6) 0 var(--sec-y)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.6vw,2.4rem);align-items:start}
.card:nth-child(2){margin-top:clamp(0rem,6vw,5rem)}
.card__img{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.card__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform}
.card__body{padding:1.5rem .2rem 0}
.card__num{font:500 .85rem/1 var(--sans);letter-spacing:.18em;color:var(--gold-ink)}
.card h3{font-size:clamp(1.9rem,2.5vw,2.3rem);margin:.7rem 0 .8rem}
.card p{color:var(--ink-soft);font-size:1.0625rem}
.tags{list-style:none;padding:0;margin-top:1.2rem;display:flex;flex-wrap:wrap;gap:.5rem}
.tag{font:500 .8rem/1 var(--sans);letter-spacing:.06em;padding:.55rem .8rem;border-radius:999px;border:1px solid var(--line);color:var(--ink-soft);background:rgba(255,255,255,.4)}
.tag--sky{background:var(--sky-soft);border-color:rgba(70,110,140,.22);color:#24394a}
@media(max-width:900px){
  .cards{grid-template-columns:1fr;max-width:520px;margin:0 auto;gap:3.5rem}
  .card:nth-child(2){margin-top:0}
}

/* 3 · YOUR FIRST VISIT (#results) */
.visit{padding:var(--sec-y) 0;background:linear-gradient(180deg,var(--linen) 0%,var(--sky-soft) 55%,var(--linen) 100%)}
.visit__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.visit__head{position:sticky;top:clamp(6rem,14vh,9rem)}
.visit__note{margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);max-width:40ch;color:var(--muted);font-size:1rem;font-style:normal}
.steps{position:relative;padding-left:clamp(2.6rem,5vw,3.6rem)}
.steps__rail{position:absolute;left:7px;top:.6rem;bottom:.6rem;width:1px;background:var(--line);overflow:hidden}
.steps__fill{position:absolute;inset:0;background:linear-gradient(180deg,var(--gold),var(--sky));transform-origin:0 0;transform:scaleY(1)}
.steps__list{list-style:none;padding:0;display:grid;gap:clamp(3rem,7vw,5.5rem)}
.step{position:relative}
.step__dot{position:absolute;left:calc(-1*clamp(2.6rem,5vw,3.6rem));top:.35rem;width:15px;height:15px;border-radius:50%;background:var(--linen);border:1px solid var(--gold);box-shadow:0 0 0 5px rgba(201,154,91,.12)}
.step__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}
.step__num{font:500 .8rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.step h3{font-size:clamp(2.1rem,3.6vw,3rem);margin:.8rem 0 .9rem}
.step p{color:var(--ink-soft);max-width:46ch}
@media(max-width:900px){
  .visit__grid{grid-template-columns:1fr}
  .visit__head{position:static}
}

/* 4 · EXPERIENCE (depth: scale-on-scroll frame + parallax detail) */
.exp{padding:var(--sec-y) 0}
.exp__hero{margin:0}
.exp__frame{aspect-ratio:16/9;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.exp__frame img{width:100%;height:100%;object-fit:cover;transform-origin:50% 60%;will-change:transform}
.exp__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,7vw,7rem);align-items:start;margin-top:clamp(-9rem,-10vw,-3rem)}
.exp__detail{margin:0 0 0 clamp(0rem,4vw,3.5rem);position:relative;z-index:2;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg);border:clamp(6px,.8vw,10px) solid var(--linen);background:var(--sand);box-shadow:0 40px 80px -40px rgba(60,40,20,.5);will-change:transform}
.exp__detail img{width:100%;height:100%;object-fit:cover}
.exp__copy{padding-top:clamp(4rem,13vw,13rem)}
.exp__list{list-style:none;padding:0;margin:2rem 0 2.4rem;display:grid}
.exp__list li{padding:1rem 0 1rem 2rem;border-top:1px solid var(--line);position:relative;color:var(--ink-soft)}
.exp__list li:last-child{border-bottom:1px solid var(--line)}
.exp__list li::before{content:"";position:absolute;left:.15rem;top:1.65rem;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:radial-gradient(circle,var(--gold) 0 2px,transparent 2.5px)}
@media(max-width:900px){
  .exp__frame{aspect-ratio:4/3}
  .exp__grid{grid-template-columns:1fr;margin-top:-4.5rem}
  .exp__detail{width:56%;max-width:300px;margin-left:auto;margin-right:6%}
  .exp__copy{padding-top:0}
}

/* 5 · REVIEWS */
.reviews{padding:var(--sec-y) 0;background:linear-gradient(180deg,var(--linen) 0%,var(--cream) 100%)}
.reviews__label{margin-top:1.2rem;font:500 .85rem/1.4 var(--sans);letter-spacing:.08em;color:var(--muted)}
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3.5rem)}
.review{margin:0;padding-top:1.6rem;border-top:1px solid var(--line);position:relative}
.review::before{content:"";position:absolute;top:-1px;left:0;width:48px;height:1px;background:var(--gold)}
.review p{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,2.1vw,1.85rem);line-height:1.3;color:var(--ink)}
.review cite{display:block;margin-top:1.3rem;font:500 .95rem/1 var(--sans);font-style:normal;letter-spacing:.06em;color:var(--muted)}
@media(max-width:900px){.reviews__grid{grid-template-columns:1fr;max-width:560px;margin:0 auto;gap:2.8rem}}

/* 6 · BOOK CTA over the meadow */
.cta{min-height:clamp(560px,92vh,860px);display:flex;align-items:flex-start;justify-content:center;overflow:hidden;background:var(--sky);color:var(--ink);text-align:center}
.cta__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.cta__media img{width:100%;height:100%;object-fit:cover;object-position:center 70%;transform:scale(1.1);will-change:transform}
.cta__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(222,233,241,.62) 0%,rgba(222,233,241,.2) 45%,rgba(222,233,241,0) 70%),linear-gradient(0deg,rgba(29,20,24,.18) 0%,rgba(29,20,24,0) 30%)}
.cta__inner{position:relative;z-index:1;max-width:820px;padding:clamp(5rem,13vh,9rem) var(--pad-x) 4rem}
.cta .eyebrow{justify-content:center;color:#5c4523}
.cta .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold)}
.cta__title{font-size:clamp(2.6rem,6vw,5.2rem);margin-top:1.2rem}
.cta__lede{margin:1.3rem auto 2.2rem;max-width:40ch;color:#2e2428;font-size:clamp(1.0625rem,1.4vw,1.2rem)}
.cta__demo{margin:1.2rem auto 0;max-width:44ch;font-size:1rem;color:var(--ink);background:rgba(250,247,242,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r);padding:.85rem 1.1rem}
@media(max-width:560px){.cta__media img{object-position:30% 75%}}

/* 7 · FOOTER */
.foot{background:var(--ink);color:rgba(250,247,242,.78);padding:clamp(4rem,8vw,6rem) 0 2rem}
.foot__top{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;padding-bottom:2.6rem;border-bottom:1px solid rgba(250,247,242,.14)}
.foot__logo{display:inline-flex;align-items:center;min-height:48px;font-family:var(--mark);font-weight:600;font-style:italic;font-size:clamp(2.6rem,6vw,4.2rem);line-height:1;color:var(--cream);white-space:nowrap}
.foot__logo span{font-family:var(--sans);font-style:normal;font-weight:500;font-size:.26em;letter-spacing:.26em;text-transform:uppercase;margin-left:.6em;transform:translateY(-.35em)}
.foot__note{max-width:38ch;font-size:1rem}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;padding:2.6rem 0}
.foot__hours{margin-top:.6rem;color:rgba(250,247,242,.6)}
@media(max-width:980px) and (min-width:701px){.foot__cols{grid-template-columns:repeat(2,1fr)}}
.foot__cols p,.foot__links{font-size:1rem;line-height:1.7}
.foot__h{font:500 .8rem/1 var(--sans)!important;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.foot__links{list-style:none;padding:0}
.foot__links a{display:inline-block;padding:.35rem 0;min-height:44px;line-height:2.1;transition:color .4s var(--ease)}
.foot__links a:hover{color:var(--cream)}
.foot__base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 2rem;padding-top:1.6rem;border-top:1px solid rgba(250,247,242,.14);font-size:.95rem;color:rgba(250,247,242,.6)}
@media(max-width:700px){
  .foot__cols{grid-template-columns:1fr;gap:1.6rem}
  .foot__links{display:flex;flex-wrap:wrap;gap:0 1.4rem}
  .foot__note,.foot__cols p,.foot__links,.foot__base{font-size:1rem}
}

/* phones: body copy never under 16px */
@media(max-width:560px){
  .card__img{aspect-ratio:1/1}
  body{font-size:1.0625rem}
  .card p,.step p,.exp__list li,.head__lede,.cta__lede{font-size:1.0625rem}
}
@media(max-height:520px) and (orientation:landscape){
  .cta{min-height:auto}
  .cta__inner{padding:4rem var(--pad-x) 3rem}
  .visit__head{position:static}
}

/* reveal base states (armed by JS, so no-JS / pre-JS shows everything) */
.is-armed [data-reveal],.is-armed [data-stagger]>*{opacity:0;transform:translateY(28px)}
[data-words] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-words] .w>span{display:inline-block}
.is-armed [data-words] .w>span{transform:translateY(105%)}
.is-armed [data-scrub-words] .sw{opacity:.16}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .is-armed [data-reveal],.is-armed [data-stagger]>*{opacity:1!important;transform:none!important}
  .is-armed [data-words] .w>span{transform:none!important}
  .is-armed [data-scrub-words] .sw{opacity:1!important}
  .card__img img,.exp__frame img,.cta__media img,.exp__detail{transform:none!important}
  .steps__fill{transform:none!important}
  .btn,.nav__links a::after{transition:none}
}

/* ───────────────────────────────────────────────────────────────────────────
   2026-10 HERO REVAMP: meadow meditation hero (looping video, top-anchored
   two-line masked headline, in-flow nav, wipe-in mobile menu). Namespaced
   .sh-* so it never collides with the section styles below the fold.
   ─────────────────────────────────────────────────────────────────────────── */
:root{
  --sh-ink:#1d1418;
  --sh-sky:#c9dbe9;
  --sh-nav-gap:clamp(1.1rem,2.2vw,2.15rem);
  --sh-pad-x:clamp(1.25rem,4vw,3.6rem);
  --sh-ease:cubic-bezier(.22,1,.36,1);
  --sh-ease-io:cubic-bezier(.76,0,.24,1);
  --sh-poster:url("assets/hero/sky.webp");
}
html{-webkit-text-size-adjust:100%}
body.menu-open{overflow:hidden}

/* the old fixed nav now only appears once the hero has scrolled away */
.nav{opacity:0;transform:translateY(-100%);pointer-events:none;transition:opacity .45s,transform .45s var(--sh-ease),background .4s,box-shadow .4s}
.nav.solid{opacity:1;transform:none;pointer-events:auto}

.sh-hero{position:relative;min-height:100svh;padding:0;overflow:hidden;display:flex;flex-direction:column;background:var(--sh-sky);color:var(--sh-ink)}
.sh-hero a{color:inherit;text-decoration:none}
.sh-media{position:absolute;inset:0;z-index:0;transform:scale(1.08);filter:blur(14px);opacity:0;animation:shMediaIn 1.9s var(--sh-ease) .1s forwards}
.sh-media img,.sh-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;display:block}
.sh-media img{z-index:1}
.sh-media video{z-index:2;opacity:0;transition:opacity 1.2s ease}
.sh-media video.is-ready{opacity:1}
.sh-media::before{content:"";display:none;position:absolute;inset:-8%;z-index:0;background:var(--sh-poster) center top/100% 100% no-repeat;filter:blur(30px) saturate(104%);transform:scale(1.05)}
.sh-media::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(to bottom,rgba(222,233,241,.55) 0%,rgba(222,233,241,.18) 34%,rgba(222,233,241,0) 58%),
             radial-gradient(120% 70% at 50% 0%,rgba(255,255,255,.35),rgba(255,255,255,0) 60%)}
@keyframes shMediaIn{to{transform:scale(1);filter:blur(0);opacity:1}}

.sh-nav{position:relative;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:clamp(1.1rem,2.4vw,1.9rem) var(--sh-pad-x);font-family:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
.sh-logo{display:inline-flex;align-items:center;min-height:44px;font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-style:italic;font-size:clamp(1.6rem,2.5vw,2rem);line-height:1;letter-spacing:.01em;white-space:nowrap}
.sh-logo span{font-family:"Instrument Sans",sans-serif;font-style:normal;font-weight:500;font-size:.5em;letter-spacing:.24em;text-transform:uppercase;margin-left:.55em;vertical-align:.3em}
.sh-links{display:flex;gap:var(--sh-nav-gap);list-style:none;margin:0;padding:0;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.sh-links a{font-size:clamp(.95rem,1.05vw,1.05rem);letter-spacing:.005em;padding:.15rem 0;display:inline-block;position:relative}
.sh-links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--sh-ease)}
.sh-links a:hover::after,.sh-links a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.sh-right{display:flex;align-items:center;gap:.6rem}
.sh-btn{display:inline-block;background:var(--sh-ink);color:#fff!important;border-radius:6px;padding:.72rem 1.15rem;font-size:.95rem;line-height:1;white-space:nowrap;transition:transform .45s var(--sh-ease),background-color .45s var(--sh-ease),box-shadow .45s var(--sh-ease)}
.sh-btn:hover{transform:translateY(-2px);background:#3b2c31;box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
.sh-btn:active{transform:translateY(0)}

.sh-burger{display:none;width:44px;height:44px;margin-right:-8px;position:relative;z-index:60;border-radius:8px;flex:0 0 auto;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit}
.sh-burger span{position:absolute;left:11px;width:22px;height:1.6px;background:var(--sh-ink);border-radius:2px;transition:transform .55s var(--sh-ease-io),opacity .3s ease,width .55s var(--sh-ease-io)}
.sh-burger span:nth-child(1){top:17px}
.sh-burger span:nth-child(2){top:22px;width:15px}
.sh-burger span:nth-child(3){top:27px}
.sh-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.sh-burger.is-active span:nth-child(2){opacity:0;transform:translateX(10px)}
.sh-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* headline: TOP-anchored in the open sky (deliberately no align-items centring) */
.sh-inner{position:relative;z-index:10;flex:1;display:flex;justify-content:center;padding:clamp(1.5rem,5vh,4.5rem) var(--sh-pad-x) 0;pointer-events:none}
.sh-headline{margin:0;font-weight:400;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2.9rem,min(5.6vw,9vh),6.2rem);line-height:1.06;letter-spacing:-.005em;text-align:center;color:var(--sh-ink)}
.sh-line{display:block;overflow:hidden;white-space:nowrap;padding-bottom:.06em;margin-bottom:-.06em}
.sh-line > span{display:block;transform:translateY(110%);opacity:0;animation:shLineUp 1.25s var(--sh-ease) forwards}
.sh-line:nth-child(1) > span{animation-delay:.55s}
.sh-line:nth-child(2) > span{animation-delay:.68s}
.sh-line em{font-style:italic}
@keyframes shLineUp{to{transform:translateY(0);opacity:1}}

.sh-rise{opacity:0;transform:translateY(-14px);animation:shRise .95s var(--sh-ease) forwards}
.sh-d1{animation-delay:.18s}.sh-d2{animation-delay:.26s}.sh-d3{animation-delay:.32s}.sh-d4{animation-delay:.38s}.sh-d5{animation-delay:.44s}.sh-d6{animation-delay:.52s}
@keyframes shRise{to{opacity:1;transform:translateY(0)}}

/* mobile menu */
.sh-menu{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;justify-content:center;padding:0 var(--sh-pad-x);background:rgba(240,234,236,.92);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);color:var(--sh-ink);
  clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .85s var(--sh-ease-io),visibility 0s linear .85s}
.sh-menu.is-open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .85s var(--sh-ease-io),visibility 0s linear 0s}
.sh-menu a{color:inherit;text-decoration:none}
.sh-menu ul{list-style:none;margin:0;padding:0}
.sh-menu li{overflow:hidden}
.sh-menu li a{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(2.35rem,12vw,3.4rem);line-height:1.22;padding:.12em 0;display:block;transform:translateY(115%);opacity:0;transition:transform .8s var(--sh-ease),opacity .6s ease}
.sh-menu.is-open li a{transform:translateY(0);opacity:1}
.sh-menu.is-open li:nth-child(1) a{transition-delay:.26s}
.sh-menu.is-open li:nth-child(2) a{transition-delay:.33s}
.sh-menu.is-open li:nth-child(3) a{transition-delay:.40s}
.sh-menu.is-open li:nth-child(4) a{transition-delay:.47s}
.sh-menu__rule{height:1px;background:rgba(29,20,24,.16);margin:2.2rem 0 0;transform:scaleX(0);transform-origin:left;transition:transform .9s var(--sh-ease)}
.sh-menu.is-open .sh-menu__rule{transform:scaleX(1);transition-delay:.5s}
.sh-menu__foot{margin-top:2.2rem;opacity:0;transform:translateY(22px);transition:transform .8s var(--sh-ease),opacity .6s ease;font-family:"Instrument Sans",sans-serif}
.sh-menu.is-open .sh-menu__foot{opacity:1;transform:none;transition-delay:.56s}
.sh-menu__foot .sh-btn{padding:.95rem 1.6rem;font-size:1rem}

/* desktop: drop the footage below the nav and feather its top edge into a blurred
   copy of the same frame, so the headline always sits in open sky above her head */
@media (min-width:901px) and (max-height:800px){
  .sh-media img,.sh-media video{height:calc(100% - 16vh)!important}
}
@media (min-width:901px){
  .sh-media::before{display:block}
  .sh-media img,.sh-media video{top:auto;bottom:0;height:calc(100% - 10vh);
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.7) 7%,#000 16%);
            mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.7) 7%,#000 16%)}
}
@media (max-width:900px){
  .sh-links,.sh-right .sh-btn{display:none}
  .sh-burger{display:block}
  .sh-media img,.sh-media video{object-position:center 60%}
  .sh-inner{align-items:flex-start}
  .sh-line{white-space:normal}
  .sh-headline{font-size:clamp(2.6rem,7vw,3.9rem);max-width:15ch}
}
@media (max-width:900px) and (orientation:portrait){
  .sh-media::before{display:block}
  .sh-media img,.sh-media video{top:auto;bottom:0;height:64svh;object-position:center 62%;
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.6) 9%,#000 20%);
            mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.6) 9%,#000 20%)}
}
@media (max-width:560px){
  .sh-headline{font-size:clamp(2.35rem,10.5vw,3.3rem);line-height:1.1;max-width:11ch}
  .sh-inner{padding-top:clamp(1.75rem,7vh,3rem)}
  .sh-media img,.sh-media video{object-position:center 58%}
}
@media (max-width:380px){.sh-headline{font-size:2.15rem}}
@media (max-height:520px) and (orientation:landscape){
  .sh-headline{font-size:clamp(1.4rem,3.3vw,1.9rem);max-width:none}
  .sh-line{display:inline-block;white-space:nowrap}
  .sh-line:first-child{margin-right:.28em}
  .sh-inner{padding-top:.75rem}
  .sh-menu li a{font-size:clamp(1.4rem,5vw,1.9rem)}
  .sh-menu__rule,.sh-menu__foot{margin-top:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  .sh-hero *,.sh-hero *::before,.sh-hero *::after,.sh-menu,.sh-menu *{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}
  .sh-media{opacity:1;transform:none;filter:none;animation:none}
  .sh-line > span,.sh-rise{transform:none;opacity:1;animation:none}
}

/* ───────────────────────────────────────────────────────────────────────────
   2026-10 MULTI-PAGE: shared nav states + inner pages (treatments, about, shop,
   contact, book). Same world as the home page: linen/sky/gold/ink, Instrument
   Serif headings, soft reveals. Inner pages set body.is-inner so the fixed nav
   is always visible there (on the home page it appears after the hero).
   ─────────────────────────────────────────────────────────────────────────── */
[hidden]{display:none!important}
.is-inner .nav{opacity:1;transform:none;pointer-events:auto}
.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.sh-menu li a[aria-current="page"]{font-style:italic;color:var(--gold-ink)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* small shared pieces */
.text-link{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;font:500 1rem/1.2 var(--sans);color:var(--ink);background:linear-gradient(currentColor,currentColor) 0 calc(100% - 10px)/100% 1px no-repeat}
.text-link::after{content:"\2192";transition:transform .5s var(--ease)}
.text-link:hover::after{transform:translateX(4px)}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(29,20,24,.35)}
.btn--ghost:hover{background:var(--ink);color:#fff;box-shadow:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;align-items:center}
.card__more{margin-top:.8rem}
.treatments__all{margin-top:clamp(2.5rem,5vw,3.5rem);display:flex;justify-content:center}
.treatments__all .btn{white-space:normal;text-align:center}
.sec{padding:var(--sec-y) 0}
.sec--cream{background:linear-gradient(180deg,var(--linen) 0%,var(--cream) 100%)}
.sec--sky{background:linear-gradient(180deg,var(--linen) 0%,var(--sky-soft) 55%,var(--linen) 100%)}
.concept-note{display:inline-block;margin-top:1.4rem;font:500 1rem/1.5 var(--sans);color:var(--muted);border:1px dashed rgba(29,20,24,.25);border-radius:999px;padding:.5rem 1.1rem;background:rgba(250,247,242,.7)}

/* page hero: a still from the meadow/linen world, headline in the open top area */
.ph{position:relative;min-height:clamp(540px,84svh,880px);display:flex;justify-content:center;overflow:hidden;background:var(--sky);color:var(--ink);text-align:center}
.ph__media{position:absolute;inset:0;z-index:0;transform:scale(1.06);filter:blur(10px);opacity:0;animation:shMediaIn 1.8s var(--ease) .05s forwards}
.ph__media img{width:100%;height:100%;object-fit:cover;object-position:center 70%}
.ph__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(222,233,241,.8) 0%,rgba(222,233,241,.62) 38%,rgba(222,233,241,.22) 58%,rgba(222,233,241,0) 74%),linear-gradient(0deg,rgba(244,239,231,.75) 0%,rgba(244,239,231,0) 16%)}
.ph--warm .ph__media::after{background:linear-gradient(180deg,rgba(244,239,231,.86) 0%,rgba(244,239,231,.55) 36%,rgba(244,239,231,0) 64%),linear-gradient(0deg,rgba(244,239,231,.75) 0%,rgba(244,239,231,0) 16%)}
.ph__inner{position:relative;z-index:1;max-width:900px;padding:clamp(7.5rem,17vh,10.5rem) var(--pad-x) 4rem}
.ph .eyebrow{justify-content:center;color:#5c4523;opacity:0;animation:phUp 1s var(--ease) .25s forwards}
.ph .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold)}
.ph__title{font-size:clamp(2.8rem,6.2vw,5.6rem);margin-top:1.1rem}
.ph__title em{font-style:italic}
.ph-line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.ph-line>span{display:block;transform:translateY(110%);opacity:0;animation:shLineUp 1.25s var(--ease) .4s forwards}
.ph-line:nth-child(2)>span{animation-delay:.52s}
.ph__lede{margin:1.3rem auto 0;max-width:44ch;color:#2e2428;font-size:clamp(1.0625rem,1.4vw,1.2rem);opacity:0;animation:phUp 1.2s var(--ease) .8s forwards}
@keyframes phUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.ph--split{flex-direction:column;align-items:stretch;min-height:0;padding-bottom:clamp(.5rem,2vw,1.5rem);background:linear-gradient(180deg,var(--sky-soft) 0%,var(--cream) 60%,var(--linen) 100%)}
.ph--split .ph__inner{margin:0 auto;padding-bottom:clamp(2.2rem,4vw,3.4rem)}
.ph__band{position:relative;width:calc(100% - 2*var(--pad-x));max-width:1400px;margin:0 auto;aspect-ratio:21/9;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow);opacity:0;transform:scale(1.03);filter:blur(10px);animation:shMediaIn 1.6s var(--ease) .35s forwards}
.ph__band img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.ph__band{aspect-ratio:4/3}}
.ph--plain{min-height:0;background:linear-gradient(180deg,var(--sky-soft) 0%,var(--cream) 70%,var(--linen) 100%)}
.ph--plain .ph__inner{padding-bottom:clamp(2.5rem,6vw,4.5rem)}
@media(max-width:560px){
  .ph{min-height:78svh}
  .ph--plain,.ph--split{min-height:0}
  .ph__inner{padding-top:7rem}
  .ph__title{font-size:clamp(2.5rem,11vw,3.3rem)}
}
@media(max-height:520px) and (orientation:landscape){
  .ph{min-height:auto}
  .ph__inner{padding:5.5rem var(--pad-x) 3rem}
  .ph__title{font-size:clamp(2rem,5vw,2.8rem)}
}

/* TREATMENTS page */
.cat-index{padding:clamp(2.5rem,5vw,3.5rem) 0;border-bottom:1px solid var(--line);background:var(--linen)}
.cat-index .eyebrow{justify-content:center;margin-bottom:1.2rem}
.cat-index .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold)}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:.6rem 1.15rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.55);font-size:1rem;transition:background-color .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease)}
.chip:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.tcat{padding:var(--sec-y) 0;scroll-margin-top:4rem}
.tcat--alt{background:linear-gradient(180deg,var(--linen) 0%,var(--sky-soft) 50%,var(--linen) 100%)}
.tcat__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
@media(min-width:901px){.tcat--flip .tcat__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.tcat--flip .tcat__aside{order:2}}
.tcat__aside{position:sticky;top:6.5rem}
.tcat__num{font:500 .85rem/1 var(--sans);letter-spacing:.18em;color:var(--gold-ink)}
.tcat__aside .title{margin-top:.9rem}
.tcat__img{margin-top:2rem;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.tcat__img img{width:100%;height:100%;object-fit:cover}
.tx{padding:2.3rem 0;border-top:1px solid var(--line);scroll-margin-top:5rem}
.tx:first-child{padding-top:0;border-top:0}
.tx h3{font-size:clamp(1.9rem,2.8vw,2.5rem)}
.tx__what{margin-top:.8rem;color:var(--ink-soft);max-width:58ch}
.tx__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem 1.6rem;margin:1.5rem 0 0}
.tx__facts div{border-top:1px solid var(--line);padding-top:.9rem}
.tx__facts dt{font:500 .8rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.tx__facts dd{margin:.45rem 0 0;color:var(--ink-soft);font-size:1rem;line-height:1.55}
.tx__cta{margin-top:1.5rem}
.tnote{max-width:60ch;margin:0 auto;text-align:center;color:var(--muted);font-size:1rem}
@media(max-width:900px){
  .tcat__grid{grid-template-columns:1fr}
  .tcat--flip .tcat__aside{order:0}
  .tcat__aside{position:static}
  .tcat__img{aspect-ratio:4/3;max-width:640px}
  .tx__facts{grid-template-columns:1fr}
  .tx:first-child{padding-top:2.3rem;border-top:1px solid var(--line)}
}

/* ABOUT page */
.story__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.story__copy p{color:var(--ink-soft);max-width:56ch}
.story__copy p+p{margin-top:1.2rem}
.story__copy .lead{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.3;color:var(--ink)}
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.25rem,2.4vw,2.2rem)}
.member{margin:0}
.member__img{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.member__img img{width:100%;height:100%;object-fit:cover}
.member h3{font-size:clamp(1.6rem,2vw,1.9rem);margin-top:1.2rem}
.member__role{display:block;margin-top:.35rem;font:500 .85rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.member p{margin-top:.8rem;color:var(--ink-soft);font-size:1rem}
.team__note{margin-top:2.4rem;text-align:center;color:var(--muted);font-size:1rem}
.space{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(1rem,2vw,1.6rem)}
.space figure{margin:0}
.space__frame{overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.space__frame img{width:100%;height:100%;object-fit:cover}
.space__a{grid-row:1 / span 2;display:flex;flex-direction:column}
.space__a .space__frame{flex:1;min-height:320px}
.space__b .space__frame,.space__c .space__frame{aspect-ratio:16/10}
.space figcaption{margin-top:.7rem;font-size:1rem;color:var(--muted)}
@media(max-width:980px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .story__grid{grid-template-columns:1fr}
  .space{grid-template-columns:1fr}
  .space__a{grid-row:auto}
  .space__a .space__frame{flex:none;aspect-ratio:4/3;min-height:0}
}
@media(max-width:560px){.team{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

/* SHOP page */
.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2.2rem,4vw,3.4rem) clamp(1.25rem,2.6vw,2.4rem)}
.product{display:flex;flex-direction:column}
.product__img{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg);background:var(--sand);box-shadow:var(--shadow)}
.product__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.product:hover .product__img img{transform:scale(1.035)}
.product__kind{margin-top:1.3rem;font:500 .8rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.product h3{font-size:clamp(1.7rem,2.2vw,2rem);margin-top:.5rem}
.product p{margin-top:.7rem;color:var(--ink-soft);font-size:1rem}
.product .text-link{margin-top:.6rem;align-self:flex-start}
.shop-note{margin-top:clamp(3rem,6vw,4.5rem);display:grid;grid-template-columns:auto 1fr;gap:1.2rem 2rem;align-items:baseline;padding:1.6rem 1.8rem;border-radius:var(--r-lg);background:var(--sky-soft);border:1px solid rgba(70,110,140,.18)}
.shop-note__k{font-family:var(--serif);font-size:1.6rem;line-height:1.1}
.shop-note p{color:#24394a;font-size:1rem;max-width:70ch}
@media(max-width:980px){.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.products{grid-template-columns:1fr;max-width:440px;margin:0 auto}.shop-note{grid-template-columns:1fr}}

/* CONTACT page */
.contact__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.info{display:grid;gap:2.2rem}
.info__block h2{font-size:clamp(1.8rem,2.4vw,2.2rem)}
.info__block p{color:var(--ink-soft)}
.info__block>p{margin-top:.6rem}
.info__links{list-style:none;padding:0;margin-top:.4rem}
.info__links a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);background:linear-gradient(currentColor,currentColor) 0 calc(100% - 9px)/100% 1px no-repeat}
.hours{width:100%;max-width:420px;margin-top:.8rem;border-collapse:collapse;font-size:1rem}
.hours th,.hours td{padding:.6rem 0;border-top:1px solid var(--line);text-align:left;font-weight:400;color:var(--ink-soft)}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:1px solid var(--line)}
.hours th{color:var(--ink)}
.hours td{text-align:right}
.panel{background:rgba(250,247,242,.8);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,3.5vw,2.6rem);box-shadow:var(--shadow)}
.panel h2{font-size:clamp(1.9rem,2.8vw,2.5rem)}
.panel__lede{margin-top:.6rem;color:var(--ink-soft)}
.form{display:grid;gap:1.2rem;margin-top:1.6rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.field{display:grid;gap:.45rem;min-width:0}
.field label,.field .label{font:500 1rem/1.3 var(--sans);color:var(--ink)}
.field .opt-hint{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;font:400 1rem/1.4 var(--sans);color:var(--ink);background:rgba(255,255,255,.85);border:1px solid rgba(29,20,24,.24);border-radius:var(--r);padding:.85rem 1rem;min-height:52px;transition:border-color .3s,box-shadow .3s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-ink);box-shadow:0 0 0 3px rgba(201,154,91,.3)}
.field select:disabled{opacity:.55}
.form__foot{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.form__small{font-size:1rem;color:var(--muted)}
.demo-msg{font-size:1rem;color:var(--ink);background:var(--sky-soft);border:1px solid rgba(70,110,140,.22);border-radius:var(--r);padding:.9rem 1.1rem}
.btn:disabled{background:#5a4f53;cursor:default;transform:none;box-shadow:none}
.map{margin:0}
.map__frame{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:#efe7d8}
.map__frame svg{display:block;width:100%;height:auto}
.map figcaption{margin-top:.8rem;font-size:1rem;color:var(--muted)}
.faq{max-width:820px;margin:0 auto}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:1rem 0;font-family:var(--serif);font-size:clamp(1.4rem,2vw,1.7rem);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:1.4rem;color:var(--gold-ink);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 1.3rem;color:var(--ink-soft);max-width:62ch}
@media(max-width:900px){.contact__grid{grid-template-columns:1fr}}
@media(max-width:560px){.form__row{grid-template-columns:1fr}}

/* BOOK page: stepper + gift card */
.book__grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.book__aside{position:sticky;top:6.5rem}
.stepper{scroll-margin-top:6rem}
.stepper__progress{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-bottom:1.8rem}
.stepper__progress li{display:flex;flex-direction:column;gap:.5rem;font:500 1rem/1.3 var(--sans);color:var(--muted)}
.stepper__progress li::before{content:"";height:3px;border-radius:3px;background:var(--line);transition:background-color .5s var(--ease)}
.stepper__progress li.is-current{color:var(--ink)}
.stepper__progress li.is-current::before{background:var(--gold)}
.stepper__progress li.is-done::before{background:linear-gradient(90deg,var(--gold),var(--sky))}
.stepper__panel{border:0;padding:0;margin:0;min-width:0}
.stepper:not(.is-js) .stepper__panel+.stepper__panel{margin-top:2.6rem}
.stepper__q{display:block;font-family:var(--serif);font-size:clamp(1.9rem,2.8vw,2.5rem);line-height:1.12;padding:0;outline:none}
.stepper__q:focus-visible{outline:2px solid var(--gold-ink);outline-offset:4px}
.stepper__sub{margin-top:.5rem;color:var(--ink-soft)}
.is-js .stepper__panel:not([hidden]){animation:phUp .7s var(--ease) both}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.4rem}
.opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.opt{position:relative;display:flex;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.opt__box{flex:1;display:flex;flex-direction:column;gap:.3rem;min-height:64px;padding:1rem 1.1rem;border:1px solid rgba(29,20,24,.18);border-radius:var(--r-lg);background:rgba(255,255,255,.6);transition:border-color .35s var(--ease),background-color .35s var(--ease),box-shadow .35s var(--ease)}
.opt__t{font:500 1.0625rem/1.3 var(--sans);color:var(--ink)}
.opt__d{font-size:1rem;line-height:1.45;color:var(--muted)}
.opt:hover .opt__box{border-color:rgba(29,20,24,.4)}
.opt input:checked+.opt__box{border-color:var(--ink);background:var(--cream);box-shadow:inset 0 0 0 1px var(--ink)}
.opt input:focus-visible+.opt__box{outline:2px solid var(--gold-ink);outline-offset:3px}
.stepper__label{display:block;margin-top:1.6rem;font:500 .8rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.stepper__label+.opts{margin-top:.8rem}
.stepper__nav{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:1.8rem}
.stepper__hint{margin-top:1rem;color:#8a3b2e;font-size:1rem}
.prefill{margin-bottom:1.4rem}
.summary{margin:1.4rem 0 0;display:grid}
.summary div{display:grid;grid-template-columns:10rem 1fr;gap:1rem;padding:.9rem 0;border-top:1px solid var(--line)}
.summary div:last-child{border-bottom:1px solid var(--line)}
.summary dt{font:500 .8rem/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.summary dd{margin:0;color:var(--ink)}
.stepper .demo-msg{margin-top:1.2rem}
.gift__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.gift__preview{position:sticky;top:6.5rem}
.gcard{position:relative;aspect-ratio:1.6;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(60,40,20,.55),0 1px 2px rgba(29,20,24,.08);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.2rem,3vw,2rem);isolation:isolate}
.gcard::before{content:"";position:absolute;inset:0;z-index:-1;background:url("assets/img/meadow.webp") center 72%/cover}
.gcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(244,239,231,.55) 0%,rgba(244,239,231,.1) 42%,rgba(244,239,231,.82) 78%,rgba(244,239,231,.9) 100%)}
.gcard[data-design="linen"]::before{background:radial-gradient(120% 90% at 85% 10%,rgba(201,154,91,.35),transparent 60%),repeating-linear-gradient(90deg,rgba(29,20,24,.025) 0 1px,transparent 1px 4px),repeating-linear-gradient(0deg,rgba(29,20,24,.02) 0 1px,transparent 1px 5px),var(--linen)}
.gcard[data-design="sky"]::before{background:radial-gradient(90% 70% at 20% 100%,rgba(201,154,91,.35),transparent 60%),linear-gradient(180deg,#bcd3e6 0%,var(--sky-soft) 60%,var(--cream) 100%)}
.gcard__mark{font-family:var(--mark);font-weight:600;font-style:italic;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1}
.gcard__mark span{font-family:var(--sans);font-style:normal;font-weight:500;font-size:.42em;letter-spacing:.24em;text-transform:uppercase;margin-left:.55em;vertical-align:.3em}
.gcard__to{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;overflow-wrap:anywhere}
.gcard__line{margin-top:.3rem;font-size:1rem;color:#2e2428}
.gcard__from{margin-top:.2rem;font-size:1rem;color:#2e2428;font-style:italic}
.gift__caption{margin-top:1rem;font-size:1rem;color:var(--muted)}
.swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.8rem}
.swatch .opt__box{padding:.6rem;gap:.55rem}
.swatch__chip{display:block;aspect-ratio:1.6;border-radius:8px;background:url("assets/img/meadow.webp") center 72%/cover}
.swatch__chip--linen{background:radial-gradient(120% 90% at 85% 10%,rgba(201,154,91,.35),transparent 60%),var(--linen);box-shadow:inset 0 0 0 1px var(--line)}
.swatch__chip--sky{background:linear-gradient(180deg,#bcd3e6 0%,var(--sky-soft) 60%,var(--cream) 100%)}
.gift fieldset{border:0;padding:0;margin:0;min-width:0}
.gift legend{padding:0}
@media(max-width:900px){
  .book__grid,.gift__grid{grid-template-columns:1fr}
  .book__aside,.gift__preview{position:static}
  .opts--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .opts,.opts--3{grid-template-columns:1fr}
  .summary div{grid-template-columns:1fr;gap:.3rem}
  .swatches{gap:.5rem}
  .stepper__progress{gap:.35rem}
}

@media(prefers-reduced-motion:reduce){
  .ph__media,.ph__band,.ph-line>span,.ph__lede,.ph .eyebrow,.is-js .stepper__panel:not([hidden]){animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .product__img img,.chip,.opt__box,.text-link::after{transition:none!important}
}
.gift__legend{font:500 1rem/1.3 var(--sans);color:var(--ink)}
button.text-link{border:0;padding:0;cursor:pointer;background-color:transparent}
/* phones: buttons, footer base line and footer links meet the 16px / 44px gates */
@media(max-width:900px){
  .btn--sm,.foot__base{font-size:1rem}
}
.foot__links a{min-width:44px}
.ph:not(.ph--split):not(.ph--plain) .ph__lede{text-shadow:0 0 18px rgba(234,240,244,.95),0 0 4px rgba(234,240,244,.8)}
@media(max-width:700px){.map__frame{aspect-ratio:4/3}.map__frame svg{height:100%}}
@media(max-height:520px) and (orientation:landscape){.ph__media::after{background:linear-gradient(180deg,rgba(222,233,241,.86) 0%,rgba(222,233,241,.74) 62%,rgba(222,233,241,.25) 86%,rgba(222,233,241,0) 100%)}}
@media(max-width:900px){.tcat__num{font-size:1rem}}
