/* ============================================================
   Elevate Wellness Mental Health Counseling - preview site
   Built by REA Web & AI Consulting
   Direction: beige chic, calm, premium, editorial. Still a licensed
   mental health practice: not a spa, not a template.
   Plain CSS, no build step. Mobile first.
   ============================================================ */

@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600.woff2') format('woff2')}
/* Cormorant Garamond ships as a variable font: one file covers 400-700 */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/cormorant-400.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400 700;font-display:swap;src:url('../fonts/cormorant-400-italic.woff2') format('woff2')}

:root{
  /* Palette: logo blue and copper sampled from the official artwork
     (research/sample-colors.js). Copper is the accent, blue stays in
     the logo, links and trust marks. */
  --text:#1D1D1B;
  --text-2:#64615D;
  --navy:#183A5A;
  --blue:#3686B9;
  --copper:#B27B51;        /* icons, borders, arrows, decorative */
  --copper-btn:#A0673D;    /* primary button fill: 4.7:1 with white text */
  --copper-dark:#93603A;   /* eyebrows, hovers: 5.3:1 on cream */
  --copper-text:#7E5032;   /* secondary button text, links */
  --copper-tint:#F3E7DA;   /* icon circles */
  --cream:#FBF8F2;
  --beige:#F8F2E8;
  --beige-2:#EFE4D4;
  --border:#DED4C7;
  --card-br:rgba(100,80,60,.12);
  --white:#FFFFFF;
  --amber:#7A4A00;
  --amber-bg:#FFF4DF;
  --amber-br:#E2BE7A;
  --star:#E9A93B;
  --shadow:0 8px 30px rgba(52,38,25,.06);
  --r:10px;
  --r-btn:8px;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Inter',Arial,sans-serif;
  --header-h:70px;
  --gutter:20px;
  --max:1320px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.has-bar{padding-bottom:84px}
body.drawer-open,body.modal-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit;text-align:inherit}
ul,ol{list-style:none}
strong,b{font-weight:600}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--text)}
h1{font-size:clamp(42px,11vw,54px);line-height:.95;letter-spacing:-.025em}
h2{font-size:clamp(32px,8.5vw,38px);line-height:1.02;letter-spacing:-.025em}
h3{font-size:1.5rem;line-height:1.15;letter-spacing:-.015em}
p{margin-bottom:1em}
p:last-child{margin-bottom:0}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:760px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--copper-dark);outline-offset:3px}
a,button,input{touch-action:manipulation}
.eyebrow{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--copper-dark);margin-bottom:14px}
.lead{font-size:1.125rem;line-height:1.6;color:var(--text-2);max-width:36em}
.small{font-size:.8125rem;color:var(--text-2);line-height:1.5}
.center{text-align:center}
.center .lead,.center h2,.center h1{margin-left:auto;margin-right:auto}
.ulink{border-bottom:1px solid currentColor;font-weight:500;color:var(--copper-text)}
.ulink,.preview-strip a,.msg a,.crisis a,.site-footer address a{display:inline-block;padding:4px 0;margin:-4px 0}
.serif{font-family:var(--serif)}

/* Sections */
.section{padding:60px 0}
.section-sm{padding:40px 0}
.bg-white{background:var(--white)}
.bg-beige{background:var(--beige)}
.bg-beige-2{background:var(--beige-2)}
.section-head{margin-bottom:28px}
.section-head h2{margin-bottom:16px}
.section-head .lead{margin-bottom:0}
.section-head.split{display:grid;gap:14px}
.section-head.split h2{margin-bottom:0}
.section-head.split .lead{margin-top:14px}
.rule{border:0;border-top:1px solid var(--border);margin:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:var(--r-btn);font-weight:600;font-size:.9375rem;line-height:1.2;border:1px solid transparent;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);white-space:nowrap}
.btn svg{width:16px;height:16px;flex:none;transition:transform .25s var(--ease)}
.btn:hover svg.arrow{transform:translateX(4px)}
.btn-primary{background:var(--copper-btn);color:#fff;border-color:var(--copper-btn)}
.btn-primary:hover{background:var(--copper-dark);border-color:var(--copper-dark)}
.btn-secondary{background:transparent;color:var(--copper-text);border-color:var(--copper)}
.btn-secondary:hover{background:var(--copper-tint);border-color:var(--copper-dark)}
.btn-white{background:#fff;color:var(--copper-text);border-color:var(--copper)}
.btn-white:hover{background:var(--copper-tint)}
.btn-block{width:100%}
.btn-sm{min-height:46px;padding:0 20px;font-size:.875rem}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9375rem;color:var(--copper-text);padding:4px 0;border-bottom:1px solid transparent;transition:border-color .2s}
.link:hover{border-color:currentColor}
.link svg{width:14px;height:14px;transition:transform .25s var(--ease);color:var(--copper)}
.link:hover svg{transform:translateX(4px)}

/* Chips / confirm notes (internal markers, amber so the client sees what is pending) */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.3;padding:4px 8px;border-radius:4px;white-space:normal;text-align:left;max-width:100%;vertical-align:middle}
.chip::before{flex:none}
.chip-confirm{background:var(--amber-bg);color:var(--amber);border:1px dashed var(--amber-br)}
.chip-confirm::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber)}
.note-confirm{background:var(--amber-bg);border:1px dashed var(--amber-br);color:var(--amber);border-radius:var(--r);padding:12px 14px;font-size:.875rem;line-height:1.5}

/* Preview strip */
.preview-strip{background:var(--text);color:#CFC9C0;font-size:.75rem;line-height:1.35;text-align:center;padding:7px var(--gutter)}
.preview-strip b{color:#fff;font-weight:600}
.preview-strip a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.preview-strip .chip{font-size:9px;padding:3px 6px}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,248,242,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);height:var(--header-h);border-bottom:1px solid var(--border)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;height:100%;flex:none}
.brand img{height:42px;width:auto}
.main-nav,.header-actions{display:none}
.main-nav a{font-size:15px;font-weight:500;color:var(--text);padding:8px 14px;border-radius:6px;transition:color .2s}
.main-nav a:hover{color:var(--copper-dark)}
.main-nav a[aria-current="page"]{color:var(--copper-dark);position:relative}
.main-nav a[aria-current="page"]::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:1px;background:var(--copper)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--text);border-radius:var(--r-btn)}
.icon-btn svg{width:22px;height:22px}
.nav-toggle{flex-direction:column;gap:5px;margin-right:-8px}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--text);border-radius:2px;transition:transform .25s var(--ease),opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.drawer{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:49;background:var(--cream);padding:8px var(--gutter) 32px;overflow-y:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s}
.drawer.open{opacity:1;transform:none;visibility:visible;transition:opacity .25s var(--ease),transform .25s var(--ease)}
.drawer a{display:flex;align-items:center;justify-content:space-between;font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--text);padding:16px 4px;border-bottom:1px solid var(--border)}
.drawer a[aria-current="page"]{color:var(--copper-dark)}
.drawer a svg{width:18px;height:18px;color:var(--copper)}
.drawer .drawer-cta{display:grid;gap:10px;margin-top:22px}
.drawer .drawer-cta a{font-family:var(--sans);font-size:.9375rem;border:1px solid transparent;padding:0 22px;justify-content:center;min-height:52px}
.drawer .drawer-cta .btn-secondary{border-color:var(--copper)}

/* ---------- Hero ----------
   Mobile: photo on top (300px), text on cream below.
   Desktop: 44% content / 56% photo, 660px tall, photo tucks behind the content edge. */
.hero{position:relative;background:var(--cream);overflow:hidden}
/* Phones and tablets: the photo sits behind the top of the hero and fades
   into cream, so the headline overlaps the bottom of the chair the way the
   desktop text overlaps the photo's left edge. */
.hero-media{position:absolute;top:0;left:0;right:0;margin:0;height:min(84vw,360px);overflow:hidden;background:var(--beige-2)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:58% 45%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,248,242,0) 0%,rgba(251,248,242,0) 45%,rgba(251,248,242,.8) 74%,var(--cream) 100%)}
.hero-body{position:relative;z-index:2;padding:min(60vw,250px) var(--gutter) 36px}
.hero .lead{font-size:1.0625rem}
.hero h1{margin-bottom:16px}
.hero h1 em{font-style:italic;font-weight:400;color:var(--copper-dark)}
.hero .lead{margin-bottom:24px}
.hero-cta{display:grid;gap:10px}
.hero-cta .btn{min-height:52px}
.hero-foot{margin-top:16px;font-size:.8125rem;color:var(--text-2);display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.hero-foot svg{width:16px;height:16px;color:var(--copper);flex:none}
.hero-chip{position:absolute;left:var(--gutter);top:12px;z-index:2}

/* ---------- Trust row ---------- */
.trust{background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.trust-grid{display:grid;grid-template-columns:1fr 1fr}
.trust-item{display:flex;gap:12px;align-items:flex-start;padding:18px 12px 18px 0;border-bottom:1px solid var(--border)}
.trust-item:nth-child(odd){border-right:1px solid var(--border)}
.trust-item:nth-child(even){padding-left:16px}
.trust-item:nth-child(n+3){border-bottom:0}
.trust-item svg{width:28px;height:28px;flex:none;color:var(--copper);stroke-width:2}
.trust-item b{display:block;font-size:.875rem;font-weight:600;line-height:1.3;color:var(--text)}

/* ---------- Google + insurance ---------- */
.proof{background:var(--white)}
.proof-top{display:flex;justify-content:center;padding:26px 0 20px}
.google{display:flex;align-items:center;gap:14px}
.google .g{width:34px;height:34px;flex:none}
.google .score{font-family:var(--serif);font-size:2rem;font-weight:500;line-height:1;letter-spacing:-.02em}
.google .meta{display:flex;flex-direction:column;gap:4px}
.stars{display:inline-flex;gap:2px;color:var(--star);vertical-align:middle}
.stars svg{width:15px;height:15px}
.google .count{font-size:.875rem;color:var(--text-2)}
.google .count a{color:var(--copper-text);font-weight:600;border-bottom:1px solid currentColor}
.ins-label{display:flex;align-items:center;gap:10px}
.ins-label svg{width:22px;height:22px;color:var(--copper)}
.ins-label b{display:block;font-size:.9375rem;font-weight:600}
.ins-label span{display:block;font-size:.8125rem;color:var(--text-2)}
.marquee{position:relative;overflow:hidden;height:76px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
/* The animation starts only once main.js adds .go after window load, so it
   never competes with the hero image paint on slow phones. Without JS the
   strip simply sits still (a <noscript> rule in the page turns it on). */
.marquee-track{display:flex;align-items:center;height:100%;width:max-content}
.marquee.go .marquee-track{animation:marquee 42s linear infinite}
.marquee-track li{flex:none;display:flex;align-items:center;height:100%;padding:0 26px;border-right:1px solid var(--border)}
.marquee-track img{height:28px;width:auto;max-width:210px;object-fit:contain;opacity:.9}
.marquee-track img[src*="cigna"]{height:34px}
/* square-ish marks (badges, monograms) read better a little taller */
.marquee-track li.badge img{height:38px}
.marquee-track .word{font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;color:#4F5B6B;white-space:nowrap}
/* "Insurance accepted" label rides inside the strip (once per sequence) */
.marquee-track li.lead-item{gap:10px;background:var(--beige);color:var(--copper-dark)}
.marquee-track li.lead-item svg{width:22px;height:22px;color:var(--copper);flex:none}
.marquee-track li.lead-item span{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (hover:hover) and (pointer:fine){.marquee.go:hover .marquee-track{animation-play-state:paused}}
.ins-note{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:.8125rem;color:var(--text-2);padding:14px var(--gutter) 24px}
.ins-note p{margin:0}

/* ---------- Areas of support ---------- */
.area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.area{background:var(--white);border:1px solid var(--card-br);border-radius:var(--r);padding:20px 16px;transition:transform .2s var(--ease),border-color .2s}
.area:hover{transform:translateY(-2px);border-color:var(--copper)}
.ico{width:44px;height:44px;border-radius:50%;background:var(--copper-tint);color:var(--copper-dark);display:inline-flex;align-items:center;justify-content:center;flex:none}
.ico svg{width:24px;height:24px}
.area .ico{margin-bottom:14px}
.area h3{font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.3;margin-bottom:6px}
.area p{font-size:.875rem;color:var(--text-2);line-height:1.5}

/* ---------- Modalities ---------- */
.mod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mod{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 6px 16px;border:1px solid var(--card-br);border-radius:var(--r);background:rgba(255,255,255,.55)}
.mod .ico{margin-bottom:10px}
.mod b{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:600;line-height:1.1;color:var(--text);overflow-wrap:anywhere}
.mod span{display:block;font-size:.72rem;line-height:1.35;color:var(--text-2);margin-top:4px}

/* ---------- Meet the therapist ---------- */
.meet-grid{display:grid;gap:26px}
.meet-media{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--beige-2);max-width:480px}
.meet-media img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s var(--ease)}
.meet-media:hover img{transform:scale(1.02)}
.meet-body h2{margin-bottom:14px}
.meet-name{font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1.15;margin-bottom:2px}
.meet-cred{font-size:.8125rem;color:var(--text-2);margin-bottom:18px;line-height:1.5}
.meet-body p{color:var(--text-2)}
.meet-body .link{margin-top:6px}

/* ---------- Get in touch ---------- */
.touch-grid{display:grid;gap:28px}
.touch-body h2{margin-bottom:14px}
.touch-body .lead{margin-bottom:22px}
.touch-list{display:grid;gap:14px}
.touch-list li{display:flex;gap:14px;align-items:flex-start}
.touch-list .ico{display:inline-flex;width:42px;height:42px;background:var(--white);border:1px solid var(--card-br);margin-top:2px}
.touch-list .ico svg{width:22px;height:22px}
.touch-list div b{display:block;font-size:.9375rem;font-weight:600}
.touch-list div > span{display:block;font-size:.9375rem;color:var(--text-2);line-height:1.5}
.touch-list a{color:var(--copper-text);font-weight:600}
.hours{width:100%;font-size:.9375rem;border-collapse:collapse}
.hours td{padding:9px 0;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}
.hours td:last-child{text-align:right;font-weight:500;white-space:nowrap}
.hours .closed{color:var(--text-2);font-weight:400}
.hours tr.today td{font-weight:600;color:var(--copper-dark)}
.hours tr.today td:first-child::after{content:" · today";font-size:.75rem;font-weight:500;color:var(--copper)}
.hours-card{background:var(--white);border:1px solid var(--card-br);border-radius:var(--r);padding:22px 20px}
.hours-card h3{font-size:1.5rem;margin-bottom:10px}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:48px 0 36px;border-bottom:1px solid var(--border)}
.page-hero h1{font-size:clamp(38px,9.5vw,50px);margin-bottom:14px}
.page-hero .lead{margin-bottom:0}

/* ---------- Prose blocks (About) ---------- */
.prose-grid{display:grid;gap:36px}
.prose-block h2{font-size:clamp(28px,7vw,34px);margin-bottom:12px}
.prose-block p{color:var(--text-2);font-size:1.0625rem}
.pull,.prose-block p.pull{font-family:var(--serif);font-size:clamp(26px,6.5vw,34px);font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--text);border-left:2px solid var(--copper);padding-left:20px;max-width:30em}

/* ---------- Team page ---------- */
.team-grid{display:grid;gap:28px}
.team-media{margin:0;border-radius:var(--r);overflow:hidden;background:var(--beige-2);max-width:680px}
.team-media img{width:100%;height:auto}
.team-body .eyebrow{margin-bottom:10px}
.team-body h1{font-size:clamp(40px,10vw,56px);margin-bottom:8px}
.team-body .cred{font-size:.9375rem;color:var(--copper-dark);font-weight:500;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--border)}
.team-body .bio p{color:var(--text-2);font-size:1.0625rem}
.team-body .bio .pull{margin:22px 0;font-size:clamp(24px,6vw,30px)}
.team-cta{display:grid;gap:10px;margin-top:26px}

/* ---------- Services page ---------- */
.svc-list{display:grid;gap:12px}
.svc-row{display:flex;gap:16px;align-items:flex-start;background:var(--white);border:1px solid var(--card-br);border-radius:var(--r);padding:20px 18px}
.svc-row h3{font-family:var(--sans);font-size:1.0625rem;font-weight:600;margin-bottom:4px}
.svc-row h3 small{font-weight:500;color:var(--text-2);font-size:.875rem}
.svc-row p{font-size:.9375rem;color:var(--text-2);line-height:1.55}
.carriers{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 16px}
.carriers li{font-size:.8125rem;font-weight:500;background:var(--white);border:1px solid var(--card-br);padding:7px 11px;border-radius:6px;color:var(--text)}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;gap:18px}
.info-card{background:var(--white);border:1px solid var(--card-br);border-radius:var(--r);padding:24px 20px}
.info-card .ico{margin-bottom:14px}
.info-card h2{font-size:1.75rem;margin-bottom:10px}
.info-card address{font-style:normal;font-size:1.0625rem;line-height:1.55;color:var(--text)}
.info-card address a{font-weight:600;color:var(--copper-text)}
.info-card .btn{margin-top:18px}
.info-card p{color:var(--text-2)}
.map-wrap{aspect-ratio:16/10;overflow:hidden;border-radius:8px;border:1px solid var(--border);background:var(--beige);margin-top:18px}
.map-wrap iframe{width:100%;height:100%;border:0;display:block}

/* ---------- CTA band ---------- */
.cta-band{text-align:center;background:var(--beige-2)}
.cta-band h2{font-size:clamp(34px,9vw,46px);margin-bottom:14px}
.cta-band .lead{margin:0 auto 26px}
.cta-band .btns{display:grid;gap:10px}

/* ---------- Crisis line (every page) ---------- */
.crisis{background:var(--white);border-top:1px solid var(--border);font-size:.8125rem;line-height:1.5;color:var(--text-2);text-align:center;padding:14px var(--gutter)}
.crisis a{color:var(--text);font-weight:600;border-bottom:1px solid var(--copper)}

/* ---------- Footer ---------- */
.site-footer{background:var(--beige);color:var(--text-2);padding:40px 0 26px;font-size:.875rem;border-top:1px solid var(--border)}
.foot-grid{display:grid;gap:26px}
.foot-brand img{height:auto;width:200px;margin-bottom:14px}
.foot-brand p{max-width:30em}
.site-footer h3{font-family:var(--sans);color:var(--text);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px;font-weight:600}
.site-footer address{font-style:normal;line-height:1.6}
.site-footer a{color:var(--text)}
.site-footer ul li{padding:4px 0}
.foot-bottom{margin-top:26px;padding-top:18px;border-top:1px solid var(--border);font-size:.75rem;display:grid;gap:8px}
.foot-bottom a{text-decoration:underline;text-underline-offset:2px}

/* ---------- Mobile action bar ---------- */
.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:2fr 3fr;gap:8px;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(251,248,242,.97);backdrop-filter:blur(8px);border-top:1px solid var(--border);transform:translateY(110%);transition:transform .3s var(--ease)}
body.has-bar .action-bar{transform:none}
body.chat-open .action-bar,body.modal-open .action-bar,body.drawer-open .action-bar{transform:translateY(110%)}
.action-bar .btn{min-height:50px;padding:0 14px}
.action-bar .btn-secondary{background:#fff}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- Chat widget ----------
   Container is pointer-events:none so it never blocks taps; only the
   launcher and the open panel accept input. */
.chat{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:70;pointer-events:none;display:flex;flex-direction:column;align-items:flex-end;gap:10px;transition:bottom .3s var(--ease)}
body:not(.has-bar) .chat{bottom:calc(18px + env(safe-area-inset-bottom))}
.chat-launch{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:54px;height:54px;border-radius:50%;background:var(--copper-btn);color:#fff;font-weight:600;font-size:.875rem;border:1px solid var(--copper-btn);box-shadow:0 8px 24px rgba(52,38,25,.22);transition:opacity .25s,transform .25s var(--ease),background .2s}
.chat-launch:hover{background:var(--copper-dark)}
.chat-launch svg{width:24px;height:24px}
.chat-launch .lbl{display:none}
.chat.launch-hidden .chat-launch{opacity:0;pointer-events:none;transform:translateY(10px)}
body.chat-open .chat-launch{display:none}
.chat-panel{pointer-events:auto;display:none;flex-direction:column;width:min(380px,calc(100vw - 28px));height:min(600px,calc(100vh - 110px));background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(52,38,25,.28);border:1px solid var(--border);overflow:hidden}
body.chat-open .chat-panel{display:flex}
.chat-head{background:var(--navy);color:#fff;padding:12px 12px 12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.chat-head h2{font-family:var(--serif);font-size:1.35rem;font-weight:500;letter-spacing:0;color:#fff;line-height:1.1}
.chat-head p{font-size:.75rem;color:#C9D6E2;line-height:1.3}
.chat-close{width:40px;height:40px;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-btn);display:inline-flex;align-items:center;justify-content:center;flex:none}
.chat-close svg{width:16px;height:16px}
.chat-log{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:10px;background:var(--cream);-webkit-overflow-scrolling:touch}
.msg{max-width:88%;padding:10px 13px;border-radius:10px;font-size:.9rem;line-height:1.5;word-wrap:break-word}
.msg a{font-weight:600;color:var(--copper-text);border-bottom:1px solid currentColor}
.msg p{margin-bottom:6px}
.msg p:last-child{margin-bottom:0}
.msg ul{margin:4px 0 2px 16px;list-style:disc}
.msg-bot{background:#fff;border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:2px}
.msg-user{background:var(--navy);color:#fff;align-self:flex-end;border-bottom-right-radius:2px}
.msg-crisis{border-color:var(--copper);background:#FFF9F2}
.typing{display:inline-flex;gap:4px;padding:4px 2px}
.typing i{width:7px;height:7px;border-radius:50%;background:#C9B9A6;animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 0;background:var(--cream)}
.chips button{font-size:.8rem;font-weight:500;background:#fff;border:1px solid var(--border);border-radius:6px;padding:7px 11px;color:var(--text)}
.chips button:hover{border-color:var(--copper);color:var(--copper-dark)}
.chat-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:#fff}
.chat-form input{flex:1;min-width:0;height:44px;border:1px solid var(--border);border-radius:var(--r-btn);padding:0 12px;font:inherit;font-size:16px;color:var(--text);background:#fff}
.chat-form input:focus{outline:2px solid var(--copper-dark);border-color:var(--copper)}
.chat-form button{width:44px;height:44px;border-radius:var(--r-btn);background:var(--copper-btn);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.chat-form button svg{width:16px;height:16px}
.chat-disclaimer{font-size:.7rem;color:var(--text-2);text-align:center;padding:0 12px 8px;background:#fff;line-height:1.35}
.chat-disclaimer a{color:var(--text);border-bottom:1px solid currentColor}

/* ============================================================
   Tablet
   ============================================================ */
@media (min-width:640px){
  :root{--gutter:32px}
  .section{padding:72px 0}
  .hero-media{height:480px}
  .hero-body{padding-top:360px}
  .hero-cta{grid-template-columns:auto auto;justify-content:start}
  .marquee{height:84px}
  .area-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .mod-grid{gap:12px}
  .meet-grid{grid-template-columns:5fr 7fr;gap:40px;align-items:center}
  .touch-grid{grid-template-columns:1fr 1fr;gap:40px}
  .cta-band .btns{grid-template-columns:auto auto;justify-content:center}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr}
  .foot-bottom{grid-template-columns:1fr auto}
  .trust-grid{grid-template-columns:repeat(4,1fr)}
  .trust-item{border-bottom:0!important;border-right:1px solid var(--border);padding:22px 16px}
  .trust-item:nth-child(even){padding-left:16px}
  .trust-item:last-child{border-right:0}
  .trust-item:first-child{padding-left:0}
  .team-grid{grid-template-columns:5fr 7fr;gap:48px;align-items:start}
  .team-cta{grid-template-columns:auto auto;justify-content:start}
  .contact-grid{grid-template-columns:1fr 1fr;gap:24px}
  .svc-list{grid-template-columns:1fr 1fr}
  .section-head.split{grid-template-columns:1fr auto;align-items:end}
  .page-hero{padding:64px 0 44px}
}

/* ============================================================
   Desktop
   ============================================================ */
@media (min-width:1024px){
  :root{--gutter:48px;--header-h:84px}
  body.has-bar{padding-bottom:0}
  .action-bar{display:none}
  .chat,body:not(.has-bar) .chat{right:28px;bottom:28px}
  .chat-launch{width:auto;height:50px;border-radius:var(--r-btn);padding:0 18px 0 14px}
  .chat-launch .lbl{display:inline}
  .chat-launch svg{width:20px;height:20px}
  .section{padding:100px 0}
  h1{font-size:clamp(58px,5vw,78px);line-height:.94;letter-spacing:-.035em}
  h2{font-size:clamp(42px,3.4vw,50px);line-height:1}
  .lead{font-size:1.1875rem}
  .section-head{margin-bottom:40px}
  .section-head h2{margin-bottom:18px}
  /* header */
  .site-header .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:28px}
  .brand img{height:50px}
  .main-nav{display:flex;justify-content:flex-end;gap:4px}
  .header-actions{display:flex}
  .nav-toggle{display:none}
  /* hero */
  .hero{display:grid;grid-template-columns:44fr 56fr;min-height:660px;align-items:stretch;overflow:hidden}
  .hero-media{height:auto;min-height:660px;order:2;position:relative;top:auto;left:auto;right:auto;margin-left:-56px}
  .hero-media::after{display:none}
  .hero-media::before{content:"";position:absolute;inset:0 auto 0 0;width:160px;background:linear-gradient(90deg,var(--cream) 0%,rgba(251,248,242,0) 100%);z-index:1}
  .hero-media img{object-position:58% 50%}
  .hero-body{order:1;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:80px 48px 80px max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)))}
  .hero-body > *{max-width:540px}
  .hero h1{margin-bottom:22px}
  .hero .lead{margin-bottom:30px}
  .hero-cta .btn{min-height:52px;padding:0 26px}
  .hero-chip{left:auto;right:var(--gutter);top:16px}
  /* trust */
  .trust-item{padding:26px 24px}
  .trust-item b{font-size:.9375rem}
  /* proof */
  .proof-top{padding:30px 0 22px}
  .marquee{height:90px}
  .marquee-track li{padding:0 34px}
  .marquee-track img{height:32px;max-width:240px}
  .marquee-track img[src*="cigna"]{height:40px}
  .marquee-track li.badge img{height:44px}
  .marquee-track .word{font-size:1rem}
  /* areas */
  .area-grid{gap:16px}
  .area{padding:26px 22px}
  .area h3{font-size:1.0625rem}
  /* modalities */
  .mod-grid{grid-template-columns:repeat(9,minmax(0,1fr));gap:12px}
  .mod{padding:22px 8px 18px}
  .mod b{font-size:1.4rem}
  /* meet */
  .meet-grid{grid-template-columns:5fr 7fr;gap:72px}
  .meet-media{max-width:none}
  /* touch */
  .touch-grid{grid-template-columns:1fr 1fr;gap:80px;align-items:start}
  .hours-card{padding:28px}
  /* pages */
  .page-hero{padding:80px 0 56px}
  .page-hero h1{font-size:clamp(50px,4.6vw,66px)}
  .prose-grid{grid-template-columns:1fr 1fr;gap:56px 72px}
  .prose-block.wide{grid-column:1 / -1}
  .team-grid{gap:80px}
  .team-body h1{font-size:clamp(52px,4.4vw,64px)}
  .svc-list{gap:16px}
  .svc-row{padding:26px 24px}
  .contact-grid{gap:28px}
  .info-card{padding:36px}
  .map-wrap{aspect-ratio:16/9}
  /* cta */
  .cta-band .btns{gap:14px}
  /* footer */
  .foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}
}
@media (min-width:1200px){
  .area-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media (min-width:1280px){
  :root{--gutter:64px}
  .main-nav a{padding:8px 16px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
  /* Marquee becomes a static, horizontally scrollable row; the duplicate
     sequence is hidden so nothing repeats. */
  .marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
  .marquee-track{animation:none}
  .marquee-track li[aria-hidden="true"]{display:none}
}
@media print{
  .site-header,.action-bar,.chat,.preview-strip,.drawer{display:none!important}
  body{padding:0}
}
