/* =========================================================
   HealHub Behavioral Health — main.css
   Shared design tokens, header, footer, buttons, and reveal
   animation utilities used on every page of the site.
   ========================================================= */

:root{
  --sky:#65CDEE;
  --sky-deep:#2E8FB0;
  --sky-text:#1B6A85;
  --sky-soft:#EAF7FC;
  --ink:#0F2A3D;
  --ink-soft:#4C6474;
  --bg:#F6FAFC;
  --white:#FFFFFF;
  --warm:#F2A65A;
  --line:#E1EDF2;
  --shadow-sm: 0 2px 10px rgba(15,42,61,0.06);
  --shadow-md: 0 12px 32px rgba(15,42,61,0.10);
  --shadow-lg: 0 24px 60px rgba(15,42,61,0.14);
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --container: 1240px;
  --ease: cubic-bezier(.22,.68,0,1);
  --header-h: 126px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{font-family:'Fraunces',serif; margin:0; font-weight:600; letter-spacing:-0.01em; color:var(--ink);}
p{margin:0; line-height:1.65; color:var(--ink-soft);}
button{font-family:inherit; cursor:pointer;}
.container{max-width:var(--container); margin:0 auto; padding:0 24px;}
section{position:relative;}
#home, #about, #services, #resources, #contact{ scroll-margin-top: var(--header-h); }

/* Accessibility */
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:#fff; padding:12px 20px;
  z-index:9999; border-radius:0 0 10px 0;
}
.skip-link:focus{left:0;}
:focus-visible{outline:3px solid var(--sky-deep); outline-offset:3px;}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--sky-text); margin-bottom:14px;
}
.eyebrow::before{content:''; width:22px; height:2px; background:var(--sky-deep); border-radius:2px;}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:100px; font-weight:600; font-size:16px;
  border:1px solid transparent; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
  position:relative; overflow:hidden; white-space:nowrap;
}
.btn-primary{ background:linear-gradient(135deg,var(--sky),var(--sky-deep)); color:#fff; box-shadow:0 10px 30px rgba(46,143,176,0.35);}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(46,143,176,0.45);}
.btn-ghost{ background:#fff; color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-sm);}
.btn-ghost:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--sky);}
.btn-light{ background:rgba(255,255,255,0.14); color:#fff; border-color:rgba(255,255,255,0.35); backdrop-filter:blur(6px);}
.btn-light:hover{ background:rgba(255,255,255,0.24); transform:translateY(-3px);}
.btn .ripple{position:absolute; border-radius:50%; background:rgba(255,255,255,0.5); transform:scale(0); animation:ripple .6s linear; pointer-events:none;}
@keyframes ripple{to{transform:scale(3); opacity:0;}}

/* ---------- HEADER: two-tier, solid, never transparent ---------- */
.header-wrap{ position:fixed; top:0; left:0; right:0; z-index:1000; }

.utility-bar{
  background:var(--ink); color:rgba(255,255,255,0.88);
  font-size:13.5px; overflow:hidden;
  max-height:44px; transition:max-height .4s var(--ease), opacity .4s var(--ease), padding .4s var(--ease);
}
.utility-bar .container{ display:flex; align-items:center; justify-content:flex-end; gap:0; padding-top:10px; padding-bottom:10px; }
.utility-bar .u-item{ display:flex; align-items:center; gap:8px; white-space:nowrap; }
.utility-bar .u-item svg{ flex-shrink:0; color:var(--sky); }
.utility-bar .u-item a{ color:inherit; }
.utility-bar .u-item a:hover{ color:var(--sky); }
.utility-bar .u-div{ width:1px; height:14px; background:rgba(255,255,255,0.22); margin:0 20px; }
.header-wrap.scrolled .utility-bar{ max-height:0; opacity:0; padding-top:0; padding-bottom:0; }

header.site-header{
  padding:16px 0; transition:all .4s var(--ease);
  background:rgba(255,255,255,0.98);
  backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 2px 18px rgba(15,42,61,0.07);
  border-bottom:1px solid var(--line);
}
header.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:28px; }
.header-wrap.scrolled header.site-header{ padding:10px 0; box-shadow:0 6px 26px rgba(15,42,61,0.12); }
.logo{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.logo img{ height:48px; width:auto; transition:height .3s var(--ease); }
.header-wrap.scrolled .logo img{ height:42px; }

nav.main-nav{ flex:1; display:flex; justify-content:center; }
nav.main-nav ul{ display:flex; align-items:center; gap:34px; }
nav.main-nav li{ position:relative; }
nav.main-nav a{ display:flex; align-items:center; gap:6px; font-weight:600; font-size:15px; color:var(--ink); position:relative; padding:10px 0; }
nav.main-nav a::after{
  content:''; position:absolute; left:0; bottom:2px; height:2px; width:0; background:var(--sky-deep);
  transition:width .3s var(--ease);
}
nav.main-nav a:hover::after{ width:100%; }
nav.main-nav a.active{ color:var(--sky-text); }
nav.main-nav a.active .active-dot{ display:inline-block; }
.active-dot{ display:none; width:5px; height:5px; border-radius:50%; background:var(--warm); }
.chevron{ transition:transform .3s var(--ease); }

.has-dropdown{ position:relative; }
.dropdown-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px);
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow-lg);
  padding:10px; min-width:230px; display:grid; gap:2px;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.has-dropdown:hover .chevron{ transform:rotate(180deg); }
.dropdown-menu a{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:8px; font-size:14.5px; font-weight:600; color:var(--ink); }
.dropdown-menu a:hover{ background:var(--sky-soft); color:var(--sky-text); }
.dropdown-menu a::after{ display:none; }
.dropdown-menu .ico-xs{ width:26px; height:26px; border-radius:8px; background:linear-gradient(135deg,var(--sky),var(--sky-deep)); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

.header-actions{ display:flex; align-items:center; gap:18px; flex-shrink:0; }
.header-actions .phone-link{ display:flex; align-items:center; gap:8px; font-weight:600; font-size:14.5px; }
.btn-book{ display:inline-flex; align-items:center; gap:9px; background:var(--ink); color:#fff; padding:13px 24px; border-radius:100px; font-weight:700; font-size:14.5px; transition:transform .3s var(--ease), background .3s var(--ease); }
.btn-book:hover{ background:var(--sky-deep); transform:translateY(-2px); }
.nav-toggle{ display:none; background:none; border:none; padding:10px; }
.nav-toggle span{ display:block; width:26px; height:2px; background:var(--ink); margin:6px 0; border-radius:2px; transition:.3s;}
.mobile-nav{ display:none; background:#fff; box-shadow:var(--shadow-md); padding:20px 24px; max-height:80vh; overflow-y:auto; }
.mobile-nav ul{ display:flex; flex-direction:column; gap:6px; }
.mobile-nav a{ display:flex; align-items:center; justify-content:space-between; padding:12px 4px; font-weight:600; }
.mobile-nav .mobile-sub{ display:flex; flex-direction:column; gap:2px; padding-left:14px; border-left:2px solid var(--line); margin:2px 0 8px; }
.mobile-nav .mobile-sub a{ font-weight:500; font-size:14.5px; color:var(--ink-soft); padding:9px 4px; }
.mobile-nav-cta{ margin-top:16px; padding-top:16px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:12px; }
.mobile-nav-phone{ display:flex; align-items:center; justify-content:center; gap:9px; font-weight:700; font-size:16px; color:var(--ink); padding:6px 0; }

@media (max-width:1080px){
  .utility-bar .u-item.u-address{ display:none; }
}
@media (max-width:900px){
  nav.main-nav{ display:none; }
  .nav-toggle{ display:block; }
  .header-actions .phone-link{ display:none; }
  .logo img{ height:42px; }
}
@media (max-width:640px){
  .utility-bar{ display:none; }
  :root{ --header-h:88px; }
}
@media (max-width:480px){
  .container{ padding:0 16px; }
  .btn-book span.book-label{ display:none; }
  .btn-book{ padding:12px; border-radius:50%; width:44px; height:44px; justify-content:center; }
  .logo img{ height:38px; }
}

/* reveal */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.94); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-scale.in{ opacity:1; transform:scale(1); }

/* ---------- SECTION HEAD ---------- */
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(30px,3.6vw,46px); line-height:1.12; }
.section-head p{ font-size:18px; margin-top:16px; }
.section-pad{ padding:110px 0; }
@media (max-width:640px){ .section-pad{ padding:76px 0; } }

/* ---------- CTA BAND (reused site-wide) ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--sky-deep),var(--ink) 120%);
  border-radius:var(--radius-lg); padding:80px 60px; text-align:center; position:relative; overflow:hidden;
}
.cta-band::before{
  content:''; position:absolute; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,0.12),transparent 70%);
  top:-260px; left:50%; transform:translateX(-50%);
}
.cta-band h2{ color:#fff; font-size:clamp(30px,4vw,48px); position:relative; }
.cta-band p{ color:rgba(255,255,255,0.78); max-width:520px; margin:18px auto 34px; font-size:17px; position:relative;}
.cta-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; position:relative;}
@media (max-width:640px){ .cta-band{ padding:56px 26px; } }

/* ---------- FAQ (shared: homepage + service pages) ---------- */
.faq-wrap{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; background:none; border:none; text-align:left; padding:26px 4px; display:flex; justify-content:space-between; align-items:center;
  font-family:'Fraunces',serif; font-size:19px; color:var(--ink); gap:20px;
}
.faq-q .plus{ flex-shrink:0; width:30px; height:30px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition:.35s var(--ease); position:relative;}
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--sky-deep); }
.faq-q .plus::before{ width:12px; height:2px; }
.faq-q .plus::after{ width:2px; height:12px; transition:transform .35s var(--ease); }
.faq-item.open .plus{ background:var(--sky-deep); border-color:var(--sky-deep);}
.faq-item.open .plus::before, .faq-item.open .plus::after{ background:#fff; }
.faq-item.open .plus::after{ transform:rotate(90deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .45s var(--ease); }
.faq-a p{ padding:0 4px 26px; font-size:15.5px; max-width:680px; }

/* ---------- FOOTER ---------- */
footer{ background:var(--ink); color:rgba(255,255,255,0.72); padding:80px 0 30px; margin-top:110px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-brand img{ height:46px; margin-bottom:18px; filter:brightness(0) invert(1); }
.footer-brand p{ color:rgba(255,255,255,0.55); font-size:14.5px; max-width:280px;}
.footer-col h4{ color:#fff; font-size:15px; margin-bottom:20px; }
.footer-col ul li{ margin-bottom:12px; }
.footer-col a{ font-size:14.5px; color:rgba(255,255,255,0.62); transition:.25s;}
.footer-col a:hover{ color:var(--sky); }
.social-row{ display:flex; gap:12px; margin-top:20px; }
.social-row a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; transition:.3s;}
.social-row a:hover{ background:var(--sky-deep); }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:26px; font-size:13.5px; color:rgba(255,255,255,0.45);}
@media (max-width:1080px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .footer-grid{ grid-template-columns:1fr; } }
