/* ============================================================
   Cherry Creek Treatment Center — Main Stylesheet
   ============================================================ */

:root {
  --dark-green:      #151936;   /* deep dark navy  — footer / dark sections  */
  --medium-green:    #1E234D;   /* deep navy       — primary brand            */
  --accent-green:    #7B6FA8;   /* healing purple  — accent / interactive     */
  --light-accent:    #CFC7EA;   /* light lavender  — hover tints              */
  --light-green-bg:  #EEEAF8;   /* lavender tint   — badges / light bg        */
  --very-light-bg:   #F1F3F7;   /* soft gray       — alternate sections       */
  --white:           #FAFAFC;   /* warm white      — page background          */
  --text-dark:       #1E234D;   /* deep navy       — headlines                */
  --text-medium:     #4A5568;   /* slate           — body text                */
  --text-light:      #7A8395;   /* muted slate     — secondary text           */
  --border:          #DDD8F0;   /* lavender border                            */
  --shadow:          0 4px 20px rgba(30,35,77,.08);
  --shadow-md:       0 8px 32px rgba(30,35,77,.13);
  --radius:          12px;
  --radius-lg:       20px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--text-dark);
  line-height:1.6;
  background:var(--white);
}

h1,h2,h3,h4,h5 { font-weight:700; line-height:1.2; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
ul { list-style:none; }

.container { max-width:1200px; margin:0 auto; padding:0 24px; }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:9px; font-weight:600;
  font-size:15px; cursor:pointer; transition:all .22s ease;
  border:none; text-decoration:none;
}
.btn-primary { background:var(--medium-green); color:#fff; }
.btn-primary:hover { background:var(--dark-green); transform:translateY(-2px); box-shadow:0 6px 20px rgba(30,35,77,.35); }
.btn-white  { background:#fff; color:var(--accent-green); }
.btn-white:hover { background:var(--light-green-bg); }
.btn-outline { background:transparent; color:var(--accent-green); border:2px solid var(--accent-green); }
.btn-outline:hover { background:var(--accent-green); color:#fff; }

/* ── Badge ── */
.badge {
  display:inline-flex; align-items:center; gap:7px;
  background:var(--light-green-bg); color:var(--accent-green);
  padding:6px 15px; border-radius:50px; font-size:13px; font-weight:600;
  margin-bottom:16px;
}
.badge i { font-size:12px; }

/* ── Section header ── */
.section-header { text-align:center; margin-bottom:52px; }
.section-header h2 { font-size:clamp(28px,3vw,42px); font-weight:800; margin-bottom:14px; }
.section-header p  { font-size:16px; color:var(--text-light); max-width:580px; margin:0 auto; line-height:1.75; }

/* ── Arrow link ── */
.arrow-link {
  display:inline-flex; align-items:center; gap:7px;
  color:var(--accent-green); font-size:14px; font-weight:600;
  transition:gap .2s;
}
.arrow-link:hover { gap:11px; }

/* ============================================================
   TOP BAR
   ============================================================ */
.top-bar {
  background:var(--dark-green); color:#fff; padding:10px 0; font-size:13px;
}
.top-bar .container {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:8px;
}
.top-bar a { color:#fff; }
.top-bar .cta-link { text-decoration:underline; font-weight:600; }
.top-bar-right { display:flex; align-items:center; gap:24px; }
.top-bar-right a {
  display:flex; align-items:center; gap:7px;
  opacity:.88; transition:opacity .2s;
}
.top-bar-right a:hover { opacity:1; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.navbar {
  background:#fff; padding:10px 0;
  position:sticky; top:0; z-index:1000;
  box-shadow:0 2px 12px rgba(0,0,0,.07);
}
.navbar .container {
  display:flex; align-items:center;
  justify-content:space-between; gap:12px;
}

.logo {
  display:flex; align-items:center; gap:10px;
  font-size:19px; font-weight:800; color:var(--dark-green);
  flex-shrink:0; white-space:nowrap;
}
.logo-icon {
  width:40px; height:40px; background:var(--accent-green);
  border-radius:10px; display:flex; align-items:center; justify-content:center;
}
.logo-icon svg { width:24px; height:24px; fill:#fff; }

.nav-links {
  display:flex; align-items:center; gap:0px;
}
.nav-links > li { position:relative; }
.nav-links > li > a {
  display:flex; align-items:center; gap:4px;
  padding:7px 10px; font-size:13px; font-weight:500;
  color:var(--text-dark); border-radius:7px; transition:all .2s;
  white-space:nowrap;
}
.nav-links > li > a:hover,
.nav-links > li > a.active { color:var(--accent-green); background:var(--light-green-bg); }

/* Dropdown */
.dropdown { position:relative; }
.dropdown-menu {
  display:none; position:absolute; top:100%; left:0;
  background:#fff; border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,.14);
  min-width:230px; padding:18px 8px 8px; z-index:200;
  border:1px solid var(--border);
  animation:fadeDown .18s ease;
}
.dropdown:hover .dropdown-menu { display:block; }
@keyframes fadeDown {
  from { opacity:0; transform:translateY(-7px); }
  to   { opacity:1; transform:translateY(0); }
}
.dropdown-menu a {
  display:block; padding:10px 16px;
  font-size:14px; color:var(--text-medium);
  border-radius:8px; transition:all .18s;
}
.dropdown-menu a:hover { background:var(--light-green-bg); color:var(--accent-green); }
.dropdown-menu .divider { height:1px; background:var(--border); margin:6px 8px; }

.nav-cta {
  background:var(--medium-green); color:#fff; padding:10px 20px;
  border-radius:9px; font-weight:600; font-size:14px;
  display:flex; align-items:center; gap:7px; transition:all .2s;
  white-space:nowrap;
}
.nav-cta:hover { background:var(--dark-green); transform:translateY(-1px); }

.mobile-menu-btn {
  display:none; background:none; border:none;
  cursor:pointer; padding:8px; color:var(--text-dark); font-size:22px;
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  background:var(--light-green-bg); padding:84px 0 130px;
  position:relative; overflow:hidden;
}
.hero::before {
  content:'';
  position:absolute; inset:0;
  background-image:radial-gradient(circle at 22px 22px, rgba(123,111,168,.07) 1.5px, transparent 1.5px);
  background-size:44px 44px;
}
.hero .container {
  display:grid; grid-template-columns:1fr 1fr;
  gap:60px; align-items:center; position:relative;
}
.hero-content { max-width:540px; }
.hero-tag {
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; color:var(--accent-green);
  padding:8px 18px; border-radius:50px;
  font-size:13px; font-weight:600; margin-bottom:24px;
  box-shadow:0 2px 10px rgba(0,0,0,.09);
}
.hero-tag svg { width:16px; height:16px; fill:var(--accent-green); }
.hero h1 {
  font-size:clamp(36px,4vw,56px); font-weight:800;
  color:var(--text-dark); margin-bottom:22px; letter-spacing:-.5px;
}
.hero p {
  font-size:16px; color:var(--text-light);
  margin-bottom:34px; line-height:1.75; max-width:460px;
}
.hero-btns { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.hero-phone {
  display:flex; align-items:center; gap:8px;
  font-size:14px; font-weight:600; color:var(--text-medium);
}
.hero-phone i { color:var(--accent-green); }

.hero-image { position:relative; }
.hero-image img {
  width:100%; height:520px; object-fit:cover;
  border-radius:24px;
}
.hero-stat {
  position:absolute; bottom:28px; left:-18px;
  background:#fff; padding:18px 22px;
  border-radius:18px; box-shadow:var(--shadow-md);
  text-align:center;
}
.hero-stat .num  { font-size:28px; font-weight:800; color:var(--accent-green); }
.hero-stat .lbl  { font-size:11px; color:var(--text-light); max-width:90px; line-height:1.3; }
.hero-stat2 {
  position:absolute; top:28px; right:-16px;
  background:var(--accent-green); color:#fff;
  padding:14px 18px; border-radius:14px;
  font-size:13px; font-weight:700; text-align:center;
}
.hero-stat2 .n2  { font-size:22px; font-weight:800; display:block; }

/* ============================================================
   INFO CARDS
   ============================================================ */
.info-cards {
  position:relative; z-index:10;
  margin-top:-68px; padding-bottom:0;
}
.info-cards .container {
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.info-card {
  background:#fff; border-radius:18px; padding:32px 28px;
  box-shadow:var(--shadow-md); border:1px solid var(--border);
  transition:transform .22s, box-shadow .22s;
}
.info-card:hover { transform:translateY(-5px); box-shadow:0 18px 48px rgba(0,0,0,.14); }
.info-card-icon {
  width:52px; height:52px; background:var(--light-green-bg);
  border-radius:50%; display:flex; align-items:center;
  justify-content:center; margin-bottom:20px;
  color:var(--accent-green); font-size:22px;
}
.info-card h3 { font-size:19px; margin-bottom:12px; }
.info-card > p { font-size:14px; color:var(--text-light); margin-bottom:20px; line-height:1.6; }
.info-card .phone a {
  display:block; font-size:17px; font-weight:700; margin-bottom:4px;
  color:var(--text-dark);
}
.info-card .phone { margin-bottom:20px; }
.info-card .addr { font-weight:600; font-size:15px; margin-bottom:20px; line-height:1.55; }
.hours-table { width:100%; border-collapse:collapse; margin-bottom:20px; }
.hours-table tr { border-bottom:1px solid var(--border); }
.hours-table tr:last-child { border-bottom:none; }
.hours-table td { padding:7px 0; font-size:14px; }
.hours-table .day  { color:var(--text-medium); font-weight:500; }
.hours-table .time { text-align:right; font-weight:700; color:var(--text-dark); }

/* ============================================================
   ABOUT
   ============================================================ */
.about { padding:100px 0; background:#fff; }
.about .container {
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.about-image { position:relative; }
.about-image img { width:100%; height:560px; object-fit:cover; border-radius:24px; }
.about-badge {
  position:absolute; bottom:28px; right:28px;
  background:var(--accent-green); color:#fff;
  padding:18px 22px; border-radius:18px; text-align:center;
  box-shadow:0 8px 24px rgba(123,111,168,.4);
}
.about-badge .num  { font-size:32px; font-weight:800; line-height:1; }
.about-badge .lbl  { font-size:12px; opacity:.9; max-width:90px; line-height:1.3; margin-top:4px; }
.about-content h2  { font-size:clamp(28px,3vw,40px); font-weight:800; margin-bottom:20px; }
.about-content > p { font-size:15px; color:var(--text-light); line-height:1.75; margin-bottom:14px; }
.about-features {
  display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:28px 0;
}
.about-feature { display:flex; align-items:flex-start; gap:10px; }
.af-icon {
  width:28px; height:28px; background:var(--light-green-bg);
  border-radius:50%; display:flex; align-items:center;
  justify-content:center; flex-shrink:0;
  color:var(--accent-green); font-size:12px; margin-top:2px;
}
.af-text { font-size:14px; font-weight:600; color:var(--text-medium); }

/* ============================================================
   SERVICES
   ============================================================ */
.services { padding:100px 0; background:var(--very-light-bg); }
.services-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
}
.service-card {
  background:#fff; border-radius:20px; overflow:hidden;
  box-shadow:var(--shadow); border:1px solid var(--border);
  transition:transform .22s, box-shadow .22s;
}
.service-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-md); }
.service-img { height:190px; overflow:hidden; }
.service-img img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.service-card:hover .service-img img { transform:scale(1.06); }
.service-body { padding:26px; }
.service-icon {
  width:46px; height:46px; background:var(--light-green-bg);
  border-radius:12px; display:flex; align-items:center;
  justify-content:center; color:var(--accent-green);
  font-size:20px; margin-bottom:16px;
}
.service-body h3 { font-size:18px; margin-bottom:10px; }
.service-body p   { font-size:14px; color:var(--text-light); line-height:1.65; margin-bottom:16px; }

/* ============================================================
   STATS BAR
   ============================================================ */
.stats-bar { background:var(--medium-green); padding:54px 0; }
.stats-bar .container {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:32px; text-align:center;
}
.stat-item { color:#fff; }
.stat-item .num {
  font-size:clamp(32px,4vw,48px); font-weight:800;
  line-height:1; margin-bottom:8px;
}
.stat-item .lbl { font-size:15px; opacity:.8; }

/* ============================================================
   TEAM
   ============================================================ */
.team { padding:100px 0; background:#fff; }
.team-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
}
.team-card { text-align:center; transition:transform .22s; }
.team-card:hover { transform:translateY(-5px); }
.team-photo {
  width:170px; height:200px; margin:0 auto 18px;
  border-radius:80px 80px 56px 56px;
  overflow:hidden; background:var(--light-green-bg);
}
.team-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.team-card h3    { font-size:16px; margin-bottom:6px; }
.team-card .role {
  font-size:13px; color:var(--accent-green);
  background:var(--light-green-bg);
  display:inline-block; padding:4px 14px; border-radius:50px;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials { padding:100px 0; background:var(--dark-green); }
.testimonials .badge { background:rgba(255,255,255,.1); color:rgba(255,255,255,.85); }
.testimonials .section-header h2 { color:#fff; }
.testimonials .section-header p  { color:rgba(255,255,255,.65); }
.testimonials-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:24px; margin-bottom:36px;
}
.t-card {
  background:#fff; border-radius:20px; padding:32px;
}
.stars { color:#f59e0b; font-size:17px; margin-bottom:16px; display:flex; gap:3px; }
.t-card blockquote {
  font-size:15px; color:var(--text-medium);
  line-height:1.75; margin-bottom:22px; font-style:italic;
}
.t-author { display:flex; align-items:center; gap:14px; }
.t-author img { width:52px; height:52px; border-radius:50%; object-fit:cover; }
.t-author .name { font-size:15px; font-weight:700; }
.t-author .role { font-size:13px; color:var(--text-light); }
.t-dots { display:flex; justify-content:center; gap:9px; }
.t-dot {
  width:10px; height:10px; border-radius:50%;
  background:rgba(255,255,255,.28); cursor:pointer; transition:background .2s;
}
.t-dot.active { background:#fff; }

/* ============================================================
   BLOG
   ============================================================ */
.blog { padding:100px 0; background:#fff; }
.blog-layout {
  display:grid; grid-template-columns:1.5fr 1fr; gap:26px;
}
.blog-featured {
  border-radius:20px; overflow:hidden;
  box-shadow:var(--shadow); border:1px solid var(--border);
  transition:transform .22s;
}
.blog-featured:hover { transform:translateY(-4px); }
.bf-img { height:290px; overflow:hidden; }
.bf-img img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.blog-featured:hover .bf-img img { transform:scale(1.04); }
.bf-body { padding:28px; }
.blog-meta { display:flex; align-items:center; gap:14px; font-size:12px; color:var(--text-light); margin-bottom:12px; }
.bf-body h3 { font-size:20px; margin-bottom:12px; line-height:1.4; }
.bf-body p  { font-size:14px; color:var(--text-light); line-height:1.65; margin-bottom:16px; }
.blog-sidebar { display:flex; flex-direction:column; gap:18px; }
.blog-card {
  display:flex; gap:16px;
  border-radius:16px; overflow:hidden;
  background:#fff; border:1px solid var(--border);
  box-shadow:var(--shadow); transition:transform .2s; padding:16px;
}
.blog-card:hover { transform:translateY(-3px); }
.blog-card img { width:90px; height:90px; border-radius:10px; object-fit:cover; flex-shrink:0; }
.bc-body .blog-meta { margin-bottom:6px; }
.bc-body h4 { font-size:14px; font-weight:700; line-height:1.4; margin-bottom:8px; }

/* ============================================================
   FOOTER CONTACT BAR
   ============================================================ */
.footer-bar { background:var(--medium-green); padding:36px 0; }
.footer-bar .container {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.fc-item { display:flex; align-items:center; gap:16px; color:#fff; }
.fc-item.highlight {
  background:var(--accent-green); padding:22px 26px;
  border-radius:14px; margin:-10px 0;
}
.fc-icon {
  width:48px; height:48px; flex-shrink:0;
  background:rgba(255,255,255,.15); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:20px;
}
.fc-item h4  { font-size:13px; opacity:.8; margin-bottom:4px; font-weight:500; }
.fc-item a,
.fc-item p   { font-size:14px; font-weight:600; color:#fff; display:block; line-height:1.5; }

/* ============================================================
   FOOTER MAIN
   ============================================================ */
.footer-main { background:var(--dark-green); padding:64px 0 32px; color:#fff; }
.footer-main .container {
  display:grid; grid-template-columns:2fr 1fr 1fr 1.3fr; gap:48px;
  padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:24px;
}
.footer-brand .logo { color:#fff; margin-bottom:16px; }
.footer-brand p { font-size:13px; color:rgba(255,255,255,.6); line-height:1.75; max-width:270px; margin-bottom:22px; }
.socials { display:flex; gap:10px; }
.social-btn {
  width:36px; height:36px; background:rgba(255,255,255,.1);
  border-radius:8px; display:flex; align-items:center;
  justify-content:center; color:#fff; transition:background .2s; font-size:14px;
}
.social-btn:hover { background:var(--accent-green); }
.footer-col h4 { font-size:15px; font-weight:700; margin-bottom:22px; }
.footer-links { display:flex; flex-direction:column; gap:11px; }
.footer-links a { font-size:13px; color:rgba(255,255,255,.6); transition:color .2s; }
.footer-links a:hover { color:var(--accent-green); }
.footer-hours { display:flex; flex-direction:column; gap:10px; }
.fhr { display:flex; justify-content:space-between; font-size:13px; }
.fhr .day  { color:rgba(255,255,255,.6); }
.fhr .hrs  { font-weight:600; }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  font-size:13px; color:rgba(255,255,255,.45); flex-wrap:wrap; gap:8px;
}
.footer-bottom a { color:rgba(255,255,255,.45); transition:color .2s; }
.footer-bottom a:hover { color:#fff; }

/* ============================================================
   PAGE BANNER (inner pages)
   ============================================================ */
.page-banner {
  background:var(--dark-green); color:#fff;
  padding:72px 0 60px; text-align:center;
  position:relative; overflow:hidden;
}
.page-banner::before {
  content:'';
  position:absolute; inset:0;
  background:url('https://images.unsplash.com/photo-1576091160550-2173dba999ef?auto=format&fit=crop&w=1400&q=60') center/cover;
  opacity:.12;
}
.page-banner .container { position:relative; }
.page-banner h1 { font-size:clamp(32px,4vw,48px); font-weight:800; margin-bottom:14px; }
.page-banner p  { font-size:16px; opacity:.75; max-width:560px; margin:0 auto 20px; }
.breadcrumb { display:flex; justify-content:center; gap:8px; font-size:14px; opacity:.65; }
.breadcrumb a:hover { opacity:1; }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-section { padding:100px 0; }
.contact-section .container {
  display:grid; grid-template-columns:1fr 1.4fr; gap:64px;
}
.contact-info h2 { font-size:32px; font-weight:800; margin-bottom:14px; }
.contact-info > p { font-size:15px; color:var(--text-light); line-height:1.75; margin-bottom:32px; }
.ci-item { display:flex; gap:16px; margin-bottom:28px; }
.ci-icon {
  width:48px; height:48px; flex-shrink:0; background:var(--light-green-bg);
  border-radius:12px; display:flex; align-items:center;
  justify-content:center; color:var(--accent-green); font-size:18px;
}
.ci-item h4 { font-size:14px; font-weight:700; margin-bottom:4px; }
.ci-item p, .ci-item a { font-size:14px; color:var(--text-light); line-height:1.5; }
.contact-form-wrap {
  background:#fff; border-radius:24px; padding:44px;
  box-shadow:var(--shadow-md); border:1px solid var(--border);
}
.contact-form-wrap h3 { font-size:22px; margin-bottom:8px; }
.contact-form-wrap > p { font-size:14px; color:var(--text-light); margin-bottom:28px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:13px; font-weight:600; margin-bottom:7px; color:var(--text-medium); }
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:12px 14px; border:1.5px solid var(--border);
  border-radius:10px; font-size:14px; font-family:inherit;
  transition:border-color .2s, box-shadow .2s; background:#fff; color:var(--text-dark);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline:none; border-color:var(--accent-green);
  box-shadow:0 0 0 3px rgba(123,111,168,.12);
}
.form-group textarea { resize:vertical; min-height:120px; }
.form-group select { appearance:none; cursor:pointer; }
.form-submit { width:100%; font-size:16px; padding:15px; justify-content:center; }

/* ============================================================
   SERVICES PAGE
   ============================================================ */
.service-detail { padding:100px 0; }
.service-detail:nth-child(odd) { background:var(--very-light-bg); }
.service-detail .container {
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.service-detail.reverse .container { direction:rtl; }
.service-detail.reverse .container > * { direction:ltr; }
.sd-image img { width:100%; height:460px; object-fit:cover; border-radius:24px; }
.sd-content .badge { margin-bottom:16px; }
.sd-content h2 { font-size:clamp(26px,3vw,38px); font-weight:800; margin-bottom:18px; }
.sd-content p  { font-size:15px; color:var(--text-light); line-height:1.75; margin-bottom:16px; }
.sd-list { margin:22px 0 28px; display:flex; flex-direction:column; gap:10px; }
.sd-list li { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--text-medium); }
.sd-list li i { color:var(--accent-green); margin-top:3px; flex-shrink:0; }

/* Insurance section */
.insurance-section { padding:80px 0; background:var(--dark-green); color:#fff; text-align:center; }
.insurance-section h2 { font-size:clamp(26px,3vw,38px); font-weight:800; margin-bottom:14px; }
.insurance-section p  { font-size:16px; opacity:.75; max-width:600px; margin:0 auto 32px; line-height:1.75; }
.insurance-logos { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-bottom:16px; }

/* Logo cards — used in both dark section and contact page */
.ins-logo-card {
  background:#fff; border-radius:12px; border:1px solid var(--border);
  padding:12px 18px; min-width:120px; height:76px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  transition:transform .2s, box-shadow .2s;
}
.ins-logo-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.ins-logo-card img { max-height:30px; max-width:100px; object-fit:contain; }
.ins-logo-card span { font-size:11px; font-weight:600; color:var(--text-medium); text-align:center; line-height:1.3; }

/* Contact page insurance grid */
.ins-contact-logos {
  display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:16px;
}

/* About page */
.mission-section { padding:100px 0; }
.mission-section .container {
  display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center;
}
.mission-section img { width:100%; height:500px; object-fit:cover; border-radius:24px; }
.mission-content h2 { font-size:clamp(26px,3vw,38px); font-weight:800; margin-bottom:18px; }
.mission-content p  { font-size:15px; color:var(--text-light); line-height:1.75; margin-bottom:16px; }
.values-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  padding:80px 0;
}
.value-card {
  background:#fff; border-radius:18px; padding:28px;
  box-shadow:var(--shadow); border:1px solid var(--border);
  text-align:center;
}
.value-icon {
  width:56px; height:56px; background:var(--light-green-bg);
  border-radius:16px; display:flex; align-items:center;
  justify-content:center; color:var(--accent-green);
  font-size:22px; margin:0 auto 16px;
}
.value-card h3 { font-size:17px; margin-bottom:10px; }
.value-card p  { font-size:14px; color:var(--text-light); line-height:1.65; }

/* CTA section */
.cta-section {
  background:var(--light-green-bg); padding:80px 0; text-align:center;
}
.cta-section h2 { font-size:clamp(26px,3vw,38px); font-weight:800; margin-bottom:14px; }
.cta-section p  { font-size:16px; color:var(--text-light); max-width:560px; margin:0 auto 32px; line-height:1.75; }
.cta-btns { display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ============================================================
   BLOG PAGE
   ============================================================ */
.blog-page { padding:80px 0; }
.blog-page-grid {
  display:grid; grid-template-columns:2fr 1fr; gap:48px; align-items:start;
}
.blog-posts { display:flex; flex-direction:column; gap:32px; }
.bp-card {
  display:flex; gap:24px;
  background:#fff; border-radius:18px; overflow:hidden;
  border:1px solid var(--border); box-shadow:var(--shadow);
  transition:transform .2s;
}
.bp-card:hover { transform:translateY(-3px); }
.bp-card img { width:240px; height:180px; object-fit:cover; flex-shrink:0; }
.bp-body { padding:24px; }
.bp-body .blog-meta { margin-bottom:10px; }
.bp-body h3 { font-size:19px; margin-bottom:12px; line-height:1.4; }
.bp-body p  { font-size:14px; color:var(--text-light); line-height:1.65; margin-bottom:14px; }
.blog-sidebar-wrap { position:sticky; top:90px; }
.sidebar-card {
  background:#fff; border-radius:18px; padding:28px;
  border:1px solid var(--border); box-shadow:var(--shadow); margin-bottom:24px;
}
.sidebar-card h4 { font-size:16px; margin-bottom:18px; }
.sidebar-cats { display:flex; flex-direction:column; gap:8px; }
.sidebar-cats a {
  display:flex; justify-content:space-between; align-items:center;
  font-size:14px; color:var(--text-medium); padding:8px 0;
  border-bottom:1px solid var(--border); transition:color .2s;
}
.sidebar-cats a:last-child { border-bottom:none; }
.sidebar-cats a:hover { color:var(--accent-green); }
.sidebar-cats span { font-size:12px; background:var(--light-green-bg); color:var(--accent-green); padding:2px 8px; border-radius:20px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  .team-grid            { grid-template-columns:repeat(2,1fr); }
  .footer-main .container { grid-template-columns:1fr 1fr; gap:32px; }
  .services-grid        { grid-template-columns:repeat(2,1fr); }
  .stats-bar .container { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:768px) {
  .hero .container           { grid-template-columns:1fr; }
  .hero-image                { display:none; }
  .info-cards .container     { grid-template-columns:1fr; }
  .about .container          { grid-template-columns:1fr; }
  .about-image               { display:none; }
  .services-grid             { grid-template-columns:1fr; }
  .team-grid                 { grid-template-columns:repeat(2,1fr); }
  .testimonials-grid         { grid-template-columns:1fr; }
  .blog-layout               { grid-template-columns:1fr; }
  .footer-bar .container     { grid-template-columns:1fr; }
  .fc-item.highlight         { margin:0; }
  .footer-main .container    { grid-template-columns:1fr; }
  .contact-section .container{ grid-template-columns:1fr; }
  .mission-section .container{ grid-template-columns:1fr; }
  .service-detail .container { grid-template-columns:1fr; }
  .service-detail.reverse .container { direction:ltr; }
  .sd-image                  { display:none; }
  .blog-page-grid            { grid-template-columns:1fr; }
  .bp-card                   { flex-direction:column; }
  .bp-card img               { width:100%; height:200px; }
  .values-grid               { grid-template-columns:1fr; }
  .form-row                  { grid-template-columns:1fr; }
  .nav-links, .nav-cta       { display:none; }
  .mobile-menu-btn           { display:block; }
  .top-bar .container        { flex-direction:column; text-align:center; }
  .top-bar-right             { flex-wrap:wrap; justify-content:center; gap:12px; }
}

/* ============================================================
   MOBILE NAV OVERLAY
   ============================================================ */
.mobile-nav {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.5);
  z-index:2000;
}
.mobile-nav.open { display:block; }
.mobile-nav-panel {
  position:absolute; top:0; right:0; bottom:0; width:min(320px,90vw);
  background:#fff; padding:24px; overflow-y:auto;
  display:flex; flex-direction:column; gap:4px;
  animation:slideIn .25s ease;
}
@keyframes slideIn {
  from { transform:translateX(100%); }
  to   { transform:translateX(0); }
}
.mobile-nav-close {
  align-self:flex-end; background:none; border:none;
  font-size:24px; cursor:pointer; margin-bottom:16px; color:var(--text-dark);
}
.mobile-nav a {
  display:block; padding:12px 16px; font-size:15px; font-weight:500;
  border-radius:8px; transition:background .18s; color:var(--text-dark);
}
.mobile-nav a:hover { background:var(--light-green-bg); color:var(--accent-green); }
.mobile-nav .mob-cta {
  margin-top:16px; background:var(--accent-green); color:#fff !important;
  border-radius:9px; text-align:center; font-weight:700 !important;
}

/* ── HOMEPAGE PROGRAMS HIGHLIGHT ─────────────────── */
.programs-highlight { padding:80px 0; background:var(--white); }
.prog-cards {
  display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:48px;
}
.prog-card {
  border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--border); box-shadow:var(--shadow);
  transition:transform .25s, box-shadow .25s; background:#fff;
}
.prog-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.prog-card-img { position:relative; height:240px; overflow:hidden; }
.prog-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.prog-card:hover .prog-card-img img { transform:scale(1.04); }
.prog-card-badge {
  position:absolute; top:16px; left:16px;
  background:var(--medium-green); color:#fff;
  padding:6px 14px; border-radius:20px; font-size:13px; font-weight:600;
  display:flex; align-items:center; gap:6px;
}
.prog-card-badge--teen { background:var(--accent-green); }
.prog-card-body { padding:28px; }
.prog-card-body h3 { font-size:1.25rem; color:var(--text-dark); margin-bottom:10px; }
.prog-card-body p { color:var(--text-medium); font-size:15px; line-height:1.65; margin-bottom:18px; }
.prog-card-list { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:8px; }
.prog-card-list li { display:flex; align-items:center; gap:10px; font-size:14px; color:var(--text-medium); }
.prog-card-list li i { color:var(--accent-green); flex-shrink:0; }

/* ── PROGRAMS PAGE ───────────────────────────────── */
.prog-overview-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px;
}
.prog-overview-card {
  display:block; padding:36px 32px; border-radius:var(--radius-lg);
  border:2px solid var(--border); background:#fff;
  text-decoration:none; transition:all .25s; text-align:center;
}
.prog-overview-card:hover {
  border-color:var(--medium-green); box-shadow:var(--shadow-md);
  transform:translateY(-4px);
}
.prog-overview-card--teen:hover { border-color:var(--accent-green); }
.poc-icon {
  width:64px; height:64px; border-radius:50%;
  background:var(--light-green-bg); color:var(--medium-green);
  display:flex; align-items:center; justify-content:center;
  font-size:26px; margin:0 auto 16px;
}
.prog-overview-card--teen .poc-icon { background:var(--light-green-bg); color:var(--accent-green); }
.prog-overview-card h3 { font-size:1.2rem; color:var(--text-dark); margin-bottom:10px; }
.prog-overview-card p { color:var(--text-medium); font-size:14px; line-height:1.6; margin-bottom:16px; }

/* Detail sections */
.prog-detail { padding:80px 0; background:var(--white); }
.prog-detail--teen { background:var(--very-light-bg); }
.prog-detail-header { text-align:center; max-width:680px; margin:0 auto 56px; }
.prog-detail-header h2 { font-size:clamp(1.6rem,3vw,2.2rem); color:var(--text-dark); margin:12px 0 14px; }
.prog-detail-header p { color:var(--text-medium); font-size:16px; line-height:1.7; }
.prog-detail-layout {
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;
}
.prog-detail-layout--reverse { direction:rtl; }
.prog-detail-layout--reverse > * { direction:ltr; }
.prog-detail-image { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.prog-detail-image img { width:100%; height:440px; object-fit:cover; display:block; }
.prog-detail-content p { color:var(--text-medium); line-height:1.75; margin-bottom:16px; }

/* Adult program features */
.prog-features { display:flex; flex-direction:column; gap:18px; margin:28px 0; }
.prog-feature {
  display:flex; gap:16px; align-items:flex-start;
  padding:16px; border-radius:var(--radius); background:var(--very-light-bg);
  border:1px solid var(--border);
}
.pf-icon {
  width:40px; height:40px; border-radius:10px; flex-shrink:0;
  background:var(--light-green-bg); color:var(--accent-green);
  display:flex; align-items:center; justify-content:center; font-size:16px;
}
.prog-feature strong { display:block; color:var(--text-dark); font-size:14px; margin-bottom:4px; }
.prog-feature p { color:var(--text-medium); font-size:13px; line-height:1.55; margin:0; }

/* Adolescent highlights */
.teen-highlights { display:flex; flex-direction:column; gap:16px; margin:28px 0; }
.teen-highlight {
  display:flex; gap:14px; align-items:flex-start;
}
.teen-highlight > i {
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:var(--light-green-bg); color:var(--accent-green);
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.teen-highlight strong { display:block; color:var(--text-dark); font-size:14px; margin-bottom:3px; }
.teen-highlight p { color:var(--text-medium); font-size:13px; line-height:1.55; margin:0; }

/* Continuum of care steps */
.teen-coa {
  margin-top:28px; padding:20px 24px; border-radius:var(--radius);
  background:var(--medium-green); color:#fff;
}
.teen-coa h4 { font-size:14px; font-weight:600; margin-bottom:16px; opacity:.85; display:flex; align-items:center; gap:8px; }
.coa-steps {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.coa-step {
  flex:1; min-width:70px; text-align:center;
  background:rgba(255,255,255,.12); border-radius:10px;
  padding:10px 8px; font-size:13px; font-weight:600; line-height:1.3;
}
.coa-step small { display:block; font-size:11px; font-weight:400; opacity:.75; }
.coa-arrow { color:rgba(255,255,255,.5); font-size:12px; flex-shrink:0; }

/* CTA Band */
.cta-band {
  padding:60px 0; background:linear-gradient(135deg,var(--medium-green),var(--accent-green));
  color:#fff;
}
.cta-band .container { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.cta-band-text h2 { font-size:1.8rem; margin-bottom:8px; }
.cta-band-text p { opacity:.85; font-size:15px; }
.cta-band-actions { display:flex; gap:14px; flex-shrink:0; flex-wrap:wrap; }

@media(max-width:900px) {
  .prog-cards { grid-template-columns:1fr; }
  .prog-overview-grid { grid-template-columns:1fr; }
  .prog-detail-layout { grid-template-columns:1fr; }
  .prog-detail-layout--reverse { direction:ltr; }
  .prog-detail-image img { height:280px; }
  .cta-band .container { flex-direction:column; text-align:center; }
}
