:root{
    --ground:#F4F2EF; --surface:#FFFFFF; --sunk:#EAE6E1; --deep:#191715;
    --ink:#191715; --ink-2:#4E4842; --ink-3:#87807A;
    --line:#E4DFD8; --line-2:#D2CBC2;
    --accent:#7E2B33; --accent-2:#9A4048; --accent-soft:#F6EAE9;
    --serif:"Instrument Serif", Georgia, "Times New Roman", serif;
    --sans:"Public Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
    --r-xl:32px; --r-lg:22px; --r:14px; --r-sm:9px;
    --sh:0 1px 2px rgba(25,23,21,.04), 0 8px 24px -8px rgba(25,23,21,.10);
    --sh-lg:0 2px 4px rgba(25,23,21,.04), 0 24px 60px -18px rgba(25,23,21,.18);
    --wrap:1160px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
  img{max-width:100%;height:auto;display:block}
  a{color:var(--accent);text-decoration:none;transition:color .18s ease}
  a:hover{color:var(--accent-2)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

  h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.006em;text-wrap:balance;margin:0}
  h1{font-size:clamp(2.9rem,7vw,5.4rem);line-height:.98}
  h2{font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.06}
  h3{font-size:clamp(1.35rem,2.3vw,1.8rem);line-height:1.14}
  p{margin:0}
  .lede{font-size:clamp(1.05rem,1.5vw,1.19rem);color:var(--ink-2);max-width:58ch}
  .eyebrow{font-size:.71rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
  .muted{color:var(--ink-3);font-size:.93rem}

  .btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#FFF8F6;padding:14px 26px;font-size:.94rem;font-weight:600;border-radius:100px;white-space:nowrap;transition:background .18s ease,transform .18s ease,box-shadow .18s ease;border:0;cursor:pointer;font-family:var(--sans)}
  .btn:hover{background:var(--accent-2);color:#FFF8F6;transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(126,43,51,.6)}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
  .btn-ghost:hover{background:var(--surface);color:var(--ink);box-shadow:var(--sh)}
  .btn-light{background:#FBF8F5;color:var(--ink)}
  .btn-light:hover{background:#fff;color:var(--ink)}

  header{position:sticky;top:0;z-index:60;background:rgba(244,242,239,.82);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s ease,background .25s ease}
  header.stuck{border-bottom-color:var(--line);background:rgba(244,242,239,.94)}
  .bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0}
  .mark{font-family:var(--serif);font-size:clamp(1.7rem,2.6vw,2.15rem);letter-spacing:.15em;line-height:1;color:var(--ink)}
  nav{display:flex;gap:28px;font-size:.94rem;font-weight:500}
  nav a{color:var(--ink-2)}
  nav a:hover{color:var(--accent)}
  @media(max-width:900px){nav{display:none}header .btn{padding:11px 18px;font-size:.86rem}}

  /* hero */
  .hero{display:grid;grid-template-columns:1.02fr .98fr;gap:64px;align-items:center;padding:70px 0 84px}
  .hero-img{border-radius:var(--r-xl);height:auto;aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:var(--sh-lg)}
  .hero-actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}
  .pill-row{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
  .pill{background:var(--surface);border:1px solid var(--line);border-radius:100px;padding:7px 15px;font-size:.85rem;color:var(--ink-2);box-shadow:var(--sh)}
  @media(max-width:900px){.hero{grid-template-columns:1fr;gap:36px;padding:38px 0 52px}.hero-img{aspect-ratio:1/1}}

  /* stat band */
  .band{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh);overflow:hidden}
  .band-grid{display:grid;grid-template-columns:repeat(4,1fr)}
  .band-cell{padding:30px 28px;border-right:1px solid var(--line)}
  .band-cell:last-child{border-right:0}
  .band-cell strong{display:block;font-family:var(--serif);font-size:1.85rem;line-height:1.1;margin-bottom:4px}
  @media(max-width:900px){.band-grid{grid-template-columns:1fr 1fr}.band-cell{border-bottom:1px solid var(--line);padding:22px}.band-cell:nth-child(2n){border-right:0}.band-cell:nth-last-child(-n+2){border-bottom:0}}

  section{padding:88px 0}
  .sec-head{display:flex;flex-direction:column;gap:15px;max-width:64ch;margin-bottom:44px}


  /* treatments */
  .cards{display:flex;flex-direction:column;gap:22px}
  .card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh);overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;align-items:start}
  .card-media{position:sticky;top:74px;align-self:start}
  .card-media img{width:100%;height:auto;aspect-ratio:3/4;max-height:78vh;object-fit:cover}
  .card-body{padding:38px 40px}
  .card-copy{padding:38px 40px;display:flex;flex-direction:column;gap:14px}
  .card.solo{grid-template-columns:1fr}
  dl.facts{display:flex;flex-direction:column;gap:0;margin:18px 0 0}
  .fact{display:flex;gap:16px;font-size:.93rem;border-top:1px solid var(--line);padding:10px 0}
  .fact dt{color:var(--ink-3);min-width:118px;flex-shrink:0}
  .fact dd{margin:0;color:var(--ink-2)}
  table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
  caption{text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);padding:22px 0 10px}
  caption:first-of-type{padding-top:0}
  th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:0 0 9px;border-bottom:1px solid var(--line-2)}
  th:last-child,td:last-child{text-align:right}
  td{padding:12px 0;border-bottom:1px solid var(--line);font-size:.96rem}
  tr:last-child td{border-bottom:0}
  td:last-child{font-weight:700;color:var(--accent);white-space:nowrap}
  .tscroll{overflow-x:auto}
  @media(max-width:900px){.card{grid-template-columns:1fr}.card-body,.card-copy{padding:28px 24px}.card-media{position:static}.card-media img{aspect-ratio:4/3;max-height:none}}

  /* gallery */
  .gal{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .gal img{aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:var(--r-lg);box-shadow:var(--sh);transition:transform .35s ease}
  .gal img:hover{transform:translateY(-4px)}
  @media(max-width:900px){.gal{grid-template-columns:1fr 1fr;gap:12px}}

  /* practitioner */
  .prac{display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:center;background:var(--surface);border-radius:var(--r-xl);padding:44px;box-shadow:var(--sh)}
  .prac img{border-radius:var(--r-lg);aspect-ratio:4/5;object-fit:cover;width:100%}
  @media(max-width:900px){.prac{grid-template-columns:1fr;gap:28px;padding:24px}}

  /* visit */
  .visit{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .panel{background:var(--surface);border-radius:var(--r-xl);padding:38px 40px;box-shadow:var(--sh)}
  .rows{display:flex;flex-direction:column;margin-top:20px}
  .row{display:flex;gap:20px;border-top:1px solid var(--line);padding:12px 0;font-size:.96rem}
  .row span:first-child{color:var(--ink-3);min-width:140px}
  .chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
  .chip{border:1px solid var(--line-2);border-radius:100px;padding:7px 15px;font-size:.87rem;color:var(--ink-2)}
  @media(max-width:900px){.visit{grid-template-columns:1fr}.panel{padding:28px 24px}}

  .cta-wrap{background:var(--deep);border-radius:var(--r-xl);padding:66px 56px;display:flex;flex-wrap:wrap;gap:34px;align-items:center;justify-content:space-between;box-shadow:var(--sh-lg)}
  .cta-wrap h2{color:#FBF7F3}
  .cta-wrap p{color:#ADA49B;max-width:50ch}
  @media(max-width:900px){.cta-wrap{padding:36px 26px}}

  footer{background:var(--deep);color:#8A817A;padding:56px 0 64px;font-size:.9rem;margin-top:88px}
  .fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
  footer a{color:#8A817A}
  footer a:hover{color:#DCD2C8}
  .fcol{display:flex;flex-direction:column;gap:9px}
  .ft{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#5C554E;margin-bottom:4px}
  @media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}footer{margin-top:56px}}

  /* mobile sticky book */
  .dock{position:fixed;left:14px;right:14px;bottom:14px;z-index:70;display:none;gap:10px;background:rgba(25,23,21,.94);backdrop-filter:blur(10px);border-radius:100px;padding:9px 9px 9px 22px;align-items:center;justify-content:space-between;box-shadow:var(--sh-lg)}
  .dock span{color:#EFE8E1;font-size:.9rem;font-weight:500}
  @media(max-width:900px){.dock{display:flex}body{padding-bottom:78px}}

  .reveal{opacity:0;transform:translateY(14px)}
  .reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.22,.61,.36,1)}
  @media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}html{scroll-behavior:auto}.gal img:hover,.btn:hover{transform:none}}

/* skip link */
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:12px 20px;border-radius:0 0 var(--r-sm) 0;z-index:200}
.skip:focus{left:0;color:#fff}
/* editor content inside pages */
.entry h2{margin-top:36px}
.entry h3{margin-top:28px}
.entry p{margin-top:16px;color:var(--ink-2)}
.entry ul,.entry ol{margin-top:16px;color:var(--ink-2);padding-left:22px}
.entry li{margin-top:7px}
.entry img{border-radius:var(--r-lg);margin-top:24px}
.entry table{margin-top:24px}
nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0}

  /* film */
  .film{display:grid;grid-template-columns:.62fr 1.38fr;gap:52px;align-items:center}
  .film-media{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);background:var(--sunk);aspect-ratio:9/16}
  .film-media video{width:100%;height:100%;object-fit:cover;display:block}
  .film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.94);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(25,23,21,.3);transition:transform .2s ease,opacity .2s ease}
  .film-play:hover{transform:translate(-50%,-50%) scale(1.06)}
  .film-media.playing .film-play{opacity:0;pointer-events:none}
  .film-copy{display:flex;flex-direction:column;gap:16px}
  @media(max-width:900px){.film{grid-template-columns:1fr;gap:28px}.film-media{max-width:340px}}

  /* enquiry form */
  .enq{margin-top:24px}
  .enq-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .enq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .fld{display:flex;flex-direction:column;gap:7px}
  .fld-wide{grid-column:1/-1}
  .fld span{font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
  .fld input,.fld select,.fld textarea{font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--ground);border:1px solid var(--line-2);border-radius:var(--r);padding:13px 14px;width:100%;transition:border-color .16s ease,box-shadow .16s ease}
  .fld textarea{resize:vertical;min-height:110px}
  .fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .enq-foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:20px}
  .enq-msg{border-radius:var(--r);padding:13px 16px;font-size:.95rem;margin-bottom:18px}
  .enq-ok{background:#E9F1EA;color:#2C5735;border:1px solid #CBDFD0}
  .enq-bad{background:var(--accent-soft);color:var(--accent);border:1px solid #E4C9C7}
  @media(max-width:900px){.enq-grid{grid-template-columns:1fr}}
