/* =====================================================================
   Core Sanctum: "wow" preview layer (31 Oct 2026)
   Same structure and motion as the Setup With Annie therapy demo, re-skinned in
   Core Sanctum's OWN palette (forest green, sage, teal, gold, warm neutral) and
   fonts (Cinzel, Cormorant Garamond, Montserrat). Loaded after style.css.
   Vanilla CSS only. Every animation is switched off under prefers-reduced-motion.
   ===================================================================== */
:root{
  --gold-light:#EFD094;           /* lighter gold taken from the Core Sanctum mark */
  --sage-wash:#E6EDE4;
  --radius:20px;--radius-s:12px;--maxw:1120px;
  --ease:cubic-bezier(.22,.8,.24,1);
  --shadow:0 1px 2px rgba(20,58,47,.06),0 18px 40px -22px rgba(20,58,47,.38);
  --shadow-up:0 2px 4px rgba(20,58,47,.07),0 28px 50px -24px rgba(20,58,47,.5);
}
html{scroll-padding-top:96px}
body{animation:page-in .5s var(--ease) both}
@keyframes page-in{from{opacity:0}}
h1{font-size:clamp(2.4rem,5.6vw,4rem);line-height:1.08}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;letter-spacing:.18em;color:var(--brand);font-weight:700}
.eyebrow::before{content:"";width:24px;height:2px;border-radius:2px;background:var(--gold)}
a{text-underline-offset:3px;text-decoration-thickness:1.5px}
::selection{background:var(--gold-light);color:var(--brand-dark)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ---------------- header: sticky, frosted forest green, shrinks on scroll ---------------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(28,74,60,.97);border-bottom:none;
  -webkit-backdrop-filter:saturate(1.3) blur(10px);backdrop-filter:saturate(1.3) blur(10px);transition:box-shadow .3s var(--ease)}
.site-header .bar{position:relative;flex-direction:row;align-items:center;padding-top:14px;padding-bottom:14px;transition:padding .3s var(--ease)}
.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(0,0,0,.6)}
.site-header.scrolled .bar{padding-top:7px;padding-bottom:7px}
.site-header .brand{color:#fff}
.site-header .brand .badge{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--paper);
  box-shadow:0 0 0 2px var(--gold),0 6px 16px rgba(0,0,0,.3);transition:transform .35s var(--ease),width .3s var(--ease),height .3s var(--ease);animation:badge-in .9s var(--ease) .1s both}
.site-header .brand .badge img{width:40px;height:auto}
.site-header.scrolled .brand .badge{width:46px;height:46px}
.site-header.scrolled .brand .badge img{width:33px}
.brand:hover .badge{transform:rotate(-6deg) scale(1.05)}
.site-header .brand-text{animation:brand-in .7s var(--ease) .45s both}
.site-header .brand .name{color:#fff}
.site-header .brand .disc{color:#cfe0d5}
@keyframes badge-in{from{opacity:0;transform:scale(.6) rotate(-20deg)}}
@keyframes brand-in{from{opacity:0;transform:translateY(8px)}}
.site-header #site-nav{gap:4px}
.site-header #site-nav a:not(.btn){position:relative;color:#e3ece6;font-weight:500;font-size:.95rem;padding:8px 12px;border-radius:10px;transition:color .2s,background .2s}
.site-header #site-nav a:not(.btn):hover{color:#fff;background:rgba(255,255,255,.08)}
.site-header #site-nav a[aria-current="page"]{color:#fff;font-weight:600}
.site-header #site-nav a[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:var(--gold)}
.site-header #site-nav .btn{margin-left:10px;padding:10px 22px}
.menu-toggle{display:none}

/* sub navigation */
.subnav{background:var(--paper-2);border-bottom:1px solid var(--line)}
.sub-label{color:var(--brand)}
.subnav nav a{font-weight:500;padding:4px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.subnav nav a:hover{color:var(--brand)}
.subnav nav a[aria-current="page"]{color:var(--brand);border-bottom-color:var(--gold)}

/* ---------------- buttons: lift, glow ---------------- */
.btn{position:relative;font-weight:700;letter-spacing:.01em;border-width:2px;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s,color .2s,border-color .2s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 10px 24px -14px rgba(20,58,47,.9)}
.btn-primary:hover{background:var(--brand-dark);box-shadow:0 16px 30px -14px rgba(20,58,47,.95)}
.btn-ghost{background:transparent;border-color:var(--brand);color:var(--brand)}
.btn-ghost:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
/* on dark green, the primary button turns gold */
.site-header .btn-primary,.hero .btn-primary,.booking .btn-primary,.float-book{background:var(--gold);color:#2b220f;box-shadow:0 10px 24px -12px rgba(220,165,76,.85)}
.site-header .btn-primary:hover,.hero .btn-primary:hover,.booking .btn-primary:hover{background:var(--gold-light);color:#2b220f}
.hero .btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.hero .btn-ghost:hover{background:#fff;color:var(--brand);border-color:#fff}

/* ---------------- sections: more air, alternating warm bands ---------------- */
section{border-top:none;padding:88px 0}
@media(max-width:700px){section{padding:60px 0}}
main > section:not(.hero):not(.booking):not(.stats-band):nth-of-type(even){background:var(--brand-wash)}

/* ---------------- hero: full-bleed forest green with slow drifting light ---------------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--brand);color:#fff;padding:96px 0 104px !important}
.hero::before,.hero::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);pointer-events:none}
.hero::before{width:620px;height:620px;right:-140px;top:-220px;background:radial-gradient(circle,rgba(220,165,76,.42),rgba(220,165,76,0) 68%);animation:drift-a 22s ease-in-out infinite alternate}
.hero::after{width:560px;height:560px;left:-180px;bottom:-280px;background:radial-gradient(circle,rgba(147,174,146,.5),rgba(147,174,146,0) 70%);animation:drift-b 26s ease-in-out infinite alternate}
@keyframes drift-a{to{transform:translate(-120px,90px) scale(1.12)}}
@keyframes drift-b{to{transform:translate(140px,-60px) scale(1.15)}}
.hero h1,.hero h2,.hero h3{color:#fff}
.hero .eyebrow{color:var(--gold-light)}
.hero .lede{color:#e3ece6;font-size:1.2rem}
.hero p{color:#dbe6df}
.hero a:not(.btn){color:#fff}
.hero .ph{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55);color:#fff}
.hero .card-quiet{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-left:4px solid var(--gold);border-radius:var(--radius);box-shadow:none;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero .card-quiet h3{color:#fff}
.hero .card-quiet ul{color:#e3ece6}
.hero .card-quiet li::marker{color:var(--gold-light)}
.hero-grid{align-items:center}
.hero .portrait-photo{border:none;box-shadow:18px 18px 0 var(--gold);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.hero picture:hover .portrait-photo{transform:translate(-4px,-4px);box-shadow:24px 24px 0 var(--gold)}
.hero .draft-note{color:#cfe0d5 !important}
.after-hero{padding-top:64px}

/* home hero */
.hero-home{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.hero-home .wordmark{font-family:Cinzel,var(--serif);font-weight:600;color:#fff;font-size:clamp(2.5rem,6.4vw,4.4rem);letter-spacing:.05em;line-height:1.05;margin:0 0 .3em}
.hero-home .lede{max-width:46ch;font-size:1.3rem}
.hero-art{position:relative;justify-self:center;width:min(100%,380px);aspect-ratio:1}
.hero-art svg.ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring-a{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;animation:draw 2s var(--ease) .3s both}
.ring-b{fill:none;stroke:var(--sage);stroke-width:1.4;stroke-dasharray:.012 .02;opacity:.8;animation:spin 90s linear infinite;transform-origin:50% 50%}
.hero-art .disc{position:absolute;inset:11%;border-radius:50%;background:var(--paper);display:grid;place-items:center;
  box-shadow:0 30px 60px -28px rgba(0,0,0,.6),inset 0 0 0 1px rgba(220,165,76,.5);animation:rise-big 1.4s var(--ease) .5s both,breathe 7s ease-in-out 2.2s infinite alternate}
.hero-art .disc img{width:64%;height:auto}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rise-big{from{opacity:0;transform:translateY(40px) scale(.92)}}
@keyframes breathe{to{transform:translateY(-10px)}}
@media(max-width:860px){
  .hero-home{grid-template-columns:1fr;gap:34px;text-align:center}
  .hero-home .eyebrow,.hero-home .cta-row{justify-content:center}
  .hero-home .lede{margin-left:auto;margin-right:auto}
  .hero-art{order:-1;width:200px}
  .hero-home .eyebrow{letter-spacing:.12em;font-size:.7rem}
  .hero-home .eyebrow::before{display:none}
}

/* home intro with photo */
.home-intro picture{position:relative;display:block}
.home-intro .portrait-photo{border:none;box-shadow:-18px 18px 0 var(--sage);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.home-intro picture:hover .portrait-photo{transform:translate(4px,-4px);box-shadow:-24px 24px 0 var(--sage)}
.home-intro h2{max-width:20ch}
.p-go{display:inline-flex;align-items:center;gap:6px;transition:gap .3s var(--ease),color .2s}
.p-go:hover,a:hover > .p-go{gap:12px;color:var(--accent)}

/* ---------------- cards ---------------- */
.pathway,.card{position:relative;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.pathway{padding:36px 34px 32px;border-top:1px solid var(--line)}
.pathway::after{content:"";position:absolute;left:34px;right:34px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.pathway:hover,.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-up);border-color:var(--sage)}
.pathway:hover::after{transform:scaleX(1)}
.p-ico{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--sage-wash);color:var(--brand);margin-bottom:18px;transition:transform .35s var(--ease),background .35s,color .35s}
.pathway:hover .p-ico{transform:rotate(-6deg) scale(1.06);background:var(--brand);color:#fff}
.pathway h2{font-size:1.9rem}
.card-quiet,.panel{background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius-s);box-shadow:var(--shadow)}
.crisis{box-shadow:var(--shadow)}
.taglist li{border-radius:12px;padding:10px 18px 10px 36px;position:relative;font-weight:500;color:var(--ink);box-shadow:0 1px 2px rgba(20,58,47,.05);transition:transform .25s var(--ease),border-color .25s}
.taglist li::before{content:"";position:absolute;left:16px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--gold)}
.taglist li:hover{transform:translateY(-2px);border-color:var(--sage)}
.portrait-photo{border-radius:var(--radius)}

/* steps become a timeline */
.steps{position:relative;gap:32px}
.steps::before{content:"";position:absolute;left:22px;right:22px;top:22px;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 8px,transparent 8px 14px);opacity:.7}
.step{padding-top:64px}
.step::before{width:46px;height:46px;border-radius:14px;background:var(--brand);color:#fff;font-family:var(--serif);font-size:1.3rem;box-shadow:0 0 0 6px var(--paper)}
main > section:nth-of-type(even) .step::before{box-shadow:0 0 0 6px var(--brand-wash)}
.step h3{font-size:1.35rem}
@media(max-width:820px){
  .steps{gap:26px}
  .steps::before{left:22px;right:auto;top:10px;bottom:10px;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--gold) 0 8px,transparent 8px 14px)}
  .step{padding-top:4px;padding-left:66px;min-height:46px}
}

/* home timeline cards */
.timeline{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:34px;height:2px;background:linear-gradient(90deg,var(--gold),var(--sage) 55%,rgba(147,174,146,.15))}
.timeline li{position:relative;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px 26px;box-shadow:var(--shadow);margin-top:28px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.timeline li:hover{transform:translateY(-5px);box-shadow:var(--shadow-up)}
.t-ico{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--brand);color:#fff;margin:-56px 0 16px;box-shadow:0 0 0 6px var(--brand-wash)}
.t-num{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:4px}
.timeline h3{font-size:1.4rem;margin-bottom:.3em}
.timeline p{color:var(--ink-soft);font-size:.97rem;margin:0}
@media(max-width:820px){.timeline{grid-template-columns:1fr;gap:40px}.timeline::before{display:none}}

/* "at a glance" band: figures taken from her own pages */
.stats-band{background:var(--brand);color:#fff;padding:66px 0 60px;position:relative;isolation:isolate;overflow:hidden}
.stats-band::before{content:"";position:absolute;z-index:-1;width:480px;height:480px;left:50%;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(220,165,76,.28),rgba(220,165,76,0) 70%)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{padding:6px 0 6px 20px;border-left:2px solid rgba(239,208,148,.55)}
.stat-big{font-family:var(--serif);font-weight:600;font-size:clamp(2.8rem,5.4vw,3.9rem);line-height:1;color:#fff}
.stat-unit{font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--gold-light);margin-left:6px}
.stat p{margin:10px 0 0;font-size:.93rem;color:#dbe6df;line-height:1.5}
@media(max-width:860px){.stats{grid-template-columns:1fr 1fr;gap:30px 20px}}

/* fees table as a card */
.fees{background:var(--paper-2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border-collapse:separate;border-spacing:0;border:1px solid var(--line)}
.fees th,.fees td{padding:22px 24px}
.fees tr:last-child th,.fees tr:last-child td{border-bottom:none}
.fees tr{transition:background .2s}
.fees tr:hover{background:#fbf8f2}
.fees .amount{color:var(--brand);font-size:1.9rem}
@media(max-width:620px){.fees tr{padding:16px 20px}.fees th,.fees td{padding:3px 0}}

/* booking bands */
.booking{position:relative;isolation:isolate;overflow:hidden;background:var(--brand)}
.booking::before{content:"";position:absolute;z-index:-1;width:520px;height:520px;right:-160px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(220,165,76,.32),rgba(220,165,76,0) 70%)}
.booking::after{content:"";position:absolute;z-index:-1;width:420px;height:420px;left:-160px;bottom:-240px;border-radius:50%;background:radial-gradient(circle,rgba(147,174,146,.35),rgba(147,174,146,0) 70%)}
.booking .eyebrow{color:var(--gold-light) !important}
.embed-slot{border-radius:var(--radius)}

/* forms */
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{border-radius:12px;padding:13px 15px;transition:border-color .2s,box-shadow .2s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--sage-wash)}

/* privacy tables */
.table-scroll{border-radius:var(--radius-s);border:1px solid var(--line);box-shadow:var(--shadow);background:var(--paper-2)}
.data-table tr:last-child td{border-bottom:none}

/* ---------------- footer: deep green ---------------- */
footer{background:var(--brand-dark);color:#cfe0d5;border-top:none;padding:64px 0 44px;font-size:.92rem}
.foot a{color:#e9f1ec}
.foot a:hover{color:#fff}
.foot strong{color:#fff;font-family:var(--serif);font-size:1.25rem;margin-bottom:6px}
.foot .mini-mark{width:52px;padding:7px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 2px var(--gold)}
footer .ph{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5);color:#fff}

/* ---------------- floating extras ---------------- */
.to-top{position:fixed;right:22px;bottom:24px;z-index:55;width:46px;height:46px;border-radius:50%;border:none;background:var(--paper-2);color:var(--brand);box-shadow:var(--shadow-up);display:grid;place-items:center;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s,transform .3s var(--ease),visibility .3s,background .2s,color .2s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--brand);color:#fff}
.ico-s{width:20px;height:20px}
.float-book{display:none}
@media(max-width:760px){
  .float-book{position:fixed;left:12px;bottom:12px;z-index:55;display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 20px;border-radius:999px;font-weight:700;font-size:.92rem;text-decoration:none;
    opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .35s,transform .35s var(--ease),visibility .35s}
  .float-book.show{opacity:1;visibility:visible;transform:none}
  .to-top{right:14px;bottom:16px;width:44px;height:44px}
}

/* ---------------- mobile header + slide-down menu ---------------- */
@media(max-width:760px){
  .site-header .bar{flex-direction:row;flex-wrap:wrap;gap:10px;padding-top:10px;padding-bottom:10px}
  .js .site-header .bar{flex-wrap:nowrap}
  .site-header .brand .badge{width:46px;height:46px}.site-header .brand .badge img{width:33px}
  .site-header .brand .disc{display:block;font-size:.56rem;letter-spacing:.12em}
  .js .menu-toggle{display:inline-flex;align-items:center;gap:8px;flex:none;height:44px;padding:0 14px;border-radius:999px;border:1.5px solid rgba(255,255,255,.45);background:transparent;color:#fff;font:600 .9rem/1 Montserrat,system-ui,sans-serif;cursor:pointer}
  .mt-bars{position:relative;width:18px;height:12px}
  .mt-bars::before,.mt-bars::after,.mt-bars span{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
  .mt-bars::before{top:0}.mt-bars span{top:5px}.mt-bars::after{top:10px}
  .menu-toggle[aria-expanded="true"] .mt-bars::before{transform:translateY(5px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] .mt-bars span{opacity:0}
  .menu-toggle[aria-expanded="true"] .mt-bars::after{transform:translateY(-5px) rotate(-45deg)}
  .js .site-header #site-nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:2px;padding:10px 16px 20px;background:var(--brand);box-shadow:0 24px 40px -20px rgba(0,0,0,.6);
    clip-path:inset(0 0 100% 0);opacity:0;visibility:hidden;transition:clip-path .45s var(--ease),opacity .3s,visibility .45s}
  .js .site-header.menu-open #site-nav{clip-path:inset(0 0 0 0);opacity:1;visibility:visible}
  .js .site-header #site-nav a:not(.btn){font-size:1.1rem;padding:14px 12px;border-bottom:1px solid rgba(255,255,255,.1);border-radius:0}
  .site-header #site-nav a[aria-current="page"]::after{left:12px;right:auto;width:28px;bottom:6px}
  .js .site-header #site-nav .btn{margin:14px 0 0;text-align:center;padding:13px 22px}
  .hero{padding:60px 0 70px !important}
  .stats-band{padding:52px 0 46px}
}
@media(max-width:380px){.site-header .brand .name{font-size:1rem}.site-header .brand .disc{display:none}
  .js .menu-toggle{width:44px;padding:0;justify-content:center}.menu-toggle .mt-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}

/* ---------------- scroll reveal (only added by theme.js, so no-JS sees everything) ---------------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-stagger > *{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal-stagger.in > *{opacity:1;transform:none}
.js .reveal-stagger.in > *:nth-child(2){transition-delay:.1s}
.js .reveal-stagger.in > *:nth-child(3){transition-delay:.2s}
.js .reveal-stagger.in > *:nth-child(4){transition-delay:.3s}
.js .reveal-stagger.in > *:nth-child(5){transition-delay:.4s}
.js .reveal-stagger.in > *:nth-child(6){transition-delay:.5s}

/* ---------------- reduced motion: everything still, everything visible ---------------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;animation-delay:0s !important;transition-duration:.001ms !important;transition-delay:0s !important}
  .hero::before,.hero::after,.ring-b{animation:none !important}
  .js .reveal,.js .reveal-stagger > *{opacity:1;transform:none}
}
@media print{.site-header{position:static}.float-book,.to-top{display:none}.hero,.booking,.stats-band,footer{background:#fff !important;color:#000}}
/* inline ink colours were written for a light background: lift them inside dark bands */
.hero [style*="color:var(--ink"],.booking [style*="color:var(--ink"]{color:#dbe6df !important}
