/* ============================================================
   Integral Path Counseling — design system
   Palette: #F5F1E8 cream · #6B7A53 sage · #A86B4A clay
            #7A6852 taupe · #3C3732 ink
   Type: Lora (display) · Work Sans (body)
   ============================================================ */

:root{
  /* palette (tweakable) */
  --bg:        #F5F1E8;
  --panel:     #EFE8D8;   /* alt section tint */
  --card:      #FBF8F1;   /* card surface */
  --ink:       #3C3732;
  --muted:     #7A6852;
  --sage:      #6B7A53;
  --clay:      #A86B4A;
  --accent:    #A86B4A;   /* default = clay; tweakable */
  --line:      rgba(60,55,50,.12);

  /* scale (tweakable) */
  --body-size: 19px;
  --space:     1;         /* spacing multiplier */
  --maxw:      1180px;
  --measure:   62ch;

  --r:   18px;
  --r-lg:26px;
  --shadow: 0 1px 2px rgba(60,55,50,.04), 0 18px 40px -28px rgba(60,55,50,.35);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:88px; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Work Sans", system-ui, sans-serif;
  font-size:var(--body-size);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }

/* ---------- typography ---------- */
h1,h2,h3{ font-family:"Lora", Georgia, serif; font-weight:600; color:var(--ink);
  line-height:1.08; margin:0; letter-spacing:-.01em; text-wrap:balance; }
h1{ font-size:clamp(2.5rem, 5.4vw, 4.3rem); }
h2{ font-size:clamp(2rem, 4.2vw, 3.2rem); }
h3{ font-size:clamp(1.3rem, 2vw, 1.6rem); line-height:1.2; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:600; color:var(--ink); }

/* two-tone headline accent (toggleable via body.no-twotone) */
.hl-accent{ color:var(--sage); font-style:italic; }
body.no-twotone .hl-accent{ color:inherit; font-style:normal; }

.lead{ font-size:clamp(1.15rem,1.7vw,1.4rem); line-height:1.6; color:var(--muted); }
.measure{ max-width:var(--measure); }

/* eyebrow label with flanking rules */
.eyebrow{
  display:flex; align-items:center; gap:.85rem;
  font-family:"Work Sans",sans-serif; font-weight:600;
  font-size:14px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent); margin:0 0 1.3rem;
}
.eyebrow::before,.eyebrow::after{ content:""; height:1px; background:var(--accent); opacity:.5; flex:0 0 34px; }
.eyebrow.center{ justify-content:center; text-align:center; }
.eyebrow:not(.center)::before{ display:none; }

/* ---------- layout ---------- */
.section{ padding:calc(96px * var(--space)) 24px; }
.section.tight{ padding:calc(64px * var(--space)) 24px; }
.wrap{ max-width:var(--maxw); margin:0 auto; }
.narrow{ max-width:820px; margin:0 auto; }
.panel{ background:var(--panel); }
.center{ text-align:center; }
.stack-sm > * + *{ margin-top:calc(14px * var(--space)); }

/* two-column */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.split.media-right{ grid-template-columns:1.05fr .95fr; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:"Work Sans",sans-serif; font-weight:600; font-size:1.02rem;
  letter-spacing:.01em; line-height:1; cursor:pointer; border:none;
  padding:1.05em 1.9em; border-radius:999px; text-decoration:none;
  background:var(--sage); color:#fff;
  box-shadow:0 10px 24px -12px color-mix(in srgb, var(--sage) 70%, transparent);
  transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
.btn:hover{ filter:brightness(.94); transform:translateY(-1px); }
.btn.ghost{
  background:transparent; color:var(--ink); box-shadow:none;
  border:1.5px solid var(--line); padding:1em 1.7em;
}
.btn.ghost:hover{ border-color:var(--sage); color:var(--sage); filter:none; }
.btn.lg{ font-size:1.12rem; padding:1.15em 2.3em; }
.reassure{ font-size:.95rem; color:var(--muted); margin-top:1rem; text-wrap:pretty; }
.reassure strong{ color:var(--ink); }

/* ---------- cards ---------- */
.card{
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:clamp(24px,3vw,38px);
  box-shadow:var(--shadow);
}

/* outcome cards (bold headline + one line) */
.outcomes{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.outcome{ background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 28px; }
.outcome h3{ font-family:"Lora",serif; font-size:1.28rem; margin-bottom:.35rem; }
.outcome p{ color:var(--muted); font-size:1.02rem; line-height:1.55; }

/* "this is you" list */
.feel-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1.35rem; }
.feel-list li{ position:relative; padding-left:2.4rem; font-size:1.08rem; line-height:1.55; }
.feel-list li::before{ content:""; position:absolute; left:0; top:.58em; width:10px; height:10px;
  background:var(--accent); border-radius:2px; transform:rotate(45deg); }

/* media slot framing */
.media-frame{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); }
image-slot{ width:100%; display:block; }

/* ---------- accordion (modalities + faq) ---------- */
.acc{ display:flex; flex-direction:column; gap:16px; }
#approach .acc{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; align-items:start; }
#approach .narrow{ max-width:900px; }
.acc-item{ background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; }
.acc-head{ width:100%; text-align:left; background:none; border:none; cursor:pointer;
  display:flex; align-items:flex-start; gap:1.2rem; padding:clamp(20px,2.4vw,28px);
  font-family:inherit; color:var(--ink); }
.acc-head:hover .acc-title{ color:var(--accent); }
.acc-titles{ flex:1; }
.acc-title{ font-family:"Lora",serif; font-size:1.32rem; font-weight:600; line-height:1.2;
  transition:color .15s ease; display:block; }
.acc-sub{ color:var(--muted); font-size:1.02rem; line-height:1.5; margin-top:.3rem; display:block; }
.acc-icon{ flex:0 0 28px; width:28px; height:28px; border-radius:50%;
  border:1.5px solid var(--accent); color:var(--accent); position:relative; margin-top:.2rem;
  transition:background .2s ease, transform .25s ease; }
.acc-icon::before,.acc-icon::after{ content:""; position:absolute; inset:0; margin:auto;
  background:var(--accent); transition:opacity .2s ease, background .2s; }
.acc-icon::before{ width:11px; height:1.5px; }
.acc-icon::after{ width:1.5px; height:11px; }
.acc-item[open] .acc-icon{ background:var(--accent); transform:rotate(180deg); }
.acc-item[open] .acc-icon::before,.acc-item[open] .acc-icon::after{ background:#fff; }
.acc-item[open] .acc-icon::after{ opacity:0; }
.acc-body{ padding:0 clamp(20px,2.4vw,28px) clamp(22px,2.6vw,30px);
  padding-left:calc(clamp(20px,2.4vw,28px) + 28px + 1.2rem); }
.acc-body p{ color:var(--muted); max-width:60ch; }
/* native details summary reset */
.acc-item > summary{ list-style:none; }
.acc-item > summary::-webkit-details-marker{ display:none; }

/* ---------- nav ---------- */
.nav{ position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s; }
.nav.scrolled{ border-bottom-color:var(--line); box-shadow:0 6px 24px -20px rgba(60,55,50,.5); }
.nav-inner{ max-width:var(--maxw); margin:0 auto; display:flex; align-items:center;
  justify-content:space-between; gap:34px; padding:14px 24px; }
.brand{ font-family:"Lora",serif; font-weight:600; font-size:1.18rem; color:var(--ink);
  text-decoration:none; letter-spacing:-.01em; display:flex; flex-direction:row; align-items:center; gap:14px; line-height:1.12; flex-shrink:0; }
.brand-logo{ width:44px; height:auto; flex:0 0 auto; display:block; }
.brand-text{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; }
.brand-sub{ display:block; width:100%; font-family:"Work Sans",sans-serif; font-weight:500; font-size:9px;
  letter-spacing:.01em; color:var(--muted); text-align:justify; text-align-last:justify; }
.brand-sub .sub-short{ display:none; }
.brand-name{ font-size:1.4rem; line-height:1.1; white-space:nowrap; }
.brand .mark{ width:30px; height:30px; border-radius:50%; background:var(--sage);
  display:inline-grid; place-items:center; color:#fff; font-size:.95rem; flex:0 0 auto; }
.nav-links{ display:flex; align-items:center; gap:1.15rem; }
.nav-links a{ color:var(--ink); text-decoration:none; font-size:.94rem; font-weight:500; opacity:.82; white-space:nowrap;
  transition:opacity .15s, color .15s; }
.nav-links a:hover{ opacity:1; color:var(--accent); }
.nav-cta{ display:flex; align-items:center; gap:1rem; }
.nav-cta .btn{ white-space:nowrap; }
.nav-sched-m{ display:none; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; color:var(--ink); }
.nav-toggle svg{ width:26px; height:26px; }

/* hero */
.hero{ padding:clamp(36px,5vh,68px) 24px clamp(48px,6vh,76px); }
.hero .eyebrow{ margin-bottom:clamp(1.8rem,3.2vh,2.6rem); }
.hero h1{ margin-bottom:clamp(1.7rem,2.8vh,2.2rem); }
.hero-beats{ display:flex; flex-direction:column; gap:1.1rem; max-width:34ch; }
.hero-beats .b1{ font-size:clamp(1.2rem,1.9vw,1.5rem); color:var(--ink); line-height:1.45; font-weight:500; margin:0; }
.hero-extra p{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--muted); line-height:1.6; margin:0; }
body.hero-tight .hero-extra{ display:none; }
.hero-actions{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.hero-portrait{ position:relative; }
.hero-portrait image-slot{ aspect-ratio:4/5; }
.hero-badge{ position:absolute; left:-18px; bottom:24px; background:var(--card);
  border:1px solid var(--line); border-radius:14px; padding:14px 18px; box-shadow:var(--shadow);
  display:flex; gap:.7rem; align-items:center; max-width:230px; }
.hero-badge .dot{ width:10px; height:10px; border-radius:50%; background:var(--sage); flex:0 0 auto; }
.hero-badge span{ font-size:.92rem; line-height:1.35; color:var(--muted); }

/* offering row */
.offer-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); }
.offer-row > div{ padding:30px 26px; text-align:center; border-right:1px solid var(--line); }
.offer-row > div:last-child{ border-right:none; }
.offer-row .big{ font-family:"Lora",serif; font-size:1.5rem; color:var(--ink); margin-bottom:.2rem; }
.offer-row .sm{ font-size:.96rem; color:var(--muted); }

/* credentials */
.creds{ display:flex; flex-wrap:wrap; gap:1rem 2.4rem; margin-top:1.8rem; padding-top:1.6rem;
  border-top:1px solid var(--line); }
.creds .c-label{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
  font-weight:600; margin-bottom:.2rem; }
.creds .c-val{ font-size:1.02rem; color:var(--ink); }
.creds .c-sub{ font-size:.92rem; color:var(--muted); }

/* testimonials */
.quotes{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.quote{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px); }
.quote .stars{ color:var(--accent); letter-spacing:.18em; font-size:1.05rem; margin-bottom:1rem; }
.quote p{ font-family:"Lora",serif; font-size:1.18rem; line-height:1.55; font-style:italic; color:var(--ink); }
.quote .by{ margin-top:1.2rem; font-family:"Work Sans",sans-serif; font-style:normal;
  font-size:.92rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; }

/* steps */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; counter-reset:step; align-items:start; }
.step{ text-align:center; }
.step .n{ width:44px; height:44px; border-radius:50%; background:var(--sage); color:#fff;
  font-family:"Lora",serif; font-size:1.3rem; display:grid; place-items:center; margin:0 auto 1rem; }
.step h3{ font-size:1.22rem; margin-bottom:.4rem; }
.step p{ color:var(--muted); font-size:1.02rem; line-height:1.55; max-width:30ch; margin-left:auto; margin-right:auto; }

/* fees — see "fees: reframed two-box" section below */

/* CTA section */
.cta-band{ background:var(--panel); }
.cta-card{ background:linear-gradient(180deg, var(--card), color-mix(in srgb,var(--card) 70%, var(--bg)));
  border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(40px,6vw,72px);
  text-align:center; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.cta-card h2{ margin-bottom:1rem; }
.secure-note{ margin-top:2.4rem; padding-top:2rem; border-top:1px solid var(--line);
  font-size:1.02rem; color:var(--muted); font-style:italic; max-width:54ch; margin-left:auto; margin-right:auto; }
.scheduler-embed{ margin-top:2rem; background:var(--card); border:1px dashed var(--line);
  border-radius:var(--r); padding:30px; color:var(--muted); font-size:.96rem; }

/* footer */
.footer{ background:var(--ink); color:#E8E1D5; padding:64px 24px 40px; }
.footer a{ color:#E8E1D5; text-decoration:none; opacity:.8; }
.footer a:hover{ opacity:1; color:#fff; }
.footer-grid{ max-width:var(--maxw); margin:0 auto; display:grid;
  grid-template-columns:1.4fr 1fr; gap:40px; }
.footer h4{ font-family:"Work Sans",sans-serif; font-size:.8rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--clay); margin:0 0 1rem; font-weight:600; }
.footer .f-brand{ font-family:"Lora",serif; font-size:1.4rem; color:#fff; margin-bottom:.8rem; }
.footer .f-brand + p{ font-size:clamp(1.1rem,1.6vw,1.32rem); line-height:1.6; }
.footer .f-logo{ display:block; width:220px; max-width:100%; height:auto; margin:0 0 1.2rem; }
.footer a.f-logo-link, .footer a.f-logo-link:hover{ opacity:1; display:inline-block; }
.footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; font-size:.98rem; }
.footer .crisis{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:14px; padding:16px 18px; font-size:.92rem; line-height:1.5; }
.footer .crisis strong{ color:#fff; }
.footer-base{ max-width:var(--maxw); margin:44px auto 0; padding-top:24px;
  border-top:1px solid rgba(255,255,255,.12); font-size:.84rem; opacity:.7; line-height:1.6;
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; }

/* mobile inline CTA (shown on phones in place of a sticky bar) */
.mobile-inline-cta{ display:none; }
.mobile-inline-cta .wrap{ display:flex; flex-direction:column; align-items:center; gap:.9rem; }
.mobile-inline-cta .btn.lg{ width:100%; max-width:420px; }
.mobile-inline-cta .reassure{ margin:0; }

/* entrance */
@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }
}

/* ---------- hero: centered text + video below ---------- */
.hero-stack{ display:flex; flex-direction:column; align-items:center; }
.hero-copy.center{ text-align:center; max-width:1140px; margin:0 auto; }
.hero-copy.center h1{ font-size:clamp(2rem,3.4vw,2.6rem); text-wrap:pretty; }
.hero-copy.center .eyebrow{ justify-content:center; }
.hero-copy.center .hero-beats{ max-width:none; gap:1.5rem; }
.hero-copy.center .hero-extra{ max-width:780px; margin:0 auto; }
.hero-copy.center .hero-extra.stack-sm > * + *{ margin-top:1.5rem; }
.hero-actions.center-actions{ justify-content:center; }
.hero-video-wrap{ width:100%; max-width:900px; margin:clamp(18px,2.6vh,32px) auto 0; }
.video-frame.hero-video{ position:relative; aspect-ratio:16/9; border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--shadow); background:#2b2722; cursor:pointer; }
.video-frame.hero-video video,
.video-thumb{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 26%; }
.video-frame.hero-video::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(43,39,34,.04), rgba(43,39,34,.36)); transition:opacity .6s ease; }
/* Vimeo embed layer — sits under the thumbnail until playback begins */
.video-embed{ position:absolute; inset:0; z-index:1; opacity:0; pointer-events:none;
  transition:opacity .6s ease; }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.video-thumb, .play-mark, .video-tag{ transition:opacity .6s ease; }
.video-frame.hero-video.is-playing .video-embed{ opacity:1; pointer-events:auto; z-index:5; }
.video-frame.hero-video.is-playing .video-thumb,
.video-frame.hero-video.is-playing .play-mark,
.video-frame.hero-video.is-playing .video-tag,
.video-frame.hero-video.is-playing::after{ opacity:0; pointer-events:none; }
.video-frame.hero-video.is-playing{ cursor:default; }
.play-mark{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  width:74px; height:74px; border-radius:50%; background:rgba(255,255,255,.92); display:grid; place-items:center;
  box-shadow:0 14px 34px -12px rgba(0,0,0,.5); transition:transform .15s ease, background .15s ease; }
.video-frame.hero-video:hover .play-mark{ transform:translate(-50%,-50%) scale(1.06); background:#fff; }
.play-mark::after{ content:""; width:0; height:0; margin-left:6px;
  border-left:22px solid var(--sage); border-top:14px solid transparent; border-bottom:14px solid transparent; }
.video-tag{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:18px 18px 26px;
  font-family:'Lora',Georgia,serif; font-size:1.18rem; font-weight:500; letter-spacing:.01em; color:#fff; text-align:center; }

/* portrait images sized to their section */
#this-is-you .split{ align-items:stretch; }
#this-is-you .media-col{ display:flex; justify-content:center; align-items:stretch; }
#about .media-col{ display:flex; justify-content:flex-end; }
#this-is-you .media-frame{ width:100%; max-width:480px; align-self:stretch; position:relative; }
#about .media-frame{ width:100%; max-width:430px; align-self:start; }
#this-is-you .media-frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
#about .media-frame img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }

/* approach closing note */
.approach-close{ max-width:60ch; margin:2.6rem auto 0; text-align:center; }
.approach-close p{ color:var(--muted); margin-bottom:.8rem; }
.approach-close p:first-child{ font-family:"Lora",serif; font-style:italic;
  font-size:clamp(1.15rem,1.8vw,1.42rem); color:var(--ink); margin-bottom:1rem; }

/* ---------- "deeper" readability ---------- */
.deeper-body{ max-width:62ch; margin:2rem auto 0; }
.deeper-lead{ font-size:clamp(1.1rem,1.6vw,1.32rem); color:var(--ink); line-height:1.6; }
.deeper-pull{ font-family:"Lora",serif; font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.32;
  color:var(--ink); text-wrap:balance; margin:1.8rem 0; padding-left:1.6rem;
  border-left:3px solid var(--accent); }
.deeper-close{ color:var(--muted); font-size:1.08rem; line-height:1.65; }

/* ---------- location ---------- */
.location-section{ position:relative; overflow:hidden; }
.loc-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; opacity:.5; z-index:0; }
.location-section::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, color-mix(in srgb,var(--bg) 26%, transparent), color-mix(in srgb,var(--bg) 50%, transparent)); }
.location-section > .wrap{ position:relative; z-index:2; }
.map-card{ border-radius:var(--r-lg); overflow:hidden; border:8px solid var(--card);
  box-shadow:var(--shadow); background:var(--card); aspect-ratio:4/3; width:100%; max-width:440px; margin-left:auto; }
.map-card iframe{ width:100%; height:100%; border:0; display:block; }
.address-block{ font-style:normal; margin:1.6rem 0; }
.address-block .addr-line{ font-family:"Lora",serif; font-size:1.3rem; color:var(--ink); }
.address-block .addr-sub{ color:var(--muted); }
.serving strong{ color:var(--ink); }
/* location intro + serving line scaled to match the "deeper-lead" body size */
#location .measure{ font-size:clamp(1.1rem,1.6vw,1.32rem); }

/* ---------- fees: reframed two-box (price + benefits checker) ---------- */
#fees .fees-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:stretch; }
#fees .fee-box{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(28px,3.6vw,42px); display:flex; flex-direction:column; }
#fees .fee-body{ flex:1; display:flex; flex-direction:column; justify-content:center; }
#fees .fee-foot{ display:flex; flex-direction:column; align-items:center; margin-top:clamp(1.8rem,3.4vw,2.6rem); }

/* left box — price → reframe → reassurance */
#fees .price-box{ text-align:center; }
#fees .price-box .fee-body{ align-items:center; }
#fees .price-row{ display:flex; align-items:baseline; justify-content:center; gap:.55rem; flex-wrap:wrap; }
#fees .price{ font-family:"Lora",serif; font-weight:500; font-size:clamp(2.1rem,4.3vw,2.8rem);
  line-height:1; color:var(--ink); letter-spacing:-.015em; }
#fees .per{ font-family:"Work Sans",sans-serif; font-size:1rem; color:var(--muted); font-weight:500; margin:0; }
#fees .reframe-line{ margin:1.1rem auto 0; max-width:40ch; color:var(--ink);
  font-size:1.06rem; line-height:1.55; font-weight:500; text-wrap:pretty; }
#fees .price-note{ margin:1.4rem auto 0; max-width:44ch; color:var(--muted); font-size:1rem; line-height:1.6; text-wrap:pretty; }

/* right box — out-of-network benefits checker */
#fees .check-box{ border-color:color-mix(in srgb, var(--sage) 40%, var(--line));
  box-shadow:0 18px 40px -28px color-mix(in srgb, var(--sage) 80%, transparent);
  position:relative; overflow:hidden; text-align:center; }
#fees .check-box::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--sage); }
#fees .check-box .fee-body{ justify-content:flex-end; }
#fees .check-box .fee-foot{ margin-top:clamp(.3rem,.9vw,.6rem); }
#fees .check-eyebrow{ font-family:"Work Sans",sans-serif; font-weight:600; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--sage); margin:0 0 .9rem; }
#fees .check-box h3{ font-family:"Lora",serif; font-size:clamp(1.3rem,2.3vw,1.6rem); color:var(--ink); margin:0 0 .7rem; }
#fees .check-box .sub{ color:var(--muted); font-size:1rem; line-height:1.55; margin:0 auto 1.3rem; max-width:32ch; }
#fees .check-time{ margin:0 0 1.2rem; font-size:.9rem; color:var(--muted); opacity:.9; }
#fees .check-btn{ display:inline-flex; align-items:center; gap:.6rem;
  font-family:"Work Sans",sans-serif; font-weight:600; font-size:1.02rem;
  background:transparent; color:var(--sage); text-decoration:none;
  padding:.9em 1.85em; border-radius:999px; border:1.5px solid var(--sage); cursor:pointer;
  transition:background .15s ease, color .15s ease, transform .15s ease; }
#fees .check-btn:hover{ background:var(--sage); color:#fff; transform:translateY(-1px); }
#fees .check-btn svg{ width:17px; height:17px; }

/* fees mobile: stack and flow naturally (drop the shared-baseline centering) */
@media (max-width:640px){
  #fees .fees-grid{ grid-template-columns:1fr; }
  #fees .fee-body{ display:block; }
  #fees .fee-foot{ margin-top:1.6rem; }
  #fees .price{ font-size:2.5rem; }
  #fees .reframe-line,
  #fees .price-note,
  #fees .check-box .sub{ max-width:100%; }
}

/* ---------- clinician endorsement ---------- */
.endorse{ max-width:760px; margin:0 auto 2.4rem; text-align:center; padding:clamp(28px,3.4vw,44px);
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow); }
.endorse-label{ font-size:.78rem; letter-spacing:.24em; text-transform:uppercase; color:var(--accent);
  font-weight:600; margin:0 0 1.1rem; }
.endorse blockquote{ margin:0; font-family:"Lora",serif; font-style:italic; font-size:clamp(1.3rem,2.1vw,1.7rem);
  line-height:1.4; color:var(--ink); text-wrap:pretty; }
.endorse figcaption{ margin-top:1.2rem; font-size:.92rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); font-weight:600; }
.quotes.three{ grid-template-columns:repeat(3,1fr); }
.quote cite{ display:block; margin-top:1.2rem; font-family:"Work Sans",sans-serif; font-style:normal;
  font-size:.92rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; }

/* clinician endorsement as a sage break band */
.endorse-band{ background:var(--sage); }
.endorse-band .endorse{ background:transparent; border:none; box-shadow:none; margin:0 auto; padding:0; max-width:840px; }
.endorse-band .endorse-label{ color:rgba(255,255,255,.72); }
.endorse-band .endorse blockquote{ color:#fff; }
.endorse-band .endorse figcaption{ color:rgba(255,255,255,.85); }

/* ---------- footer extras ---------- */
.pt-verify{ display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem;
  font-size:.9rem; font-weight:600; letter-spacing:.02em; color:#E8E1D5 !important;
  border:1px solid rgba(255,255,255,.22); border-radius:999px; padding:.5em 1.1em; opacity:1 !important; }
.pt-verify::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--sage); }
.pt-verify:hover{ border-color:var(--clay); color:#fff !important; }
.footer-links{ display:flex; gap:1.2rem; }
#consult .cta-row{ display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.verification-seal{ margin-top:1.1rem; min-height:34px; }
.verification-seal a{ display:inline-block; }

/* ---------- schedule: subtle portrait background + secure contact ---------- */
.cta-band{ position:relative; overflow:hidden; }
.cta-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 24%; opacity:.42; z-index:0; }
.cta-band::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, color-mix(in srgb,var(--panel) 40%, transparent), color-mix(in srgb,var(--panel) 66%, transparent)); }
.cta-band > .wrap{ position:relative; z-index:2; }
.cta-band .cta-card{ background:transparent; border:none; box-shadow:none; }
.schedule-wrap .cta-card{ max-width:none; margin:0 auto; }
.secure-contact{ margin-top:2.4rem; padding-top:2rem; border-top:1px solid var(--line); }
.secure-contact .secure-note{ margin-top:0; margin-bottom:1.1rem; }

/* ---------- responsive ---------- */
/* Nav collapses to a hamburger at ≤1040px so the seven links never crowd */
@media (max-width: 1040px){
  .nav-links{ display:none; }
  .nav-links.open{ display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    background:var(--bg); border-bottom:1px solid var(--line); padding:18px 24px; gap:1.1rem; }
  .nav-links .nav-sched-m{ display:block; }
  .nav-cta .btn{ display:none; }
  .nav-toggle{ display:block; }
}
@media (max-width: 640px){
  .brand{ gap:10px; }
  .brand-logo{ width:36px; }
  .footer .f-logo{ width:188px; }
}
@media (max-width: 380px){
  .brand-sub .sub-full{ display:none; }
  .brand-sub .sub-short{ display:inline; }
}
@media (max-width: 900px){
  .fees-grid{ grid-template-columns:1fr; }
  .quotes.three{ grid-template-columns:1fr; }
  #approach .acc{ grid-template-columns:1fr; }
  .map-card{ margin:18px auto 0; aspect-ratio:4/3; max-width:520px; }
  #this-is-you .media-frame{ max-width:430px; position:static; align-self:start; }
  #this-is-you .media-frame img{ position:static; height:auto; min-height:0; aspect-ratio:4/5; }
  .split,
  .split.media-right{ grid-template-columns:1fr; gap:40px; }
  .split.media-right .media-col{ order:-1; }
  .hero-beats{ max-width:none; }
  .outcomes{ grid-template-columns:1fr; grid-auto-rows:1fr; }
  .quotes{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .offer-row{ grid-template-columns:1fr; }
  .offer-row > div{ border-right:none; border-bottom:1px solid var(--line); }
  .offer-row > div:last-child{ border-bottom:none; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .mobile-inline-cta{ display:block; }
  .hero-badge{ left:0; }
}
@media (max-width: 600px){
  .hero-br{ display:none; }
}
@media (max-width: 520px){
  .section{ padding:calc(64px * var(--space)) 20px; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; }
}

/* ---------- mobile (≤640px) ---------- */
@media (max-width: 640px){
  /* Section eyebrows: keep the compact size on phones (the 16px desktop bump is too large
     here and wraps "When the pattern runs deeper" onto two lines) */
  .eyebrow{ font-size:14px !important; }
  /* Hero: the largest headline on the page (sits above the section H2s), ~4 compact rows */
  .hero{ padding:14px 16px 26px !important; }
  .hero h1{ font-size:29px !important; margin:22px 0 20px !important; line-height:1.13; }
  /* Section headlines: scaled down on phones so the hero clearly leads (was a flat 32px) */
  h2{ font-size:26px; }
  .hero .eyebrow{ margin-bottom:.8rem; }
  .hero-beats .b1{ font-size:17px !important; line-height:1.45; }
  .hero-extra p{ font-size:15px !important; width:auto !important; line-height:1.6; text-wrap:pretty; }
  .hero-extra p:last-child{ font-size:15px !important; margin-top:0 !important; text-wrap:balance; }
  .hero-copy.center .hero-beats{ gap:1.15rem; }
  .hero-copy.center .hero-extra.stack-sm > * + *{ margin-top:1.05rem; }
  .hero-actions.center-actions{ margin-top:1.9rem; }
  .reassure{ margin-top:.6rem; font-size:.9rem; }
  .hero-video-wrap{ margin-top:1.9rem; }

  /* About photo: full-width banner above the copy (no squeezed column) */
  #about .media-frame{ max-width:none; align-self:auto; }
  #about .media-frame img{ position:static; width:100%; height:auto; min-height:0;
    aspect-ratio:16/10; max-height:260px; object-fit:cover; object-position:center 18%; }

  /* "If this sounds familiar" photo: uncropped, AFTER the list as a section break */
  #this-is-you .media-col{ order:2; margin-top:1.6rem; justify-content:center; }
  #this-is-you .media-frame{ max-width:330px; align-self:auto; }
  #this-is-you .media-frame img{ position:static; width:100%; height:auto; min-height:0;
    aspect-ratio:auto; max-height:none; object-fit:contain; }

  /* Full-bleed background portraits: keep John framed on a narrow crop */
  .cta-bg{ object-position:70% 22%; }
  /* Flatirons: framed on the peak (~62% across, near the top) and a touch more visible */
  .loc-bg{ object-position:62% 14%; opacity:.7; }
  .location-section::after{ background:linear-gradient(180deg,
    color-mix(in srgb,var(--bg) 16%, transparent), color-mix(in srgb,var(--bg) 42%, transparent)); }

  /* "When the pattern runs deeper": lead + close share one size on phones */
  .deeper-lead, .deeper-close{ font-size:1.1rem !important; }
  /* Neutralize fixed px width/height added via direct edits so this block reflows on phones */
  .deeper-lead, .deeper-close{ width:auto !important; height:auto !important; }
  .deeper-pull span{ font-size:1.5rem !important; }

  /* Approach cards: keep each title + subtitle on one row */
  #approach .acc-head{ padding:16px 15px; gap:.7rem; }
  #approach .acc-title{ font-size:1.04rem; }
  #approach .acc-sub{ font-size:.82rem; }

  /* Approach closing line: slightly smaller, no orphan word */
  .approach-close p:last-child{ font-size:.92rem; text-wrap:pretty; }

  /* Location: larger map, below the copy */
  .map-card{ aspect-ratio:4/3; }

  /* FAQ: smaller question text + uniform card height for a clean, symmetrical stack */
  #faq .acc-head{ min-height:70px; align-items:center; padding:14px 16px; gap:.8rem; }
  #faq .acc-title{ font-size:.9rem; line-height:1.3; }
  /* Accordion detail text scaled to sit with the card titles (was full 19px body size) */
  #faq .acc-body{ padding-left:16px; }
  #faq .acc-body p{ font-size:.9rem; line-height:1.55; }
  #approach .acc-body p{ font-size:.95rem; line-height:1.55; }

  /* How I work intro + About body + approach closing line: tuned so paragraph copy is even (~16px) on phones */
  #approach .lead{ font-size:16px !important; }
  #about .stack-sm p{ font-size:16px; }
  .approach-close p:last-child{ font-size:16px; text-wrap:pretty; }

  /* Testimonials: match the approach-close opening quote's mobile size for a calmer read */
  .quote p{ font-size:1.04rem; line-height:1.6; }

  /* Inline CTA: tightened from the neighbors' 64px pads, with a clear bottom buffer so it doesn't bleed into the next section */
  .mobile-inline-cta{ padding-top:0 !important; padding-bottom:0 !important; margin-top:-28px; margin-bottom:18px; }
  .mobile-inline-cta .wrap{ gap:1rem; }

  /* Schedule: tighten the generous spacing */
  #schedule.cta-band{ padding:38px 20px; }
  .cta-band .cta-card{ padding:20px 14px; }
  .cta-band .cta-card .lead{ margin:.9rem auto 1.4rem !important; }
  .secure-contact{ margin-top:1.8rem; padding-top:1.5rem; }
}

/* ============================================================
   Booking popup (OnceHub standalone page in a branded modal)
   ============================================================ */
.book-modal{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  padding:max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
  background:rgba(43,39,34,.5); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  opacity:0; visibility:hidden; transition:opacity .28s ease, visibility .28s ease; }
.book-modal.is-open{ opacity:1; visibility:visible; }
.book-modal__card{ position:relative; width:min(960px, 100%); height:min(760px, 100%);
  background:var(--card); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:0 24px 70px -20px rgba(43,39,34,.55); transform:translateY(10px) scale(.99);
  transition:transform .28s ease; display:flex; flex-direction:column; }
.book-modal.is-open .book-modal__card{ transform:none; }
.book-modal__close{ position:absolute; top:12px; right:12px; z-index:3; width:40px; height:40px;
  border-radius:50%; border:none; cursor:pointer; background:rgba(251,248,241,.92); color:var(--ink);
  box-shadow:0 2px 10px rgba(43,39,34,.18); font-size:20px; line-height:1; display:flex;
  align-items:center; justify-content:center; transition:background .18s ease, transform .18s ease; }
.book-modal__close:hover{ background:#fff; transform:scale(1.05); }
.book-modal__frame{ flex:1; width:100%; border:0; display:block; background:var(--card); }
.book-modal__loading{ position:absolute; inset:0; z-index:1; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem; background:var(--card); color:var(--muted);
  font-family:"Work Sans",system-ui,sans-serif; font-size:.95rem; transition:opacity .3s ease; }
.book-modal__loading.is-hidden{ opacity:0; pointer-events:none; }
.book-modal__spinner{ width:38px; height:38px; border-radius:50%; border:3px solid var(--line);
  border-top-color:var(--sage); animation:book-spin .8s linear infinite; }
@keyframes book-spin{ to{ transform:rotate(360deg); } }
.book-modal__fallback{ position:absolute; inset:0; z-index:2; display:none; flex-direction:column;
  align-items:center; justify-content:center; gap:1.1rem; text-align:center; padding:2rem;
  background:var(--card); color:var(--ink); }
.book-modal__fallback.is-shown{ display:flex; }
.book-modal__fallback p{ max-width:34ch; color:var(--muted); font-family:"Work Sans",system-ui,sans-serif; }
@media (max-width:600px){
  .book-modal{ padding:0; }
  .book-modal__card{ width:100%; height:100%; border-radius:0; }
}
@media (prefers-reduced-motion: reduce){
  .book-modal, .book-modal__card, .book-modal__loading{ transition:none; }
  .book-modal__spinner{ animation:none; }
}