/* ==========================================================================
   SJS Aesthetics : shared stylesheet
   Palette is taken from the logo — its ground is a flat #cdb6ab.
   Motif is a five-petal blossom + sprig, echoing the flowers in the logo.
   ========================================================================== */

:root{
  --cream:#faf6f3;
  --cream-2:#f4ebe5;
  --rose:#cdb6ab;
  --rose-mid:#dcc9c1;
  --rose-pale:#ece0d9;
  --rose-deep:#a8877a;
  --plum:#332826;
  --ink:#332826;
  --ink-soft:#6d5d58;
  --white:#fffdfb;
  --line:#e6d7d0;

  --r:22px;
  --r-sm:14px;

  --shadow-sm:0 2px 10px -3px rgba(51,40,38,.12);
  --shadow-md:0 20px 44px -26px rgba(51,40,38,.34);
  --shadow-lg:0 36px 70px -34px rgba(51,40,38,.46);

  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-h:80px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:110px;}

body{
  font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.7;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,.serif{font-family:'Instrument Serif',Georgia,serif;font-weight:400;letter-spacing:.2px;}
a{color:inherit;text-decoration:none;}
/* height:auto is load-bearing — the img tags carry width/height attributes, and
   without this the attribute height is used as a presentational hint, so any
   image whose width CSS overrides (logo badge, portrait) renders stretched. */
img{max-width:100%;display:block;height:auto;}
button{font:inherit;}

:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px;border-radius:3px;}

.wrap{max-width:1180px;margin:0 auto;padding:0 30px;}
.wrap-narrow{max-width:880px;margin:0 auto;padding:0 30px;}

.eyebrow{
  font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--rose-deep);font-weight:500;margin-bottom:16px;
}

/* --------------------------------------------------------------------------
   Blossom motif
   -------------------------------------------------------------------------- */
.blossom{width:22px;height:22px;flex:none;color:var(--rose-deep);}
.blossom-lg{width:54px;height:54px;}

/* Faint oversized cluster used as a corner watermark inside sections */
.wm{
  position:absolute;pointer-events:none;z-index:0;
  color:var(--rose);opacity:.16;
}
.wm-tr{top:-40px;right:-50px;width:260px;height:260px;transform:rotate(14deg);}
.wm-bl{bottom:-60px;left:-60px;width:300px;height:300px;transform:rotate(-160deg);}
.bg-plum .wm{color:var(--rose);opacity:.12;}
.bg-rose .wm{color:var(--white);opacity:.3;}

/* Sprig rule — a hairline with a blossom sitting on it */
.sprig{display:flex;align-items:center;gap:14px;margin-top:22px;}
.sprig:before{content:"";height:1px;width:54px;background:var(--rose-deep);opacity:.5;}
.sprig:after{content:"";height:1px;flex:1;max-width:150px;background:var(--rose-deep);opacity:.22;}
.bg-plum .sprig:before,.bg-plum .sprig:after{background:var(--rose);}

/* --------------------------------------------------------------------------
   Page transitions
   -------------------------------------------------------------------------- */
body{opacity:0;animation:pageIn .5s var(--ease) forwards;}
@keyframes pageIn{to{opacity:1;}}
body.is-leaving{opacity:0;transition:opacity .22s ease;}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.09s;}
.reveal.d2{transition-delay:.18s;}
.reveal.d3{transition-delay:.27s;}
.reveal.d4{transition-delay:.36s;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  body{opacity:1;animation:none;}
  body.is-leaving{opacity:1;}
  .reveal{opacity:1;transform:none;transition:none;}
  *,*:before,*:after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* --------------------------------------------------------------------------
   Buttons — soft pills, sentence case
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--plum);color:var(--white);
  padding:15px 34px;border-radius:100px;font-size:.92rem;letter-spacing:.02em;
  font-weight:400;line-height:1.3;border:1px solid var(--plum);
  cursor:pointer;text-align:center;
  transition:background .3s var(--ease),border-color .3s var(--ease),
             color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.btn:hover{background:var(--rose-deep);border-color:var(--rose-deep);
  transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(51,40,38,.55);}
.btn:active{transform:translateY(0);}

.btn-outline{background:transparent;color:var(--ink);border-color:var(--rose-deep);}
.btn-outline:hover{background:var(--rose-deep);border-color:var(--rose-deep);color:var(--white);}

.btn-light{background:var(--white);color:var(--plum);border-color:var(--white);}
.btn-light:hover{background:var(--rose);border-color:var(--rose);color:var(--plum);}

.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,253,251,.4);}
.btn-ghost:hover{background:var(--white);border-color:var(--white);color:var(--plum);}

.link-arrow{
  display:inline-flex;align-items:center;gap:10px;font-size:.92rem;
  letter-spacing:.03em;color:var(--rose-deep);
}
.link-arrow:after{content:"\2192";transition:transform .25s var(--ease);}
.link-arrow:hover:after{transform:translateX(6px);}

/* --------------------------------------------------------------------------
   Header / nav
   -------------------------------------------------------------------------- */
header{
  position:sticky;top:0;z-index:60;
  background:rgba(250,246,243,.88);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease),background .3s var(--ease);
}
header.scrolled{box-shadow:var(--shadow-sm);background:rgba(250,246,243,.96);}

nav{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:20px;}

.logo{display:flex;align-items:center;gap:12px;white-space:nowrap;}
.logo img{width:46px;height:46px;border-radius:50%;flex:none;}
.logo-txt{display:flex;flex-direction:column;line-height:1.05;}
.logo-txt b{font-family:'Instrument Serif',serif;font-size:1.3rem;font-weight:400;letter-spacing:.14em;}
.logo-txt i{font-style:italic;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-deep);}

.nav-links{display:flex;gap:32px;align-items:center;}
.nav-links a{
  font-size:.92rem;color:var(--ink-soft);
  position:relative;padding:4px 0;transition:color .22s var(--ease);
}
.nav-links a:not(.btn):after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--rose-deep);transform:scaleX(0);transform-origin:right;
  transition:transform .3s var(--ease);
}
.nav-links a:not(.btn):hover{color:var(--rose-deep);}
.nav-links a:not(.btn):hover:after{transform:scaleX(1);transform-origin:left;}
.nav-links a.active{color:var(--ink);}
.nav-links a.active:not(.btn):after{transform:scaleX(1);}
.nav-links a.btn{color:var(--white);padding:13px 28px;font-size:.86rem;}
.nav-links a.btn:hover{color:var(--white);}

.nav-toggle{
  display:none;background:none;border:none;cursor:pointer;
  width:42px;height:42px;position:relative;color:var(--ink);
}
.nav-toggle i{
  display:block;position:absolute;left:10px;width:22px;height:1.5px;
  background:currentColor;transition:transform .3s var(--ease),opacity .2s var(--ease);
}
.nav-toggle i:nth-child(1){top:15px;}
.nav-toggle i:nth-child(2){top:21px;}
.nav-toggle i:nth-child(3){top:27px;}
.nav-toggle[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] i:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* --------------------------------------------------------------------------
   Sections — heads are LEFT aligned, with a sprig rule
   -------------------------------------------------------------------------- */
section{padding:112px 0;position:relative;overflow:hidden;}
.sec-head{max-width:620px;margin-bottom:60px;position:relative;z-index:1;}
.sec-head h2{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.06;margin-bottom:18px;}
.sec-head h2 em{font-style:italic;color:var(--rose-deep);}
.sec-head p{color:var(--ink-soft);font-size:1.05rem;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head.center .sprig{justify-content:center;}
.sec-head.center .sprig:after{max-width:54px;}

.bg-white{background:var(--white);}
.bg-cream{background:var(--cream);}
.bg-cream-2{background:var(--cream-2);}
.bg-rose{background:var(--rose);}
.bg-rose .eyebrow{color:var(--plum);opacity:.7;}
.bg-rose .sec-head p{color:rgba(51,40,38,.78);}
.bg-plum{background:var(--plum);color:var(--rose-pale);}
.bg-plum h2,.bg-plum h3{color:var(--white);}
.bg-plum .sec-head p{color:rgba(236,224,217,.72);}
.bg-plum .eyebrow{color:var(--rose);}

.wrap,.wrap-narrow{position:relative;z-index:1;}

/* --------------------------------------------------------------------------
   Hero — asymmetric, logo badge on the right
   -------------------------------------------------------------------------- */
.hero{
  position:relative;padding:104px 0 112px;overflow:hidden;
  background:
    radial-gradient(90% 70% at 88% 8%, var(--rose-pale) 0%, rgba(236,224,217,0) 62%),
    linear-gradient(175deg, var(--white) 0%, var(--cream) 48%, var(--cream-2) 100%);
}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center;}
.hero h1{font-size:clamp(2.7rem,6.4vw,4.7rem);line-height:1.03;margin-bottom:24px;}
.hero h1 em{font-style:italic;color:var(--rose-deep);}
.hero p.lead{font-size:1.1rem;max-width:520px;margin-bottom:36px;color:var(--ink-soft);}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}

/* Logo disc */
.hero-badge{position:relative;display:flex;align-items:center;justify-content:center;}
.hero-badge img{
  width:100%;max-width:340px;border-radius:50%;
  box-shadow:var(--shadow-lg);
}
.hero-badge .wm{color:var(--rose-deep);opacity:.22;}
.hero-badge .b1{position:absolute;top:-6px;left:2%;width:74px;height:74px;color:var(--rose-deep);opacity:.5;transform:rotate(-18deg);}
.hero-badge .b2{position:absolute;bottom:2%;right:0;width:58px;height:58px;color:var(--rose-deep);opacity:.42;transform:rotate(22deg);}

/* Compact hero for interior pages */
.page-hero{
  position:relative;overflow:hidden;padding:78px 0 68px;
  background:
    radial-gradient(80% 90% at 92% -10%, var(--rose-pale) 0%, rgba(236,224,217,0) 60%),
    linear-gradient(170deg, var(--white) 0%, var(--cream) 60%, var(--cream-2) 100%);
  border-bottom:1px solid var(--line);
}
.page-hero h1{font-size:clamp(2.3rem,5.4vw,4rem);line-height:1.04;margin-bottom:18px;}
.page-hero h1 em{font-style:italic;color:var(--rose-deep);}
.page-hero p{max-width:620px;color:var(--ink-soft);font-size:1.05rem;}
.crumbs{font-size:.78rem;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:20px;}
.crumbs a:hover{color:var(--rose-deep);}

/* --------------------------------------------------------------------------
   Trust strip — rose, with blossom separators
   -------------------------------------------------------------------------- */
.trust{background:var(--rose);color:var(--plum);padding:22px 0;}
.trust .wrap{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 30px;}
.trust span{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;}
.trust .blossom{width:14px;height:14px;color:var(--white);opacity:.85;}

/* --------------------------------------------------------------------------
   About / split rows
   -------------------------------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center;}
.split-media{position:relative;}
.split-media img,.split-media .ph{
  border-radius:var(--r);box-shadow:var(--shadow-md);width:100%;object-fit:cover;
}
.split-media .b1{position:absolute;top:-26px;right:-18px;width:82px;height:82px;color:var(--rose-deep);opacity:.55;transform:rotate(16deg);}
.split-copy h2{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.08;margin-bottom:20px;}
.split-copy h2 em{font-style:italic;color:var(--rose-deep);}
.split-copy p{color:var(--ink-soft);margin-bottom:16px;}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px;
  padding-top:32px;border-top:1px solid var(--line);}
.stat b{display:block;font-family:'Instrument Serif',serif;font-size:2.2rem;line-height:1;color:var(--rose-deep);}
.stat span{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}

/* --------------------------------------------------------------------------
   Treatment menu — an editorial list, not a card grid
   -------------------------------------------------------------------------- */
.menu{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;}
.menu-item{
  display:grid;grid-template-columns:auto 1fr auto;gap:0 16px;align-items:baseline;
  padding:24px 4px;border-bottom:1px solid var(--line);
  transition:padding-left .3s var(--ease),border-color .3s var(--ease);
}
.menu-item:hover{padding-left:14px;border-color:var(--rose-deep);}
.menu-item .blossom{width:16px;height:16px;transform:translateY(3px);opacity:.75;
  transition:opacity .3s var(--ease),transform .3s var(--ease);}
.menu-item:hover .blossom{opacity:1;transform:translateY(3px) rotate(72deg);}
.menu-item h3{font-size:1.35rem;line-height:1.25;}
.menu-item p{grid-column:2;font-size:.88rem;color:var(--ink-soft);margin-top:4px;line-height:1.6;}
.menu-item .from{
  font-family:'Instrument Serif',serif;font-size:1.25rem;color:var(--rose-deep);white-space:nowrap;
}
.menu-foot{margin-top:52px;display:flex;flex-wrap:wrap;align-items:center;gap:22px 30px;}
.menu-foot p{color:var(--ink-soft);font-size:.92rem;}

/* --------------------------------------------------------------------------
   Results
   -------------------------------------------------------------------------- */
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.result-card{
  background:var(--white);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.result-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.result-media{aspect-ratio:4/5;overflow:hidden;background:var(--rose-pale);}
.result-media img{width:100%;height:100%;object-fit:cover;}
.result-body{padding:26px 26px 28px;}
.result-body h3{font-size:1.3rem;margin-bottom:8px;}
.result-body p{font-size:.9rem;color:var(--ink-soft);}
.result-body .meta{
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep);
}
.result-note{
  margin-top:34px;font-size:.86rem;color:var(--ink-soft);max-width:760px;
  background:var(--rose-pale);border-radius:var(--r-sm);padding:18px 22px;
}
.bg-plum .result-note{background:rgba(255,253,251,.07);color:rgba(236,224,217,.8);}

/* --------------------------------------------------------------------------
   Price list
   -------------------------------------------------------------------------- */
.price-nav{
  position:sticky;top:var(--nav-h);z-index:40;background:rgba(250,246,243,.95);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.price-nav-inner{
  display:flex;gap:10px;overflow-x:auto;padding:15px 30px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.price-nav-inner::-webkit-scrollbar{display:none;}
.chip{
  flex-shrink:0;padding:9px 20px;border:1px solid var(--line);border-radius:100px;
  font-size:.82rem;color:var(--ink-soft);white-space:nowrap;background:var(--white);
  transition:background .22s var(--ease),color .22s var(--ease),border-color .22s var(--ease);
}
.chip:hover{background:var(--plum);border-color:var(--plum);color:var(--white);}

.price-block{margin-bottom:62px;scroll-margin-top:160px;}
.price-block-head{margin-bottom:8px;}
.price-block-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);line-height:1.12;margin-bottom:10px;}
.price-block-head p{color:var(--ink-soft);font-size:.96rem;max-width:660px;}
.price-block-head .sprig{margin-top:18px;margin-bottom:26px;}

.price-list{display:flex;flex-direction:column;gap:0;}
.price-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:4px 16px;align-items:baseline;
  padding:22px 6px;border-bottom:1px solid var(--line);
  transition:padding-left .3s var(--ease),border-color .3s var(--ease);
}
.price-row:hover{padding-left:16px;border-color:var(--rose-deep);}
.price-row .blossom{width:15px;height:15px;transform:translateY(3px);opacity:.6;
  grid-column:1;grid-row:1;}
/* Placement is pinned explicitly: .cost spans both rows, so leaving any of
   these to auto-placement flips the name and the price around. */
.price-row .name{grid-column:2;grid-row:1;font-size:1.06rem;color:var(--ink);}
.price-row .dur{grid-column:2;grid-row:2;font-size:.86rem;color:var(--ink-soft);line-height:1.55;}
.price-row .cost{
  grid-column:3;grid-row:1 / span 2;align-self:center;text-align:right;
  font-family:'Instrument Serif',serif;font-size:1.55rem;color:var(--rose-deep);
  white-space:nowrap;
}
.price-note{
  margin-top:26px;font-size:.9rem;color:var(--ink-soft);
  background:var(--rose-pale);border-radius:var(--r-sm);padding:20px 24px;
}
.price-note b{color:var(--ink);font-weight:500;}

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.review-card{
  background:var(--white);border-radius:var(--r);padding:34px 32px;
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);position:relative;
}
.review-card .blossom{width:26px;height:26px;opacity:.5;margin-bottom:16px;}
.review-card p{color:var(--ink-soft);font-size:1rem;flex:1;font-style:italic;line-height:1.72;}
.review-card .who{margin-top:22px;font-size:.84rem;color:var(--ink-soft);}
.review-card .who b{color:var(--ink);font-weight:500;font-style:normal;}
.stars{color:var(--rose-deep);letter-spacing:.18em;font-size:.9rem;margin-bottom:14px;}

.rating-badge{
  display:inline-flex;align-items:center;gap:14px;background:var(--white);
  border-radius:100px;padding:14px 30px;margin-top:22px;box-shadow:var(--shadow-sm);
}
.rating-badge b{font-family:'Instrument Serif',serif;font-size:1.6rem;color:var(--rose-deep);}
.rating-badge span{font-size:.86rem;color:var(--ink-soft);}

/* --------------------------------------------------------------------------
   Why / values
   -------------------------------------------------------------------------- */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.why-card{
  background:rgba(255,253,251,.06);border:1px solid rgba(236,224,217,.16);
  border-radius:var(--r);padding:32px 28px;
}
.why-card .blossom{width:26px;height:26px;color:var(--rose);margin-bottom:18px;opacity:.9;}
.why-card h3{font-size:1.28rem;margin-bottom:10px;}
.why-card p{font-size:.92rem;color:rgba(236,224,217,.74);}

/* Steps (about page) — light variant of the same card */
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.step-card{
  background:var(--white);border-radius:var(--r);padding:32px 30px;box-shadow:var(--shadow-sm);
}
.step-card .n{
  font-family:'Instrument Serif',serif;font-size:1.9rem;color:var(--rose-deep);
  line-height:1;margin-bottom:14px;
}
.step-card h3{font-size:1.28rem;margin-bottom:10px;}
.step-card p{font-size:.92rem;color:var(--ink-soft);}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.contact-copy h2{font-size:clamp(2rem,4.4vw,2.9rem);line-height:1.08;margin-bottom:18px;}
.contact-copy p{color:var(--ink-soft);margin-bottom:16px;}

.info-row{display:flex;gap:16px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line);}
.info-row:first-of-type{border-top:1px solid var(--line);}
.info-row .blossom{width:18px;height:18px;transform:translateY(5px);opacity:.7;}
.info-row h4{font-size:1.05rem;margin-bottom:3px;}
.info-row p,.info-row a{font-size:.96rem;color:var(--ink-soft);}
.info-row a:hover{color:var(--rose-deep);}

.hours-box{background:var(--white);border-radius:var(--r);padding:36px 34px;box-shadow:var(--shadow-sm);}
.hours-box h3{font-size:1.55rem;margin-bottom:20px;}
.hours-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;
  border-bottom:1px solid var(--line);font-size:.95rem;}
.hours-row:last-of-type{border-bottom:none;}
.hours-row.today{color:var(--rose-deep);font-weight:500;}
.hours-row .closed{color:var(--ink-soft);}
.hours-cta{margin-top:28px;}

.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.policy-card{background:var(--white);border-radius:var(--r);padding:32px 30px;box-shadow:var(--shadow-sm);}
.policy-card .blossom{width:24px;height:24px;opacity:.6;margin-bottom:16px;}
.policy-card h3{font-size:1.28rem;margin-bottom:10px;}
.policy-card p{font-size:.92rem;color:var(--ink-soft);}

/* --------------------------------------------------------------------------
   Placeholder media (swap for real photos)
   -------------------------------------------------------------------------- */
.ph{
  background:linear-gradient(135deg,var(--rose-pale),var(--cream-2));
  border:1px dashed var(--rose);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--rose-deep);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;
  padding:24px;
}

/* --------------------------------------------------------------------------
   CTA band + footer
   -------------------------------------------------------------------------- */
.cta-band{text-align:center;}
.cta-band .sec-head{margin-left:auto;margin-right:auto;text-align:center;margin-bottom:34px;}
.cta-band .sprig{justify-content:center;}
.cta-band .sprig:after{max-width:54px;}
.cta-band .hero-cta{justify-content:center;}

footer{background:var(--plum);color:rgba(236,224,217,.7);padding:78px 0 32px;position:relative;overflow:hidden;}
.foot-top{display:grid;grid-template-columns:1.15fr 2fr;gap:58px;padding-bottom:48px;
  border-bottom:1px solid rgba(236,224,217,.14);}
.foot-brand .logo{margin-bottom:18px;}
.foot-brand .logo-txt b{color:var(--white);}
.foot-brand .logo-txt i{color:var(--rose);}
.foot-brand p{font-size:.92rem;max-width:330px;}
.foot-links{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.foot-col h4{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose);
  margin-bottom:16px;font-family:'Geist',sans-serif;font-weight:500;}
.foot-col a,.foot-col p{display:block;font-size:.92rem;margin-bottom:10px;color:rgba(236,224,217,.7);}
.foot-col a:hover{color:var(--white);}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding-top:26px;font-size:.82rem;color:rgba(236,224,217,.45);}
.credit a:hover{color:var(--rose);}

/* --------------------------------------------------------------------------
   Mobile booking bar
   -------------------------------------------------------------------------- */
.book-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:10px;
  padding:12px 16px;background:rgba(250,246,243,.97);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);transform:translateY(110%);
  transition:transform .3s var(--ease);
}
.book-bar.show{transform:none;}
.book-bar a{flex:1;padding:14px 12px;font-size:.84rem;}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media(max-width:1020px){
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .result-grid,.review-grid,.policy-grid,.step-grid{grid-template-columns:repeat(2,1fr);}
  .menu{grid-template-columns:1fr;gap:0;}
}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:48px;}
  .hero-badge{order:-1;}
  .hero-badge img{max-width:250px;}
  .hero-cta{justify-content:flex-start;}
}

@media(max-width:880px){
  /* The header sets backdrop-filter, which makes it the containing block for
     fixed children. So size the panel explicitly rather than with bottom:0. */
  .nav-links{
    position:fixed;top:var(--nav-h);left:0;right:0;
    height:calc(100vh - var(--nav-h));
    height:calc(100dvh - var(--nav-h));
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    background:var(--cream);padding:30px;gap:4px;
    opacity:0;visibility:hidden;transform:translateY(-12px);
    transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
    overflow-y:auto;
  }
  .nav-links.open{opacity:1;visibility:visible;transform:none;}
  .nav-links a{font-size:1.4rem;font-family:'Instrument Serif',serif;color:var(--ink);
    padding:15px 0;border-bottom:1px solid var(--line);}
  .nav-links a:not(.btn):after{display:none;}
  .nav-links a.btn{
    font-family:'Geist',sans-serif;font-size:.9rem;margin-top:24px;
    border-bottom:1px solid var(--plum);padding:16px 28px;
  }
  .nav-toggle{display:block;}
  body.nav-open{overflow:hidden;}

  .split,.contact-grid{grid-template-columns:1fr;gap:46px;}
  .split.flip .split-media{order:-1;}
  .split-media{max-width:470px;margin:0 auto;}
  .foot-top{grid-template-columns:1fr;gap:42px;}
  .book-bar{display:flex;}
  footer{padding-bottom:106px;}
}

@media(max-width:640px){
  section{padding:76px 0;}
  .result-grid,.review-grid,.why-grid,.policy-grid,.step-grid{grid-template-columns:1fr;}
  .result-card{max-width:470px;margin:0 auto;width:100%;}
  .hero{padding:76px 0 88px;}
  .wrap,.wrap-narrow{padding:0 20px;}
  .stats{grid-template-columns:1fr 1fr;}
  .foot-links{grid-template-columns:1fr 1fr;gap:32px;}
  .trust .wrap{gap:10px 20px;}
  .trust .blossom{display:none;}

  .price-row{padding:20px 4px;}
  .price-row .cost{font-size:1.35rem;}
  .price-nav-inner{padding:13px 20px;}
  .hours-box{padding:30px 26px;}
  .wm-tr,.wm-bl{width:180px;height:180px;}
  .hero-badge .b1,.hero-badge .b2{width:48px;height:48px;}
}
