
@font-face{font-family:'Cormorant';font-style:normal;font-weight:500 700;font-display:swap;src:url('/fonts/cormorant-var.woff2') format('woff2');}
@font-face{font-family:'Cormorant';font-style:italic;font-weight:500 600;font-display:swap;src:url('/fonts/cormorant-italic-var.woff2') format('woff2');}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/albert-sans-var.woff2') format('woff2');}
@font-face{font-family:'Albert Sans';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/albert-sans-italic.woff2') format('woff2');}

:root{
  --u: min(1vw, 1.6svh);
  --cream:#F6F2E9;
  --ivory:#FDFCF9;
  --pine:#35514A;
  --sage:#7E9384;
  --sage-deep:#5F7A6E;
  --olive:#A39B67;
  --olive-ink:#665F31;
  --beige:#E7DFCE;
  --ink:#2F423C;
  --display:'Cormorant', Georgia, serif;
  --body:'Albert Sans', 'Helvetica Neue', sans-serif;
  --fs-hero: clamp(2.8rem, calc(var(--u) * 5), 5.3rem);
  --fs-h2: clamp(2.15rem, calc(var(--u) * 3.45), 3.65rem);
  --fs-h3: clamp(1.45rem, calc(var(--u) * 2.05), 2.15rem);
  --fs-body: clamp(1.1rem, calc(var(--u) * 1.35), 1.3rem);
  --fs-small: clamp(0.95rem, calc(var(--u) * 1.1), 1.1rem);
  --space: clamp(4rem, calc(var(--u) * 8), 8rem);
}
@media (max-height: 780px){
  :root{
    --fs-hero: clamp(2.2rem, calc(var(--u) * 4.2), 4rem);
    --fs-h2: clamp(1.7rem, calc(var(--u) * 3), 2.8rem);
    --fs-body: clamp(1.02rem, calc(var(--u) * 1.3), 1.2rem);
    --space: clamp(3rem, calc(var(--u) * 6), 6rem);
  }
}
*{margin:0;padding:0;box-sizing:border-box;}
::selection{background:var(--sage);color:var(--ivory);}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
}
body{
  font-family:var(--body);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--ink);
  background:var(--cream);
  min-height:100svh;display:flex;flex-direction:column;
}
main{flex:1;}
a{color:var(--pine);text-decoration-thickness:1px;text-underline-offset:3px;white-space:nowrap;}
a:focus-visible,button:focus-visible{outline:3px solid var(--olive-ink);outline-offset:3px;border-radius:4px;}
.journey a:focus-visible,.journey button:focus-visible,footer a:focus-visible{outline-color:var(--olive);}
.faq-list summary:focus-visible{outline:3px solid var(--olive-ink);outline-offset:3px;border-radius:4px;}
img{max-width:100%;display:block;}
.skip{position:absolute;left:-999px;top:0;background:var(--pine);color:#fff;padding:.8rem 1.4rem;z-index:99;}
.skip:focus{left:1rem;top:1rem;}
.wrap{width:min(1240px, 92vw);margin-inline:auto;}

/* ---------- header ---------- */
header{
  background:var(--cream);
  border-bottom:1px solid rgba(53,81,74,.14);
  position:relative;
}
.nav{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:clamp(.9rem, calc(var(--u)*1.4), 1.4rem) 0;
}
.nav img{height:clamp(48px, calc(var(--u)*6), 72px);width:auto;}
.nav ul{display:flex;gap:clamp(.85rem, 1.45vw, 1.5rem);list-style:none;align-items:center;flex-wrap:wrap;}
.nav a{font-weight:500;text-decoration:none;font-size:var(--fs-small);letter-spacing:.02em;padding:.6rem 0;display:inline-block;}
.nav a.btn{padding:clamp(.75rem,calc(var(--u)*1),1rem) clamp(1.5rem,calc(var(--u)*2.2),2.2rem);}
.nav a:hover{color:var(--sage-deep);}
.btn{
  display:inline-block;background:var(--pine);color:var(--ivory);
  padding:clamp(.75rem,calc(var(--u)*1),1rem) clamp(1.5rem,calc(var(--u)*2.2),2.2rem);
  border-radius:999px;text-decoration:none;font-weight:600;font-size:var(--fs-small);
  letter-spacing:.02em;transition:background .25s ease, transform .25s ease;
  border:0;cursor:pointer;font-family:var(--body);
}
.btn:hover{background:#2a423c;transform:translateY(-2px);}
.btn.ghost{background:transparent;color:var(--pine);box-shadow:inset 0 0 0 2px var(--pine);}
.btn.ghost:hover{background:rgba(53,81,74,.08);}
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;padding:.6rem;
  min-width:44px;min-height:44px;align-items:center;justify-content:center;
  flex-direction:column;gap:6px;
}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--pine);border-radius:2px;transition:transform .3s ease, opacity .3s ease;}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(8px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-8px) rotate(-45deg);}
@media (max-width: 1100px){
  .nav-toggle{display:flex;}
  .nav nav{
    position:absolute;top:100%;left:0;right:0;z-index:60;
    background:var(--ivory);border-bottom:1px solid rgba(53,81,74,.14);
    display:none;box-shadow:0 18px 34px rgba(53,81,74,.12);
  }
  .nav nav.open{display:block;}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;padding:.6rem 4vw 1.2rem;}
  .nav li{border-bottom:1px solid rgba(53,81,74,.1);}
  .nav li:last-child{border-bottom:0;padding-top:1rem;}
  .nav ul a{display:block;padding:1rem .2rem;font-size:var(--fs-body);}
  .nav ul a.btn{text-align:center;padding:1rem 1.4rem;}
}

/* ---------- hero ---------- */
.hero{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem, 4vw, 5rem);
  align-items:center;
  min-height:min(88svh, 60rem);
  padding:calc(var(--space)*.5) 0 var(--space);
}
h1{
  font-family:var(--display);font-weight:600;font-size:var(--fs-hero);
  line-height:1.06;letter-spacing:-.01em;color:var(--pine);
  margin-bottom:1.6rem;text-wrap:balance;
}
h1 em{font-style:italic;color:var(--sage-deep);}
.hero p.lead{max-width:34rem;margin-bottom:2.2rem;}
.hero-ctas{display:flex;gap:1.1rem;flex-wrap:wrap;}
.hero-contact{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:1.2rem;font-size:var(--fs-small);}
.hero-contact a{font-weight:650;}
.hero-contact span{color:var(--olive-ink);}
.hero-proof{
  margin-top:1.6rem;font-size:var(--fs-small);color:var(--ink);
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
}
.hero-proof b{color:var(--pine);font-weight:600;}
.hero-proof .dot{color:var(--olive-ink);}
.arch{
  position:relative;justify-self:center;width:min(100%, 34rem);
}
.arch img{
  width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:60% 20%;
  border-radius:100vw 100vw 14px 14px;
}
.arch::before{
  content:"";position:absolute;inset:-14px;
  border:2px solid var(--olive);
  border-radius:100vw 100vw 18px 18px;
  opacity:.7;pointer-events:none;
}
.arch figcaption{
  width:fit-content;margin:1.9rem auto 0;
  background:var(--ivory);border:1px solid rgba(53,81,74,.15);
  border-radius:999px;padding:.55rem 1.3rem;font-size:var(--fs-small);
  white-space:nowrap;box-shadow:0 8px 24px rgba(53,81,74,.10);
}

/* ---------- section scaffolding ---------- */
section{padding:var(--space) 0;}
.sec-head{max-width:46rem;margin-bottom:clamp(2.4rem,calc(var(--u)*4),4rem);}
h2{
  font-family:var(--display);font-weight:600;font-size:var(--fs-h2);
  line-height:1.12;color:var(--pine);margin-bottom:1rem;text-wrap:balance;
}
h3{font-family:var(--display);font-weight:600;font-size:var(--fs-h3);color:var(--pine);line-height:1.2;}
.sprig{height:2px;width:5.5rem;background:var(--olive);border-radius:2px;margin:1.4rem 0 0;}

/* ---------- home: one-price statement ---------- */
.price-hero{background:var(--ivory);border-block:1px solid rgba(53,81,74,.12);}
.price-hero .wrap{
  display:grid;grid-template-columns:auto auto;gap:clamp(2.4rem,5vw,6rem);
  align-items:center;justify-content:center;
}
.price-big{
  font-family:var(--display);font-weight:600;color:var(--pine);
  font-size:clamp(5rem,calc(var(--u)*11),10.5rem);line-height:1;
}
.price-big .unit{font-family:var(--body);font-size:var(--fs-body);font-weight:500;color:var(--ink);}
.price-hero .script-note{margin-top:.4rem;}
.price-copy h2{margin-bottom:1.2rem;}
.price-copy p{max-width:36rem;}
.price-copy .others{
  margin:1.6rem 0 2rem;padding-left:0;list-style:none;display:grid;gap:.5rem;
  font-size:var(--fs-small);
}
.price-copy .others b{color:var(--pine);}

/* ---------- home: service doors ---------- */
.doors{list-style:none;border-top:1px solid rgba(53,81,74,.18);}
.doors li{border-bottom:1px solid rgba(53,81,74,.18);}
.doors a{
  display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2rem;
  padding:clamp(1.6rem,calc(var(--u)*2.6),2.6rem) .2rem;
  text-decoration:none;white-space:normal;
}
.doors .d-title{
  font-family:var(--display);font-weight:600;color:var(--pine);
  font-size:clamp(1.8rem,calc(var(--u)*2.9),3.1rem);line-height:1.15;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);display:inline-block;
}
.doors a:hover .d-title{transform:translateX(.55em);color:var(--sage-deep);}
.doors .d-sub{display:block;margin-top:.35rem;font-size:var(--fs-small);color:var(--ink);max-width:44rem;}
.doors .d-arrow{
  font-family:var(--display);color:var(--olive-ink);font-size:1.6em;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.doors a:hover .d-arrow{transform:translateX(.4em);}

/* ---------- membership arches (pricing page) ---------- */
.plans{background:var(--ivory);border-block:1px solid rgba(53,81,74,.12);}
.plan-grid{display:grid;grid-template-columns:1fr 1.18fr 1fr;gap:clamp(1.4rem,2.4vw,2.4rem);align-items:end;}
.plan{
  background:var(--cream);
  border:1px solid rgba(53,81,74,.16);
  border-radius:100vw 100vw 16px 16px;
  padding:clamp(2.2rem,calc(var(--u)*3.4),3.4rem) clamp(1.4rem,calc(var(--u)*2.2),2.2rem) clamp(1.8rem,calc(var(--u)*2.6),2.6rem);
  text-align:center;
  display:flex;flex-direction:column;gap:.9rem;align-items:center;
}
.plan.featured{
  background:var(--pine);color:var(--beige);border-color:var(--pine);
  padding-top:clamp(3rem,calc(var(--u)*4.4),4.6rem);
  padding-bottom:clamp(2.4rem,calc(var(--u)*3.2),3.2rem);
  box-shadow:0 24px 48px rgba(53,81,74,.18);
}
.plan.featured h3,.plan.featured .price{color:var(--ivory);}
.plan .age{font-size:var(--fs-small);font-weight:600;color:var(--olive-ink);}
.plan.featured .age{color:var(--beige);}
.plan p.price{font-family:var(--display);font-size:clamp(2.8rem,calc(var(--u)*4.3),4.3rem);font-weight:600;color:var(--pine);line-height:1;max-width:none;}
.plan.featured p.price{font-size:clamp(3.4rem,calc(var(--u)*5.2),5.2rem);}
.plan p.price .unit{font-family:var(--body);font-size:var(--fs-small);font-weight:500;}
.plan p.price .annot{font:inherit;}
.plan p{font-size:var(--fs-small);max-width:22rem;}
.plan .btn{margin-top:auto;}
.plan p.atlas-handoff{font-size:clamp(1rem,calc(var(--u)*1.08),1.1rem);line-height:1.5;color:var(--ink);margin-top:.15rem;}
.plan p.atlas-handoff a{font-weight:700;}
.plan.featured .btn{background:var(--beige);color:var(--pine);}
.plan.featured .btn:hover{background:var(--ivory);}
.plan.featured .script-note{color:var(--beige);}
.plan.featured p.atlas-handoff{color:var(--beige);}
.plan.featured p.atlas-handoff a{color:var(--ivory);}
.plans .foot{text-align:center;margin-top:2.2rem;font-size:var(--fs-small);}

/* ---------- pricing math table ---------- */
.rate-table{
  width:100%;max-width:46rem;border-collapse:collapse;margin:1.6rem 0 .6rem;
  font-size:var(--fs-small);
}
.rate-table caption{text-align:left;font-family:var(--display);font-weight:600;font-size:var(--fs-h3);color:var(--pine);padding-bottom:1rem;}
.rate-table th{text-align:left;font-weight:600;color:var(--pine);border-bottom:2px solid var(--olive);padding:.6rem .8rem .6rem 0;}
.rate-table td{border-bottom:1px solid rgba(53,81,74,.16);padding:.75rem .8rem .75rem 0;}
.rate-table td:last-child,.rate-table th:last-child{text-align:right;padding-right:0;}
.rate-table .num{font-variant-numeric:tabular-nums;}

/* ---------- services page bands ---------- */
.svc-band{
  border-top:1px solid rgba(53,81,74,.18);
  padding:clamp(2.2rem,calc(var(--u)*3.6),3.6rem) 0;
  display:grid;grid-template-columns:minmax(14rem,.6fr) 1.4fr;gap:clamp(1.6rem,3vw,4rem);
}
.svc-band:last-of-type{border-bottom:1px solid rgba(53,81,74,.18);}
.svc-band h2{font-size:clamp(1.7rem,calc(var(--u)*2.5),2.7rem);margin-bottom:0;}
.svc-band .k{font-size:var(--fs-small);color:var(--olive-ink);font-weight:600;margin-top:.5rem;}
.svc-band ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem clamp(1.4rem,2.4vw,2.6rem);font-size:var(--fs-small);align-content:start;}
.svc-band li{padding-left:1.5rem;position:relative;}
.svc-band li::before,.leaf-list li::before{
  content:"";position:absolute;left:0;top:.52em;width:.6em;height:.6em;
  background:var(--sage);border-radius:50% 50% 50% 0;transform:rotate(-45deg);
}
.svc-band .note{margin-top:1.1rem;font-size:var(--fs-small);max-width:44rem;}
.leaf-list{list-style:none;display:grid;gap:.7rem;}
.leaf-list li{padding-left:1.5rem;position:relative;}

/* ---------- veteran services ---------- */
.veterans-tease{background:var(--beige);border-block:1px solid rgba(53,81,74,.14);}
.veterans-tease .wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,4vw,5rem);align-items:center;}
.veterans-tease p{max-width:42rem;}
.veterans-tease .btn{margin-top:1.6rem;}
.veteran-hero{max-width:64rem;}
.veteran-hero .lead{max-width:48rem;}
.veteran-hero .hero-ctas{margin-top:2rem;}
.veteran-pairing{background:var(--ivory);border-block:1px solid rgba(53,81,74,.12);}
.veteran-pairing .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2.4rem,5vw,6rem);align-items:start;}
.care-lanes{border-top:1px solid rgba(53,81,74,.2);}
.care-lanes > div{padding:clamp(1.5rem,calc(var(--u)*2.2),2.2rem) 0;border-bottom:1px solid rgba(53,81,74,.2);}
.care-lanes h3{margin-bottom:.45rem;}
.veteran-access{background:var(--pine);color:var(--beige);}
.veteran-access h2,.veteran-access h3{color:var(--ivory);}
.veteran-access a{color:var(--beige);font-weight:600;}
.veteran-access a:focus-visible{outline-color:var(--olive);}
.veteran-access p + p{margin-top:1.1rem;}
.veteran-membership{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2.4rem,5vw,6rem);align-items:center;}
.veteran-membership p{max-width:48rem;margin-bottom:1.15rem;}
.honesty-block{border-block:2px solid var(--olive);padding:clamp(1.4rem,calc(var(--u)*2.2),2.2rem) 0;}
.honesty-block h3{margin-bottom:.7rem;}
.veteran-founder blockquote{max-width:34rem;}
.veteran-founder .wrap{grid-template-columns:1.2fr .8fr;}
.letter.veteran-founder img{width:100%;aspect-ratio:3/2;object-position:center 62%;}
@media (max-width:900px){
  .veterans-tease .wrap,.veteran-pairing .wrap,.veteran-membership,.veteran-founder .wrap{grid-template-columns:1fr;}
}

/* ---------- letter (light) ---------- */
.letter{background:var(--beige);border-block:1px solid rgba(53,81,74,.12);}
.letter .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.4rem,4vw,5rem);align-items:center;}
.letter img{border-radius:100vw 100vw 14px 14px;aspect-ratio:4/5;object-fit:cover;}
.letter h2{color:var(--pine);}
.letter blockquote{
  font-family:var(--display);font-size:clamp(1.3rem,calc(var(--u)*1.8),1.9rem);
  line-height:1.45;font-weight:400;margin:1.4rem 0 1.8rem;color:var(--ink);
}
.letter .sig{font-size:var(--fs-small);color:var(--olive-ink);font-weight:600;letter-spacing:.04em;}
.letter .btn{margin-top:2rem;}

/* ---------- visit / gallery ---------- */
.visit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.shot{margin:0;}
.shot .frame{
  aspect-ratio:4/3.4;border-radius:14px;overflow:hidden;position:relative;
  background:linear-gradient(150deg, var(--beige), #d8d2c0);
}
.shot .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.shot figcaption{margin-top:.7rem;font-size:var(--fs-small);color:var(--ink);}
.shot figcaption i{font-style:normal;color:var(--olive-ink);}
.about-team-section{display:grid;grid-template-columns:minmax(18rem,.7fr) minmax(0,1.3fr);gap:clamp(2rem,4vw,4.5rem);align-items:start;padding-top:clamp(2.5rem,calc(var(--u)*4),4.5rem);}
.about-team{margin:0;}
.about-team .frame{aspect-ratio:4/3.6;}
.about-team .frame img{object-position:center 30%;}
.visit-note{margin-top:1.6rem;font-size:var(--fs-small);color:var(--ink);max-width:52rem;}

/* ---------- testimonials ---------- */
.quotes{background:var(--ivory);border-block:1px solid rgba(53,81,74,.12);}
.q-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,2.4vw,2.6rem);}
.quote{padding:0 clamp(1.6rem,2.6vw,3rem);}
.quote:first-child{padding-left:0;}
.quote + .quote{border-left:1px solid rgba(53,81,74,.18);}
.quote p{font-family:var(--display);font-size:clamp(1.15rem,calc(var(--u)*1.5),1.55rem);line-height:1.5;color:var(--pine);margin-bottom:1.2rem;}
.quote cite{font-style:normal;font-size:var(--fs-small);font-weight:600;color:var(--olive-ink);}
svg.stars{display:block;margin-bottom:1rem;}
.g-badge{display:flex;align-items:center;gap:1rem;margin-top:2.2rem;font-size:var(--fs-small);}
.g-badge b{font-family:var(--display);font-size:1.6em;color:var(--pine);}

/* ---------- contact ---------- */
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.4rem,4vw,5rem);align-items:start;}
.c-list{list-style:none;display:grid;gap:1.3rem;margin-top:2rem;}
.c-list li{display:flex;gap:1rem;align-items:baseline;}
.c-list b{min-width:6.5rem;display:inline-block;color:var(--pine);}
.map{
  aspect-ratio:5/3.6;border-radius:16px;background:linear-gradient(140deg,var(--beige),#d9d3c2);
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px solid rgba(53,81,74,.16);padding:2rem;
}
.map p{max-width:20rem;font-size:var(--fs-small);}

/* ---------- shared page-end call to action ---------- */
.page-cta{background:var(--ivory);border-top:1px solid rgba(53,81,74,.12);text-align:center;}
.page-cta .wrap{max-width:46rem;}
.page-cta p{max-width:36rem;margin:0 auto;}
.page-cta .ctas{display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ---------- visit page ---------- */
.dir-card{background:var(--beige);border-radius:14px;padding:1.3rem 1.5rem;margin-top:2rem;font-size:var(--fs-small);max-width:34rem;}
.dir-card a{font-weight:600;}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,5rem);margin-top:clamp(2.4rem,calc(var(--u)*4),4rem);padding-top:clamp(2rem,calc(var(--u)*3),3rem);border-top:1px solid rgba(53,81,74,.16);}
.duo h2{font-size:var(--fs-h3);}
@media (max-width:900px){.duo{grid-template-columns:1fr;}}

/* ---------- about top ---------- */
.about-top{padding-top:calc(var(--space)*.55);}
.about-top .arch{align-self:center;}
.about-top h1{font-family:var(--display);font-weight:600;font-size:clamp(2.3rem,calc(var(--u)*4),4.4rem);line-height:1.1;color:var(--pine);letter-spacing:-.01em;margin-bottom:1rem;}
.about-top .lead{margin-bottom:1.8rem;max-width:40rem;}

/* ---------- footer ---------- */
footer{background:var(--pine);color:var(--beige);padding:clamp(2.4rem,calc(var(--u)*4),4rem) 0;}
footer .wrap{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:center;}
footer img{height:clamp(44px,calc(var(--u)*5.4),64px);width:auto;}
footer a{color:var(--beige);}
footer ul{list-style:none;display:flex;gap:1.8rem;flex-wrap:wrap;flex:1 1 auto;justify-content:center;min-width:0;}
footer a{padding:.5rem 0;display:inline-block;}
footer p{font-size:var(--fs-small);margin-left:auto;text-align:right;}
@media (max-width:960px){footer p{margin-left:0;text-align:left;}}

/* ---------- responsive ---------- */
@media (max-width: 960px){
  .hero{grid-template-columns:1fr;min-height:0;}
  .arch{width:min(100%,26rem);}
  .plan-grid{grid-template-columns:1fr;align-items:stretch;}
  .plan.featured{order:-1;}
  .price-hero .wrap{grid-template-columns:1fr;gap:1.6rem;}
  .svc-band{grid-template-columns:1fr;}
  .svc-band ul{grid-template-columns:1fr;}
  .q-grid{grid-template-columns:1fr;}
  .quote{padding:1.3rem 0;}
  .quote:first-child{padding-top:0;}
  .quote + .quote{border-left:none;border-top:1px solid rgba(53,81,74,.18);}
  .letter .wrap,.contact .wrap{grid-template-columns:1fr;}
  .visit-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 620px){
  .visit-grid{grid-template-columns:1fr;}
  .hero .arch{width:calc(100% - 28px);}
  .hero .arch figcaption{width:100%;white-space:normal;text-align:center;}
}

/* ---------- motion (only when prefers-reduced-motion allows) ---------- */
html.motion [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease var(--d,0s), transform .8s cubic-bezier(.2,.7,.2,1) var(--d,0s);}
html.motion [data-reveal].in{opacity:1;transform:none;}
html.motion .hload{opacity:0;transform:translateY(24px);}
html.motion.loaded .hload{opacity:1;transform:none;transition:opacity .9s ease var(--d,0s), transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s);}

html.motion .arch img{transform:scale(1.07);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .2s;}
html.motion.loaded .arch img{transform:scale(1);}
html.motion .letter img{overflow:hidden;}
.letter{overflow:hidden;}

/* ---------- wow layer (gated on html.motion) ---------- */
#veil{display:none;}
html.motion #veil{position:fixed;inset:0;background:var(--pine);display:grid;place-items:center;z-index:200;opacity:1;visibility:visible;transition:opacity .6s ease .1s, visibility 0s .75s;}
html.motion #veil img{height:clamp(56px,9svh,88px);width:auto;opacity:0;transform:translateY(10px);transition:opacity .45s ease .05s, transform .45s ease .05s;}
html.motion #veil img.veil-on{opacity:1;transform:none;}
html.motion.loaded #veil{opacity:0;visibility:hidden;}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.09;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .4 0 0 0 0 .36 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}
.hline{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em;}
.hline > span{display:inline-block;}
html.motion .hline > span{transform:translateY(112%);}
html.motion.loaded .hline > span{transform:none;transition:transform 1s cubic-bezier(.2,.7,.2,1) .15s;}
html.motion.loaded .hline:nth-child(2) > span{transition-delay:.28s;}
html.motion [data-reveal] img{transform:scale(1.06);transition:transform 1.3s cubic-bezier(.2,.7,.2,1);}
html.motion [data-reveal].in img{transform:none;}
.annot{position:relative;display:inline-block;}
.annot svg.ring{position:absolute;left:-9%;top:-16%;width:118%;height:132%;pointer-events:none;overflow:visible;}
.annot svg.ring path{fill:none;stroke:var(--olive);stroke-width:3;stroke-linecap:round;stroke-dasharray:640;stroke-dashoffset:0;vector-effect:non-scaling-stroke;}
html.motion .annot svg.ring path{stroke-dashoffset:640;}
html.motion .plan.featured.in .annot svg.ring path{animation:inkdraw 1.2s ease-out .55s forwards;}
html.motion .price-hero.in .annot svg.ring path{animation:inkdraw 1.2s ease-out .55s forwards;}
@keyframes inkdraw{to{stroke-dashoffset:0;}}
.script-note{font-family:var(--display);font-style:italic;font-weight:600;color:var(--olive-ink);font-size:clamp(1.25rem,calc(var(--u)*1.75),1.9rem);display:block;transform:rotate(-1.5deg);line-height:1.1;}
.plan.featured .script-note{color:var(--beige);}
.mq{overflow:hidden;background:var(--ivory);border-block:1px solid rgba(53,81,74,.12);padding:clamp(1rem,calc(var(--u)*1.5),1.5rem) 0;position:relative;}
.mq-pause{display:none;position:absolute;right:clamp(.6rem,1.5vw,1.4rem);top:50%;transform:translateY(-50%);width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(53,81,74,.25);background:var(--ivory);color:var(--pine);cursor:pointer;align-items:center;justify-content:center;padding:0;}
html.motion .mq-pause{display:inline-flex;z-index:2;}
html.motion .mq::after{content:"";position:absolute;top:0;right:0;bottom:0;width:9rem;background:linear-gradient(to left, var(--ivory) 42%, rgba(253,252,249,0));pointer-events:none;}
.mq-pause svg{display:block;}
.mq-pause .ic-play{display:none;}
.mq-pause[aria-pressed="true"] .ic-play{display:block;}
.mq-pause[aria-pressed="true"] .ic-pause{display:none;}
html.motion .mq.paused .mq-track{animation-play-state:paused;}
@media (max-width:480px){main p a{white-space:normal;}}
.mq-track{display:flex;width:max-content;align-items:baseline;}
.mq-track > span{display:inline-flex;align-items:baseline;}
.mq-track q,.mq-track i{margin-right:clamp(2.5rem,4vw,4.5rem);}
html.motion .mq-track{animation:mqloop 75s linear infinite;}
.mq:hover .mq-track{animation-play-state:paused;}
@keyframes mqloop{to{transform:translateX(-50%);}}
.mq q{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,calc(var(--u)*1.7),1.85rem);color:var(--pine);white-space:nowrap;quotes:'\201C' '\201D';}
.mq i{font-style:normal;color:var(--olive-ink);font-size:1.1em;}

/* ---------- subpage layer ---------- */
.page-hero{padding:calc(var(--space)*.6) 0 calc(var(--space)*.35);}
.page-hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.3rem,calc(var(--u)*4),4.4rem);line-height:1.1;color:var(--pine);letter-spacing:-.01em;text-wrap:balance;max-width:20em;}
.page-hero .lead{max-width:44rem;margin-top:1rem;}
.crumb{font-size:var(--fs-small);margin-bottom:1rem;}
.crumb a{font-weight:500;}
.prose{max-width:62rem;}
.prose p{margin-bottom:1.15rem;}
.prose h2{margin-top:clamp(2rem,calc(var(--u)*3),3rem);}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,4vw,5rem);align-items:start;}
.split .arch{position:relative;flex:none;min-height:0;width:100%;border-radius:100vw 100vw 12px 12px;overflow:visible;}
.split .arch img{position:static;width:100%;height:auto;aspect-ratio:4/4.6;object-fit:cover;object-position:60% 18%;border-radius:100vw 100vw 12px 12px;}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,2.4vw,2.4rem);margin-top:clamp(2rem,calc(var(--u)*3),3rem);}
.team-card .ph{aspect-ratio:4/4.6;border-radius:100vw 100vw 12px 12px;overflow:hidden;background:linear-gradient(150deg,var(--beige),#d8d2c0);display:flex;align-items:center;justify-content:center;text-align:center;padding:1.4rem;}
.team-card .ph img{width:100%;height:100%;object-fit:cover;object-position:60% 18%;}
.team-card .ph p{font-size:var(--fs-small);color:var(--pine);}
.team-card h3{margin-top:1rem;}
.team-card .role{font-size:var(--fs-small);color:var(--olive-ink);font-weight:600;}
.team-roster{grid-template-columns:repeat(2,minmax(0,1fr));}
.team-roster .team-card{padding:clamp(1.25rem,calc(var(--u)*1.8),1.8rem);background:var(--beige);border:1px solid rgba(53,81,74,.14);border-radius:14px;}
.team-roster .team-card h3{margin:0 0 .45rem;font-size:var(--fs-h3);}
.team-roster .team-card .role{margin:0;}
.faq-list{max-width:60rem;}
.faq-list details{border-bottom:1px solid rgba(53,81,74,.18);}
.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;font-family:var(--display);font-weight:600;font-size:var(--fs-h3);color:var(--pine);padding:clamp(1.1rem,calc(var(--u)*1.6),1.6rem) 0;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+";font-size:1.3em;color:var(--sage-deep);flex:none;transition:transform .25s ease;}
.faq-list details[open] summary::after{transform:rotate(45deg);}
.faq-list details div{padding:0 0 1.5rem;max-width:52rem;}
form.lh-form{max-width:38rem;display:grid;gap:1.2rem;margin-top:1.6rem;}
.lh-form label{display:grid;gap:.4rem;font-weight:600;color:var(--pine);font-size:var(--fs-small);}
.lh-form input,.lh-form select,.lh-form textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--ivory);border:1px solid rgba(53,81,74,.3);border-radius:10px;padding:.85rem 1rem;}
.lh-form input:focus-visible,.lh-form select:focus-visible,.lh-form textarea:focus-visible{outline:3px solid var(--olive);outline-offset:2px;}
.lh-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.field-err{font-weight:600;color:#6B3A2A;font-size:.92em;}
.lh-form [aria-invalid="true"]{border-color:#A05B44;}
.form-status{font-size:var(--fs-small);border-radius:12px;padding:1rem 1.3rem;display:none;}
.form-status.ok{display:block;background:var(--beige);color:var(--ink);}
.form-status.err{display:block;background:#F3E3DC;color:#6B3A2A;}
.form-note{font-size:var(--fs-small);max-width:38rem;background:var(--beige);border-radius:12px;padding:1rem 1.3rem;}
.legal{font-size:var(--fs-small);}
.legal-links{list-style:none;display:flex;gap:1.6rem;flex-wrap:wrap;}
.not-insurance{font-family:var(--display);font-style:italic;color:var(--pine);font-size:clamp(1.1rem,calc(var(--u)*1.5),1.55rem);border-top:1px solid rgba(53,81,74,.2);border-bottom:1px solid rgba(53,81,74,.2);padding:1.1rem 0;max-width:52rem;margin-top:2rem;}
@media (max-width:900px){
  .split{grid-template-columns:1fr;}
  .about-team-section{grid-template-columns:1fr;}
  .about-team{width:min(100%,32rem);}
  .team-grid{grid-template-columns:1fr;}
}

/* ---------- journey (your first visit) ---------- */
.journey{background:var(--pine);color:var(--beige);}
.journey-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,5vw,6rem);align-items:start;}
.j-media{position:relative;top:auto;align-self:center;}
.j-arch{position:relative;width:min(100%,36rem);aspect-ratio:4/3;border-radius:100vw 100vw 14px 14px;overflow:hidden;}
.j-arch::after{content:"";position:absolute;inset:0;border:1.5px solid rgba(163,155,103,.55);border-radius:100vw 100vw 14px 14px;pointer-events:none;}
.j-arch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .55s ease;}
.j-arch img.on{opacity:1;}
.j-cap{font-family:var(--display);font-style:italic;font-size:clamp(1.05rem,calc(var(--u)*1.4),1.5rem);color:var(--beige);margin-top:1.1rem;max-width:28rem;}
.journey .sec-head p{color:var(--beige);}
.j-step{display:grid;grid-template-columns:auto 1fr;gap:clamp(1rem,2vw,1.6rem);align-items:start;padding:clamp(1.5rem,calc(var(--u)*2.2),2.2rem) 0;border-top:1px solid rgba(231,223,206,.25);}
html.motion .j-step{opacity:.9;transition:opacity .5s ease;}
html.motion .j-step .j-num{opacity:1;transition:opacity .5s ease;}
html.motion .j-step.on .j-num{opacity:1;}
html.motion .j-step.on{opacity:1;}
.j-num{font-family:var(--display);font-weight:600;font-size:clamp(2.2rem,calc(var(--u)*3.4),3.6rem);line-height:1;color:var(--beige);}
.j-step h3{color:var(--ivory);margin-bottom:.45rem;}
.j-step p{font-size:var(--fs-small);max-width:32rem;}
.journey .btn.on-pine{background:var(--beige);color:var(--pine);}
.journey .btn.on-pine:hover{background:var(--ivory);}
@media (max-width:900px){
  .journey-grid{grid-template-columns:1fr;}
  .j-media{position:static;align-self:start;}
  .j-arch{width:min(100%,24rem);}
}
