/* ==========================================================================
   Dr. Abby Brewer-Johnson, PsyD, ABPP — site stylesheet
   Palette ("Original"): pine ink / celadon / paper / sand, dusty rose used sparingly
   Type:    Fraunces (display serif)  +  Figtree (humanist sans)
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --ink:        #14302A;
  --ink-soft:   #3D5A52;
  --pine:       #2D5A4B;
  --pine-deep:  #1B3D33;
  --pine-mid:   #4C7F6C;
  --celadon:    #CFE0D6;
  --celadon-lt: #E4EDE7;
  --paper:      #F4F6F2;
  --paper-pure: #FBFCFA;
  --sand:       #EDE1D1;
  --sand-deep:  #DFCDB4;
  --rose:       #BF7A6C;
  --rose-text:  #B04E35;   /* terracotta that passes 4.5:1 for text */
  --field-line: #7F928D;   /* form borders, 3.2:1 on white */

  --line:       rgba(20,48,42,.14);
  --line-soft:  rgba(20,48,42,.08);
  --line-light: rgba(255,255,255,.18);

  --sans: "Figtree", ui-sans-serif, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --serif: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;

  --fs-xs:   .8125rem;
  --fs-sm:   .9375rem;
  --fs-base: 1.0625rem;
  --fs-lead: clamp(1.125rem, 1.6vw, 1.3125rem);
  --fs-h4:   1.25rem;
  --fs-h3:   clamp(1.4rem, 2.2vw, 1.75rem);
  --fs-h2:   clamp(1.95rem, 4vw, 2.9rem);
  --fs-h1:   clamp(2.45rem, 6vw, 4.35rem);

  --wrap: 1200px;
  --gut: clamp(1.25rem, 5vw, 3.5rem);
  --sec: clamp(4.5rem, 9vw, 8rem);

  --arch: 999px 999px 14px 14px / 46% 46% 4px 4px;
  --r-sm: 6px;
  --r-md: 14px;

  --ease: cubic-bezier(.22,.68,.32,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
:target{ scroll-margin-top:120px; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--fs-base);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }
img{ max-width:100%; display:block; }
h1,h2,h3,h4{ margin:0; font-family:var(--serif); font-weight:500; line-height:1.1;
  font-variation-settings:"SOFT" 40, "WONK" 1, "opsz" 96;
  letter-spacing:-.012em; text-wrap:balance; }
h1{ font-size:var(--fs-h1); line-height:1.02; letter-spacing:-.022em; }
h2{ font-size:var(--fs-h2); line-height:1.08; }
h3{ font-size:var(--fs-h3); }
h4{ font-size:var(--fs-h4); line-height:1.25; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0 0 1.1em; padding-left:1.15em; }
li{ margin-bottom:.45em; }
a{ color:var(--pine); text-decoration-thickness:1px; text-underline-offset:.18em; }
a:hover{ color:var(--ink); }
strong{ font-weight:600; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }

:focus{ outline:none; }
:focus-visible{ outline:2.5px solid var(--pine); outline-offset:3px; border-radius:2px; }
a, button{ -webkit-tap-highlight-color:transparent; }
.form__status:focus{ outline:none; }
.mnav :focus-visible, .bg-pine :focus-visible, .site-footer :focus-visible, body.is-locked .burger:focus-visible{ outline-color:#fff; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:.8rem 1.2rem; border-radius:0 0 var(--r-sm) 0;
  font-size:var(--fs-sm); font-weight:600;
}
.skip:focus{ left:0; color:#fff; }

/* ---------- Layout helpers ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.wrap-narrow{ max-width:820px; }
.section{ padding-block:var(--sec); }
.section--tight{ padding-block:clamp(3rem,6vw,5rem); }
.measure{ max-width:64ch; }
.measure-wide{ max-width:74ch; }
.lead{ font-size:var(--fs-lead); line-height:1.6; color:var(--ink-soft); }
.center{ text-align:center; margin-inline:auto; }

.bg-celadon{ background:var(--celadon-lt); }
.bg-sand{ background:var(--sand); }
.bg-paper{ background:var(--paper-pure); }
.bg-pine{ background:var(--pine-deep); color:var(--celadon-lt); }
.bg-pine h1,.bg-pine h2,.bg-pine h3,.bg-pine h4{ color:#fff; }
.bg-pine a:not(.btn){ color:#fff; }

/* Section heading pattern: hairline + serif head, asymmetric grid */
.head{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.1rem; margin-bottom:clamp(2.2rem,4vw,3.2rem); }
.head__rule{ width:56px; height:2px; background:var(--rose); border-radius:2px; }
.bg-pine .head__rule{ background:var(--sand-deep); }
.head p{ color:var(--ink-soft); max-width:60ch; }
.bg-pine .head p{ color:rgba(255,255,255,.78); }

.split{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
@media (min-width:900px){
  .split--40-60{ grid-template-columns:.72fr 1fr; }
  .split--60-40{ grid-template-columns:1fr .72fr; }
  .split--half{ grid-template-columns:1fr 1fr; }
  .split--sticky > .split__aside{ position:sticky; top:130px; }
}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--pine); --fg:#fff; --bd:var(--pine);
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--bg); color:var(--fg); border:1.5px solid var(--bd);
  padding:.95rem 1.5rem; border-radius:100px;
  font-family:var(--sans); font-size:var(--fs-sm); font-weight:600; letter-spacing:.005em;
  text-decoration:none; cursor:pointer; line-height:1;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.btn:hover{ background:var(--pine-deep); border-color:var(--pine-deep); color:#fff; transform:translateY(-2px); }
.btn svg{ width:18px; height:18px; flex:none; }
.btn--ghost{ --bg:transparent; --fg:var(--ink); --bd:var(--line); }
.btn--ghost:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn--light{ --bg:#fff; --fg:var(--pine-deep); --bd:#fff; }
.btn--light:hover{ background:var(--sand); border-color:var(--sand); color:var(--pine-deep); }
.btn--outline-light{ --bg:transparent; --fg:#fff; --bd:rgba(255,255,255,.8); }
.btn--outline-light:hover{ background:#fff; border-color:#fff; color:var(--pine-deep); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.85rem; align-items:center; }

.tlink{
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:600; font-size:var(--fs-sm); color:var(--pine);
  text-decoration:none; border-bottom:1.5px solid var(--celadon);
  padding-bottom:.25rem; transition:border-color .3s var(--ease), color .3s var(--ease);
}
.tlink:hover{ color:var(--ink); border-color:var(--rose); }
.tlink svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.tlink:hover svg{ transform:translateX(4px); }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:120;
  background:rgba(244,246,242,.86);
  backdrop-filter:saturate(1.5) blur(14px);
  -webkit-backdrop-filter:saturate(1.5) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
}
.site-header.is-stuck{ border-bottom-color:var(--line-soft); box-shadow:0 10px 30px -24px rgba(20,48,42,.5); }
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  min-height:86px; padding-block:.9rem;
}
.brand{ display:flex; flex-direction:column; text-decoration:none; color:var(--ink); line-height:1; }
.brand__name{
  font-family:var(--serif); font-size:1.5rem; font-weight:500; letter-spacing:-.02em;
  font-variation-settings:"SOFT" 60, "WONK" 1, "opsz" 72;
}
.brand__sub{
  font-size:.6875rem; font-weight:600; color:var(--ink-soft);
  letter-spacing:.09em; margin-top:.4rem;
}
.brand:hover .brand__name{ color:var(--pine); }

body.is-locked .site-header{
  background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none;
  box-shadow:none; border-color:transparent;
}
body.is-locked .brand__name{ color:#fff; }
body.is-locked .brand__sub{ color:rgba(255,255,255,.75); }

.nav{ display:none; align-items:center; gap:1.5rem; }
@media (min-width:1100px){ .nav{ display:flex; } }
.nav__list{ display:flex; align-items:center; gap:1.5rem; list-style:none; margin:0; padding:0; }
.nav__list li{ margin:0; }
.nav__link{
  position:relative; text-decoration:none; color:var(--ink);
  font-size:var(--fs-sm); font-weight:500; padding-block:.4rem;
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:100%;
  background:var(--rose); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }
.nav__link[aria-current="page"]{ color:var(--pine); font-weight:600; }
.nav__cta{ display:flex; align-items:center; gap:1rem; }
.nav__tel{
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:var(--fs-sm); font-weight:600; color:var(--ink); text-decoration:none;
}
.nav__tel svg{ width:16px; height:16px; color:var(--pine); }
.nav__tel:hover{ color:var(--pine); }
.nav__link, .nav__tel, .nav__cta .btn{ white-space:nowrap; }
@media (max-width:1359.98px){ .nav__tel{ display:none; } }
.site-header .wrap{ max-width:1320px; }
.site-header__inner > .brand{ flex-shrink:0; }

/* Burger */
.burger{
  display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
  width:48px; height:48px; padding:0 11px; border:1px solid var(--line);
  background:transparent; border-radius:100px; cursor:pointer; z-index:120;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
@media (min-width:1100px){ .burger{ display:none; } }
.burger span{
  display:block; height:1.6px; width:100%; background:var(--ink); border-radius:2px;
  transition:transform .45s var(--ease), opacity .25s var(--ease), background .3s var(--ease);
}
.burger span:nth-child(2){ width:72%; }
.burger[aria-expanded="true"]{ border-color:rgba(255,255,255,.35); }
.burger[aria-expanded="true"] span{ background:#fff; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; transform:translateX(-10px); }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.6px) rotate(-45deg); }

/* Mobile drawer */
.mnav{
  position:fixed; inset:0; z-index:110;
  background:var(--pine-deep);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .7s var(--ease);
  display:flex; flex-direction:column;
  padding:calc(86px + 1.5rem) var(--gut) 2.5rem;
  overflow-y:auto;
}
.mnav.is-open{ clip-path:inset(0 0 0 0); }
.mnav::before{
  content:""; position:absolute; right:-18%; top:-12%;
  width:min(70vw,420px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(closest-side, rgba(207,224,214,.16), rgba(207,224,214,0));
  pointer-events:none;
}
.mnav__list{ list-style:none; margin:0 0 auto; padding:0; }
.mnav__list li{
  margin:0; border-bottom:1px solid rgba(255,255,255,.12);
  opacity:0; transform:translateY(22px);
  transition:opacity .5s var(--ease), transform .55s var(--ease);
  transition-delay:calc(var(--i) * 60ms + 120ms);
}
.mnav.is-open .mnav__list li{ opacity:1; transform:none; }
.mnav__link{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding:1.05rem 0; text-decoration:none; color:#fff;
  font-family:var(--serif); font-size:1.75rem; font-weight:400;
  font-variation-settings:"SOFT" 50, "WONK" 1, "opsz" 72;
}
.mnav__link span{ font-family:var(--sans); font-size:.75rem; font-weight:600; color:rgba(255,255,255,.75); }
.mnav__link[aria-current="page"]{ color:var(--sand-deep); }
.mnav__foot{
  margin-top:2.5rem; display:flex; flex-direction:column; gap:1rem;
  opacity:0; transform:translateY(22px);
  transition:opacity .5s var(--ease) .45s, transform .55s var(--ease) .45s;
}
.mnav.is-open .mnav__foot{ opacity:1; transform:none; }
.mnav__foot .btn{ justify-content:center; }
.mnav__note{ color:rgba(255,255,255,.8); font-size:var(--fs-xs); }

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.hero{ position:relative; overflow:hidden; padding-block:clamp(2.5rem,6vw,4.5rem) clamp(3.5rem,7vw,6rem); }
.hero__glow{
  position:absolute; z-index:0; top:-28vw; right:-18vw;
  width:min(90vw,760px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(closest-side, rgba(207,224,214,.8), rgba(207,224,214,0));
  pointer-events:none;
}
.hero__inner{ position:relative; z-index:1; display:grid; gap:clamp(2.5rem,5vw,4rem); align-items:center; }
@media (min-width:940px){ .hero__inner{ grid-template-columns:1.08fr .92fr; } }
.hero__kicker{
  display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1.5rem;
  font-size:var(--fs-xs); font-weight:600; color:var(--pine);
  background:#fff; border:1px solid var(--line-soft); border-radius:100px;
  padding:.45rem .95rem;
}
.hero__kicker svg{ width:15px; height:15px; }
.hero h1 em{ font-style:italic; font-variation-settings:"SOFT" 80, "WONK" 1, "opsz" 120; }
.hero__sub{ margin-top:1.6rem; max-width:52ch; }
.hero__actions{ margin-top:2.2rem; }

.hero__figure{ position:relative; z-index:0; }
.hero__portrait{
  position:relative; border-radius:var(--arch); overflow:hidden;
  background:var(--celadon); aspect-ratio:4/5;
  box-shadow:0 44px 70px -50px rgba(20,48,42,.75);
}
.hero__portrait picture{ display:block; width:100%; height:100%; }
.hero__portrait::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(20,48,42,.10); pointer-events:none; }
.hero__portrait img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hero__frame{
  position:absolute; inset:auto -10px -10px auto; width:64%; height:72%;
  background:var(--sand); border-radius:var(--arch); z-index:-1;
}
.hero__badge{
  position:absolute; left:16px; bottom:16px; z-index:2;
  background:#fff; border-radius:var(--r-md);
  padding:.95rem 1.2rem; box-shadow:0 22px 40px -28px rgba(20,48,42,.6);
  display:flex; align-items:center; gap:.75rem; max-width:270px;
}
@media (min-width:940px){ .hero__badge{ left:-40px; bottom:40px; } .hero__frame{ inset:auto -18px -18px auto; } }
.hero__badge svg{ width:26px; height:26px; color:var(--pine); flex:none; }
.hero__badge p{ font-size:var(--fs-xs); line-height:1.4; color:var(--ink-soft); margin:0; }
.hero__badge strong{ display:block; color:var(--ink); font-size:var(--fs-sm); }

/* Credential strip */
.creds{
  display:grid; grid-template-columns:1fr; gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
@media (min-width:720px){ .creds{ grid-template-columns:repeat(3,1fr); } }
.creds__item{ padding:1.6rem 0; display:flex; gap:.9rem; align-items:flex-start; border-bottom:1px solid var(--line-soft); }
@media (min-width:720px){
  .creds__item{ border-bottom:0; padding-inline:2rem; }
  .creds__item:first-child{ padding-left:0; }
  .creds__item:last-child{ padding-right:0; }
  .creds__item + .creds__item{ border-left:1px solid var(--line-soft); }
}
.creds__item:last-child{ border-bottom:0; }
.creds__item svg{ width:22px; height:22px; color:var(--pine-mid); flex:none; margin-top:3px; }
.creds__item strong{ display:block; font-size:var(--fs-sm); }
.creds__item span{ font-size:var(--fs-sm); color:var(--ink-soft); }

/* ==========================================================================
   Page header (subpages)
   ========================================================================== */
.pagehead{ position:relative; overflow:hidden; background:var(--celadon-lt); padding-block:clamp(3rem,6vw,5rem) clamp(3rem,6vw,4.5rem); }
.pagehead__inner{ position:relative; z-index:1; max-width:800px; }
.crumbs{ display:flex; align-items:center; gap:.5rem; font-size:var(--fs-xs); color:var(--ink-soft); margin-bottom:1.2rem; }
.crumbs a{ color:var(--ink-soft); text-decoration:none; }
.crumbs a:hover{ color:var(--pine); text-decoration:underline; }
.crumbs svg{ width:13px; height:13px; opacity:.6; }
.pagehead p{ margin-top:1.3rem; }

/* ==========================================================================
   Content components
   ========================================================================== */

/* Audience blocks */
.audience{ display:grid; gap:0; border-top:1px solid var(--line); }
@media (min-width:880px){ .audience{ grid-template-columns:repeat(3,1fr); } }
.audience__item{ padding:2.4rem 0; border-bottom:1px solid var(--line-soft); }
@media (min-width:880px){
  .audience__item{ padding:2.6rem 2.2rem; border-bottom:0; }
  .audience__item:first-child{ padding-left:0; }
  .audience__item:last-child{ padding-right:0; }
  .audience__item + .audience__item{ border-left:1px solid var(--line-soft); }
}
.audience__icon{
  width:52px; height:52px; border-radius:50%; background:var(--celadon-lt);
  display:grid; place-items:center; margin-bottom:1.3rem;
  transition:background .35s var(--ease);
}
.audience__icon svg{ width:25px; height:25px; color:var(--pine); }
.audience__item:hover .audience__icon{ background:var(--celadon); }
.audience__item h3{ margin-bottom:.7rem; }
.audience__item p{ color:var(--ink-soft); font-size:var(--fs-sm); }

/* Specialty list */
.specialties{ list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--line-soft); }
@media (min-width:640px){ .specialties{ grid-template-columns:repeat(2,1fr); column-gap:clamp(1.5rem,4vw,3.5rem); } }
@media (min-width:1000px){ .specialties{ grid-template-columns:repeat(3,1fr); } }
.specialties li{
  margin:0; display:flex; align-items:center; gap:.85rem;
  padding:1.05rem .25rem; border-bottom:1px solid var(--line-soft);
  font-size:var(--fs-sm); font-weight:500;
}
.specialties svg{ width:17px; height:17px; color:var(--pine-mid); flex:none; }

/* Steps (a real sequence) */
.steps{ list-style:none; margin:0; padding:0; display:grid; gap:0; counter-reset:step; }
@media (min-width:880px){ .steps{ grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,3vw,2.5rem); } }
.steps li{
  counter-increment:step; margin:0; padding-top:1.5rem; border-top:2px solid var(--celadon);
  position:relative;
}
.steps li + li{ margin-top:2rem; }
@media (min-width:880px){ .steps li + li{ margin-top:0; } }
.steps li::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--serif); font-size:.95rem; font-weight:600; color:var(--pine);
  display:block; margin-bottom:.7rem;
}
.steps h3{ font-size:1.3rem; margin-bottom:.55rem; }
.steps p{ color:var(--ink-soft); font-size:var(--fs-sm); }

/* Quote */
.quote{ position:relative; padding-left:clamp(1.5rem,4vw,3rem); border-left:2px solid var(--rose); }
.quote blockquote{
  margin:0; font-family:var(--serif); font-size:clamp(1.3rem,2.6vw,1.9rem); line-height:1.35;
  font-variation-settings:"SOFT" 60, "WONK" 1, "opsz" 110; letter-spacing:-.01em;
}
.quote figcaption{ margin-top:1.4rem; font-size:var(--fs-sm); color:var(--ink-soft); font-weight:500; }

/* Prose block */
.prose > * + *{ margin-top:1.15em; }
.prose h3{ margin-top:2.2em; }
.prose h3:first-child{ margin-top:0; }
.prose p{ margin-bottom:0; max-width:68ch; }
.prose ul{ max-width:68ch; }

/* Facts / mini list with icons */
.facts{ list-style:none; margin:0; padding:0; display:grid; gap:1.4rem; }
.facts li{ margin:0; display:flex; gap:.95rem; align-items:flex-start; }
.facts svg{ width:20px; height:20px; color:var(--pine-mid); flex:none; margin-top:4px; }
.facts strong{ display:block; font-size:var(--fs-sm); }
.facts span{ font-size:var(--fs-sm); color:var(--ink-soft); }

/* Panel card */
.panel{
  background:#fff; border:1px solid var(--line-soft); border-radius:var(--r-md);
  padding:clamp(1.6rem,3vw,2.4rem);
}
.panel--tint{ background:var(--celadon-lt); border-color:transparent; }
.panel--sand{ background:var(--sand); border-color:transparent; }
.panel h3{ margin-bottom:.9rem; }

/* Timeline (bio) */
.timeline{ list-style:none; margin:0; padding:0; }
.timeline li{ margin:0; position:relative; padding:0 0 2rem 2rem; border-left:1.5px solid var(--celadon); }
.timeline li:last-child{ padding-bottom:0; border-left-color:transparent; }
.timeline li::before{
  content:""; position:absolute; left:-6.25px; top:6px; width:11px; height:11px;
  border-radius:50%; background:var(--paper); border:2px solid var(--pine-mid);
}
.timeline h4{ margin-bottom:.35rem; }
.timeline p{ color:var(--ink-soft); font-size:var(--fs-sm); margin:0; }

/* Accordion (FAQ) */
.acc{ border-top:1px solid var(--line); }
.acc__item{ border-bottom:1px solid var(--line); }
.acc__btn{
  width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem;
  background:none; border:0; cursor:pointer; text-align:left; color:var(--ink);
  padding:1.55rem 0; font-family:var(--serif); font-size:clamp(1.1rem,1.9vw,1.35rem);
  font-weight:500; font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 60; line-height:1.3;
  transition:color .3s var(--ease);
}
.acc__btn:hover{ color:var(--pine); }
.acc__icon{
  flex:none; width:32px; height:32px; border-radius:50%; border:1.5px solid var(--line);
  display:grid; place-items:center; margin-top:2px;
  transition:background .35s var(--ease), border-color .35s var(--ease), transform .45s var(--ease);
}
.acc__icon svg{ width:14px; height:14px; transition:transform .45s var(--ease); }
.acc__btn:hover .acc__icon{ border-color:var(--pine-mid); }
.acc__btn[aria-expanded="true"] .acc__icon{ background:var(--pine); border-color:var(--pine); color:#fff; }
.acc__btn[aria-expanded="true"] .acc__icon svg{ transform:rotate(180deg); }
.acc__panel{ overflow:hidden; height:0; transition:height .5s var(--ease); }
.acc__inner{ padding:0 0 1.9rem; max-width:70ch; color:var(--ink-soft); }
.acc__inner p{ margin-bottom:1em; }
.acc__inner ul{ margin-bottom:0; }

/* Resources */
.res-nav{ display:flex; flex-wrap:wrap; gap:.55rem; }
.res-nav a{
  display:inline-flex; font-size:var(--fs-xs); font-weight:600; text-decoration:none;
  color:var(--ink); background:#fff; border:1px solid var(--line-soft);
  padding:.55rem .9rem; border-radius:100px;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.res-nav a:hover{ background:var(--pine); border-color:var(--pine); color:#fff; }
.res-group + .res-group{ margin-top:clamp(2.8rem,5vw,4rem); }
.res-group > h3{
  padding-bottom:.9rem; border-bottom:2px solid var(--celadon); margin-bottom:1.8rem;
  scroll-margin-top:190px;
}
.res-list{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
@media (min-width:820px){ .res-list{ grid-template-columns:repeat(2,1fr); column-gap:clamp(1.5rem,4vw,3rem); } }
.res-list li{ margin:0; padding:1.2rem 0; border-bottom:1px solid var(--line-soft); }
.res-list a{
  display:inline-flex; align-items:center; gap:.45rem; font-weight:600;
  text-decoration:none; border-bottom:1.5px solid var(--celadon); padding-bottom:1px;
}
.res-list a:hover{ border-color:var(--rose); }
.res-list a svg{ width:14px; height:14px; opacity:.6; }
.res-list p{ margin:.5rem 0 0; font-size:var(--fs-sm); color:var(--ink-soft); max-width:52ch; }

.books{ display:grid; gap:1.5rem; }
@media (min-width:760px){ .books{ grid-template-columns:repeat(2,1fr); } }
.books__group{ background:#fff; border:1px solid var(--line-soft); border-radius:var(--r-md); padding:1.6rem 1.7rem; }
.books__group h4{ margin-bottom:.9rem; padding-bottom:.7rem; border-bottom:1px solid var(--line-soft); }
.books__group ul{ list-style:none; margin:0; padding:0; }
.books__group li{ font-size:var(--fs-sm); color:var(--ink-soft); padding:.5rem 0; }
.books__group li em{ color:var(--ink); font-style:normal; font-weight:600; }

/* Contact / form */
.form{ display:grid; gap:1.15rem; }
.field{ display:grid; gap:.45rem; }
.field label{ font-size:var(--fs-sm); font-weight:600; }
.field label span{ color:var(--rose-text); }
.field input, .field select, .field textarea{
  width:100%; font-family:var(--sans); font-size:var(--fs-base); color:var(--ink);
  background:#fff; border:1.5px solid var(--field-line); border-radius:8px;
  padding:.85rem 1rem; transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:2.5px solid var(--pine); outline-offset:2px; border-color:var(--pine);
}
.field__hint{ font-size:var(--fs-xs); color:var(--ink-soft); }
@media (min-width:640px){ .form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.15rem; } }
.form__status{
  display:none; align-items:flex-start; gap:.75rem;
  background:var(--celadon-lt); border-radius:var(--r-md); padding:1.1rem 1.25rem;
  font-size:var(--fs-sm);
}
.form__status.is-visible{ display:flex; }
.form__status svg{ width:20px; height:20px; color:var(--pine); flex:none; margin-top:2px; }

.contact-card{ display:grid; gap:1.6rem; }
.contact-card__row{ display:flex; gap:1rem; align-items:flex-start; }
.contact-card__row svg{ width:22px; height:22px; color:var(--pine-mid); flex:none; margin-top:4px; }
.contact-card__row strong{ display:block; font-size:var(--fs-sm); margin-bottom:.15rem; }
.contact-card__row a{ font-size:1.15rem; font-weight:600; text-decoration:none; font-family:var(--serif); }
.contact-card__row a:hover{ text-decoration:underline; }
.contact-card__row p{ font-size:var(--fs-sm); color:var(--ink-soft); margin:0; }

/* CTA band */
.cta{ position:relative; overflow:hidden; }
.cta::before{
  content:""; position:absolute; left:-8%; bottom:-70%;
  width:min(60vw,460px); aspect-ratio:1/1.2;
  background:radial-gradient(closest-side, rgba(255,255,255,.12), rgba(255,255,255,0));
  border-radius:50%;
}
.cta__inner{ position:relative; z-index:1; display:grid; gap:2rem; align-items:center; }
@media (min-width:920px){ .cta__inner{ grid-template-columns:1.25fr .75fr; } }
.cta p{ color:rgba(255,255,255,.85); max-width:52ch; margin-top:1.1rem; }
.cta__actions{ display:flex; flex-wrap:wrap; gap:.85rem; }
@media (min-width:920px){ .cta__actions{ justify-content:flex-end; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.72); font-size:var(--fs-sm); }
.site-footer a{ color:rgba(255,255,255,.72); text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.footer__grid{ display:grid; gap:2.5rem; padding-block:clamp(3rem,6vw,4.5rem) 2.5rem; }
@media (min-width:860px){ .footer__grid{ grid-template-columns:1.5fr 1fr 1fr; gap:clamp(2rem,5vw,4rem); } }
.footer__brand .brand__name{ color:#fff; font-size:1.55rem; }
.footer__brand .brand__sub{ color:rgba(255,255,255,.72); }
.footer__brand p{ margin-top:1.2rem; max-width:38ch; }
.footer h4{ color:#fff; font-size:1rem; margin-bottom:1.1rem; font-family:var(--sans); font-weight:600; letter-spacing:.01em; }
.footer__list{ list-style:none; margin:0; padding:0; }
.footer__list li{ margin-bottom:.65rem; }
.footer__tel{ font-family:var(--serif); font-size:1.35rem; color:#fff !important; font-weight:500; }
.footer__disclaimer{
  border-top:1px solid rgba(255,255,255,.12); padding-block:2rem;
  font-size:var(--fs-xs); line-height:1.65; color:rgba(255,255,255,.72); max-width:92ch;
}
.footer__disclaimer strong{ color:rgba(255,255,255,.8); display:block; margin-bottom:.5rem; font-size:var(--fs-sm); }
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.12); padding-block:1.5rem 2rem;
  display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between;
  font-size:var(--fs-xs); color:rgba(255,255,255,.72);
}

/* Emergency strip */
.urgent{
  display:flex; gap:.85rem; align-items:flex-start;
  background:rgba(191,122,108,.12); border-left:2px solid var(--rose);
  padding:1.1rem 1.25rem; border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:var(--fs-sm);
}
.urgent svg{ width:20px; height:20px; color:#C0614A; flex:none; margin-top:3px; }
.urgent p{ margin:0; }

/* ==========================================================================
   Reveal animation
   ========================================================================== */
.r{ opacity:0; transform:translateY(24px); transition:opacity .85s var(--ease), transform .85s var(--ease); transition-delay:var(--d,0ms); will-change:opacity,transform; }
.r--left{ transform:translateX(-26px); }
.r--scale{ transform:scale(.965) translateY(18px); }
.r--mask{ clip-path:inset(0 0 100% 0); opacity:1; transform:none; transition:clip-path 1.05s var(--ease); transition-delay:var(--d,0ms); }
.r.is-in{ opacity:1; transform:none; }
.r--mask.is-in{ clip-path:inset(0 0 0 0); }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .r{ opacity:1 !important; transform:none !important; clip-path:none !important; }
  .mnav{ transition:none; }
}

/* ---------- Fees ---------- */
.fees{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.fees li{ margin:0; display:flex; justify-content:space-between; align-items:baseline; gap:1.25rem; padding:1.3rem 0; border-bottom:1px solid var(--line); }
.fees__name{ font-family:var(--serif); font-size:var(--fs-h4); line-height:1.3; }
.fees__name small{ display:block; margin-top:.25rem; font-family:var(--sans); font-size:var(--fs-sm); color:var(--ink-soft); }
.fees__price{ font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,1.9rem); line-height:1; color:var(--pine); white-space:nowrap; text-align:right; }
.fees__price small{ display:block; margin-top:.35rem; font-family:var(--sans); font-size:var(--fs-xs); color:var(--ink-soft); letter-spacing:.02em; }
.fees-note{ margin-top:1.5rem; font-size:var(--fs-sm); color:var(--ink-soft); max-width:60ch; }
.panel__text{ font-size:var(--fs-sm); }
.panel__text > * + *{ margin-top:.9em; }
.panel__text p{ margin-bottom:0; }
.footer__list li:has(> address) + li{ margin-top:1.2rem; }

/* ==========================================================================
   WordPress integration
   ========================================================================== */
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }
.admin-bar .mnav{ top:46px; }
@media (min-width:783px){ .admin-bar .mnav{ top:32px; } }

.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px;
  margin:-1px; overflow:hidden; padding:0; position:absolute !important; word-wrap:normal !important;
}
.screen-reader-text:focus{ clip:auto !important; clip-path:none; height:auto; width:auto; z-index:100000; background:#fff; padding:.8rem 1rem; }

.prose img, .acc__inner img{ height:auto; border-radius:var(--r-sm); }
.prose ul, .prose ol{ max-width:68ch; }
.prose a, .acc__inner a, .footer__disclaimer a{ word-break:break-word; }
.footer__disclaimer p{ margin:0; }
.lead p{ margin-bottom:1em; }
.lead p:last-child{ margin-bottom:0; }

/* Sticky category bar on the Resources page */
.res-bar{
  padding-block:1.75rem; border-bottom:1px solid var(--line-soft);
  position:sticky; top:86px; z-index:40;
  background:var(--paper);
  background:color-mix(in srgb, var(--paper) 94%, transparent);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.admin-bar .res-bar{ top:118px; }

/* ==========================================================================
   Gravity Forms (matches the site's form styles)
   ========================================================================== */
.drabby-form .gform_wrapper.gravity-theme{ margin:0; }
.drabby-form .gform_wrapper.gravity-theme .gform_fields{ row-gap:1.15rem; column-gap:1.15rem; }
.drabby-form .gform_wrapper.gravity-theme .gfield_label{
  font-family:var(--sans); font-size:var(--fs-sm); font-weight:600; color:var(--ink); margin-bottom:.45rem; padding:0;
}
.drabby-form .gform_wrapper.gravity-theme .gfield_required{ color:var(--rose-text); font-size:inherit; padding-left:.2rem; }
.drabby-form .gform_wrapper.gravity-theme .gfield_required .gfield_required_text{ font-style:normal; font-size:var(--fs-xs); }
.drabby-form .gform_wrapper.gravity-theme input[type="text"],
.drabby-form .gform_wrapper.gravity-theme input[type="email"],
.drabby-form .gform_wrapper.gravity-theme input[type="tel"],
.drabby-form .gform_wrapper.gravity-theme input[type="number"],
.drabby-form .gform_wrapper.gravity-theme input[type="url"],
.drabby-form .gform_wrapper.gravity-theme select,
.drabby-form .gform_wrapper.gravity-theme textarea{
  width:100%; font-family:var(--sans); font-size:var(--fs-base); color:var(--ink);
  background:#fff; border:1.5px solid var(--field-line); border-radius:8px;
  padding:.85rem 1rem; line-height:1.4; transition:border-color .3s var(--ease);
}
.drabby-form .gform_wrapper.gravity-theme textarea{ min-height:140px; height:auto; resize:vertical; }
.drabby-form .gform_wrapper.gravity-theme input:focus,
.drabby-form .gform_wrapper.gravity-theme select:focus,
.drabby-form .gform_wrapper.gravity-theme textarea:focus{
  outline:2.5px solid var(--pine); outline-offset:2px; border-color:var(--pine);
}
.drabby-form .gform_wrapper.gravity-theme .gfield_description{
  font-size:var(--fs-xs); color:var(--ink-soft); padding-top:.45rem;
}
.drabby-form .gform_wrapper.gravity-theme .gfield_error input,
.drabby-form .gform_wrapper.gravity-theme .gfield_error select,
.drabby-form .gform_wrapper.gravity-theme .gfield_error textarea{ border-color:#B3261E; }
.drabby-form .gform_wrapper.gravity-theme .gfield_validation_message,
.drabby-form .gform_wrapper.gravity-theme .validation_message{
  background:none; border:0; padding:.4rem 0 0; color:#B3261E; font-size:var(--fs-xs); font-weight:600;
}
.drabby-form .gform_wrapper.gravity-theme .gform_validation_errors{
  background:rgba(179,38,30,.06); border:1px solid rgba(179,38,30,.35); border-radius:var(--r-md);
  box-shadow:none; padding:1rem 1.25rem; margin-bottom:1.5rem;
}
.drabby-form .gform_wrapper.gravity-theme .gform_validation_errors h2{
  font-family:var(--sans); font-size:var(--fs-sm); color:#B3261E; font-weight:600;
}
.drabby-form .gform_wrapper.gravity-theme .gform_footer{ padding:1.4rem 0 0; margin:0; }
.drabby-form .gform_wrapper.gravity-theme .gform_footer .gform_button,
.drabby-form .gform_wrapper.gravity-theme .gform_page_footer .button{
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--pine); color:#fff; border:1.5px solid var(--pine);
  padding:.95rem 1.5rem; border-radius:100px; margin:0;
  font-family:var(--sans); font-size:var(--fs-sm); font-weight:600; line-height:1; cursor:pointer;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.drabby-form .gform_wrapper.gravity-theme .gform_footer .gform_button:hover{
  background:var(--pine-deep); border-color:var(--pine-deep); transform:translateY(-2px);
}
.drabby-form .gform_confirmation_message{
  background:var(--celadon-lt); border-radius:var(--r-md); padding:1.1rem 1.25rem; font-size:var(--fs-sm);
}
.drabby-form .gform_ajax_spinner{ margin-left:.75rem; }
.drabby-form iframe{ width:100%; border:0; }

/* v1.1 additions */
.hero__tagline{ font-size:1rem; max-width:46ch; margin:1rem 0 0; }
.res-heading{ margin-bottom:2rem; scroll-margin-top:190px; }
.res-intro{ max-width:65ch; margin-bottom:1.5rem; }
.books__desc{ font-size:.95rem; margin-top:.5rem; }
