:root{
  /* The brand palette used across its full range, not its palest corner. */
  --ground:#1E2619;        /* page */
  --raised:#2E3A22;        /* lifted surface */
  --pine:#2F3A28;
  --olive:#5C6B3F;        /* brand olive, kept exact for marks and accents */
  --olive-band:#46532F;   /* deeper olive for bands that carry body text (4.9:1+) */
  --sage:#8C9A72;
  --sage-lit:#96A47C;   /* WCAG-safe sage for small text on the dark ground (5.05:1) */
  --sand:#D9C9AC;
  --gold:#C69955;
  --paper:#F2EFE5;
  --paper-dim:#CBCDBC;
  --ink:#242B1F;           /* text on light sections */
  --ink-soft:#4A5340;
  --line:rgba(217,201,172,0.28);
  --line-dark:rgba(47,58,40,0.20);
  --serif:'Alegreya', Georgia, serif;
  --sans:'Alegreya Sans', system-ui, sans-serif;
  --gut:clamp(22px, 5vw, 72px);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:var(--sans); font-size:18.5px; line-height:1.62; font-weight:400;
  color:var(--paper); background:var(--ground); -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%; display:block;}
h1,h2,h3{font-family:var(--serif); font-weight:500; line-height:1.14; letter-spacing:-0.008em;}
.wrap{max-width:1180px; margin:0 auto; padding:0 var(--gut);}
.skip{position:absolute; left:-9999px; background:var(--sand); color:var(--ground); padding:12px 18px; z-index:300;}
.skip:focus{left:10px; top:10px;}

/* Masthead */
.top{background:var(--ground); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100;}
.top-in{display:flex; align-items:center; justify-content:space-between; gap:22px; padding:15px 0;}
.brand img{height:44px; width:auto;}
.nav{display:flex; align-items:center; gap:30px;}
.nav a{
  font-family:var(--sans); font-size:16.5px; font-weight:400; text-decoration:none;
  color:var(--paper-dim); padding:11px 0; border-bottom:1.5px solid transparent;
}
.nav a:hover{color:var(--paper); border-bottom-color:var(--sand);}
.nav a[aria-current]{color:var(--paper); border-bottom-color:var(--sand);}
.nav a.book{
  background:var(--sand); color:var(--ground); padding:11px 24px; border-radius:999px;
  font-weight:600; font-size:16px; border-bottom:1.5px solid var(--sand);
}
.nav a.book:hover{background:var(--paper); border-bottom-color:var(--paper); color:var(--ground);}
.burger{display:none; background:none; border:1px solid var(--line); border-radius:999px; padding:9px 15px; font:inherit; font-size:15px; cursor:pointer; color:var(--paper);}

/* Crisis */
.crisis{background:var(--raised); border-bottom:1px solid var(--line); font-size:16px;}
.crisis .wrap{padding:11px 0; display:flex; gap:9px; flex-wrap:wrap;}
.crisis b{font-weight:700; color:var(--sand);}
.crisis span{color:var(--paper-dim);}
.crisis a{color:var(--paper); font-weight:700; display:inline-block; padding:6px 9px; margin:-6px -3px; border-radius:999px; text-decoration:underline; text-underline-offset:3px;}
.crisis a:hover{background:rgba(242,239,229,0.12);}

/* Hero */
.hero{position:relative; padding:clamp(66px,9vw,124px) 0 clamp(58px,7.5vw,100px); overflow:hidden;}
.hero-art{position:absolute; inset:0 0 0 auto; width:min(58%, 900px); z-index:0;}
.hero-art img{width:100%; height:100%; object-fit:cover; object-position:58% 50%;}
/* the photograph dissolves into the page rather than butting against it */
.hero-art::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(92deg, var(--ground) 0%, rgba(30,38,25,0.97) 34%, rgba(30,38,25,0.66) 55%, rgba(30,38,25,0.12) 78%, rgba(30,38,25,0.24) 100%),
    linear-gradient(180deg, var(--ground) 0%, rgba(30,38,25,0.34) 9%, rgba(30,38,25,0) 26%, rgba(30,38,25,0) 72%, var(--ground) 100%);
}
.hero-in{position:relative; z-index:2;}
.hero-text{max-width:min(56ch, 54%);}
.hero h1{font-size:clamp(2.5rem,5.8vw,4.5rem); color:var(--paper); max-width:19ch; margin-bottom:28px;}
.hero .lede{font-size:clamp(1.08rem,1.7vw,1.32rem); font-weight:300; line-height:1.62; color:var(--paper-dim); max-width:54ch; margin-bottom:36px;}
.hero-acts{display:flex; flex-wrap:wrap; gap:14px;}
.btn{
  display:inline-block; text-decoration:none; font-family:var(--sans); font-weight:600;
  font-size:17px; padding:15px 32px; border-radius:999px; border:1.5px solid var(--sand);
  transition:background .18s ease, color .18s ease;
}
.btn-fill{background:var(--sand); color:var(--ground);}
.btn-fill:hover{background:var(--paper); border-color:var(--paper);}
.btn-ghost{color:var(--paper);}
.btn-ghost:hover{background:rgba(242,239,229,0.12);}

.hero-meta{margin-top:clamp(42px,5.5vw,66px); padding-top:26px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,58px);}
.hero-meta div{max-width:30ch;}
.hero-meta dt{font-family:var(--serif); font-size:1.14rem; font-weight:600; color:var(--sand); margin-bottom:3px;}
.hero-meta dd{font-size:16.5px; color:var(--paper-dim); font-weight:300;}

/* Bands */
.band{padding:clamp(56px,7.5vw,102px) 0;}
.band-air{padding:clamp(74px,10vw,146px) 0;}
.band-tight{padding:clamp(46px,5.5vw,76px) 0;}
.band-raised{background:var(--raised);}
.band-olive{background:var(--olive-band);}
.band-olive .lead-in p,.band-olive .mv-head p,.band-olive p{color:rgba(242,239,229,0.90);}
.band-olive .mv section{border-top-color:rgba(242,239,229,0.28);}
.band-olive .mv-head{border-bottom-color:rgba(242,239,229,0.28);}
.band-olive .mv h3{color:var(--sand);}
.band-sage{background:#3E4A2C;}
.band-sage .lead-in p,.band-sage p{color:rgba(242,239,229,0.88);}
.band-light{background:var(--sand); color:var(--ink);}
.band-light h2,.band-light h3{color:var(--pine);}
.band-light .lead-in p,.band-light p{color:var(--ink-soft);}
.band-light .statement p{color:var(--pine);}
.band-light .statement p span{color:#7A5A1C;}

.lead-in{max-width:62ch; margin-bottom:clamp(30px,3.6vw,48px);}
.lead-in h2{font-size:clamp(1.9rem,3.5vw,2.85rem); color:var(--paper); margin-bottom:18px;}
.band-light .lead-in h2{color:var(--pine);}
.lead-in p{font-size:clamp(1.02rem,1.35vw,1.16rem); font-weight:300; color:var(--paper-dim); line-height:1.68;}
.band-light .lead-in p{color:var(--ink-soft);}

/* Stance */
.stance{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:start;}
.stance .big{font-family:var(--serif); font-size:clamp(1.55rem,2.8vw,2.25rem); line-height:1.3; color:var(--paper); font-weight:500;}
.stance .big span{color:var(--sand);}
.stance p{font-size:1.05rem; font-weight:300; color:var(--paper-dim); line-height:1.72; margin-bottom:16px; max-width:56ch;}
.stance p:last-child{margin-bottom:0;}
.stance b{font-weight:600; color:var(--paper);}

/* Mission / vision */
.mv-head{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(26px,4vw,72px); align-items:start;
  padding-bottom:clamp(30px,3.6vw,50px); margin-bottom:clamp(36px,4.4vw,62px);
  border-bottom:1px solid var(--line);
}
.mv-head h2{font-size:clamp(1.95rem,3.6vw,2.9rem); color:var(--paper); max-width:13ch;}
.mv-head p{font-size:clamp(1.05rem,1.4vw,1.2rem); font-weight:300; color:var(--paper-dim); line-height:1.7;}
.mv{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4.6vw,76px);}
.mv h3{font-size:clamp(1.3rem,2vw,1.62rem); color:var(--sand); margin-bottom:16px;}
.mv p{font-family:var(--serif); font-size:clamp(1.24rem,2vw,1.62rem); line-height:1.4; color:var(--paper); font-weight:400;}
.mv p + p{margin-top:18px; font-size:1.02rem; font-family:var(--sans); font-weight:300; color:var(--paper-dim); line-height:1.7;}

/* Services */
.svc{border-top:1px solid var(--line);}
.svc a{display:grid; grid-template-columns:1.05fr 1.95fr; gap:clamp(16px,3vw,50px); padding:26px 0; border-bottom:1px solid var(--line); text-decoration:none; align-items:baseline;}
.svc a:hover{background:rgba(198,153,85,0.10);}
.svc a:hover h3{color:var(--sand);}
.svc h3{font-size:1.48rem; color:var(--paper);}
.svc p{font-size:1.01rem; font-weight:300; color:var(--paper-dim); line-height:1.62; max-width:54ch;}

/* Insurance */
.plans{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,62px);}
.plans h3{font-size:1.4rem; color:var(--pine); padding-bottom:10px; border-bottom:1px solid var(--line-dark); margin-bottom:4px;}
.plans li{list-style:none; padding:10px 0; border-bottom:1px solid rgba(47,58,40,0.10); font-size:1.01rem; font-weight:400; color:var(--ink-soft);}
.plans-note{margin-top:28px; font-size:1rem; font-weight:300; color:var(--ink-soft); max-width:66ch; line-height:1.68;}
.plans-note b{font-weight:600; color:var(--pine);}

/* People */
.folk{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,62px);}
.folk article{padding-top:22px; border-top:1px solid var(--line);}
.folk .role{font-family:var(--sans); font-size:15.5px; color:var(--sand); font-weight:400; margin-bottom:7px;}
.folk h3{font-size:1.62rem; color:var(--paper); margin-bottom:12px;}
.folk p{font-size:1.01rem; font-weight:300; color:var(--paper-dim); line-height:1.68; margin-bottom:12px; max-width:52ch;}
.folk .await{font-size:.95rem; color:var(--sage-lit);}
.open-note{margin-top:clamp(30px,4vw,46px); font-size:1rem; font-weight:300; color:var(--paper-dim); max-width:66ch; line-height:1.68;}

/* Close */
.close{display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(28px,5vw,66px); align-items:end;}
.close h2{font-size:clamp(2rem,4.2vw,3.2rem); color:var(--paper); max-width:16ch;}
.close p{margin-top:15px; font-weight:300; color:var(--paper-dim); max-width:46ch;}
.close-acts{display:flex; flex-wrap:wrap; gap:13px; align-items:flex-start;}

/* Footer */
footer{background:var(--ground); border-top:1px solid var(--line); color:var(--paper-dim); padding:54px 0 26px; font-size:16.5px;}
.f-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:36px; padding-bottom:30px; border-bottom:1px solid var(--line);}
.f-grid h3{font-family:var(--serif); font-size:1.2rem; color:var(--sand); font-weight:600; margin-bottom:10px;}
.f-grid a{display:block; padding:10px 0; text-decoration:none;}
.f-grid a:hover{color:var(--paper); text-decoration:underline;}
.f-mark{font-family:var(--serif); color:var(--paper); line-height:1; margin-bottom:14px;}
.f-mark .a{display:block; font-size:1.85rem; font-weight:500;}
.f-mark .b{display:block; font-family:var(--sans); font-size:15px; font-weight:400; color:var(--sand); margin-top:6px;}
.f-note{font-weight:300; line-height:1.6; max-width:42ch; font-size:15.5px;}
.f-base{padding-top:20px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:14.5px; color:var(--sage-lit);}
.f-base a{color:var(--sand);}

/* Focus & motion */
:focus-visible{outline:3px solid var(--sand); outline-offset:3px;}
.band-light :focus-visible{outline-color:var(--pine);}
.rise{opacity:0; transform:translateY(12px); transition:opacity .55s ease-out, transform .55s ease-out;}
.rise.seen{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important;}
  .rise{opacity:1 !important; transform:none !important;}
}

/* Responsive */
@media (max-width:900px){
  .hero{padding:0 0 0;}
  .hero-text{padding-top:clamp(34px,5vw,52px);}
  .hero-text{max-width:100%;}
  .hero-art{position:relative; inset:auto; width:100%; margin-top:0;}
  .hero-art img{height:clamp(230px,44vw,320px); object-position:58% 45%;}
  .hero-art::after{background:linear-gradient(180deg, rgba(30,38,25,0) 0%, rgba(30,38,25,0) 58%, rgba(30,38,25,0.55) 82%, var(--ground) 100%);}
  .hero-meta{margin-top:clamp(32px,5vw,46px);}
  .stance,.close{grid-template-columns:1fr;}
  .svc a{grid-template-columns:1fr; gap:7px;}
}
@media (max-width:780px){
  .mv,.mv-head,.plans,.folk{grid-template-columns:1fr;}
  .mv-head h2{max-width:100%;}
  .mv-head{padding-bottom:26px; margin-bottom:30px;}
}
@media (max-width:700px){
  .nav{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--ground); border-bottom:1px solid var(--line); padding:6px var(--gut) 18px;}
  .top.open .nav{display:flex;}
  .top-in{position:relative;}
  .nav a{padding:13px 0; border-bottom:1px solid var(--line);}
  .nav a.book{text-align:center; margin-top:12px; padding:14px 22px;}
  .burger{display:block;}
  .hero-meta{flex-direction:column; gap:18px;}
  .f-grid{grid-template-columns:1fr;}
}

/* ---------------- Inner-page hero ---------------- */
.page-hero{padding:clamp(56px,7.5vw,100px) 0 clamp(34px,4.5vw,58px); border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem); color:var(--paper); max-width:20ch; margin-bottom:18px;}
.page-hero p{font-size:clamp(1.04rem,1.5vw,1.22rem); font-weight:300; color:var(--paper-dim); max-width:58ch;}

/* ---------------- Detail blocks ---------------- */
.detail{border-top:1px solid var(--line); padding:30px 0;}
.detail:last-child{border-bottom:1px solid var(--line);}
.detail h3{font-size:1.5rem; color:var(--paper); margin-bottom:18px;}
.detail-cols{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,44px);}
.detail-cols h4{font-family:var(--serif); font-size:1.08rem; font-weight:600; color:var(--sand); margin-bottom:6px;}
.detail-cols p{font-size:1rem; font-weight:300; color:var(--paper-dim); line-height:1.66;}

/* ---------------- Prose (policy pages) ---------------- */
.prose{max-width:68ch;}
.prose h2{font-size:clamp(1.4rem,2.4vw,1.85rem); color:var(--paper); margin:38px 0 12px;}
.prose h2:first-child{margin-top:0;}
.prose p{font-size:1.05rem; font-weight:300; color:var(--paper-dim); line-height:1.75; margin-bottom:16px;}
.prose .flag{border-left:1px solid var(--sand); padding-left:16px; color:var(--sage-lit); font-size:.98rem;}

/* ---------------- Contact ---------------- */
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(32px,5vw,74px); align-items:start;}
.cinfo dt{font-family:var(--serif); font-size:1.14rem; font-weight:600; color:var(--sand); margin-bottom:3px;}
.cinfo dd{font-size:1.02rem; color:var(--paper-dim); font-weight:300; margin-bottom:22px;}
.cinfo dd a{color:var(--paper);}
.cmap{margin-top:10px; border:1px solid var(--line);}
.cmap iframe{display:block; width:100%; height:300px; border:0;}
.form-note{margin-top:18px; font-size:.98rem; color:var(--sage-lit); font-weight:300; line-height:1.65;}
.fgroup{margin-bottom:20px;}
.fgroup label{display:block; font-family:var(--serif); font-size:1.08rem; font-weight:600; color:var(--sand); margin-bottom:7px;}
.fgroup input,.fgroup select,.fgroup textarea{
  width:100%; padding:13px 15px; font-family:var(--sans); font-size:16.5px; font-weight:300;
  color:var(--paper); background:var(--raised); border:1px solid var(--line); border-radius:6px;
}
.fgroup textarea{min-height:120px; resize:vertical;}
.fgroup input:focus-visible,.fgroup select:focus-visible,.fgroup textarea:focus-visible{outline:3px solid var(--sand); outline-offset:2px;}

@media (max-width:820px){
  .detail-cols{grid-template-columns:1fr; gap:18px;}
}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;}
}

/* ---------------- Breath: a full-bleed quiet band ---------------- */
.breath{position:relative; height:clamp(200px,30vw,340px); overflow:hidden;}
.breath img{width:100%; height:100%; object-fit:cover; object-position:58% 50%;}
.breath::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, var(--ground) 0%, rgba(30,38,25,0.12) 30%, rgba(30,38,25,0.12) 70%, var(--ground) 100%);
}

/* ---------------- Statement: one large typographic moment ---------------- */
.statement{padding:clamp(56px,7.5vw,102px) 0;}
.statement .wrap{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:clamp(30px,5vw,80px); align-items:start;}
.statement p{
  font-family:var(--serif); font-size:clamp(1.9rem,4.4vw,3.4rem); line-height:1.16;
  color:var(--paper); max-width:17ch; font-weight:500; letter-spacing:-0.012em;
}
.statement p span{color:var(--sand);}
.statement .after{
  font-family:var(--sans); font-size:1.04rem; font-weight:300; color:var(--paper-dim);
  line-height:1.72; max-width:40ch;
  /* anchored to the display line's cap height, with its own rule so it never floats */
  margin-top:14px; padding-top:18px; border-top:1px solid rgba(242,239,229,0.30);
}

/* ---------------- Detail blocks: give the columns edges ---------------- */
.detail-cols > div{padding-left:20px; border-left:1px solid var(--line);}
.detail-cols > div:first-child{padding-left:0; border-left:0;}

/* ---------------- Offset sections, so not every band starts at the same x ---------------- */
.inset{padding-left:calc(var(--gut) + clamp(0px,6vw,110px));}

@media (max-width:900px){
  .detail-cols > div{padding-left:0; border-left:0;}
  .inset{padding-left:var(--gut);}
}

/* Statement stacks well before the other grids: a 0.75fr column below ~1080px
   becomes a thin ragged strip, which is the failure this layout exists to avoid. */
@media (max-width:1080px){
  .statement .wrap{grid-template-columns:1fr;}
  .statement p{max-width:22ch;}
  .statement .after{margin-top:22px; max-width:56ch;}
}

/* ---------------- Practice commitments ---------------- */
.triad{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,4vw,58px);}
.tcard{padding-top:20px; border-top:1px solid var(--sand);}
.tcard h3{font-size:clamp(1.18rem,1.8vw,1.42rem); color:var(--sand); margin-bottom:12px;}
.tcard p{font-size:1.01rem; font-weight:300; color:var(--paper-dim); line-height:1.7;}

/* the sage statement band needs its own padding, it is not a .band */
.statement.band-sage{padding-left:0; padding-right:0;}
@media (max-width:820px){
  .triad{grid-template-columns:1fr; gap:0;}
  .tcard{margin-top:34px;}
}

/* ---------------- Ship polish ---------------- */
:root{color-scheme:dark;}
::selection{background:var(--sand); color:var(--ground);}
h1,h2,h3,.statement p{text-wrap:balance;}
p{text-wrap:pretty;}
.btn:active{transform:translateY(1px);}
.hp{position:absolute; left:-9999px; height:0; overflow:hidden;}
.thanks-wrap{min-height:46vh; display:grid; align-content:center;}

/* ---------------- Insurance chips: 14 bordered rows become two compact clusters ---------------- */
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.chip{
  display:inline-block; padding:9px 17px; border-radius:999px;
  border:1px solid rgba(47,58,40,0.28); background:rgba(250,247,240,0.6);
  color:var(--ink); font-size:15.5px; font-weight:400; line-height:1.3;
}
.plans h3{margin-bottom:2px;}

/* ---------------- Hero consultation card (light object on the dark ground) ---------------- */
.hero-in{display:grid; grid-template-columns:1.1fr minmax(330px,430px); gap:clamp(28px,4.5vw,70px); align-items:center;}
.hero-text{max-width:56ch;}
.hero-card{
  background:var(--paper); color:var(--ink); color-scheme:light;
  border:1px solid var(--sand); border-radius:12px;
  padding:clamp(22px,2.4vw,30px) clamp(20px,2.2vw,28px);
}
.hero-card h2{font-size:1.32rem; color:var(--pine); margin-bottom:6px;}
.hc-sub{font-size:.95rem; font-weight:300; color:var(--ink-soft); margin-bottom:16px; line-height:1.55;}
.hero-card .fgroup{margin-bottom:14px;}
.hero-card .fgroup label{color:var(--pine);}
.hero-card .fgroup input,.hero-card .fgroup select{
  background:#FBF9F3; border:1px solid rgba(47,58,40,0.28); color:var(--ink);
}
.hero-card .btn{width:100%; text-align:center;}
.hero-card :focus-visible{outline-color:var(--pine);}
.hc-note{margin-top:12px; font-size:.9rem; font-weight:300; color:var(--ink-soft);}
.hc-note a{color:var(--pine); text-decoration:underline; text-underline-offset:2px;}

/* ---------------- Getting-started steps ---------------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,4vw,58px);}
.step{padding-top:20px; border-top:1px solid var(--sand);}
.step .n{font-family:var(--serif); font-size:1.05rem; color:var(--sand); margin-bottom:10px;}
.step h3{font-size:clamp(1.14rem,1.7vw,1.38rem); color:var(--paper); margin-bottom:10px;}
.step p{font-size:1rem; font-weight:300; color:var(--paper-dim); line-height:1.68;}

/* ---------------- Therapist spotlight ---------------- */
.spot{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,4.5vw,70px); align-items:start; padding-top:24px; border-top:1px solid var(--line);}
.spot h3{font-size:clamp(2rem,3.8vw,2.9rem); color:var(--paper); line-height:1.06;}
.spot .cred-line{font-family:var(--serif); font-size:1.16rem; color:var(--sand); margin-top:10px;}
.spot > div > p{font-size:1.02rem; font-weight:300; color:var(--paper-dim); line-height:1.7;}
.checks{margin:16px 0 22px;}
.checks li{list-style:none; position:relative; padding:7px 0 7px 26px; font-size:1.01rem; font-weight:300; color:var(--paper-dim);}
.checks li::before{content:"\2713"; position:absolute; left:0; top:7px; color:var(--sage-lit); font-weight:700;}
.folk.single{grid-template-columns:1fr; max-width:66ch; margin-top:clamp(28px,4vw,44px);}

@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;}
  .hero-card{max-width:520px;}
  .steps{grid-template-columns:1fr; gap:0;}
  .step{margin-top:26px;}
  .spot{grid-template-columns:1fr; gap:18px;}
}

/* ---------------- Founder bio ---------------- */
.bio{max-width:72ch;}
.bio p{font-size:1.03rem; font-weight:300; color:var(--paper-dim); line-height:1.75; margin-bottom:18px;}
.bio p:first-child{font-family:var(--serif); font-size:clamp(1.2rem,1.9vw,1.5rem); line-height:1.5; color:var(--paper); font-weight:400;}
.bio p:last-child{margin-bottom:0;}
.bio-sub{font-size:clamp(1.2rem,1.8vw,1.45rem); color:var(--sand); margin:clamp(30px,4vw,44px) 0 6px;}
.chips.on-dark .chip{background:rgba(242,239,229,0.06); border-color:var(--line); color:var(--paper-dim);}
.bio-cols{display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4vw,60px); margin-top:clamp(30px,4vw,44px);}
.bio-cols h3{font-size:clamp(1.2rem,1.8vw,1.45rem); color:var(--sand); margin-bottom:10px;}
.bio-cols p{font-size:1.01rem; font-weight:300; color:var(--paper-dim); line-height:1.7;}
.await a{color:inherit; text-decoration:underline; text-underline-offset:2px;}
@media (max-width:900px){ .bio-cols{grid-template-columns:1fr;} }

/* ---------------- Section variety ---------------- */
.centered .lead-in{margin-left:auto; margin-right:auto; text-align:center;}
.centered .lead-in p{margin-left:auto; margin-right:auto;}
.centered .plans h3{text-align:center;}
.centered .chips{justify-content:center;}
.centered .plans-note{margin-left:auto; margin-right:auto; text-align:center;}
.step{padding-top:0; border-top:0;}
.step .n{font-family:var(--serif); font-size:clamp(1.9rem,2.8vw,2.5rem); color:var(--sand); line-height:1; margin-bottom:12px;}

/* ---------------- Photo statement: display type set over the photograph ---------------- */
.photo-statement{position:relative; overflow:hidden;}
.photo-statement > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:62% 45%;}
.photo-statement::before{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(92deg, rgba(30,38,25,0.97) 0%, rgba(30,38,25,0.95) 34%, rgba(30,38,25,0.90) 54%, rgba(30,38,25,0.32) 70%, rgba(30,38,25,0.05) 85%, rgba(30,38,25,0.16) 100%);
}
.photo-statement .ps-in{
  position:relative;
  padding-top:clamp(76px,11vw,150px); padding-bottom:clamp(76px,11vw,150px);
}
.photo-statement .ps-in > p:first-child{
  font-family:var(--serif); font-size:clamp(1.9rem,4.4vw,3.4rem); line-height:1.16;
  color:var(--paper); max-width:17ch; font-weight:500; letter-spacing:-0.012em;
}
.photo-statement .ps-in > p:first-child span{color:var(--sand);}
.photo-statement .after{
  font-family:var(--sans); font-size:1.04rem; font-weight:300; color:var(--paper-dim);
  line-height:1.72; max-width:40ch; margin-top:14px; padding-top:18px; border-top:1px solid rgba(242,239,229,0.30);
}
@media (max-width:1080px){
  .photo-statement .ps-in > p:first-child{max-width:22ch;}
}

/* ================= Light-bodied architecture =================
   Dark is drama at the ends; the body of the site is warm light.
   Light chapters invert the component tokens in scope, so every
   existing component flips automatically. */
.band-paper,.band-cream{
  color:#242B1F;
  --paper:#242B1F;          /* display + headings become ink */
  --paper-dim:#4A5340;      /* body text becomes soft ink */
  --sand:#8A6524;           /* small accents become bronze (4.9:1 on paper) */
  --sage-lit:#5E6653;
  --line:rgba(47,58,40,0.22);
}
.band-paper{background:#F5F1E6;}
.band-cream{background:#ECE6D6; --sand:#755620;}
.band-pine{background:var(--pine);}

/* light-context form fields (contact page) */
.band-paper .fgroup input,.band-paper .fgroup select,.band-paper .fgroup textarea{
  background:#FDFBF5; border:1px solid rgba(47,58,40,0.28); color:#242B1F;
}
.band-paper .fgroup label{color:var(--pine);}
.band-paper :focus-visible{outline-color:var(--pine);}
.band-paper .form-note{color:#5E6653;}
.band-paper .prose .flag{color:#5E6653;}

/* services as cards; the first is the inverted feature */
.svc-cards{display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,24px);}
.svc-cards a{
  display:block; border:1px solid var(--line); border-radius:12px;
  padding:clamp(22px,2.6vw,30px); text-decoration:none;
  transition:border-color .18s ease, transform .18s ease;
}
.svc-cards a:hover{border-color:#8A6524; transform:translateY(-2px);}
.svc-cards h3{font-size:clamp(1.25rem,2vw,1.5rem); color:var(--paper); margin-bottom:8px;}
.svc-cards p{font-size:1rem; font-weight:300; color:var(--paper-dim); line-height:1.65;}
.svc-cards a.featured{background:var(--pine); border-color:var(--pine); color:#F2EFE5; --paper:#F2EFE5; --paper-dim:#CBCDBC;}
@media (max-width:700px){ .svc-cards{grid-template-columns:1fr;} }

/* full-bleed photos read as crisp chapter breaks between light sections */
.breath::after{background:none;}
@media (prefers-reduced-motion: no-preference){ .svc-cards a:hover{transform:translateY(-2px);} }

/* ================= Soft objects, wave seams =================
   The logo is a landscape of soft curves; the page borrows them.
   Chapter transitions become gentle waves, floating objects get
   real radius and a quiet warm shadow instead of hard hairlines. */
.seam{line-height:0; display:block;}
.seam svg{display:block; width:100%; height:clamp(30px,4.5vw,58px); margin-bottom:-1px;}
.seam.flip svg{transform:scaleX(-1);}

.svc-cards a{
  border:0; background:#FBF8F0; border-radius:18px;
  box-shadow:0 2px 18px rgba(47,58,40,0.09);
}
.svc-cards a:hover{border-color:transparent; transform:translateY(-3px); box-shadow:0 8px 26px rgba(47,58,40,0.14);}
.svc-cards a.featured{box-shadow:0 8px 28px rgba(47,58,40,0.22);}
.hero-card{border-radius:18px;}
.hero-card .fgroup input,.hero-card .fgroup select{border-radius:10px;}
.fgroup input,.fgroup select,.fgroup textarea{border-radius:10px;}
.cmap{border:0; border-radius:16px; overflow:hidden; box-shadow:0 2px 18px rgba(47,58,40,0.10);}
