/* Marsh Lane Therapy: still water at dusk, a lamp left on for the evening appointment.
   Cormorant Garamond for the quiet voice, Mulish for the practical bits. */
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Mulish";src:url(../fonts/mulish-var.woff2) format("woff2");font-weight:300 900;font-display:swap}
:root{
  --pond:#15302d; --pond-2:#1d3f3b; --deep:#0f2422; --mist:#e5ebe6; --mist-2:#f2f5f2; --linen:#fbfbf8;
  --reed:#6d8b72; --reed-d:#3f5c47; --lamp:#ebbb6c; --lamp-2:#f6dcac; --ink:#18282a; --soft:#4b5d5a;
  --line:rgba(24,40,42,.14);
  --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif; --sans:"Mulish",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --wrap:1180px; --gut:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--linen);color:var(--ink);font:400 17px/1.65 var(--sans);font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
img{display:block;max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
:focus-visible{outline:2px solid var(--lamp);outline-offset:3px;border-radius:8px}
.serif{font-family:var(--serif);font-weight:500}

.ctag{position:absolute;bottom:14px;right:var(--gut);z-index:30;color:rgba(229,235,230,.75);font-size:11.5px;line-height:1.2;border:1px solid rgba(229,235,230,.22);border-radius:999px;padding:5px 11px}
.ctag a{color:inherit}
.inner .ctag{bottom:auto;top:6px}

/* header */
.top{position:relative;background:var(--pond);color:var(--mist)}
.nav .wrap{display:flex;align-items:center;gap:30px;min-height:96px;padding-top:12px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo b{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1;letter-spacing:.005em}
.logo small{display:block;font-size:12.5px;opacity:.7;margin-top:3px;letter-spacing:.02em}
.links{display:flex;gap:4px;margin-left:auto}
.links a{text-decoration:none;font-size:15.5px;font-weight:600;padding:0 14px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;color:rgba(229,235,230,.88)}
.links a:hover{color:#fff;background:rgba(255,255,255,.06)}
.links a[aria-current]{color:var(--lamp)}
.call{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:15.5px;min-height:44px}
.call svg{flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;background:var(--lamp);color:var(--deep);font:800 16.5px/1 var(--sans);text-decoration:none;border:1.5px solid var(--lamp);cursor:pointer;transition:background .3s,color .3s,box-shadow .3s}
.btn:hover{background:var(--lamp-2);box-shadow:0 0 0 6px rgba(235,187,108,.18)}
.btn.line{background:transparent;color:inherit;border-color:currentColor}
.btn.line:hover{background:rgba(255,255,255,.06);box-shadow:none}
.btn.pond{background:var(--pond);border-color:var(--pond);color:var(--mist)}
.btn.pond:hover{background:var(--pond-2);box-shadow:0 0 0 6px rgba(21,48,45,.12)}
.btn.sm{min-height:46px;padding:0 22px;font-size:15px}

/* hero */
.hero{position:relative;overflow:hidden;padding:36px 0 0}
.hero::before{content:"";position:absolute;right:-10%;top:-30%;width:70%;height:140%;background:radial-gradient(closest-side,rgba(235,187,108,.16),rgba(235,187,108,0));pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.08fr 1fr;gap:64px;align-items:start}
.where{font-size:15px;font-weight:600;color:var(--lamp-2);display:flex;align-items:center;gap:10px}
.where svg{flex:none}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(50px,6.6vw,88px);line-height:.98;letter-spacing:-.012em;margin-top:22px;color:#f4f6f2}
.hero h1 em{font-style:italic;color:var(--lamp-2)}
.hero .sub{font-size:18.5px;line-height:1.6;color:rgba(229,235,230,.88);margin-top:24px;max-width:28em}
.hero .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.reeds{display:block;width:100%;height:120px;margin-top:-8px;color:var(--reed)}
.reeds path{stroke:currentColor;fill:none;stroke-linecap:round}
.water{height:46px;background:linear-gradient(var(--pond),var(--deep))}

/* booking card: the signature */
.book{background:var(--linen);color:var(--ink);border-radius:28px;padding:26px 26px 22px;box-shadow:0 40px 80px rgba(6,20,18,.45);position:relative}
.book h2{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.05}
.book .hint{font-size:13.5px;color:var(--soft);margin-top:4px}
.book fieldset{border:0;padding:0;margin:18px 0 0}
.book legend{font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--reed-d);margin-bottom:8px;padding:0}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt label{display:flex;flex-direction:column;gap:1px;border:1.5px solid var(--line);border-radius:14px;padding:9px 13px;cursor:pointer;min-height:44px;transition:border-color .2s,background .2s}
.opt label b{font-size:15px;font-weight:800;line-height:1.25}
.opt label span{font-size:13.5px;color:var(--soft)}
.opt input:checked+label{border-color:var(--pond);background:var(--mist-2);box-shadow:inset 0 0 0 1px var(--pond)}
.opt input:focus-visible+label{outline:2px solid var(--lamp);outline-offset:2px}
.days{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.days .opt label{align-items:center;padding:7px 4px;text-align:center}
.days .opt label b{font-size:13px}
.days .opt label span{font-family:var(--serif);font-size:24px;line-height:1;color:var(--ink)}
.days .opt input:disabled+label{opacity:.38;cursor:not-allowed;text-decoration:line-through}
.times{display:flex;flex-wrap:wrap;gap:8px;min-height:46px}
.slot{min-height:44px;padding:0 15px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:700 15px/1 var(--sans);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;transition:background .2s,border-color .2s}
.slot:hover{border-color:var(--pond)}
.slot[aria-pressed=true]{background:var(--lamp);border-color:var(--lamp);color:var(--deep)}
.sum{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px}
.sum p{font-size:14px;line-height:1.4;color:var(--soft);flex:1}
.sum p b{display:block;color:var(--ink);font-size:16px}
.sum .btn{flex:none}
.book .sample{position:absolute;top:22px;right:22px;font-size:11.5px;font-weight:700;color:var(--reed-d);border:1px dashed var(--reed);border-radius:999px;padding:3px 9px}

/* trust strip */
.strip{background:var(--deep);color:var(--mist)}
.strip ul{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.strip li{padding:20px 18px;font-size:14.5px;line-height:1.4;border-left:1px solid rgba(229,235,230,.12);display:flex;gap:10px;align-items:flex-start}
.strip li:first-child{border-left:0;padding-left:0}
.strip li b{display:block;color:#fff}
.strip li.slotted{border:1px dashed rgba(235,187,108,.5);border-radius:14px;margin:10px 0 10px 12px;padding:10px 14px;color:var(--lamp-2)}

/* sections */
.sec{padding:110px 0}
.mist{background:var(--mist)}
.h2{font-family:var(--serif);font-weight:500;font-size:clamp(40px,4.8vw,62px);line-height:1.02;letter-spacing:-.01em}
.h2 em{font-style:italic}
.lede{font-size:18.5px;line-height:1.65;color:var(--soft);max-width:34em;margin-top:16px}
.head{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:end;margin-bottom:48px}

.menu{display:grid;grid-template-columns:1fr 1fr;gap:0 64px}
.tr{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:24px 0;border-top:1px solid var(--line);align-items:baseline}
.tr h3{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1}
.tr .p{font-family:var(--serif);font-size:30px;line-height:1}
.tr .d{grid-column:1/-1;font-size:15.5px;color:var(--soft);max-width:30em}
.tr .meta{grid-column:1/-1;display:flex;gap:16px;align-items:center;margin-top:6px;flex-wrap:wrap}
.tr .dur{font-size:13.5px;font-weight:800;color:var(--reed-d);background:#fff;border-radius:999px;padding:4px 11px}
.tr a{font-weight:800;font-size:15px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--reed);min-height:44px;display:inline-flex;align-items:center}
.tr a:hover{text-decoration-color:var(--ink)}

.visit{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}
.visit .ph{border-radius:999px 999px 28px 28px;aspect-ratio:3/4;--ph:#8aa08d}
.timeline{position:relative;margin-top:36px}
.timeline::before{content:"";position:absolute;left:58px;top:10px;bottom:10px;width:1px;background:var(--line)}
.tl{display:grid;grid-template-columns:116px 1fr;gap:18px;padding:14px 0}
.tl .t{font-family:var(--serif);font-size:24px;line-height:1.1;text-align:center;background:var(--linen);position:relative;font-variant-numeric:lining-nums}
.tl .t small{display:block;font-family:var(--sans);font-size:11.5px;color:var(--soft);font-weight:700}
.tl h3{font-size:17px;font-weight:800}
.tl p{font-size:15.5px;color:var(--soft)}

.areas{background:var(--pond);color:var(--mist);position:relative;overflow:hidden}
.areas .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.areas .h2{color:#f4f6f2}
.areas .lede{color:rgba(229,235,230,.82)}
.check{background:rgba(255,255,255,.05);border:1px solid rgba(229,235,230,.16);border-radius:26px;padding:30px}
.check label{display:block;font-weight:700;font-size:15px;margin-bottom:10px}
.check .row{display:flex;gap:10px}
.check input{flex:1;min-width:0;min-height:52px;border-radius:999px;border:1.5px solid rgba(229,235,230,.3);background:transparent;color:#fff;padding:0 20px;font:400 17px var(--sans)}
.check input::placeholder{color:rgba(229,235,230,.55)}
.check input:focus{outline:none;border-color:var(--lamp)}
.answer{margin-top:16px;min-height:52px;font-size:16px;line-height:1.5}
.answer b{color:var(--lamp-2)}
.towns{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.towns span{border:1px solid rgba(229,235,230,.25);border-radius:999px;padding:6px 14px;font-size:14.5px}
.towns span.hit{background:var(--lamp);color:var(--deep);border-color:var(--lamp)}

.gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;align-items:end}
.gallery .ph{border-radius:22px}
.gallery .ph:nth-child(1){aspect-ratio:4/5;--ph:#9fb0a2}
.gallery .ph:nth-child(2){aspect-ratio:3/4;--ph:#b7a48a;border-radius:999px 999px 22px 22px}
.gallery .ph:nth-child(3){aspect-ratio:1/1;--ph:#8f9f9c}

.proof{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:56px}
.sl{border:1.5px dashed var(--reed);border-radius:22px;padding:28px;background:var(--mist-2);display:flex;flex-direction:column;gap:10px}
.sl .serif{font-size:27px;line-height:1.1}
.sl small{font-size:13px;font-weight:800;color:var(--reed-d)}

.policies{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:20px}
.policies div{padding:24px 24px 0 0}
.policies h3{font-size:16px;font-weight:800}
.policies p{font-size:15.5px;color:var(--soft)}

.close{background:var(--pond);color:var(--mist);text-align:center;padding:110px 0 120px;position:relative;overflow:hidden}
.close::before{content:"";position:absolute;left:50%;top:40%;width:900px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(235,187,108,.14),transparent);pointer-events:none}
.close .h2{color:#f4f6f2;position:relative}
.close p{position:relative;color:rgba(229,235,230,.85);margin-top:14px}
.close .acts{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px;position:relative}

.foot{background:var(--deep);color:rgba(229,235,230,.85);padding:64px 0 110px;font-size:15px}
.foot .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px}
.foot b.serif{font-size:28px;color:#f4f6f2;display:block;margin-bottom:8px}
.foot h4{font-size:13.5px;font-weight:800;color:var(--lamp-2);margin-bottom:8px}
.foot a{color:inherit}
.foot .fine{margin-top:40px;padding-top:20px;border-top:1px solid rgba(229,235,230,.14);font-size:13px;display:flex;gap:10px 28px;flex-wrap:wrap}
.foot .dash{border:1px dashed rgba(235,187,108,.45);border-radius:12px;padding:10px 14px;margin-top:14px;font-size:13.5px;color:var(--lamp-2)}

.mbar{display:none}

/* photos */
.ph{position:relative;overflow:hidden;background:var(--ph,#8aa08d);margin:0}
.ph img{width:100%;height:100%;object-fit:cover}
.ph-tag{position:absolute;left:14px;bottom:14px;background:rgba(15,36,34,.72);color:#f2f5f2;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px}
.ph.failed img{display:none}
.ph.failed::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.22),transparent 60%),linear-gradient(180deg,transparent 60%,rgba(15,36,34,.25))}
.ph.failed::after{content:attr(data-alt);position:absolute;left:18px;right:18px;bottom:46px;color:#fff;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.25}

/* inner pages */
.phead{background:var(--pond);color:var(--mist);padding:40px 0 90px;position:relative;overflow:hidden}
.phead::before{content:"";position:absolute;right:-10%;top:-40%;width:60%;height:160%;background:radial-gradient(closest-side,rgba(235,187,108,.14),transparent);pointer-events:none}
.phead h1{font-family:var(--serif);font-weight:500;font-size:clamp(48px,6vw,80px);line-height:1;color:#f4f6f2;position:relative}
.phead .lede{color:rgba(229,235,230,.85);position:relative}
.anchors{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px;position:relative}
.anchors a{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-radius:999px;border:1px solid rgba(229,235,230,.3);text-decoration:none;font-weight:700;font-size:15px}
.anchors a:hover{border-color:var(--lamp);color:var(--lamp-2)}
.lift{margin-top:-56px;position:relative}
.tcard{display:grid;grid-template-columns:320px 1fr;gap:48px;background:#fff;border-radius:28px;padding:28px;margin-bottom:22px;box-shadow:0 1px 0 var(--line);scroll-margin-top:20px}
.tcard .ph{border-radius:20px;aspect-ratio:4/5;--ph:#9fb0a2}
.tcard h2{font-family:var(--serif);font-weight:500;font-size:44px;line-height:1}
.tcard .row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 18px}
.tcard .row span{background:var(--mist);border-radius:999px;padding:5px 13px;font-weight:800;font-size:14px}
.tcard dl{display:grid;grid-template-columns:150px 1fr;gap:10px 22px;font-size:15.5px;margin-top:6px}
.tcard dt{font-weight:800}
.tcard dd{color:var(--soft)}
.tcard .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;align-items:center}
.ptable{width:100%;border-collapse:collapse;background:#fff;border-radius:24px;overflow:hidden}
.ptable caption{text-align:left;font-family:var(--serif);font-size:34px;padding:0 0 14px}
.ptable th,.ptable td{text-align:left;padding:18px 22px;border-top:1px solid var(--line);font-size:16px;vertical-align:top}
.ptable thead th{background:var(--mist-2);font-size:13.5px;font-weight:800;color:var(--reed-d);border-top:0}
.ptable td.n{font-family:var(--serif);font-size:28px;line-height:1;white-space:nowrap}
.ptable td small{display:block;color:var(--soft);font-size:14px}
.ptable td a{font-weight:800;min-height:44px;display:inline-flex;align-items:center}
.note{background:var(--mist);border-radius:22px;padding:26px 28px}
.note h3{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1;margin-bottom:8px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.bigbook{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.bigbook .book{box-shadow:0 30px 60px rgba(6,20,18,.18);border:1px solid var(--line)}

@media (max-width:960px){
  .hero .wrap{grid-template-columns:1fr;gap:36px}
  .strip ul{grid-template-columns:1fr 1fr}
  .strip li:nth-child(odd){border-left:0;padding-left:0}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .ctag{position:static;display:block;text-align:center;border:0;border-radius:0;border-bottom:1px solid rgba(229,235,230,.12);padding:8px}
  .nav .wrap{min-height:0;padding-top:12px;padding-bottom:4px;flex-wrap:wrap;gap:6px 10px}
  .logo b{font-size:25px}
  .logo small{font-size:11.5px}
  .call{margin-left:auto;font-size:0;width:44px;height:44px;border-radius:50%;border:1px solid rgba(229,235,230,.3);justify-content:center}
  .call svg{width:18px;height:18px}
  .nav .btn{display:none}
  .links{order:3;width:100%;margin:2px 0 0;justify-content:space-between}
  .links a{padding:0 6px;font-size:15px}
  .links a:first-child{padding-left:0}
  .hero{padding-top:18px}
  .where{font-size:13.5px}
  .hero h1{font-size:48px;margin-top:14px}
  .hero .sub{font-size:16.5px;margin-top:14px}
  .hero .acts{display:none}
  .book{padding:22px 18px 18px;border-radius:24px}
  .book h2{font-size:27px}
  .book .sample{position:static;display:inline-block;margin-top:10px}
  .seg{grid-template-columns:1fr 1fr}
  .opt label{padding:8px 11px}
  .opt label b{font-size:14px}
  .opt label span{font-size:12.5px}
  .days{grid-template-columns:repeat(6,1fr);gap:4px}
  .days .opt label span{font-size:21px}
  .sum{flex-direction:column;align-items:stretch}
  .reeds{height:70px}
  .strip ul{grid-template-columns:1fr}
  .strip li{border-left:0;padding:14px 0;border-top:1px solid rgba(229,235,230,.1)}
  .strip li.slotted{margin:8px 0}
  .sec{padding:72px 0}
  .head,.menu,.visit,.areas .wrap,.proof,.policies,.cols2,.bigbook{grid-template-columns:1fr;gap:28px}
  .head{margin-bottom:24px}
  .tr h3{font-size:25px}
  .visit .ph{max-width:300px}
  .tl{grid-template-columns:86px 1fr;gap:12px}
  .timeline::before{left:43px}
  .tl .t{font-size:21px}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery .ph:nth-child(1){grid-column:1/-1;aspect-ratio:4/3}
  .proof{margin-top:32px}
  .check{padding:22px}
  .check .row{flex-direction:column}
  .foot .grid{grid-template-columns:1fr;gap:28px}
  .mbar{display:flex;gap:8px;position:sticky;bottom:0;z-index:40;background:var(--deep);padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid rgba(229,235,230,.12)}
  .mbar .btn{flex:1;min-height:48px;padding:0 10px}
  .mbar .btn.line{color:var(--mist);flex:0 0 auto;padding:0 18px}
  .tcard{grid-template-columns:1fr;gap:20px;padding:18px}
  .tcard .ph{aspect-ratio:4/3}
  .tcard h2{font-size:36px}
  .tcard dl{grid-template-columns:1fr;gap:2px}
  .tcard dd{margin-bottom:10px}
  .ptable th,.ptable td{padding:14px 12px;font-size:15px}
  .ptable td.n{font-size:23px}
  .ptable thead{display:none}
  .ptable tr{display:grid;grid-template-columns:1fr auto;border-top:1px solid var(--line)}
  .ptable td{border:0;padding:10px 14px}
  .ptable td:nth-child(1){grid-column:1/2;padding-top:16px}
  .ptable td:nth-child(2){grid-column:2/3;grid-row:1;padding-top:16px;text-align:right}
  .ptable td:nth-child(3){grid-column:1/-1;padding-top:0}
  .ptable td:nth-child(4){grid-column:1/-1;padding-top:0}
  .phead{padding:28px 0 76px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
