/* ==========================================================================
   Aura Integra Behavioral Health, PLLC — Version A
   Fresh build. Plain CSS, self-hosted fonts, no framework, no CDN.
   ========================================================================== */

/* ---------- 1. Fonts ---------------------------------------------------- */
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dmsans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dmsans-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dmsans-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dmsans-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* ---------- 2. Tokens --------------------------------------------------- */
:root{
  /* colour */
  --cream:#FBF7EE;
  --cream-2:#F5EFE1;
  --veil:rgba(251,247,238,.90);
  --veil-2:rgba(251,247,238,.96);
  --teal:#0A6B6F;
  --teal-deep:#08484B;
  --teal-ink:#04292B;
  --teal-soft:#DCE8E7;
  --gold:#C49A22;          /* non-text accents + large display + button fills */
  --gold-ink:#7A5D0C;      /* AA-safe gold for text on cream (5.78:1) */
  --gold-onteal:#F0DCA8;   /* AA-safe gold for text on deep teal (7.6:1) */
  --gold-glow:rgba(196,154,34,.30);
  --ink:#1E2A2B;
  --muted:#4A5A5B;
  --line:rgba(30,42,43,.14);
  --line-onteal:rgba(240,220,168,.26);

  /* type */
  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --t-hero:clamp(3rem,11vw,7rem);
  --t-h2:clamp(1.9rem,4.2vw,3.2rem);
  --t-h2-lead:clamp(2rem,4.8vw,3.7rem);
  --t-h3:clamp(1.3rem,2.4vw,1.7rem);
  --t-h4:1.0625rem;
  --t-lede:clamp(1.125rem,2vw,1.4rem);
  --t-body:1.0625rem;
  --t-small:.9375rem;
  --t-eyebrow:.75rem;

  /* space */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4rem; --s9:6rem; --s10:8rem;
  --gutter:clamp(1.15rem,5vw,4.5rem);
  --maxw:1200px;
  --measure:62ch;

  /* motion — floor 200ms, ceiling 600ms, decelerating */
  --e:cubic-bezier(.16,.84,.36,1);
  --d-fast:200ms; --d-mid:360ms; --d-slow:560ms;
  --radius:2px;
  --radius-lg:20px;
}

/* ---------- 3. Reset ---------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:clamp(5rem,11vh,7rem)}
section[id],div[id],h2[id]{scroll-margin-top:clamp(5rem,11vh,7rem)}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--body);font-size:var(--t-body);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,video{max-width:100%;display:block;height:auto}
button{font:inherit;color:inherit}
a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--teal-deep)}
h1,h2,h3,h4{margin:0;font-weight:400;letter-spacing:-.01em}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
::selection{background:var(--gold-glow)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--teal-deep);color:var(--cream);padding:.75rem 1.25rem}
.skip:focus{left:.5rem;top:.5rem}

/* ---------- 4. Page-wide ambience -------------------------------------- */
.ambience{
  position:fixed;inset:0;z-index:-2;
  background:url("../images/ambience.jpg") center/cover no-repeat;
  opacity:.5;
}
.ambience::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 70% at 15% 0%,rgba(251,247,238,.55),transparent 60%),
    linear-gradient(180deg,rgba(251,247,238,.82),rgba(245,239,225,.94) 45%,rgba(251,247,238,.9));
}

/* ---------- 5. Crisis bar + masthead ----------------------------------- */
.crisisbar{
  background:var(--teal-ink);color:#EAF1F0;
  font-size:.8125rem;letter-spacing:.01em;text-align:center;
  padding:.5rem var(--gutter);position:relative;z-index:60;
}
.crisisbar p{margin:0}
.crisisbar a{color:var(--gold-onteal);font-weight:500}
.crisisbar__dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--gold);margin-right:.45rem;vertical-align:middle;
  animation:pulse 3.4s var(--e) infinite;
}
@keyframes pulse{0%,100%{opacity:.45;transform:scale(.86)}50%{opacity:1;transform:scale(1)}}

.masthead{
  position:sticky;top:0;z-index:55;
  display:flex;align-items:center;gap:var(--s5);
  padding:.6rem var(--gutter);
  background:rgba(251,247,238,.86);
  backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line);
  transition:box-shadow var(--d-mid) var(--e);
}
.masthead.is-stuck{box-shadow:0 10px 30px -22px rgba(4,41,43,.55)}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:inherit;flex:0 0 auto}
.brand__mark{width:56px;height:56px;object-fit:contain;object-position:center}
.brand__type{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--display);font-size:1.28rem;font-weight:600;color:var(--teal);letter-spacing:.005em}
.brand__sub{font-size:.5625rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-ink);margin-top:.22rem}

.mainnav{display:none;margin-left:auto;gap:clamp(.9rem,2vw,1.8rem)}
.mainnav a{
  font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;padding:.4rem 0;position:relative;
}
.mainnav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--gold);transition:right var(--d-mid) var(--e);
}
.mainnav a:hover,.mainnav a[aria-current="true"]{color:var(--teal-deep)}
.mainnav a:hover::after,.mainnav a[aria-current="true"]::after{right:0}
.masthead__cta{margin-left:auto}
@media(min-width:1040px){
  .mainnav{display:flex}
  .masthead__cta{margin-left:0}
}
@media(max-width:639px){
  .masthead>.masthead__cta{display:none}
}
@media(max-width:479px){
  .brand__name{font-size:1.15rem}
}
@media(max-width:370px){
  .masthead{gap:.55rem}
  .brand{gap:.45rem;min-width:0}
  .brand__mark{width:46px;height:46px}
  .brand__name{font-size:1.02rem}
  .brand__sub{font-size:.48rem;letter-spacing:.14em}
}

/* compact section menu, below the desktop nav breakpoint */
.navtoggle{
  margin-left:auto;display:inline-flex;align-items:center;gap:.5rem;
  min-height:44px;padding:.5rem .9rem;border:1px solid var(--line);border-radius:999px;
  background:rgba(255,255,255,.55);color:var(--teal-deep);cursor:pointer;
  font-family:var(--body);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
}
.navtoggle__bars{display:grid;gap:4px;width:16px}
.navtoggle__bars span{display:block;height:1.5px;background:var(--teal-deep);border-radius:2px}
.navtoggle__bars span:last-child{width:11px;justify-self:start}
.navtoggle[aria-expanded="true"]{background:var(--teal-deep);color:var(--cream);border-color:var(--teal-deep)}
.navtoggle[aria-expanded="true"] .navtoggle__bars span{background:var(--cream)}
@media(min-width:1040px){.navtoggle{display:none}}
@media(max-width:370px){
  .navtoggle{gap:.35rem;padding:.45rem .65rem;font-size:.6875rem;letter-spacing:.1em}
}

.mobilenav{
  position:fixed;left:0;right:0;top:var(--mast-h,4.25rem);z-index:54;display:grid;
  max-height:min(70vh,32rem);overflow:auto;
  padding:var(--s4) var(--gutter) var(--s5);
  background:var(--cream);border-bottom:1px solid var(--line);
  box-shadow:0 24px 40px -34px rgba(4,41,43,.6);
}
.mobilenav>a{
  padding:.7rem 0;min-height:44px;display:flex;align-items:center;
  color:var(--teal-deep);text-decoration:none;font-size:.9375rem;
  border-bottom:1px solid var(--line);
}
.mobilenav>a:hover{color:var(--gold-ink)}
.mobilenav__cta{border-bottom:0;font-weight:500;color:var(--gold-ink)}
.mobilenav__crisis{margin:var(--s3) 0 0;font-size:.8125rem;color:var(--muted)}
.mobilenav__crisis a{color:var(--teal-deep);text-decoration:underline}
@media(min-width:1040px){.mobilenav{display:none!important}}

/* ------- dropdown nav: desktop hover/focus, mobile <details> ---------- */
/* Desktop */
.mainnav__group{position:relative}
.mainnav__toggle{
  font:inherit;background:none;border:0;padding:.4rem 0;cursor:pointer;
  font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  display:inline-flex;align-items:center;gap:.35rem;position:relative;
}
.mainnav__toggle::after{
  content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);margin-left:.15rem;transition:transform 200ms ease;
}
.mainnav__group:hover .mainnav__toggle,
.mainnav__group:focus-within .mainnav__toggle{color:var(--teal-deep)}
.mainnav__group:hover .mainnav__toggle::after,
.mainnav__group:focus-within .mainnav__toggle::after{transform:rotate(-135deg) translateY(-2px)}
.mainnav__menu{
  position:absolute;top:calc(100% + .4rem);left:-.75rem;min-width:14rem;
  background:var(--cream);border:1px solid var(--line);border-radius:12px;
  padding:.5rem;display:grid;gap:.1rem;
  box-shadow:0 24px 60px -30px rgba(4,41,43,.5),0 4px 12px rgba(0,0,0,.08);
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity 180ms ease,transform 180ms ease,visibility 180ms;
  z-index:60;
}
.mainnav__menu a{
  display:block;padding:.55rem .75rem;font-size:.875rem;letter-spacing:.01em;
  text-transform:none;color:var(--teal-deep);text-decoration:none;border-radius:8px;
}
.mainnav__menu a::after{display:none}
.mainnav__menu a:hover,.mainnav__menu a:focus-visible{background:rgba(10,107,111,.08);color:var(--teal-deep)}
.mainnav__group:hover .mainnav__menu,
.mainnav__group:focus-within .mainnav__menu{opacity:1;visibility:visible;transform:translateY(0)}

/* Mobile <details> groups */
.mobilenav__group{border-bottom:1px solid var(--line)}
.mobilenav__group>summary{
  list-style:none;cursor:pointer;padding:.85rem 0;min-height:44px;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  color:var(--teal-deep);font-size:.9375rem;font-weight:500;
}
.mobilenav__group>summary::-webkit-details-marker{display:none}
.mobilenav__group>summary::after{
  content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform 200ms ease;flex:0 0 auto;margin-right:.25rem;
}
.mobilenav__group[open]>summary::after{transform:rotate(-135deg)}
.mobilenav__group>a{
  display:flex;align-items:center;min-height:40px;padding:.55rem 0 .55rem 1rem;
  color:var(--teal);text-decoration:none;font-size:.9rem;
  border-top:1px dotted var(--line);
}
.mobilenav__group>a:hover{color:var(--gold-ink)}

.scrollmeter{position:sticky;top:0;z-index:54;height:2px;background:transparent}
.scrollmeter span{display:block;height:2px;width:0;background:linear-gradient(90deg,var(--gold),#E7CE86)}

/* ---------- 6. Type helpers -------------------------------------------- */
.eyebrow{
  font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-ink);margin:0 0 var(--s4);font-weight:500;
}
.eyebrow--onteal{color:var(--gold-onteal)}
.eyebrow--onfilm{color:#F3E4BE;text-shadow:0 1px 12px rgba(4,41,43,.8)}
.h2{font-family:var(--display);font-size:var(--t-h2);line-height:1.1;letter-spacing:-.01em;max-width:26ch;color:var(--teal-deep)}
.h2--lead{font-size:var(--t-h2-lead);max-width:24ch}
.h2--onteal{color:var(--cream)}
.h3{font-family:var(--display);font-size:var(--t-h3);line-height:1.2;margin-bottom:var(--s3)}
.h4{font-family:var(--body);font-size:var(--t-h4);font-weight:700;letter-spacing:.01em;margin-bottom:var(--s2)}
.h4--onteal{color:var(--gold-onteal)}
.prose{max-width:62ch;line-height:1.65}
.prose p{margin-bottom:1.15em}
.prose--wide{max-width:66ch;font-size:clamp(1.0625rem,1.6vw,1.2rem)}
.prose--tight p{margin-bottom:.8em;font-size:var(--t-small)}
.prose--onteal{color:#E4EDEC}

/* ---------- 7. Buttons ------------------------------------------------- */
.btn{
  --btn-y:.9rem;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:48px;padding:var(--btn-y) 1.5rem;
  font-family:var(--body);font-size:1rem;font-weight:500;letter-spacing:.015em;
  text-decoration:none;border:1px solid transparent;border-radius:999px;
  cursor:pointer;position:relative;
  transition:transform 200ms ease,box-shadow 200ms ease,background-color var(--d-fast) var(--e);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.btn--gold{background:var(--gold);color:var(--teal-ink);box-shadow:0 8px 22px -14px rgba(196,154,34,.9)}
.btn--gold:hover{background:#D2A72C;color:var(--teal-ink);transform:translateY(-1px);box-shadow:0 16px 34px -18px rgba(196,154,34,.95),0 4px 12px rgba(0,0,0,.12)}
.btn--teal{background:var(--teal);color:#fff}
.btn--teal:hover{background:var(--teal-deep);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.prose a{text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-thickness 150ms ease}
.prose a:hover{text-decoration-thickness:2px}
.btn--lg{font-size:1.0625rem;padding:1.05rem 1.9rem;min-height:52px}
.btn--sm{min-height:44px;padding:.6rem 1.1rem;font-size:.875rem}
.btn--block{width:100%}
.btn:active{transform:translateY(0)}

.quietlink{
  background:none;border:0;padding:.7rem 0;cursor:pointer;
  display:inline-flex;align-items:center;gap:.6rem;min-height:44px;
  font-size:1rem;color:#F5EFE1;text-decoration:underline;
  text-decoration-color:rgba(245,239,225,.5);text-underline-offset:.28em;
}
.quietlink:hover{text-decoration-color:var(--gold)}
.quietlink--plain{color:var(--teal);text-decoration-color:rgba(10,107,111,.4)}
.quietlink__ring{
  width:34px;height:34px;border-radius:50%;flex:0 0 auto;position:relative;
  border:1px solid rgba(240,220,168,.7);
}
.quietlink__ring::before{content:"";position:absolute;left:12px;top:10px;border-left:9px solid var(--gold-onteal);border-top:6px solid transparent;border-bottom:6px solid transparent}
.quietlink__ring::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--gold);
  animation:sonar 3.2s var(--e) infinite;
}
.quietlink.is-used .quietlink__ring::after{animation:none;opacity:0}
@keyframes sonar{0%{transform:scale(.85);opacity:.7}70%{transform:scale(1.35);opacity:0}100%{opacity:0}}

/* ---------- 8. Hero ---------------------------------------------------- */
.hero{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(560px,88svh,880px);
  display:flex;align-items:flex-end;
  padding:clamp(4rem,14vh,9rem) var(--gutter) clamp(2.5rem,7vh,4.5rem);
}
.hero__film{position:absolute;inset:0;z-index:-1;background:#04292B}
.hero__video{width:100%;height:100%;object-fit:cover;filter:saturate(1.02)}
.hero__film::after{
  content:"";position:absolute;inset:0;
  background-image:url("../videos/hero-ambient-poster.jpg");
  background-size:cover;background-position:center;opacity:0;
}
.hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(75deg,rgba(4,41,43,.94) 0%,rgba(4,41,43,.78) 38%,rgba(4,41,43,.30) 72%,rgba(4,41,43,.42) 100%),
    linear-gradient(0deg,rgba(4,41,43,.85),transparent 55%);
}
.hero__inner{position:relative;width:100%;max-width:var(--maxw);margin:0 auto}
.hero__h1{
  font-family:var(--display);font-weight:600;color:#FDFBF6;
  font-size:var(--t-hero);line-height:1.02;letter-spacing:-.015em;
  margin:0 0 var(--s5);text-shadow:0 2px 40px rgba(4,41,43,.6);
}
.hero__h1 em{font-style:normal;color:var(--gold-onteal);display:inline-block}
.hero__lede{
  color:#E7EFEE;font-size:var(--t-lede);max-width:30ch;margin:0 0 var(--s6);
  line-height:1.5;
}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s5) var(--s6)}
.hero__shortcuts{
  display:flex;flex-wrap:wrap;align-items:center;gap:.55rem var(--s5);
  margin-top:var(--s5);max-width:62rem;
  color:#DCE8E7;font-size:.875rem;
}
.hero__shortcuts span{color:#F3E4BE;font-weight:700}
.hero__shortcuts a{
  color:#FDFBF6;text-underline-offset:.28em;
  text-decoration-color:rgba(240,220,168,.55);
}
.hero__shortcuts a:hover{color:var(--gold-onteal);text-decoration-color:var(--gold-onteal)}
@media(max-width:640px){
  .hero__shortcuts{display:grid;gap:.55rem;margin-top:var(--s4)}
  .hero__shortcuts a{width:max-content;max-width:100%}
}

/* motion control */
.motionctl{
  position:absolute;right:var(--gutter);top:clamp(1rem,4vh,2rem);z-index:3;
  display:inline-flex;align-items:center;gap:.55rem;min-height:44px;
  padding:.5rem .95rem;border-radius:999px;cursor:pointer;
  background:rgba(4,41,43,.55);border:1px solid rgba(240,220,168,.45);
  color:#F3E4BE;font-size:.8125rem;letter-spacing:.04em;
  backdrop-filter:blur(6px);transition:background-color var(--d-fast) var(--e);
}
.motionctl:hover{background:rgba(4,41,43,.78)}
.motionctl__icon{width:11px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.motionctl[aria-pressed="true"] .motionctl__icon{
  border:0;width:0;height:0;border-left:11px solid currentColor;
  border-top:7px solid transparent;border-bottom:7px solid transparent;
}
@media(max-width:600px){.motionctl__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .motionctl{padding:.6rem .7rem}}

/* narration */
.narration{
  margin-top:var(--s6);max-width:46rem;
  background:rgba(4,41,43,.62);border:1px solid rgba(240,220,168,.3);
  border-radius:var(--radius-lg);padding:var(--s5);
  backdrop-filter:blur(10px);
}
.narration__label{color:#E7EFEE;font-size:var(--t-small);margin-bottom:var(--s3)}
.narration__audio{width:100%;margin-bottom:var(--s3)}
.narration__transcript summary{color:var(--gold-onteal);cursor:pointer;font-size:var(--t-small);padding:.4rem 0;min-height:32px}
.narration__transcript .prose{color:#E4EDEC;margin-top:var(--s3);max-height:16rem;overflow-y:auto;padding-right:.5rem}

/* ---------- 9. Reassurance strip --------------------------------------- */
.reassure{background:var(--teal-ink);color:#DCE8E7;padding:var(--s7) var(--gutter);position:relative;z-index:2}
.reassure__list{
  max-width:var(--maxw);margin:0 auto;display:grid;gap:var(--s5) var(--s6);
  grid-template-columns:1fr;
}
@media(min-width:560px){.reassure__list{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.reassure__list{grid-template-columns:repeat(4,1fr)}}
.reassure__list li{display:grid;grid-template-columns:auto 1fr;gap:0 var(--s4);align-items:start}
.reassure__glyph{color:var(--gold);width:30px;grid-row:span 2}
.reassure__glyph svg{width:30px;height:30px}
.reassure__list h2{
  font-family:var(--body);font-size:.9375rem;font-weight:700;color:var(--gold-onteal);
  letter-spacing:.01em;line-height:1.35;margin-bottom:.3rem;
}
.reassure__list p{font-size:var(--t-small);margin:0;color:#C9D8D7;grid-column:2}

/* ---------- 10. Acts (sections) + orbit rail --------------------------- */
.act{position:relative;padding:96px var(--gutter)}
@media(min-width:720px){.act{padding:128px var(--gutter)}}
@media(min-width:1040px){.act{padding:160px var(--gutter)}}
.act .h2{margin-bottom:24px}
.act__standfirst,.act .h2+.act__standfirst{margin:0 0 48px;max-width:62ch;line-height:1.65}
.act__body{max-width:var(--maxw);margin:0 auto;position:relative}
.act--opening,.act--help,.act--hope,.act--reflect,.act--first,.act--faq{
  background:var(--veil);backdrop-filter:blur(3px);
  border-top:1px solid var(--line);
}
.act--whole,.act--provider,.act--library,.act--contact{background:var(--teal-deep);color:#E4EDEC;overflow:hidden}
.act--whole{background:radial-gradient(115% 85% at 82% 8%,#0D7276 0%,#08484B 52%,#04292B 100%)}
.act--library{background:linear-gradient(180deg,#04292B,#08484B)}
.act--contact{background:radial-gradient(120% 90% at 12% 0%,#0D7276,#08484B 46%,#04292B)}
.act__standfirst{max-width:62ch;color:var(--muted);margin:24px 0 48px;line-height:1.65}
.act__standfirst--onteal{color:#DCE8E7}
.act__standfirst a{color:var(--teal-deep);font-weight:500;text-underline-offset:.2em}
.section-purpose{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  margin:var(--s4) 0 0;color:var(--muted);font-size:.8125rem;
}
.section-purpose strong,.section-purpose span{
  border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;
  background:rgba(255,255,255,.5);
}
.section-purpose strong{border-color:rgba(196,154,34,.55);color:var(--teal-deep)}

/* left orbit rail with node — desktop only */
.rail{position:absolute;left:calc(var(--gutter) * .42);top:clamp(3.5rem,9vw,7rem);bottom:0;width:1px;display:none}
@media(min-width:1180px){
  .rail{display:block;background:linear-gradient(180deg,rgba(196,154,34,.55),rgba(196,154,34,.10))}
  .rail--onteal{background:linear-gradient(180deg,rgba(240,220,168,.5),rgba(240,220,168,.08))}
  .act__body{padding-left:0}
}
.rail__node{
  position:absolute;top:0;left:-4px;width:9px;height:9px;border-radius:50%;
  background:var(--cream);border:1px solid var(--gold);
  transition:background-color var(--d-slow) var(--e),box-shadow var(--d-slow) var(--e);
}
.rail--onteal .rail__node{background:var(--teal-deep)}
.act.is-lit .rail__node{background:var(--gold);box-shadow:0 0 0 6px var(--gold-glow)}

/* section entry bloom */
.act__body>*{opacity:1}
@media(prefers-reduced-motion:no-preference){
  html.js-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--d-slow) var(--e),transform var(--d-slow) var(--e)}
  html.js-ready .reveal.is-in{opacity:1;transform:none}
}

/* ---------- 11. Opening / breathing ------------------------------------ */
.act--opening .act__body{max-width:64rem}
.pullquote{
  position:relative;font-family:var(--display);
  font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.24;color:var(--teal);
  margin:var(--s7) 0 0;padding-left:clamp(2.75rem,6vw,4.5rem);max-width:24ch;
}
.breath{
  position:absolute;left:0;top:.45em;width:clamp(1.6rem,3.5vw,2.4rem);height:clamp(1.6rem,3.5vw,2.4rem);
  border-radius:50%;border:1px solid var(--gold);
}
.breath::after{
  content:"";position:absolute;inset:5px;border-radius:50%;background:var(--gold-glow);
  animation:breathe 5.6s ease-in-out infinite;
}
@keyframes breathe{0%,100%{transform:scale(.6);opacity:.5}50%{transform:scale(1);opacity:1}}

/* ---------- 12. Topic cards (details) ---------------------------------- */
.cardstack{display:grid;gap:var(--s3);margin-top:var(--s6)}
.topic,.qa{
  background:var(--veil-2);border:1px solid var(--line);border-radius:var(--radius-lg);
  transition:border-color var(--d-fast) var(--e),transform var(--d-fast) var(--e),box-shadow var(--d-mid) var(--e);
}
.topic:hover,.qa:hover{border-color:rgba(196,154,34,.55);transform:translateY(-2px);box-shadow:0 18px 40px -34px rgba(4,41,43,.7)}
.topic>summary,.qa>summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:1.15rem clamp(1rem,2.5vw,1.6rem);cursor:pointer;list-style:none;min-height:56px;
}
.topic>summary::-webkit-details-marker,.qa>summary::-webkit-details-marker{display:none}
.topic__title{font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.25;color:var(--teal-deep)}
.qa>summary>span:first-child{font-weight:500;font-size:1.0625rem;color:var(--teal-deep);line-height:1.4}
.topic__plus{position:relative;width:20px;height:20px;flex:0 0 auto}
.topic__plus::before,.topic__plus::after{
  content:"";position:absolute;background:var(--gold-ink);transition:transform var(--d-fast) var(--e),opacity var(--d-fast) var(--e);
}
.topic__plus::before{left:0;top:9px;width:20px;height:2px}
.topic__plus::after{left:9px;top:0;width:2px;height:20px}
details[open] .topic__plus::after{transform:rotate(90deg);opacity:0}
.topic__body,.qa__body{padding:0 clamp(1rem,2.5vw,1.6rem) 1.35rem}
.topic__body p,.qa__body p{margin:0;max-width:64ch;color:var(--muted)}
.faq{display:grid;gap:var(--s3);margin-top:var(--s6)}

/* ---------- 13. Whole person wheel ------------------------------------ */
.wheelwrap{
  display:grid;gap:var(--s7);margin-top:var(--s6);align-items:center;
  grid-template-columns:1fr;
}
@media(min-width:900px){.wheelwrap{grid-template-columns:minmax(300px,40%) 1fr;gap:var(--s8)}}
.wheel{position:relative;width:min(360px,86vw);margin:0 auto;aspect-ratio:1}
.wheel__svg{width:100%;height:auto;overflow:visible}
.wheel__arc{stroke:rgba(203,220,219,.32);transition:stroke var(--d-mid) var(--e),stroke-width var(--d-mid) var(--e)}
.wheel__arc.is-on{stroke:var(--gold);stroke-width:20}
.wheel__knob{transition:transform var(--d-slow) var(--e);transform-origin:160px 160px;cursor:grab}
.wheel.is-dragging .wheel__knob{transition:none;cursor:grabbing}
.wheel__centerkicker{fill:rgba(203,220,219,.75);font-family:var(--body);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.wheel__centerword{fill:#FDFBF6;font-family:var(--display);font-size:30px}
.wheel__controls{position:absolute;inset:0}
.wheel__hit{
  position:absolute;background:none;border:1px solid transparent;border-radius:999px;
  min-height:44px;min-width:64px;padding:.35rem .8rem;cursor:pointer;
  font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:#DCE8E7;
  transition:color var(--d-fast) var(--e),border-color var(--d-fast) var(--e);
}
.wheel__hit:hover{color:var(--gold-onteal);border-color:var(--line-onteal)}
.wheel__hit[aria-selected="true"]{color:var(--teal-ink);background:var(--gold-onteal);font-weight:700}
.wheel__hit--body{top:-6%;left:50%;transform:translateX(-50%)}
.wheel__hit--mind{bottom:2%;right:-4%}
.wheel__hit--spirit{bottom:2%;left:-4%}
.wheel__slider{position:absolute;inset:14%;border-radius:50%;cursor:grab;touch-action:none}
.wheel__slider:focus-visible{outline:3px solid var(--gold);outline-offset:6px}
.wheel__readout{min-height:1px}
.wheelpanel{animation:fadeup var(--d-slow) var(--e) both}
.wheelpanel h3{color:var(--gold-onteal)}
.wheelpanel p{color:#DCE8E7;max-width:52ch}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ticklist{display:grid;gap:.55rem;margin-top:var(--s4)}
.ticklist li{position:relative;padding-left:1.75rem;font-size:var(--t-small);color:#DCE8E7}
.ticklist li::before{
  content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;
  border:1px solid var(--gold);background:var(--gold-glow);
}
.toolcrisis{
  margin-top:var(--s6);font-size:var(--t-small);color:var(--muted);
  border-top:1px solid var(--line);padding-top:var(--s4);max-width:64ch;
}
.toolcrisis a{color:var(--teal);font-weight:500}
.toolcrisis--onteal{color:#DCE8E7;border-color:var(--line-onteal)}
.toolcrisis--onteal a{color:var(--gold-onteal)}

/* ---------- 14. Hope --------------------------------------------------- */
.hope{display:grid;gap:var(--s7);margin-top:var(--s6)}
@media(min-width:900px){.hope{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s8)}}
.hope__still{margin:var(--s6) 0 0}
.hope__still img{border-radius:var(--radius-lg);box-shadow:0 30px 60px -46px rgba(4,41,43,.85)}
.hope__still figcaption{font-size:.875rem;color:var(--muted);margin-top:.7rem;font-style:italic}
.hope__list{display:grid;gap:var(--s5);counter-reset:h}
.hope__list li{
  position:relative;padding:var(--s5) var(--s5) var(--s5) 4.25rem;
  border-left:1px solid var(--line);
  transition:border-color var(--d-mid) var(--e),background-color var(--d-mid) var(--e);
}
.hope__list li:hover{border-left-color:var(--gold);background:rgba(196,154,34,.05)}
.hope__num{
  position:absolute;left:var(--s5);top:var(--s5);
  font-family:var(--display);font-size:1.25rem;color:var(--gold-ink);
}
.hope__list h3{color:var(--teal-deep)}
.hope__list p{margin:0;color:var(--muted);font-size:var(--t-small);max-width:52ch}

/* ---------- 15. Self reflection tool ----------------------------------- */
.reflect{margin-top:var(--s6)}
.reflect__cards{border:0;padding:0;margin:0;display:grid;gap:var(--s3);grid-template-columns:1fr}
@media(min-width:640px){.reflect__cards{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.reflect__cards{grid-template-columns:repeat(3,1fr)}}
.rcard{position:relative;display:block}
.rcard input{position:absolute;opacity:0;width:1px;height:1px}
.rcard__face{
  display:flex;align-items:center;gap:.9rem;min-height:88px;height:100%;
  padding:1.05rem 1.15rem;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--veil-2);cursor:pointer;
  transition:border-color var(--d-fast) var(--e),transform var(--d-fast) var(--e),box-shadow var(--d-mid) var(--e);
}
.rcard__face::before{
  content:"";flex:0 0 auto;width:22px;height:22px;border-radius:50%;
  border:1px solid var(--gold-ink);background:transparent;
  transition:background-color var(--d-fast) var(--e),box-shadow var(--d-fast) var(--e);
}
.rcard__txt{font-size:var(--t-small);line-height:1.45;color:var(--ink)}
.rcard:hover .rcard__face{transform:translateY(-2px);border-color:rgba(196,154,34,.6);box-shadow:0 16px 34px -32px rgba(4,41,43,.8)}
.rcard input:checked+.rcard__face{border-color:var(--gold);background:rgba(196,154,34,.10)}
.rcard input:checked+.rcard__face::before{background:var(--gold);box-shadow:inset 0 0 0 3px var(--cream)}
.rcard input:focus-visible+.rcard__face{outline:3px solid var(--gold);outline-offset:3px}
.rcard--flag .rcard__face{border-style:dashed}
.reflect__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s5);margin-top:var(--s5)}
.reflect__actions--result{margin-top:var(--s5)}

.crisisstop{
  margin-top:var(--s5);padding:clamp(1.25rem,3vw,2rem);border-radius:var(--radius-lg);
  background:#04292B;color:#EAF1F0;border:1px solid var(--gold);
}
.crisisstop h3{color:var(--gold-onteal)}
.crisisstop p{color:#DCE8E7;max-width:60ch}
.crisisstop__routes{display:grid;gap:var(--s4);margin:var(--s5) 0}
.crisisstop__routes li{font-size:var(--t-small);color:#DCE8E7}
.crisisstop__routes a:not(.btn){color:var(--gold-onteal)}
.crisisstop .quietlink--plain{color:var(--gold-onteal);text-decoration-color:rgba(240,220,168,.5)}

.reflectresult{margin-top:var(--s5)}
.reflectresult__sheet{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(1.25rem,3.5vw,2.75rem);box-shadow:0 40px 80px -60px rgba(4,41,43,.8);
}
.reflectresult__head{display:flex;gap:var(--s4);align-items:center;padding-bottom:var(--s4);border-bottom:1px solid var(--line)}
.reflectresult__mark{width:56px;height:56px;object-fit:contain}
.reflectresult__kicker{font-size:var(--t-eyebrow);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 .35rem}
.reflectresult__head .h3{margin:0;color:var(--teal-deep)}
.reflectresult__intro{margin:var(--s4) 0 var(--s5);font-size:var(--t-small);color:var(--muted);max-width:64ch}
.rfitem{padding:var(--s4) 0;border-top:1px dotted var(--line)}
.rfitem:first-child{border-top:0}
.rfitem h4{font-family:var(--display);font-weight:600;font-size:1.2rem;color:var(--teal);margin-bottom:.4rem;font-weight:600}
.rfitem p{margin:0;color:var(--ink);max-width:66ch}
.rfitem__said{font-size:var(--t-small);color:var(--gold-ink);margin-bottom:.35rem;font-style:italic}
.reflectresult__foot{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}
.reflectresult__foot p{margin:0 0 .4rem}

/* ---------- 16. Provider ----------------------------------------------- */
.provider{display:grid;gap:var(--s7);margin-top:var(--s6);align-items:start}
@media(min-width:860px){.provider{grid-template-columns:minmax(240px,34%) 1fr;gap:var(--s8)}}
.provider__portrait{position:relative;margin:0;max-width:340px}
.provider__portrait img{border-radius:50%;position:relative;z-index:1;border:1px solid rgba(240,220,168,.4)}
.provider__halo{
  position:absolute;inset:-9%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(196,154,34,.42),rgba(196,154,34,0) 68%);
}
.provider__name{font-family:var(--display);font-size:clamp(1.7rem,3vw,2.3rem);color:var(--cream);margin:0 0 .35rem;line-height:1.15}
.provider__creds{font-size:var(--t-small);color:var(--gold-onteal);margin-bottom:var(--s5);line-height:1.5}
.provider__text .btn{margin-top:var(--s4)}

/* ---------- 17. First visit walkthrough -------------------------------- */
.walk{margin-top:var(--s6)}
.walk__track{
  display:grid;gap:var(--s3);position:relative;margin-bottom:var(--s6);
  grid-template-columns:1fr;
}
@media(min-width:760px){
  .walk__track{grid-template-columns:repeat(4,1fr);gap:var(--s4)}
  .walk__track::before{
    content:"";position:absolute;left:6%;right:6%;top:19px;height:1px;
    background:var(--line);z-index:0;
  }
}
.walk__step{
  position:relative;z-index:1;background:none;border:0;cursor:pointer;
  display:flex;align-items:center;gap:.75rem;padding:.4rem 0;min-height:44px;
  text-align:left;width:100%;color:var(--muted);
}
@media(min-width:760px){.walk__step{flex-direction:column;align-items:flex-start;gap:.7rem}}
.walk__dot{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;font-size:.875rem;font-weight:700;
  background:var(--cream);border:1px solid var(--line);color:var(--muted);
  transition:background-color var(--d-mid) var(--e),color var(--d-mid) var(--e),border-color var(--d-mid) var(--e),box-shadow var(--d-mid) var(--e);
}
.walk__lab{font-size:.9375rem;line-height:1.3}
.walk__step[aria-selected="true"]{color:var(--teal-deep)}
.walk__step[aria-selected="true"] .walk__dot{background:var(--gold);border-color:var(--gold);color:var(--teal-ink);box-shadow:0 0 0 6px var(--gold-glow)}
.walk__step.is-done .walk__dot{background:var(--teal);border-color:var(--teal);color:#fff}
.walk__step:hover .walk__dot{border-color:var(--gold)}
.walkpanel{
  background:var(--veil-2);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,2.25rem);
  animation:fadeup var(--d-slow) var(--e) both;
}
.walkpanel h3{color:var(--teal-deep)}
.walkpanel p{max-width:66ch;color:var(--muted)}
.walkpanel__aside{
  margin:var(--s4) 0 0;padding-top:var(--s4);border-top:1px dotted var(--line);
  font-size:var(--t-small);color:var(--teal);
}
.walk__nav{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-top:var(--s5);flex-wrap:wrap}

/* ---------- 18. Video library ------------------------------------------ */
.library{display:grid;gap:var(--s5);margin-top:var(--s6);grid-template-columns:1fr}
@media(min-width:520px){.library{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.library{grid-template-columns:repeat(4,1fr)}}
.vcard{
  position:relative;display:block;width:100%;padding:0;border:1px solid var(--line-onteal);
  background:#04292B;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;text-align:left;
  transition:transform 200ms ease,border-color 200ms ease,box-shadow 200ms ease;
}
.vcard:hover{transform:scale(1.02);border-color:var(--gold);box-shadow:0 30px 60px -30px rgba(0,0,0,.85),0 8px 24px rgba(0,0,0,.35)}
.vcard:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.vcard img{width:100%;aspect-ratio:9/13;object-fit:cover;object-position:top center}
/* bottom-anchored gradient at rest, darker on hover, so the title reads
   as "watch this video" instead of a dark placeholder. */
.vcard::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:60%;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 40%,transparent 100%);
  transition:opacity 200ms ease,background 200ms ease;z-index:1;
}
.vcard:hover::after{background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.05) 100%)}
.vcard__meta{display:block;padding:.95rem 1.05rem 1.1rem;position:absolute;left:0;right:0;bottom:0;z-index:2}
.vcard__title{display:block;font-family:var(--display);font-size:1.15rem;line-height:1.25;color:#FDFBF6;margin-bottom:.35rem;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.vcard__run{
  display:inline-block;font-size:.75rem;letter-spacing:.12em;color:var(--gold-onteal);
  background:rgba(4,41,43,.72);border:1px solid rgba(240,220,168,.35);
  padding:.2rem .55rem;border-radius:999px;
}
.vcard__play{
  position:absolute;top:.85rem;right:.85rem;width:44px;height:44px;border-radius:50%;
  background:rgba(4,41,43,.75);border:1px solid var(--gold-onteal);
  display:grid;place-items:center;z-index:3;
  transition:transform 200ms ease,background 200ms ease;
}
.vcard:hover .vcard__play{background:var(--gold);transform:scale(1.06)}
.vcard__play::before{content:"";border-left:12px solid var(--gold-onteal);border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:4px;transition:border-left-color 200ms ease}
.vcard:hover .vcard__play::before{border-left-color:var(--teal-ink)}

.vmodal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:var(--gutter)}
.vmodal__backdrop{position:absolute;inset:0;background:rgba(4,41,43,.9);backdrop-filter:blur(6px)}
.vmodal__panel{
  position:relative;background:#04292B;border:1px solid var(--line-onteal);border-radius:var(--radius-lg);
  padding:clamp(1rem,2.5vw,1.6rem);width:min(440px,100%);max-height:92vh;overflow:auto;color:#E4EDEC;
}
.vmodal__title{font-family:var(--display);font-size:1.4rem;color:#FDFBF6;margin-bottom:var(--s3);line-height:1.2}
.vmodal__video{display:block;margin:0 auto;height:min(62vh,520px);width:auto;max-width:100%;aspect-ratio:9/16;object-fit:contain;background:#04292B;border-radius:8px}
.vmodal__note{font-size:.8125rem;color:#BFD1D0;margin:var(--s3) 0}
.vmodal__note a{color:var(--gold-onteal)}
.vmodal__nav{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.vmodal__nav .quietlink--plain{color:var(--gold-onteal);text-decoration-color:rgba(240,220,168,.5)}
.vmodal__close{
  margin-left:auto;background:var(--gold);color:var(--teal-ink);border:0;border-radius:999px;
  min-height:44px;padding:.6rem 1.2rem;cursor:pointer;font-weight:500;
}

/* ---------- 19. Contact ------------------------------------------------ */
.contact__sub{
  font-family:var(--display);font-size:clamp(1.4rem,2.6vw,1.9rem);
  color:var(--gold-onteal);margin:.3rem 0 var(--s6);
}
.contact{display:grid;gap:var(--s7)}
@media(min-width:960px){
  .contact{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:var(--s8);align-items:start}
  .contact__copy{position:sticky;top:clamp(5.5rem,12vh,7.5rem)}
}
.contact__alt{margin-top:var(--s7);border-top:1px solid var(--line-onteal);padding-top:var(--s5)}
.contact__alt p{margin:0 0 var(--s4)}
.contact__big{
  display:block;font-family:var(--display);font-size:clamp(1.6rem,3.2vw,2.1rem);
  color:var(--gold-onteal);text-decoration:none;line-height:1.15;
}
a.contact__big:hover{color:#FBF7EE;text-decoration:underline}
.contact__altnote{display:block;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:#A9C0BF;margin-top:.25rem}
.contact__place{font-size:var(--t-small);color:#DCE8E7;max-width:44ch}

.contact__formwrap{position:relative}
.cform{
  background:var(--cream);color:var(--ink);border-radius:var(--radius-lg);
  padding:clamp(1.25rem,3.5vw,2.5rem);box-shadow:0 50px 90px -60px rgba(0,0,0,.9);
}
.cform__intro{font-family:var(--display);font-size:1.3rem;line-height:1.3;color:var(--teal-deep);margin-bottom:var(--s5)}
.field{margin-bottom:var(--s5);border:0;padding:0}
.field label,.field legend{display:block;font-size:.9375rem;font-weight:500;margin-bottom:.45rem;color:var(--ink)}
.field input[type=text],.field textarea{
  width:100%;font:inherit;color:var(--ink);background:#fff;
  border:1px solid rgba(30,42,43,.28);border-radius:10px;padding:.8rem .9rem;min-height:48px;
  transition:border-color var(--d-fast) var(--e),box-shadow var(--d-fast) var(--e);
}
.field textarea{resize:vertical;line-height:1.55}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(10,107,111,.18)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#9A2A17;box-shadow:0 0 0 3px rgba(154,42,23,.12)}
.hint{font-size:.875rem;color:var(--muted);margin:.4rem 0 0}
.err{font-size:.875rem;color:#8C2513;margin:.4rem 0 0;font-weight:500}
.radios{display:flex;flex-wrap:wrap;gap:var(--s3)}
.radios label{
  display:inline-flex;align-items:center;gap:.5rem;min-height:44px;
  padding:.5rem .95rem;border:1px solid rgba(30,42,43,.28);border-radius:999px;
  cursor:pointer;font-size:.9375rem;font-weight:400;margin:0;
  transition:border-color var(--d-fast) var(--e),background-color var(--d-fast) var(--e);
}
.radios label:hover{border-color:var(--gold)}
.radios input{accent-color:var(--teal);width:18px;height:18px}
.radios input:checked+span{font-weight:700;color:var(--teal-deep)}
.radios label:has(input:checked){border-color:var(--teal);background:rgba(10,107,111,.08)}

.consent{
  margin:var(--s6) 0 var(--s5);padding:var(--s4);
  border:1px solid rgba(10,107,111,.35);border-radius:12px;background:rgba(10,107,111,.05);
}
.consent__label{display:flex;gap:.85rem;align-items:flex-start;font-size:1rem;line-height:1.55;color:var(--ink);font-weight:400;margin:0;cursor:pointer}
.consent input{width:22px;height:22px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--teal)}
.consent a{color:var(--teal);font-weight:500}
.cform__reassure{font-size:.9375rem;color:var(--muted);margin:var(--s5) 0 0;line-height:1.6}
.cform__reassure a{font-weight:500}

.cthanks{
  background:var(--cream);color:var(--ink);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,4vw,2.75rem);box-shadow:0 50px 90px -60px rgba(0,0,0,.9);
}
.cthanks__glyph{
  display:block;width:56px;height:56px;border-radius:50%;margin-bottom:var(--s5);
  border:1px solid var(--gold);background:radial-gradient(circle,var(--gold-glow),transparent 70%);
  position:relative;
}
.cthanks__glyph::after{
  content:"";position:absolute;left:18px;top:26px;width:18px;height:9px;
  border-left:2px solid var(--gold-ink);border-bottom:2px solid var(--gold-ink);transform:rotate(-45deg);
}
.cthanks .h3{color:var(--teal-deep)}
.cthanks__next{display:grid;gap:.6rem;margin:var(--s5) 0}
.cthanks__next li{position:relative;padding-left:1.6rem;font-size:var(--t-small);color:var(--muted)}
.cthanks__next li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--gold)}

/* ---------- 20. Footer + mobile reach bar ------------------------------ */
.foot{background:var(--teal-ink);color:#C9D8D7;padding:var(--s8) var(--gutter) var(--s7);position:relative;z-index:2}
.foot__grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:var(--s6);grid-template-columns:1fr}
@media(min-width:640px){.foot__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.foot__grid{grid-template-columns:1.1fr 1fr 1fr 1fr}}
.foot__brand img{width:72px;height:72px;object-fit:contain}
.foot__tag{font-family:var(--display);font-size:1.2rem;line-height:1.35;color:var(--gold-onteal);margin-top:var(--s4)}
.foot__h{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-onteal);margin-bottom:var(--s3);font-weight:500;font-family:var(--body)}
.foot__col p{font-size:var(--t-small);margin:0 0 var(--s4);line-height:1.7}
.foot a{color:#DCE8E7}
.foot a:hover{color:var(--gold-onteal)}
.foot__crisis{
  max-width:var(--maxw);margin:var(--s7) auto 0;padding:var(--s4) var(--s5);
  border:1px solid var(--line-onteal);border-radius:12px;font-size:var(--t-small);
  background:rgba(196,154,34,.07);
}
.foot__crisis strong{color:var(--gold-onteal)}
.foot__crisis a{color:var(--gold-onteal);font-weight:500}
.foot__legal{max-width:var(--maxw);margin:var(--s5) auto 0;font-size:.8125rem;color:#8FA8A7}

.reachbar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:flex;gap:.6rem;align-items:center;
  padding:.6rem clamp(.75rem,4vw,1.25rem);
  padding-bottom:calc(.6rem + env(safe-area-inset-bottom,0px));
  background:rgba(4,41,43,.94);backdrop-filter:blur(10px);
  border-top:1px solid var(--line-onteal);
  transform:translateY(120%);transition:transform var(--d-mid) var(--e);
}
.reachbar.is-up{transform:none}
.reachbar__primary{
  flex:1;min-height:48px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--gold);color:var(--teal-ink);border-radius:999px;
  text-decoration:none;font-weight:500;font-size:1rem;
}
.reachbar__tel{
  flex:0 0 auto;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--gold-onteal);color:var(--gold-onteal);
}
@media(min-width:900px){.reachbar{display:none}}
body.has-reachbar .foot{padding-bottom:calc(var(--s7) + 76px)}

/* Keep the hero narration control clear of the fixed accessibility launcher
   on narrow phones. The launcher moves above the reach bar after scrolling. */
@media(max-width:420px){
  .hero__actions .quietlink{
    margin-left:56px;
    max-width:calc(100% - 56px);
    text-align:left;
  }
}

/* ---------- 21. Reduced motion ----------------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* ---------- 22. Print — reflection sheet only -------------------------- */
@media print{
  body{background:#fff}
  .crisisbar,.masthead,.mobilenav,.navtoggle,.scrollmeter,.ambience,.hero,.reassure,.act--opening,.act--help,
  .act--whole,.act--hope,.act--provider,.act--first,.act--library,.act--faq,.act--contact,
  .foot,.reachbar,.vmodal,.reflect__cards,.reflect__actions,.toolcrisis,.crisisstop,
  .act--reflect .eyebrow,.act--reflect .h2,.act--reflect .act__standfirst{display:none!important}
  .act--reflect{display:block!important;background:#fff!important;padding:0!important;border:0!important}
  .reflectresult{margin:0}
  .reflectresult__sheet{box-shadow:none;border:0;padding:0}
  .rfitem h4{color:#000}
  a{color:#000;text-decoration:none}
  .reflectresult__foot{border-top:1px solid #999}
}

/* ---------- Contact: three ways in --------------------------------------
   Three equal routes. Same card treatment, same weight, no dark pattern
   pushing anyone toward the one that is cheapest for the practice. */
.ways{margin-top:var(--s7);border-top:1px solid var(--line-onteal);padding-top:var(--s6)}
.ways__h{margin:0 0 var(--s5)}
.way{
  padding:var(--s5) 0;
  border-top:1px solid rgba(240,220,168,.16);
}
.way:first-of-type{border-top:0;padding-top:0}
.way__label{
  font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-onteal);margin:0 0 var(--s3);font-weight:600;
}
.way__lead{margin:0 0 var(--s3);color:#D6E4E3;max-width:52ch}
.way__note{margin:0;color:#A9C0BF;font-size:.9rem;max-width:52ch}
.way .contact__big{margin:0}
.way__btn{margin-top:var(--s4)}
.way__btn.btn--teal{
  background:transparent;color:#F0DCA8;border:1px solid rgba(240,220,168,.5);
}
.way__btn.btn--teal:hover{background:rgba(240,220,168,.12);color:#FBF7EE}

.cform__channel{
  margin:0 0 var(--s5);padding:var(--s4) var(--s4);
  background:var(--teal-soft);border-left:3px solid var(--teal);
  font-size:.92rem;line-height:1.6;color:var(--teal-ink);
}
.cform__channel a{color:var(--teal-deep);font-weight:600}
.cthanks__spruce{
  padding:var(--s4);background:var(--cream-2);
  border-left:3px solid var(--gold);font-size:.94rem;
}

/* ---------- Footer: legal and page navigation --------------------------- */
.foot__legal-nav{
  display:flex;flex-wrap:wrap;gap:.4rem 1.15rem;
  margin:0 0 var(--s4);font-size:.85rem;
}

/* ---------- 21. Hours + careers (added with the four late additions) ---- */

/* HOURS.
   Lives in the contact section on deep teal, so type is on-teal here. The
   crisis line underneath is deliberately given as much weight as the hours
   themselves: office hours on a psychiatric practice page create an
   impression about coverage, and the honest version includes the hours
   nobody is here. */
.hours{
  margin-top:var(--s6);padding-top:var(--s5);
  border-top:1px solid var(--line-onteal);
}
.hours__h{margin-bottom:var(--s4)}
.hours__list{margin:0 0 var(--s4)}
.hours__row{
  display:flex;flex-wrap:wrap;gap:.35rem var(--s4);align-items:baseline;
  padding:.5rem 0;border-bottom:1px solid rgba(240,220,168,.14);
}
.hours__row:last-child{border-bottom:0}
.hours__row dt{font-size:var(--t-small);color:#C9D8D7;min-width:11rem;flex:1 1 auto;margin:0}
.hours__row dd{
  margin:0;font-family:var(--display);font-size:1.35rem;line-height:1.2;
  color:var(--gold-onteal);flex:0 0 auto;
}
.hours__row--closed dd{font-family:var(--body);font-size:1rem;color:#A9BEBD;font-style:italic}
.hours__crisis{
  font-size:var(--t-small);line-height:1.7;color:#C9D8D7;
  margin:0 0 var(--s4);padding:var(--s4);
  border:1px solid var(--line-onteal);border-left:3px solid var(--gold);border-radius:10px;
  background:rgba(4,41,43,.32);
}
.hours__crisis a{color:var(--gold-onteal);font-weight:500}
.hours__area{font-size:.875rem;line-height:1.65;color:#A9BEBD;margin:0}

/* Footer hours block */
.foot__hours{font-size:var(--t-small);line-height:1.7}
.foot__hours-h{
  display:block;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-onteal);margin-bottom:.35rem;
}
.foot__hours-note{display:block;margin-top:.6rem;font-size:.8125rem;line-height:1.65;color:#9FB4B3}
.foot__note{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.6;color:#9FB4B3}

/* CAREERS section on the home page */
.act--careers{background:var(--cream-2)}
.careers__intro{max-width:44rem}
.careers__intro .prose{margin-bottom:var(--s4)}
.careers__who{
  font-size:var(--t-small);line-height:1.75;color:var(--muted);
  margin:var(--s5) 0 var(--s4);padding-left:var(--s4);
  border-left:2px solid var(--gold);
}
.careers__area{font-size:.875rem;line-height:1.65;color:var(--muted);margin:0 0 var(--s5)}

/* Form controls the original contact form never needed: email input and a
   select. Matched to the existing .field input[type=text] treatment so the
   careers form is visually identical to the contact form. */
.field input[type=email]{
  width:100%;font:inherit;color:var(--ink);background:#fff;
  border:1px solid rgba(30,42,43,.28);border-radius:10px;padding:.8rem .9rem;min-height:48px;
  transition:border-color var(--d-fast) var(--e),box-shadow var(--d-fast) var(--e);
}
.field select{
  width:100%;font:inherit;color:var(--ink);background:#fff;
  border:1px solid rgba(30,42,43,.28);border-radius:10px;padding:.8rem .9rem;min-height:48px;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230A6B6F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.6rem;
  transition:border-color var(--d-fast) var(--e),box-shadow var(--d-fast) var(--e);
}
.field select:focus,.field input[type=email]:focus{
  outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(10,107,111,.18);
}
.field__opt{
  font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);font-weight:400;margin-left:.4rem;
}
/* Licensure options read better stacked than as a pill row */
.radios--stack{flex-direction:column;gap:.5rem;align-items:flex-start}
.radios--stack label{width:100%;border-radius:10px}

/* The careers form sits on a cream interior page rather than deep teal, so
   it does not need the heavy lift shadow the contact form uses. */
.careers-form,.careers-thanks{box-shadow:0 2px 18px -10px rgba(4,41,43,.35);border:1px solid var(--line)}
.careers-form{margin-top:var(--s5)}
.careers-thanks{margin-top:var(--s5)}

/* --------------------------------------------------------------------------
   Anchor offset for the sticky masthead.
   #main (skip-link target) and #contact-form had no scroll-margin-top, so
   jumping to them parked the heading underneath the fixed header. Everything
   else already carried an offset; these two were missed.
   -------------------------------------------------------------------------- */
#main,
#contact-form {
  scroll-margin-top: 104px;
}

@media (max-width: 780px) {
  #main,
  #contact-form {
    scroll-margin-top: 80px;
  }
}

/* ---- footer social row ---- */
.foot__social{
  max-width:var(--maxw);margin:var(--s6) auto 0;padding-top:var(--s5);
  border-top:1px solid rgba(255,255,255,.10);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s3) var(--s4);
}
.foot__social-h{
  font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-onteal);font-weight:500;font-family:var(--body);margin:0;
}
.foot__social-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s3);}
.foot__social-link{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);
  color:#DCE8E7;text-decoration:none;
  transition:background .22s ease,color .22s ease,transform .22s ease,border-color .22s ease;
}
.foot__social-link:hover,.foot__social-link:focus-visible{
  background:var(--gold-onteal);border-color:var(--gold-onteal);
  color:var(--teal-ink);transform:translateY(-2px);
}
.foot__social-link svg{width:19px;height:19px;display:block}
@media (prefers-reduced-motion:reduce){
  .foot__social-link{transition:none}
  .foot__social-link:hover,.foot__social-link:focus-visible{transform:none}
}

/* Closing note under the ways list: the routes are not mutually exclusive. */
.ways__any{
  margin:var(--s5) 0 0;
  padding-top:var(--s4);
  border-top:1px solid var(--line-onteal);
  color:#D6E4E3;
  font-size:.95rem;
  max-width:60ch;
}

/* ==========================================================================
   22. Aura — restrained ambient motion. All wrapped in a no-preference
   guard so reduce-motion users get the static baseline.
   ========================================================================== */
@media (prefers-reduced-motion:no-preference) {

  /* (a) Aura glow behind headings + headshot. Uses a pseudo-element so it
     never affects layout. Very small drift, felt over 24s. */
  .h2, .hero__h1 { position:relative; }
  .h2::before, .hero__h1::before {
    content:""; position:absolute; z-index:-1; pointer-events:none;
    left:50%; top:50%; width:min(120%, 720px); height:180%;
    transform:translate(-50%,-50%);
    background:radial-gradient(closest-side, rgba(10,107,111,.14), transparent 70%);
    filter:blur(20px);
    animation:aura-drift 24s ease-in-out infinite alternate;
    will-change:transform;
  }
  .hero__h1::before {
    background:radial-gradient(closest-side, rgba(196,154,34,.16), transparent 70%);
    filter:blur(28px);
    animation-duration:28s;
  }
  @keyframes aura-drift {
    0%   { transform:translate(-50%,-50%) translate(-6px,-4px); }
    100% { transform:translate(-50%,-50%) translate(6px,4px); }
  }

  /* Headshot aura ring: soft radial halo that breathes with the page. */
  .provider__portrait::before {
    content:""; position:absolute; inset:-14%;
    background:radial-gradient(closest-side, rgba(196,154,34,.18), transparent 72%);
    filter:blur(22px); z-index:0; pointer-events:none;
    animation:aura-drift 22s ease-in-out infinite alternate;
    will-change:transform;
  }

  /* (b) Rail nodes breathe */
  .rail__node {
    animation:rail-breathe 5.5s ease-in-out infinite alternate;
    will-change:transform, opacity;
  }
  @keyframes rail-breathe {
    0%   { transform:scale(1);    opacity:.75; }
    100% { transform:scale(1.15); opacity:1; }
  }

  /* (c) Scroll meter shimmer — light drifts across the filled portion */
  #scrollmeter-fill {
    position:relative; overflow:hidden;
  }
  #scrollmeter-fill::after {
    content:""; position:absolute; inset:0;
    background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.55) 50%, transparent 100%);
    transform:translateX(-100%);
    animation:meter-shimmer 8s linear infinite;
  }
  @keyframes meter-shimmer {
    0%   { transform:translateX(-100%); }
    18%  { transform:translateX(100%); }
    100% { transform:translateX(100%); }
  }

  /* (e) Section edge glow — soft radial at the top of teal sections */
  .act--whole::before, .act--provider::before,
  .act--library::before, .act--contact::before {
    content:""; position:absolute; left:0; right:0; top:0; height:120px;
    background:radial-gradient(120% 100% at 50% 0%, rgba(240,220,168,.06), transparent 70%);
    pointer-events:none; z-index:0;
  }
  .act--whole, .act--provider, .act--library, .act--contact { position:relative; }

  /* (f) Tagline bloom — soft gold text-shadow that fades in when the
     phrase reaches the center. JS toggles .is-glowing on the element. */
  .aura-tagline { transition:text-shadow 800ms ease; }
  .aura-tagline.is-glowing {
    text-shadow:
      0 0 12px rgba(240,220,168,.32),
      0 0 24px rgba(196,154,34,.18);
  }

  /* (g) Gold button ambient sweep — a very faint highlight crosses the
     button every ~8s. On hover it pauses so the hover state reads clean. */
  .btn--gold { position:relative; overflow:hidden; }
  .btn--gold::before {
    content:""; position:absolute; top:0; bottom:0;
    left:-40%; width:40%;
    background:linear-gradient(100deg, transparent 0%, rgba(255,255,255,.22) 50%, transparent 100%);
    transform:skewX(-18deg);
    animation:btn-sweep 8s ease-in-out infinite;
    pointer-events:none;
  }
  .btn--gold:hover::before { animation-play-state:paused; }
  @keyframes btn-sweep {
    0%   { left:-40%; opacity:0; }
    12%  { opacity:1; }
    28%  { left:140%; opacity:0; }
    100% { left:140%; opacity:0; }
  }
}

/* Video card: while hover-preview is playing, show the video not the poster */
.vcard__preview {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:top center; opacity:0; transition:opacity 250ms ease;
  z-index:0; pointer-events:none; background:#04292B;
}
.vcard.is-previewing .vcard__preview { opacity:1; }

/* ---------- Provider intro video (Aug 2026 addition) -------------------- */
.provider__video{
  margin:var(--s7) auto 0;
  max-width:820px;
  text-align:center;
}
.provider__video-label{
  color:var(--cream);
  opacity:.85;
  font-size:var(--t-small);
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:0 0 var(--s3);
}
.provider__video-wrap{
  border-radius:var(--radius-lg, 14px);
  overflow:hidden;
  background:#000;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.55), 0 10px 20px -10px rgba(0,0,0,.35);
  margin:0 auto;
  aspect-ratio:9/16;
  max-width:380px;
  width:100%;
}
.provider__video-el{
  width:100%;
  height:100%;
  display:block;
  background:#000;
  object-fit:cover;
}
.provider__video-transcript{
  margin-top:var(--s4);
  text-align:left;
  max-width:62ch;
  margin-left:auto;
  margin-right:auto;
}
.provider__video-transcript summary{
  color:var(--gold-onteal, var(--gold));
  cursor:pointer;
  font-size:var(--t-small);
  padding:.4rem 0;
  text-align:center;
  list-style:none;
}
.provider__video-transcript summary::-webkit-details-marker{display:none}
.provider__video-transcript summary::after{content:" ▾"}
.provider__video-transcript[open] summary::after{content:" ▴"}
.provider__video-transcript .prose{
  margin-top:var(--s3);
  font-size:var(--t-body);
  line-height:1.7;
}
@media (max-width:640px){
  .provider__video-wrap{max-width:320px}
}
