/*
Theme Name:        Being Doctor
Theme URI:         https://beingdoctor.com/
Author:            Pixel Nimble
Author URI:        https://pixelnimble.com/
Description:       Custom theme for Being Doctor — medical billing & revenue cycle management. Single-page front end with ACF-editable sections, a live blog loop, and a light/dark theme toggle.
Version:           1.0.0
Requires at least: 6.2
Tested up to:      6.8
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       being-doctor
Tags:              one-column, custom-logo, custom-menu, editor-style, translation-ready, block-styles

Being Doctor is distributed under the terms of the GNU GPL v2 or later.
*/

/* ===== Reset & base ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --teal: #01485E;
  --teal-2: #026878;
  --teal-dark: #021E28;
  --green: #4CB493;
  --green-dark: #3da282;
  --text-dark: #0D2B36;
  --text-muted: #4A6B75;
  --text-light: #7A9BA8;
  --text-faint: #B8CDD4;
  --text-faint-2: #B0C4CC;
  --mint: #EBF7F3;
  --mint-2: #F8FFFE;
  --accent-text: var(--teal);
  --nav-border: rgba(1,72,94,0.08);
  --font-body: 'Manrope', sans-serif;
  --font-head: 'Plus Jakarta Sans', sans-serif;
  --max-width: 1360px;
}

/* ===== Dark theme ===== */
[data-theme="dark"] {
  --text-dark: #EAF3F1;
  --text-muted: #A9C2C7;
  --text-light: #7FA0A6;
  --text-faint: #5D7D82;
  --text-faint-2: #6C8A8F;
  --accent-text: #6FE3C4;
  --nav-border: rgba(255,255,255,0.08);
}

html { scroll-behavior: smooth; }
section, footer { scroll-margin-top: 88px; }

body {
  font-family: var(--font-body);
  color: var(--text-dark);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  min-width: 1100px;
  transition: background-color 0.3s ease, color 0.3s ease;
}
[data-theme="dark"] body { background: #0A1B21; }

a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }

.wrap { max-width: var(--max-width); margin: 0 auto; }

.c-teal { color: var(--accent-text); }
.c-green { color: var(--green); }

@keyframes floatA { 0%,100%{transform:translateY(0px)} 50%{transform:translateY(-10px)} }
@keyframes floatB { 0%,100%{transform:translateY(0px)} 50%{transform:translateY(-8px)} }
@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(0.75)} }

/* ===== Buttons ===== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-head);
  border-radius: 10px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
}
.btn:hover { transform: translateY(-2px); filter: brightness(1.06); }
.btn-primary {
  background: var(--green);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 28px;
  box-shadow: 0 6px 24px rgba(76,180,147,0.35);
}
.btn-primary:hover { box-shadow: 0 10px 30px rgba(76,180,147,0.45); }
.btn-secondary {
  background: #fff;
  color: var(--accent-text);
  font-size: 15px;
  font-weight: 600;
  padding: 14px 28px;
  border: 1.5px solid rgba(1,72,94,0.18);
}
.btn-secondary:hover { background: var(--mint); border-color: var(--green); }
.btn-dark {
  background: var(--teal);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 13px 24px;
  border-radius: 10px;
}
.btn-dark:hover { background: var(--teal-2); }
.btn-green-sm {
  background: var(--green);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 13px 24px;
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(76,180,147,0.3);
}
.btn-green-sm:hover { box-shadow: 0 8px 24px rgba(76,180,147,0.4); }
.btn-ghost-dark {
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  padding: 13px 24px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
}
.btn-ghost-dark:hover { background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.28); }
.btn-ghost-light {
  background: rgba(255,255,255,0.09);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  padding: 16px 32px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.18);
}
.btn-ghost-light:hover { background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.3); }
[data-theme="dark"] .btn-secondary:hover { background: rgba(76,180,147,0.15); }

/* ===== Navigation ===== */
.nav {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--nav-border);
  height: 72px;
  display: flex;
  align-items: center;
  padding: 0 48px;
  transition: box-shadow 0.2s ease, background-color 0.3s ease, border-color 0.3s ease;
}
[data-theme="dark"] .nav { background: rgba(10,27,33,0.92); }
.nav.is-scrolled { box-shadow: 0 2px 24px rgba(1,72,94,0.1); }
.nav__inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav__logo img { height: 52px; width: auto; }
[data-theme="dark"] .nav__logo img { filter: brightness(0) invert(1); }
.nav__links { display: flex; align-items: center; gap: 0; }
.nav__link {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 8px 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-muted);
  cursor: pointer;
  border-radius: 7px;
  white-space: nowrap;
  background: none;
  border: none;
  transition: background-color 0.18s ease, color 0.18s ease;
}
.nav__link:hover { background: rgba(1,72,94,0.06); color: var(--accent-text); }
[data-theme="dark"] .nav__link:hover { background: rgba(255,255,255,0.07); }
.nav__link svg { margin-left: 2px; }
.nav__right { display: flex; align-items: center; gap: 14px; flex: none; }
.nav__theme-toggle {
  width: 36px; height: 36px;
  border-radius: 8px;
  border: 1.5px solid rgba(1,72,94,0.12);
  background: transparent;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex: none;
  color: var(--accent-text);
  transition: background-color 0.18s ease, border-color 0.18s ease;
}
.nav__theme-toggle:hover { background: rgba(1,72,94,0.06); border-color: rgba(1,72,94,0.28); }
[data-theme="dark"] .nav__theme-toggle { border-color: rgba(255,255,255,0.18); }
[data-theme="dark"] .nav__theme-toggle:hover { background: rgba(255,255,255,0.08); }
.nav__theme-toggle .icon-sun { display: none; }
[data-theme="dark"] .nav__theme-toggle .icon-moon { display: none; }
[data-theme="dark"] .nav__theme-toggle .icon-sun { display: block; }
.nav__phone {
  display: flex; align-items: center; gap: 7px;
  font-size: 13.5px; font-weight: 600; color: var(--text-muted); flex: none;
}
.nav__cta {
  background: var(--green); color: #fff;
  font-family: var(--font-head); font-size: 13.5px; font-weight: 700;
  padding: 10px 20px; border-radius: 8px; letter-spacing: -0.1px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.nav__cta:hover { background: var(--green-dark); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(76,180,147,0.4); }

/* ===== Hero ===== */
.hero {
  background: #fff;
  padding: 96px 48px 80px;
  position: relative;
  transition: background-color 0.3s ease;
}
[data-theme="dark"] .hero { background: #0A1B21; }
.hero__dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(1,72,94,0.035) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
[data-theme="dark"] .hero__dots { background-image: radial-gradient(circle, rgba(255,255,255,0.05) 1px, transparent 1px); }
.hero__glow {
  position: absolute; top: -80px; right: 0; width: 55%; height: 120%;
  background: radial-gradient(ellipse at 80% 40%, rgba(76,180,147,0.06) 0%, transparent 65%);
  pointer-events: none;
}
.hero .wrap {
  display: flex;
  align-items: center;
  gap: 72px;
  position: relative;
}
.hero__content { flex: 1.05; min-width: 0; }
.hero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--mint); border: 1px solid rgba(76,180,147,0.35);
  border-radius: 100px; padding: 6px 14px 6px 6px; margin-bottom: 28px;
}
.hero__badge-icon {
  display: flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%; background: var(--green); flex: none;
}
.hero__badge span { font-size: 13px; font-weight: 600; color: var(--teal); }
.hero h1 {
  font-family: var(--font-head);
  font-size: 57px; font-weight: 800; line-height: 1.08; letter-spacing: -2px;
  color: var(--text-dark); margin-bottom: 22px;
}
.hero__lead {
  font-size: 17px; line-height: 1.75; color: var(--text-muted);
  margin-bottom: 36px; max-width: 510px; font-weight: 400;
}
.hero__ctas { display: flex; gap: 12px; margin-bottom: 48px; }

.stats-bar {
  display: flex;
  border: 1.5px solid rgba(1,72,94,0.1);
  border-radius: 14px;
  overflow: hidden;
  width: fit-content;
  background: #fff;
  box-shadow: 0 2px 12px rgba(1,72,94,0.05);
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
[data-theme="dark"] .stats-bar { background: #12303A; border-color: rgba(255,255,255,0.1); }
.stats-bar__item {
  padding: 18px 32px;
  border-right: 1.5px solid rgba(1,72,94,0.08);
  transition: border-color 0.3s ease;
}
[data-theme="dark"] .stats-bar__item { border-right-color: rgba(255,255,255,0.1); }
.stats-bar__item:last-child { border-right: none; }
.stats-bar__num {
  font-family: var(--font-head); font-size: 30px; font-weight: 800;
  letter-spacing: -1px; line-height: 1;
}
.stats-bar__num.teal { color: var(--accent-text); }
.stats-bar__num.green { color: var(--green); }
.stats-bar__label {
  font-size: 12px; color: var(--text-light); font-weight: 500;
  margin-top: 3px; white-space: nowrap;
}

/* Dashboard mockup */
.hero__visual {
  flex: 0.95; min-width: 0;
  display: flex; justify-content: center; align-items: center;
  padding: 30px 20px 50px 20px;
}
.dash { position: relative; width: 100%; max-width: 540px; }
.dash__card {
  background: #fff; border-radius: 24px;
  box-shadow: 0 32px 80px rgba(1,72,94,0.13), 0 4px 16px rgba(1,72,94,0.06);
  border: 1px solid rgba(1,72,94,0.07);
  padding: 26px; position: relative; z-index: 1;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
[data-theme="dark"] .dash__card { background: #12303A; border-color: rgba(255,255,255,0.1); }
.dash__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.dash__title { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: var(--text-dark); }
.dash__subtitle { font-size: 11px; color: var(--text-light); margin-top: 2px; font-weight: 500; }
.dash__tabs { display: flex; gap: 6px; }
.dash__tab { padding: 5px 13px; border-radius: 20px; font-size: 11px; font-weight: 500; color: var(--text-light); background: #F5F7FA; }
[data-theme="dark"] .dash__tab { background: rgba(255,255,255,0.06); }
.dash__tab.active { background: var(--mint); font-weight: 700; color: var(--teal); }
[data-theme="dark"] .dash__tab.active { background: rgba(76,180,147,0.2); color: var(--accent-text); }
.dash__chart { display: block; width: 100%; height: 170px; }
[data-theme="dark"] .dash__chart text[fill="#01485E"] { fill: var(--accent-text); }
.dash__metrics { display: flex; gap: 10px; margin-top: 18px; }
.dash__metric { flex: 1; padding: 13px 14px; background: var(--mint-2); border-radius: 11px; border: 1px solid var(--mint); transition: background-color 0.3s ease, border-color 0.3s ease; }
[data-theme="dark"] .dash__metric { background: #0F2A31; border-color: rgba(255,255,255,0.1); }
.dash__metric-label { font-size: 10px; color: var(--text-light); margin-bottom: 4px; font-weight: 500; }
.dash__metric-value { font-family: var(--font-head); font-size: 19px; font-weight: 800; letter-spacing: -0.5px; }
.dash__metric-value.teal { color: var(--accent-text); }
.dash__metric-value.green { color: var(--green); }

.dash__float {
  position: absolute; background: #fff; border-radius: 16px;
  box-shadow: 0 8px 40px rgba(1,72,94,0.13); border: 1px solid var(--mint);
  padding: 13px 16px; display: flex; align-items: center; gap: 11px;
  width: 214px; z-index: 2;
  transition: box-shadow 0.25s ease, background-color 0.3s ease, border-color 0.3s ease;
}
[data-theme="dark"] .dash__float { background: #12303A; border-color: rgba(255,255,255,0.1); }
.dash__float:hover { box-shadow: 0 12px 48px rgba(1,72,94,0.22); }
.dash__float--claim { top: -18px; right: -52px; animation: floatA 4.5s ease-in-out infinite; }
.dash__float-icon {
  width: 36px; height: 36px; border-radius: 10px; background: var(--mint);
  flex: none; display: flex; align-items: center; justify-content: center;
}
.dash__float-title { font-family: var(--font-head); font-size: 12px; font-weight: 700; color: var(--text-dark); line-height: 1.2; }
.dash__float-sub { font-size: 11px; color: var(--green); font-weight: 600; margin-top: 1px; }
.dash__float-time { font-size: 10px; color: var(--text-light); margin-top: 1px; }

.dash__badge {
  position: absolute; bottom: -30px; left: -28px;
  background: var(--teal); border-radius: 16px;
  box-shadow: 0 8px 32px rgba(1,72,94,0.28); padding: 16px 22px;
  min-width: 155px; z-index: 2;
  animation: floatB 5.5s ease-in-out infinite 0.8s;
  width: fit-content;
  transition: box-shadow 0.25s ease;
}
.dash__badge:hover { box-shadow: 0 12px 42px rgba(1,72,94,0.4); }
.dash__badge-label { font-size: 10px; color: rgba(255,255,255,0.55); font-weight: 500; margin-bottom: 3px; }
.dash__badge-value { font-family: var(--font-head); font-size: 30px; font-weight: 800; color: #fff; line-height: 1; letter-spacing: -1px; }
.dash__badge-sub { font-size: 10px; color: rgba(255,255,255,0.5); font-weight: 500; margin-top: 4px; }

/* ===== Section headings (shared) ===== */
.section { padding: 96px 48px; background: #fff; transition: background-color 0.3s ease; }
[data-theme="dark"] .section { background: #0A1B21; }
.section-head { max-width: 680px; margin: 0 auto 52px; text-align: center; }
.section-head h2 {
  font-family: var(--font-head); font-size: 40px; font-weight: 800;
  color: var(--text-dark); letter-spacing: -1.2px; line-height: 1.15; margin-bottom: 16px;
}
.section-head p { font-size: 16.5px; color: var(--text-muted); line-height: 1.75; }
.eyebrow {
  display: inline-block; border-radius: 100px; padding: 6px 18px; margin-bottom: 18px;
  font-size: 11px; font-weight: 700; letter-spacing: 1.8px;
}
.eyebrow--mint { background: var(--mint); border: 1px solid rgba(76,180,147,0.3); color: var(--teal); }
.eyebrow--dark { background: rgba(76,180,147,0.15); border: 1px solid rgba(76,180,147,0.3); color: var(--green); }
.eyebrow--pulse { display: inline-flex; align-items: center; gap: 8px; padding: 6px 16px; }
.eyebrow__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); animation: pulseDot 2s ease-in-out infinite; flex: none; }

/* ===== Performance metrics ===== */
.metrics { background: var(--mint); transition: background-color 0.3s ease; }
[data-theme="dark"] .metrics { background: #0F2431; }
.metrics-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.metric-card {
  background: #fff; border-radius: 20px; padding: 32px 26px;
  box-shadow: 0 4px 32px rgba(1,72,94,0.07); border: 1px solid rgba(76,180,147,0.15);
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.3s ease;
}
.metric-card:hover { transform: translateY(-6px); box-shadow: 0 14px 40px rgba(1,72,94,0.15); border-color: rgba(76,180,147,0.45); }
[data-theme="dark"] .metric-card { background: #12303A; border-color: rgba(255,255,255,0.1); }
[data-theme="dark"] .metric-card:hover { border-color: rgba(76,180,147,0.4); }
.metric-card__icon {
  width: 54px; height: 54px; border-radius: 14px; background: var(--mint);
  margin: 0 auto 18px; display: flex; align-items: center; justify-content: center;
}
.metric-card__value { font-family: var(--font-head); font-size: 46px; font-weight: 800; color: var(--accent-text); letter-spacing: -2px; line-height: 1; }
.metric-card__label { font-family: var(--font-head); font-size: 14.5px; font-weight: 700; color: var(--text-dark); margin-top: 8px; }

/* ===== RCM process ===== */
.process {
  background: var(--teal);
  padding: 96px 48px;
  position: relative;
  overflow: hidden;
}
.process__glow-1 {
  position: absolute; top: -120px; right: -120px; width: 550px; height: 550px;
  background: radial-gradient(circle, rgba(76,180,147,0.09) 0%, transparent 70%);
  pointer-events: none;
}
.process__glow-2 {
  position: absolute; bottom: -80px; left: -60px; width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(76,180,147,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.process .wrap { position: relative; }
.process .section-head { margin-bottom: 60px; max-width: none; }
.process .section-head h2 { color: #fff; font-size: 40px; margin-bottom: 14px; }
.process .section-head p { color: rgba(255,255,255,0.6); max-width: 580px; margin: 0 auto; font-size: 16px; }
.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.process-card {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px; padding: 22px 20px;
  transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}
.process-card:hover { transform: translateY(-5px); background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.22); }
.process-card.is-featured {
  background: rgba(76,180,147,0.12); border: 1px solid rgba(76,180,147,0.3);
}
.process-card.is-featured:hover { background: rgba(76,180,147,0.2); border-color: rgba(76,180,147,0.45); }
.process-card__num {
  width: 36px; height: 36px; border-radius: 9px;
  background: rgba(76,180,147,0.22);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px; flex: none;
}
.process-card__num.is-solid { background: var(--green); }
.process-card__num span { font-family: var(--font-head); font-size: 12px; font-weight: 800; color: var(--green); }
.process-card__num.is-solid span { color: #fff; }
.process-card__title { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 8px; }
.process-card__desc { font-size: 12px; color: rgba(255,255,255,0.5); line-height: 1.65; }
.process-card.is-featured .process-card__desc { color: rgba(255,255,255,0.6); }

/* ===== How it works ===== */
.steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; position: relative; }
.steps-grid__line {
  position: absolute; top: 40px; left: calc(12.5% + 20px); right: calc(12.5% + 20px);
  height: 2px; background: linear-gradient(90deg, var(--green), var(--teal));
  z-index: 0; pointer-events: none;
}
.step-card {
  background: #fff; border: 1.5px solid rgba(76,180,147,0.2); border-radius: 20px;
  padding: 30px 22px; box-shadow: 0 4px 24px rgba(1,72,94,0.06);
  position: relative; z-index: 1; text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.3s ease;
}
.step-card:hover { transform: translateY(-8px); box-shadow: 0 16px 40px rgba(1,72,94,0.14); border-color: var(--green); }
[data-theme="dark"] .step-card { background: #12303A; border-color: rgba(255,255,255,0.1); }
[data-theme="dark"] .step-card:hover { border-color: var(--green); }
.step-card__num {
  width: 56px; height: 56px; border-radius: 50%; background: var(--green);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 18px;
  box-shadow: 0 4px 16px rgba(76,180,147,0.35);
}
.step-card__num span { font-family: var(--font-head); font-size: 18px; font-weight: 800; color: #fff; }
.step-card__tag { font-size: 10.5px; font-weight: 700; color: var(--green); letter-spacing: 1.8px; margin-bottom: 9px; font-family: var(--font-head); }
.step-card__title { font-family: var(--font-head); font-size: 15.5px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
.step-card__desc { font-size: 13px; color: var(--text-light); line-height: 1.65; }

/* ===== Services ===== */
.services { background: var(--mint); transition: background-color 0.3s ease; }
[data-theme="dark"] .services { background: #0F2431; }
.services__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 46px; gap: 40px; flex-wrap: wrap;
}
.services__head-text { max-width: 520px; }
.services__head h2 { font-family: var(--font-head); font-size: 40px; font-weight: 800; color: var(--text-dark); letter-spacing: -1.2px; margin-bottom: 14px; line-height: 1.15; }
.services__head p { font-size: 16px; color: var(--text-muted); line-height: 1.75; }
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.service-card {
  background: #fff; border-radius: 20px; padding: 28px;
  box-shadow: 0 4px 24px rgba(1,72,94,0.06); border: 1px solid rgba(76,180,147,0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.3s ease;
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 16px 42px rgba(1,72,94,0.13); border-color: rgba(76,180,147,0.4); }
[data-theme="dark"] .service-card { background: #12303A; border-color: rgba(255,255,255,0.1); }
[data-theme="dark"] .service-card:hover { border-color: rgba(76,180,147,0.4); }
.service-card__icon {
  width: 48px; height: 48px; border-radius: 12px; background: var(--mint);
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.service-card h3 { font-family: var(--font-head); font-size: 16.5px; font-weight: 700; color: var(--text-dark); margin-bottom: 9px; }
.service-card p { font-size: 13px; color: var(--text-light); line-height: 1.65; margin-bottom: 14px; }
.service-card__list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.service-card__list div { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-muted); }
.service-card__list .tick { color: var(--green); font-size: 14px; font-weight: 800; line-height: 1; }
.service-card__link { font-size: 13px; font-weight: 700; color: var(--green); display: flex; align-items: center; gap: 4px; transition: color 0.2s ease; }
.service-card__link:hover { color: var(--green-dark); }
.service-card__link svg { transition: transform 0.2s ease; }
.service-card__link:hover svg { transform: translateX(3px); }

/* ===== Specialties ===== */
.specialties-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.specialty-card {
  background: var(--mint-2); border: 1.5px solid rgba(76,180,147,0.18);
  border-radius: 16px; padding: 26px 20px; text-align: center; position: relative;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.3s ease;
}
.specialty-card:hover { transform: translateY(-5px); border-color: var(--green); box-shadow: 0 10px 28px rgba(1,72,94,0.1); }
[data-theme="dark"] .specialty-card { background: #0F2A31; border-color: rgba(255,255,255,0.1); }
.specialty-card.is-new { background: var(--mint); border-color: var(--green); }
[data-theme="dark"] .specialty-card.is-new { background: rgba(76,180,147,0.14); border-color: rgba(76,180,147,0.45); }
.specialty-card__badge {
  position: absolute; top: -9px; right: 12px; background: var(--green); color: #fff;
  font-size: 9px; font-weight: 800; padding: 3px 9px; border-radius: 100px;
  letter-spacing: 0.8px; font-family: var(--font-head);
}
.specialty-card__icon {
  width: 52px; height: 52px; border-radius: 14px; background: var(--mint);
  margin: 0 auto 14px; display: flex; align-items: center; justify-content: center;
}
.specialty-card.is-new .specialty-card__icon { background: #fff; box-shadow: 0 2px 8px rgba(1,72,94,0.08); }
[data-theme="dark"] .specialty-card.is-new .specialty-card__icon { background: #12303A; }
.specialty-card__title { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: var(--text-dark); }
.specialty-card.is-new .specialty-card__title { color: var(--accent-text); }

/* ===== Behavioral health ===== */
.behavioral {
  background: linear-gradient(140deg, var(--teal) 0%, var(--teal-dark) 100%);
  padding: 96px 48px; position: relative; overflow: hidden;
}
.behavioral__glow-1 {
  position: absolute; top: -180px; right: -120px; width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(76,180,147,0.1) 0%, transparent 65%);
  pointer-events: none;
}
.behavioral__ring {
  position: absolute; bottom: -120px; left: -80px; width: 500px; height: 500px;
  border-radius: 50%; border: 1px solid rgba(76,180,147,0.07); pointer-events: none;
}
.behavioral .wrap { position: relative; display: flex; align-items: center; gap: 80px; flex-wrap: wrap; }
.behavioral__content { flex: 1; min-width: 380px; }
.behavioral__content h2 { font-family: var(--font-head); font-size: 38px; font-weight: 800; color: #fff; letter-spacing: -1px; line-height: 1.15; margin-bottom: 18px; }
.behavioral__content p { font-size: 16px; color: rgba(255,255,255,0.6); line-height: 1.8; margin-bottom: 34px; max-width: 460px; }
.behavioral__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.behavioral__stats { flex: 1; min-width: 320px; display: flex; flex-direction: column; gap: 14px; }
.behavioral__stats-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.behavioral__stat {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 18px; padding: 28px 22px; text-align: center;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.behavioral__stat:hover { transform: translateY(-4px); background: rgba(255,255,255,0.1); }
.behavioral__stat-value { font-family: var(--font-head); font-size: 42px; font-weight: 800; letter-spacing: -1.5px; line-height: 1; margin-bottom: 6px; }
.behavioral__stat-value.green { color: var(--green); }
.behavioral__stat-value.white { color: #fff; }
.behavioral__stat-label { font-size: 12.5px; color: rgba(255,255,255,0.55); line-height: 1.6; }
.behavioral__banner {
  background: rgba(76,180,147,0.1); border: 1px solid rgba(76,180,147,0.25);
  border-radius: 18px; padding: 24px 26px; display: flex; align-items: center; gap: 20px;
  transition: background-color 0.2s ease;
}
.behavioral__banner:hover { background: rgba(76,180,147,0.18); }
.behavioral__banner-icon {
  width: 50px; height: 50px; border-radius: 13px; background: rgba(76,180,147,0.2);
  flex: none; display: flex; align-items: center; justify-content: center;
}
.behavioral__banner-value { font-family: var(--font-head); font-size: 34px; font-weight: 800; color: var(--green); letter-spacing: -1px; line-height: 1; }
.behavioral__banner-label { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 3px; }

/* ===== EHR integrations ===== */
.ehr { background: var(--mint); padding: 80px 48px; text-align: center; transition: background-color 0.3s ease; }
[data-theme="dark"] .ehr { background: #0F2431; }
.ehr h2 { font-family: var(--font-head); font-size: 34px; font-weight: 800; color: var(--text-dark); letter-spacing: -0.8px; margin-bottom: 10px; }
.ehr > .wrap > p { font-size: 15.5px; color: var(--text-light); margin-bottom: 44px; font-weight: 500; }
.ehr-list { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.ehr-card {
  background: #fff; border-radius: 18px; padding: 28px 40px;
  box-shadow: 0 4px 20px rgba(1,72,94,0.06); border: 1px solid rgba(76,180,147,0.12);
  min-width: 190px; display: flex; flex-direction: column; align-items: center; gap: 12px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.3s ease;
}
.ehr-card:hover { transform: translateY(-6px); box-shadow: 0 14px 34px rgba(1,72,94,0.13); border-color: rgba(76,180,147,0.4); }
[data-theme="dark"] .ehr-card { background: #12303A; border-color: rgba(255,255,255,0.1); }
.ehr-card__icon { width: 52px; height: 52px; border-radius: 12px; background: var(--mint); display: flex; align-items: center; justify-content: center; }
.ehr-card__name { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: var(--text-dark); }

/* ===== Main CTA ===== */
.cta {
  background: linear-gradient(140deg, var(--teal) 0%, var(--teal-2) 100%);
  padding: 100px 48px; position: relative; overflow: hidden; text-align: center;
}
.cta__dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.025) 1.5px, transparent 1.5px);
  background-size: 30px 30px; pointer-events: none;
}
.cta__glow {
  position: absolute; top: -100px; right: -80px; width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(76,180,147,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.cta__inner { max-width: 880px; margin: 0 auto; position: relative; }
.cta h2 { font-family: var(--font-head); font-size: 50px; font-weight: 800; color: #fff; letter-spacing: -2px; margin-bottom: 18px; line-height: 1.1; }
.cta p { font-size: 17px; color: rgba(255,255,255,0.65); line-height: 1.8; margin-bottom: 40px; max-width: 580px; margin-left: auto; margin-right: auto; }
.cta__ctas { display: flex; gap: 12px; justify-content: center; margin-bottom: 48px; flex-wrap: wrap; }
.cta__trust { display: flex; gap: 32px; justify-content: center; flex-wrap: wrap; }
.cta__trust-item { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,0.65); font-size: 13.5px; font-weight: 600; }

/* ===== Blog ===== */
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.blog-card {
  background: #fff; border-radius: 20px; border: 1px solid rgba(1,72,94,0.08);
  box-shadow: 0 4px 24px rgba(1,72,94,0.06); overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.3s ease;
}
.blog-card:hover { transform: translateY(-6px); box-shadow: 0 16px 42px rgba(1,72,94,0.13); border-color: rgba(76,180,147,0.35); }
[data-theme="dark"] .blog-card { background: #12303A; border-color: rgba(255,255,255,0.1); }
.blog-card__bar { height: 5px; background: linear-gradient(90deg, var(--teal), var(--green)); }
.blog-card__bar.alt { background: linear-gradient(90deg, var(--green), var(--teal)); }
.blog-card__body { padding: 28px; }
.blog-card__meta { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; }
.blog-card__tag { background: var(--mint); color: var(--teal); font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 100px; font-family: var(--font-head); }
.blog-card__read { color: var(--text-faint-2); font-size: 11.5px; font-weight: 500; }
.blog-card h3 { font-family: var(--font-head); font-size: 17.5px; font-weight: 700; color: var(--text-dark); line-height: 1.35; margin-bottom: 12px; }
.blog-card p { font-size: 13.5px; color: var(--text-light); line-height: 1.7; margin-bottom: 20px; }
.blog-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid #F2F7F9; transition: border-color 0.3s ease; }
[data-theme="dark"] .blog-card__footer { border-top-color: rgba(255,255,255,0.08); }
.blog-card__date { font-size: 12px; color: var(--text-faint-2); font-weight: 500; }
.blog-card__link { font-size: 13px; font-weight: 700; color: var(--green); display: flex; align-items: center; gap: 4px; transition: color 0.2s ease; }
.blog-card__link:hover { color: var(--green-dark); }
.blog-card__link svg { transition: transform 0.2s ease; }
.blog-card__link:hover svg { transform: translateX(3px); }

/* ===== Newsletter ===== */
.newsletter { background: var(--mint); padding: 80px 48px; text-align: center; transition: background-color 0.3s ease; }
[data-theme="dark"] .newsletter { background: #0F2431; }
.newsletter__inner { max-width: 660px; margin: 0 auto; }
.newsletter h2 { font-family: var(--font-head); font-size: 36px; font-weight: 800; color: var(--text-dark); letter-spacing: -0.8px; margin-bottom: 14px; line-height: 1.2; }
.newsletter p { font-size: 15.5px; color: var(--text-light); line-height: 1.75; margin-bottom: 34px; }
.newsletter__form { display: flex; gap: 10px; max-width: 480px; margin: 0 auto 14px; }
.newsletter__input {
  flex: 1; padding: 14px 18px; border-radius: 10px; border: 1.5px solid rgba(76,180,147,0.3);
  background: #fff; font-family: var(--font-body); font-size: 14px; color: var(--text-dark);
  outline: none; min-width: 0;
  transition: border-color 0.2s ease, background-color 0.3s ease;
}
.newsletter__input:hover, .newsletter__input:focus { border-color: var(--green); }
[data-theme="dark"] .newsletter__input { background: #12303A; }
.newsletter__btn {
  background: var(--teal); color: #fff; font-family: var(--font-head); font-size: 14px;
  font-weight: 700; padding: 14px 24px; border-radius: 10px; border: none; cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.newsletter__btn:hover { background: var(--teal-2); transform: translateY(-1px); }
.newsletter__fine { font-size: 12px; color: var(--text-faint-2); font-weight: 500; }

/* ===== Footer ===== */
.footer { background: var(--teal-dark); padding: 72px 48px 0; }
.footer-grid {
  display: grid; grid-template-columns: 300px 1fr 1fr 1fr 1fr; gap: 56px;
  padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.footer-brand img { height: 44px; width: auto; filter: brightness(0) invert(1); margin-bottom: 14px; }
.footer-brand__tag { font-family: var(--font-head); font-size: 13px; font-weight: 600; color: var(--green); letter-spacing: 0.3px; margin-bottom: 12px; }
.footer-brand p { font-size: 13px; color: rgba(255,255,255,0.4); line-height: 1.75; margin-bottom: 24px; }
.footer-contact { display: flex; flex-direction: column; gap: 10px; }
.footer-contact div { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,0.55); }
.footer-contact div.is-address { align-items: flex-start; }
.footer-contact div.is-address svg { flex: none; margin-top: 2px; }
.footer-col-title { font-family: var(--font-head); font-size: 11px; font-weight: 700; color: rgba(255,255,255,0.3); letter-spacing: 2px; margin-bottom: 20px; }
.footer-col { display: flex; flex-direction: column; gap: 12px; }
.footer-col a { font-size: 13.5px; color: rgba(255,255,255,0.55); font-weight: 500; transition: color 0.2s ease; }
.footer-col a:hover { color: #fff; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; padding: 22px 0; }
.footer-bottom__copy { font-size: 12.5px; color: rgba(255,255,255,0.25); }
.footer-bottom__site { display: flex; align-items: center; gap: 6px; }
.footer-bottom__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.footer-bottom__site span { font-size: 12px; color: rgba(255,255,255,0.3); font-weight: 500; }

/* ============================================================
   WordPress additions
   Everything above this line is the original static stylesheet,
   unmodified. Below: styles WP needs that a static site doesn't.
   ============================================================ */

/* Fixed nav must clear the admin bar for logged-in users */
.admin-bar .nav { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .nav { top: 46px; } }

/* Accessibility — required by WP for skip links & labels */
.screen-reader-text {
  border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #fff; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0,0,0,0.6);
  clip-path: none; color: var(--teal); display: block; font-family: var(--font-head);
  font-size: 14px; font-weight: 700; height: auto; left: 6px; line-height: normal;
  padding: 15px 23px 14px; text-decoration: none; top: 7px; width: auto; z-index: 100000;
}

/* ===== Inner pages (page.php / single.php / archive.php / 404.php) ===== */
.page-hero {
  padding: 148px 0 56px; background: var(--mint-2);
  border-bottom: 1px solid var(--nav-border);
}
[data-theme="dark"] .page-hero { background: #0A1B21; }
.page-hero h1 {
  font-family: var(--font-head); font-size: 44px; font-weight: 800;
  line-height: 1.15; letter-spacing: -1px; color: var(--text-dark); margin-bottom: 14px;
}
.page-hero__meta { font-size: 13.5px; color: var(--text-light); font-weight: 500; }
.page-hero__meta a { color: var(--accent-text); }

.entry { padding: 64px 0 88px; }
.entry-content { max-width: 760px; font-size: 16.5px; line-height: 1.75; color: var(--text-muted); }
.entry-content > * + * { margin-top: 22px; }
.entry-content h2 {
  font-family: var(--font-head); font-size: 28px; font-weight: 800; color: var(--text-dark);
  letter-spacing: -0.5px; margin-top: 44px;
}
.entry-content h3 {
  font-family: var(--font-head); font-size: 21px; font-weight: 700; color: var(--text-dark);
  margin-top: 34px;
}
.entry-content h4 { font-family: var(--font-head); font-size: 17px; font-weight: 700; color: var(--text-dark); margin-top: 28px; }
.entry-content a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; }
.entry-content a:hover { color: var(--green); }
.entry-content ul, .entry-content ol { padding-left: 24px; }
.entry-content li + li { margin-top: 9px; }
.entry-content ul li::marker { color: var(--green); }
.entry-content blockquote {
  border-left: 3px solid var(--green); padding: 6px 0 6px 22px;
  font-size: 18px; font-style: italic; color: var(--text-dark);
}
.entry-content img, .entry-content iframe, .entry-content video { max-width: 100%; height: auto; border-radius: 12px; }
.entry-content figure { margin: 32px 0; }
.entry-content figcaption { font-size: 13px; color: var(--text-light); margin-top: 10px; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.entry-content th, .entry-content td { padding: 12px 14px; border: 1px solid var(--nav-border); text-align: left; }
.entry-content th { background: var(--mint); font-family: var(--font-head); font-weight: 700; color: var(--text-dark); }
.entry-content pre {
  background: var(--teal-dark); color: #EAF3F1; padding: 20px 22px;
  border-radius: 12px; overflow-x: auto; font-size: 13.5px; line-height: 1.6;
}
.entry-content code { font-size: 0.92em; }
.entry-content :not(pre) > code {
  background: var(--mint); color: var(--teal); padding: 2px 7px; border-radius: 5px;
}
[data-theme="dark"] .entry-content :not(pre) > code { background: rgba(255,255,255,0.08); color: var(--accent-text); }
.entry-thumb { max-width: 900px; margin-bottom: 40px; }
.entry-thumb img { width: 100%; border-radius: 16px; }

/* Core block alignments */
.alignnone { max-width: 100%; height: auto; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: 6px 28px 22px 0; }
.alignright { float: right; margin: 6px 0 22px 28px; }
.entry-content .alignwide { max-width: 1000px; margin-left: calc(50% - 500px); }
.entry-content .alignfull { max-width: none; margin-left: calc(50% - 50vw); width: 100vw; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--text-light); }
.sticky .blog-card__tag::after { content: " · Featured"; }

/* Pagination */
.pagination { display: flex; gap: 8px; justify-content: center; margin-top: 56px; }
.pagination .page-numbers {
  min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px; border-radius: 10px; border: 1px solid var(--nav-border);
  font-family: var(--font-head); font-size: 14px; font-weight: 600; color: var(--text-muted);
  transition: all 0.2s ease;
}
.pagination .page-numbers:hover { border-color: var(--green); color: var(--accent-text); }
.pagination .page-numbers.current { background: var(--teal); border-color: var(--teal); color: #fff; }

/* Comments */
.comments-area { max-width: 760px; padding-bottom: 88px; }
.comments-area h2 { font-family: var(--font-head); font-size: 22px; font-weight: 800; color: var(--text-dark); margin-bottom: 28px; }
.comment-list { list-style: none; }
.comment-list li { padding: 20px 0; border-bottom: 1px solid var(--nav-border); }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-author { font-family: var(--font-head); font-weight: 700; font-size: 14.5px; color: var(--text-dark); }
.comment-metadata { font-size: 12.5px; color: var(--text-light); margin-bottom: 8px; }
.comment-content { font-size: 15px; line-height: 1.7; color: var(--text-muted); }
.comment-form input:not([type="submit"]), .comment-form textarea {
  width: 100%; padding: 13px 16px; border: 1px solid var(--nav-border); border-radius: 10px;
  font-family: var(--font-body); font-size: 14.5px; background: transparent; color: var(--text-dark);
}
.comment-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--text-muted); }
.comment-form p { margin-bottom: 16px; }
.comment-form input[type="submit"] {
  background: var(--green); color: #fff; border: 0; padding: 14px 30px; border-radius: 10px;
  font-family: var(--font-head); font-size: 14px; font-weight: 700; cursor: pointer;
}

/* Newsletter fallback notice (when no form plugin shortcode is set) */
.newsletter__notice { font-size: 12.5px; color: rgba(255,255,255,0.5); margin-top: 10px; }

/* 404 */
.error404-actions { display: flex; gap: 12px; margin-top: 26px; }

/* ============================================================
   RESPONSIVE LAYER
   Added on top of the original desktop-only stylesheet. Nothing
   above this point was modified — the original CSS shipped with
   no @media queries and body { min-width: 1100px }, so every
   adaptation below is an override, keeping the desktop design
   pixel-identical at wide viewports.

   Breakpoints:
     1280px  narrow desktop / large tablet landscape
     1080px  tablet landscape — mobile nav drawer activates here
      860px  tablet portrait
      720px  mobile landscape / large phones
      480px  phones
   ============================================================ */

/* Release the desktop-only floor that forced horizontal scrolling. */
body { min-width: 0; }

/* Long unbroken strings (URLs, MPNs) shouldn't force overflow. */
h1, h2, h3, p, a, .process-card__title, .service-card h3, .blog-card h3 { overflow-wrap: break-word; }

/* ---------- Hamburger button (hidden until 1080px) ---------- */
.nav__toggle {
  display: none;
  width: 38px; height: 38px;
  border-radius: 9px;
  border: 1.5px solid rgba(1,72,94,0.12);
  background: transparent;
  cursor: pointer; flex: none;
  padding: 0;
  align-items: center; justify-content: center;
  flex-direction: column; gap: 4px;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}
.nav__toggle:hover { background: rgba(1,72,94,0.06); border-color: rgba(1,72,94,0.28); }
[data-theme="dark"] .nav__toggle { border-color: rgba(255,255,255,0.18); }
[data-theme="dark"] .nav__toggle:hover { background: rgba(255,255,255,0.08); }
.nav__toggle span {
  display: block; width: 17px; height: 2px; border-radius: 2px;
  background: var(--accent-text);
  transition: transform 0.24s ease, opacity 0.18s ease;
}
body.nav-open .nav__toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
body.nav-open .nav__toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav__toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Phone link that appears at the foot of the open drawer. */
.nav__drawer-phone { display: none; }

/* Backdrop behind the open drawer. */
.nav__backdrop {
  display: none;
  position: fixed; inset: 0;
  background: rgba(2,30,40,0.38);
  z-index: 190;
  opacity: 0; visibility: hidden;
  transition: opacity 0.22s ease, visibility 0s linear 0.22s;
}
body.nav-open .nav__backdrop { opacity: 1; visibility: visible; transition: opacity 0.22s ease, visibility 0s; }

/* ============================================================
   ≤ 1280px — narrow desktop
   ============================================================ */
@media (max-width: 1280px) {
  .section, .process, .behavioral, .ehr, .newsletter { padding-left: 40px; padding-right: 40px; }
  .cta { padding: 88px 40px; }
  .footer { padding: 64px 40px 0; }
  .hero { padding: 80px 40px 72px; }
  .nav { padding: 0 28px; }

  /* Seven links plus a phone number plus a CTA no longer fit; the
     number is the first thing to go since it repeats in the CTA
     band and the footer. */
  .nav__phone { display: none; }
  .nav__link { font-size: 12.5px; padding: 8px 7px; }
  .nav__logo img { height: 46px; }

  .hero .wrap { gap: 48px; }
  .hero h1 { font-size: 50px; letter-spacing: -1.6px; }
  .hero__lead { font-size: 16.5px; }
  .stats-bar__item { padding: 16px 24px; }
  .stats-bar__num { font-size: 27px; }

  .section-head h2, .services__head h2, .process .section-head h2 { font-size: 36px; letter-spacing: -1px; }
  .behavioral__content h2 { font-size: 34px; }
  .cta h2 { font-size: 44px; letter-spacing: -1.6px; }
  .ehr h2 { font-size: 30px; }
  .newsletter h2 { font-size: 32px; }

  .metrics-grid { gap: 14px; }
  .metric-card { padding: 28px 20px; }
  .metric-card__value { font-size: 40px; letter-spacing: -1.6px; }
  .process-grid { gap: 12px; }

  /* Pull the overhanging dashboard chips inward so they stay
     within the section padding. */
  .dash__float--claim { right: -24px; }
  .dash__badge { left: -12px; }

  .footer-grid { grid-template-columns: 260px 1fr 1fr 1fr 1fr; gap: 40px; }
}

/* ============================================================
   ≤ 1080px — tablet landscape. Mobile nav drawer activates.
   ============================================================ */
@media (max-width: 1080px) {
  .section, .process, .behavioral, .ehr, .newsletter { padding-left: 32px; padding-right: 32px; }
  .section, .process, .behavioral { padding-top: 72px; padding-bottom: 72px; }
  .ehr, .newsletter { padding-top: 64px; padding-bottom: 64px; }
  .cta { padding: 76px 32px; }
  .footer { padding: 56px 32px 0; }
  .hero { padding: 64px 32px 64px; overflow: hidden; }
  .nav { padding: 0 24px; }

  /* --- Nav becomes a drawer --------------------------------- */
  .nav__toggle { display: flex; }
  .nav__backdrop { display: block; }

  /* .nav is position:sticky, so it is the containing block for
     this absolute panel — which means the drawer sits correctly
     under the bar without hardcoding a height, and stays correct
     when the WP admin bar shifts the nav down. */
  .nav__links {
    position: absolute;
    top: 100%; left: 0; right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    /* Fully opaque, not rgba + backdrop-filter. The parent .nav already
       establishes a backdrop-filter context, so a translucent background
       here composites against that context instead of the page and lets
       hero text bleed through the open drawer. */
    background: #fff;
    border-bottom: 1px solid var(--nav-border);
    box-shadow: 0 18px 44px rgba(1,72,94,0.14);
    padding: 14px 24px 20px;
    max-height: calc(100vh - 100%);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    opacity: 0; visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0.22s;
    z-index: 195;
  }
  [data-theme="dark"] .nav__links { background: #0A1B21; }
  body.nav-open .nav__links {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s;
  }

  /* Comfortable 44px+ tap targets in the drawer. */
  .nav__link {
    padding: 14px 12px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 10px;
  }
  .nav__drawer-phone {
    display: flex; align-items: center; gap: 9px;
    margin-top: 10px; padding: 13px 12px;
    border-top: 1px solid var(--nav-border);
    font-size: 15px; font-weight: 700;
    color: var(--accent-text);
  }
  .nav__cta { font-size: 12.5px; padding: 9px 15px; }

  /* --- Hero stacks ------------------------------------------ */
  .hero .wrap { flex-direction: column; align-items: stretch; gap: 44px; }
  .hero__content, .hero__visual { flex: none; width: 100%; }
  .hero h1 { font-size: 44px; letter-spacing: -1.4px; }
  .hero__lead { max-width: 620px; }
  .hero__visual { padding: 34px 0 46px; }
  .dash { margin: 0 auto; }
  .dash__float--claim { right: -14px; }
  .dash__badge { left: -6px; }

  /* Stat bar spans the column instead of hugging its content. */
  .stats-bar { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); }
  .stats-bar__item { padding: 16px 18px; }
  .stats-bar__label { white-space: normal; }

  /* --- Grids reflow ---------------------------------------- */
  .metrics-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .specialties-grid { grid-template-columns: repeat(3, 1fr); }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }

  /* The connector line is positioned for a 4-across row; it is
     meaningless once the steps wrap. */
  .steps-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .steps-grid__line { display: none; }

  .section-head h2, .services__head h2, .process .section-head h2 { font-size: 32px; }
  .section-head { margin-bottom: 44px; }
  .process .section-head { margin-bottom: 48px; }
  .cta h2 { font-size: 38px; letter-spacing: -1.2px; }
  .behavioral__content h2 { font-size: 31px; }

  /* Behavioral: the min-widths force a horizontal overflow once
     the flex row can no longer fit them side by side. */
  .behavioral .wrap { gap: 44px; }
  .behavioral__content, .behavioral__stats { min-width: 0; flex: 1 1 100%; }
  .behavioral__content p { max-width: none; }

  .footer-grid { grid-template-columns: repeat(3, 1fr); gap: 36px 32px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand p { max-width: 460px; }

  .page-hero { padding: 120px 0 48px; }
  .page-hero h1 { font-size: 36px; }
}

/* ============================================================
   ≤ 860px — tablet portrait
   ============================================================ */
@media (max-width: 860px) {
  .hero h1 { font-size: 40px; letter-spacing: -1.2px; }

  /* Below this width there is no room outside the dashboard card
     for the chips to overhang, and overlapping them onto the card
     hides the tabs and chart. They become stacked cards instead. */
  .dash__float--claim,
  .dash__badge {
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: 14px;
    animation: none;
  }
  .hero__visual { padding: 24px 0 12px; }

  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .services__head { gap: 24px; }
  .cta h2 { font-size: 34px; }
}

/* ============================================================
   ≤ 720px — large phones
   ============================================================ */
@media (max-width: 720px) {
  .section, .process, .behavioral, .ehr, .newsletter { padding-left: 20px; padding-right: 20px; }
  .section, .process, .behavioral { padding-top: 56px; padding-bottom: 56px; }
  .ehr, .newsletter { padding-top: 52px; padding-bottom: 52px; }
  .cta { padding: 60px 20px; }
  .footer { padding: 48px 20px 0; }
  .hero { padding: 44px 20px 52px; }
  .nav { padding: 0 18px; }
  .nav__links { padding-left: 18px; padding-right: 18px; }
  section, footer { scroll-margin-top: 80px; }

  .hero__badge { margin-bottom: 20px; }
  .hero__badge span { font-size: 12px; }
  .hero h1 { font-size: 34px; letter-spacing: -1px; line-height: 1.14; }
  .hero__lead { font-size: 15.5px; margin-bottom: 28px; }

  /* Stacked full-width buttons — side-by-side buttons get too
     narrow to hold their labels on one line. */
  .hero__ctas { flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 36px; }
  .hero__ctas .btn { justify-content: center; }
  .btn-primary, .btn-secondary { padding: 14px 22px; font-size: 14.5px; }

  .stats-bar__item { padding: 14px 10px; text-align: center; }
  .stats-bar__num { font-size: 23px; letter-spacing: -0.6px; }
  .stats-bar__label { font-size: 11px; }

  .dash__card { padding: 20px; border-radius: 20px; }
  .dash__metrics { gap: 8px; }
  .dash__metric { padding: 11px 10px; }
  .dash__metric-value { font-size: 17px; }

  .section-head { margin-bottom: 36px; }
  .section-head h2, .services__head h2, .process .section-head h2 { font-size: 27px; letter-spacing: -0.7px; }
  .section-head p, .services__head p { font-size: 15px; }
  .process .section-head { margin-bottom: 36px; }
  .eyebrow { font-size: 10px; letter-spacing: 1.4px; padding: 5px 14px; margin-bottom: 14px; }

  .metrics-grid { gap: 12px; }
  .metric-card { padding: 24px 16px; }
  .metric-card__icon { width: 46px; height: 46px; margin-bottom: 14px; }
  .metric-card__value { font-size: 34px; letter-spacing: -1.2px; }
  .metric-card__label { font-size: 13px; }

  .process-grid { grid-template-columns: 1fr; gap: 10px; }
  .steps-grid { grid-template-columns: 1fr; gap: 14px; }
  .step-card { padding: 26px 20px; }
  .services-grid { grid-template-columns: 1fr; }
  .specialties-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .blog-grid { grid-template-columns: 1fr; }

  .services__head { flex-direction: column; align-items: stretch; margin-bottom: 32px; }
  .services__head-text { max-width: none; }
  .services__head .btn-dark { align-self: flex-start; }

  .behavioral .wrap { gap: 36px; }
  .behavioral__content h2 { font-size: 27px; letter-spacing: -0.7px; }
  .behavioral__content p { font-size: 15px; margin-bottom: 26px; }
  .behavioral__ctas .btn { justify-content: center; }
  .behavioral__stat { padding: 22px 16px; }
  .behavioral__stat-value { font-size: 34px; letter-spacing: -1.2px; }
  .behavioral__banner { padding: 20px; gap: 16px; }
  .behavioral__banner-value { font-size: 28px; }

  .ehr h2 { font-size: 26px; }
  .ehr > .wrap > p { font-size: 14.5px; margin-bottom: 32px; }
  .ehr-list { gap: 12px; }
  .ehr-card { padding: 22px 26px; min-width: 0; flex: 1 1 140px; }

  .cta h2 { font-size: 29px; letter-spacing: -0.9px; }
  .cta p { font-size: 15.5px; margin-bottom: 30px; }
  .cta__ctas { flex-direction: column; align-items: stretch; margin-bottom: 34px; }
  .cta__ctas .btn { justify-content: center; }
  .btn-ghost-light { padding: 15px 24px; font-size: 14.5px; }
  .cta__trust { gap: 14px 22px; }

  .blog-card__body { padding: 22px; }
  .newsletter h2 { font-size: 26px; letter-spacing: -0.5px; }
  .newsletter p { font-size: 14.5px; margin-bottom: 26px; }

  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; padding: 20px 0; }

  .page-hero { padding: 108px 0 40px; }
  .page-hero h1 { font-size: 29px; letter-spacing: -0.6px; }
  .entry { padding: 44px 0 64px; }
  .entry-content { font-size: 16px; }
  .entry-content h2 { font-size: 24px; }
  .entry-content h3 { font-size: 19px; }
}

/* ============================================================
   ≤ 480px — phones
   ============================================================ */
@media (max-width: 480px) {
  .section, .process, .behavioral, .ehr, .newsletter { padding-left: 16px; padding-right: 16px; }
  .cta { padding: 52px 16px; }
  .footer { padding: 44px 16px 0; }
  .hero { padding: 36px 16px 44px; }
  .nav { padding: 0 14px; height: 64px; }
  .nav__links { padding-left: 14px; padding-right: 14px; }
  section, footer { scroll-margin-top: 72px; }

  .nav__logo img { height: 38px; }
  .nav__right { gap: 8px; }
  .nav__cta { font-size: 11.5px; padding: 8px 11px; letter-spacing: -0.2px; }
  .nav__theme-toggle, .nav__toggle { width: 34px; height: 34px; }

  .hero h1 { font-size: 29px; letter-spacing: -0.7px; }
  .hero__lead { font-size: 15px; }

  /* Three columns cannot hold these labels at phone widths, so the
     bar becomes stacked rows with dividers running horizontally. */
  .stats-bar { grid-template-columns: 1fr; }
  .stats-bar__item {
    display: flex; align-items: baseline; gap: 10px;
    text-align: left; padding: 13px 16px;
    border-right: none;
    border-bottom: 1.5px solid rgba(1,72,94,0.08);
  }
  [data-theme="dark"] .stats-bar__item { border-bottom-color: rgba(255,255,255,0.1); }
  .stats-bar__item:last-child { border-bottom: none; }
  .stats-bar__num { font-size: 24px; }
  .stats-bar__label { margin-top: 0; font-size: 12px; }

  .dash__card { padding: 16px; }
  .dash__header { margin-bottom: 16px; }
  .dash__chart { height: 140px; }
  .dash__metrics { flex-wrap: wrap; }
  .dash__metric { flex: 1 1 calc(50% - 4px); min-width: 0; }

  .metrics-grid { grid-template-columns: 1fr; }
  .metric-card { padding: 22px 18px; }
  .specialties-grid { gap: 10px; }
  .specialty-card { padding: 20px 12px; }
  .specialty-card__icon { width: 46px; height: 46px; margin-bottom: 11px; }
  .specialty-card__title { font-size: 13px; }

  .section-head h2, .services__head h2, .process .section-head h2,
  .behavioral__content h2 { font-size: 24px; letter-spacing: -0.5px; }
  .cta h2 { font-size: 25px; letter-spacing: -0.6px; }
  .ehr h2, .newsletter h2 { font-size: 23px; }

  .behavioral__stats-row { grid-template-columns: 1fr; }
  .behavioral__ctas { flex-direction: column; align-items: stretch; }
  .ehr-card { flex: 1 1 100%; }

  /* A 480px row cannot hold a text input and a button side by side
     without shrinking both below usable size. */
  .newsletter__form { flex-direction: column; gap: 8px; }
  .newsletter__btn { width: 100%; padding: 14px 20px; }

  .service-card, .blog-card__body { padding: 20px; }
  .process-card { padding: 18px 16px; }

  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-brand { grid-column: auto; }

  .page-hero { padding: 96px 0 34px; }
  .page-hero h1 { font-size: 25px; }
  .error404-actions { flex-direction: column; align-items: stretch; }
  .error404-actions .btn { justify-content: center; }
}

/* ============================================================
   Input-modality and motion preferences
   ============================================================ */

/* The design leans on translateY hover lifts. On touch screens a
   tap latches :hover, leaving cards stuck in the raised state
   until the user taps elsewhere. */
@media (hover: none) {
  .btn:hover,
  .metric-card:hover, .process-card:hover, .step-card:hover,
  .service-card:hover, .specialty-card:hover, .ehr-card:hover,
  .blog-card:hover, .behavioral__stat:hover,
  .nav__cta:hover, .newsletter__btn:hover {
    transform: none;
  }
  .service-card__link:hover svg, .blog-card__link:hover svg { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
