/* ==== Homepage: hero ==== */
.hero { padding-top: var(--space-5); }
.hero-inner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, var(--teal-deep), var(--teal-soft));
  border-radius: var(--radius-xl);
}
.hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; min-height: 460px; }
.hero-copy { padding: 56px 20px 56px 52px; color: #fff; }
.hero-copy__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--teal-deep); background: #fff; padding: 7px 14px; border-radius: var(--radius-pill);
  margin-bottom: 22px;
}
.hero-copy__title { font-size: 48px; line-height: 1.08; margin: 0 0 18px; color: #fff; }
.hero-copy__text { font-size: 17px; color: rgba(255, 255, 255, 0.9); max-width: 480px; margin-bottom: 28px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.hero-media { position: relative; display: flex; align-items: flex-end; justify-content: center; height: 100%; }
.hero-media img { max-width: 100%; max-height: 420px; object-fit: contain; display: block; }

/* ==== Homepage v2: full-bleed hero (page-home-v2.php) ==== */
/* Background stretches edge-to-edge; the inner .container keeps the copy's
   left edge aligned with the header logo's left edge (both use the same
   .container padding-inline), and hero-v2-copy replaces the base
   hero-copy's uneven 56/20/56/52 padding with a uniform value. */
.hero-v2-inner {
  background: linear-gradient(160deg, var(--teal-deep), var(--teal-soft));
}
.hero-v2-copy { padding: 72px 0; }

/* ==== Homepage: alert banner ==== */
.alert-banner-section { padding-top: var(--space-5); }

/* ==== Homepage: trust bar ==== */
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-top: 36px; padding-bottom: 8px; }

/* ==== Homepage: services ==== */
.services-row { padding-top: 44px; padding-bottom: 44px; }
.svc-mini-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 28px; }
.svc-row-cta { text-align: center; }

/* ==== Homepage: doctors ==== */
.doctors-row { padding-bottom: 44px; }

/* ==== Homepage: articles ==== */
.articles-row { padding-bottom: 44px; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.article-row-cta { text-align: center; margin-top: 26px; }

/* ==== Homepage: emergency strip ==== */
.emergency-strip-section { padding-bottom: 44px; }

/* ==== About page: hero ==== */
.about-hero { padding-top: 36px; }
.about-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.about-hero__title { font-size: 44px; margin: 12px 0 18px; color: var(--teal-deep); }
.about-hero__text { font-size: 16.5px; color: var(--color-text); max-width: 480px; margin-bottom: 14px; }
.about-hero__text:last-of-type { margin-bottom: 0; }
.about-hero__media { position: relative; }
.about-hero__media-decor { position: absolute; top: -20px; right: -20px; width: 200px; height: 180px; background: var(--teal-wash); border-radius: var(--radius-xl); z-index: 0; }
.about-hero__media img { position: relative; z-index: 1; width: 100%; border-radius: var(--radius-xl); display: block; box-shadow: var(--shadow-lg); }

/* ==== About page: stats ==== */
.about-stats { padding-bottom: 44px; }
.about-stats__panel { background: var(--teal-deep); border-radius: var(--radius-xl); padding: 40px 24px; }
.about-stats__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.about-stats__item { text-align: center; }
.about-stats__num { font-size: 32px; color: #fff; }
.about-stats__label { font-size: 12.5px; font-weight: var(--weight-semibold); color: rgba(255, 255, 255, 0.8); margin-top: 6px; }

/* ==== About page: values ==== */
.about-values { padding-top: 44px; padding-bottom: 44px; }
.value-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* ==== About page: scope of care ==== */
.scope-of-care { padding-bottom: 44px; }
.scope-of-care__panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 40px 44px; max-width: 760px; margin: 0 auto; }
.scope-of-care__title { font-size: 26px; margin: 12px 0 14px; color: var(--teal-deep); }
.scope-of-care__text { font-size: 15px; line-height: 1.75; color: var(--color-text); margin: 0 0 14px; }
.scope-of-care__text:last-child { margin-bottom: 0; }

/* ==== About page: hospital affiliation ==== */
.hospital-affiliation { padding-bottom: 44px; }
.hospital-affiliation__panel { background: var(--color-surface-off, #fff); border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: 40px 44px; max-width: 760px; margin: 0 auto; }
.hospital-affiliation__title { font-size: 26px; margin: 12px 0 14px; color: var(--teal-deep); }
.hospital-affiliation__text { font-size: 15px; line-height: 1.75; color: var(--color-text); margin: 0 0 20px; }
.hospital-affiliation__card { display: flex; gap: 16px; align-items: flex-start; background: var(--teal-mist); border-radius: var(--radius-lg); padding: 22px; }
.hospital-affiliation__icon { color: var(--teal-deep); flex-shrink: 0; margin-top: 2px; }
.hospital-affiliation__name { font-weight: var(--weight-bold); font-size: 16px; color: var(--color-text-strong); margin-bottom: 4px; }
.hospital-affiliation__address { font-size: 14px; color: var(--color-text); margin-bottom: 4px; }
.hospital-affiliation__phone { font-weight: var(--weight-bold); font-size: 14px; color: var(--teal-deep); }
.hospital-affiliation__note { font-size: 13px; color: var(--color-text-muted); margin: 16px 0 0; }

/* ==== About page: timeline ==== */
.about-timeline { padding-bottom: 44px; }
.timeline-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.timeline-item { border-top: 3px solid var(--color-primary); padding-top: 16px; }
.timeline-item__year { font-size: 24px; color: var(--teal-deep); margin-bottom: 8px; }
.timeline-item__text { font-size: 13.5px; line-height: 1.6; color: var(--color-text); margin: 0; }

/* ==== Location pages (office landing pages): other-office link ==== */
.other-office-link { padding-top: 14px; }
.other-office-link__link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: var(--weight-semibold); color: var(--color-link); }

/* ==== Location pages: hero ==== */
.location-hero { padding-top: 36px; }
.location-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; }
.location-hero__grid { display: grid; grid-template-columns: 1.08fr 0.92fr; align-items: stretch; min-height: 380px; }
.location-hero__copy { padding: 48px 0; }
.location-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 18px; }
.location-hero__crumbs a { color: var(--teal-soft); }
.location-hero__crumb-current { color: var(--teal-deep); }
.location-hero__eyebrow { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 16px; }
.location-hero__eyebrow span { color: var(--teal-deep); }
.location-hero__title { font-size: 46px; line-height: 1.12; margin: 0 0 16px; color: var(--teal-deep); }
.location-hero__text { font-size: 17px; color: var(--color-text); max-width: 460px; margin-bottom: 22px; }
.location-hero__badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.location-hero__badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: var(--weight-semibold); color: var(--teal-deep);
  background: #fff; border: 1px solid var(--color-border); padding: 7px 14px; border-radius: var(--radius-pill);
}
.location-hero__badge svg { color: var(--color-primary); }
.location-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.location-hero__media { position: relative; display: flex; align-items: flex-end; justify-content: center; }
.location-hero__media-decor { position: absolute; bottom: 0; right: 24px; width: 300px; height: 300px; background: var(--teal-phca); border-radius: 50%; opacity: 0.55; }
.location-hero__media img { position: relative; z-index: 1; max-width: 100%; max-height: 380px; object-fit: contain; display: block; }
.location-hero__stats { border-top: 1px solid var(--color-border); background: rgba(255, 255, 255, 0.5); border-radius: 0; }
.location-hero__stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; padding: 26px 24px; }
.location-hero__stat { text-align: center; }
.location-hero__stat-num { font-size: 34px; color: var(--teal-deep); line-height: 1; }
.location-hero__stat-label { font-size: 12.5px; font-weight: var(--weight-semibold); color: var(--color-text-muted); margin-top: 6px; letter-spacing: 0.02em; }

/* ==== Location pages: trust strip ==== */
.trust-strip { padding-top: 40px; padding-bottom: 8px; }
.trust-strip__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 34px; text-align: center; }
.trust-strip__item { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: var(--weight-semibold); color: var(--color-text-heading); }
.trust-strip__item svg { color: var(--color-primary); }

/* ==== Location pages: services strip ==== */
.services-strip { padding-top: 44px; padding-bottom: 44px; }

/* ==== Location pages: why office ==== */
.why-office { padding-bottom: 44px; }
.why-office__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.why-office__media { position: relative; }
.why-office__media-decor { position: absolute; top: -20px; left: -20px; width: 200px; height: 180px; background: var(--teal-wash); border-radius: var(--radius-xl); z-index: 0; }
.why-office__media img { position: relative; z-index: 1; width: 100%; border-radius: var(--radius-xl); display: block; box-shadow: var(--shadow-lg); }
.why-office__title { font-size: 32px; margin: 12px 0 18px; color: var(--teal-deep); }
.why-office__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.why-office__item { display: flex; gap: 14px; align-items: flex-start; }
.why-office__item-icon {
  width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%;
  background: var(--teal-deep); color: #fff; display: flex; align-items: center; justify-content: center;
}
.why-office__item-title { font-weight: var(--weight-semibold); color: var(--teal-deep); font-size: 15.5px; }
.why-office__item-body { font-size: 14px; color: var(--color-text); line-height: 1.6; }

/* ==== Location pages: local reviews ==== */
.local-reviews { padding-bottom: 44px; }
.local-reviews__panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 44px 28px; }
.local-reviews__head { text-align: center; margin-bottom: 30px; }
.local-reviews__title { font-size: 30px; margin: 12px 0 6px; color: var(--teal-deep); }
.local-reviews__rating { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; }
.local-reviews__star { color: var(--color-primary); }
.local-reviews__rating-text { font-size: 14px; font-weight: var(--weight-semibold); color: var(--teal-deep); }
.local-reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* ==== Location pages: office details ==== */
.office-details { padding-bottom: 44px; }
.office-details__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 40px; }
.office-details__map { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-md); min-height: 280px; }
.office-details__map iframe { width: 100%; height: 100%; min-height: 280px; border: 0; display: block; }
.office-details__card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: 30px; box-shadow: var(--shadow-xs); }
.office-details__title { font-size: 20px; color: var(--teal-deep); margin: 0 0 20px; }
.office-details__row { display: flex; gap: 12px; margin-bottom: 18px; }
.office-details__row:last-of-type { margin-bottom: 22px; }
.office-details__icon { color: var(--color-primary); flex-shrink: 0; margin-top: 2px; }
.office-details__address { font-weight: var(--weight-semibold); font-size: 14.5px; color: var(--color-text-strong); }
.office-details__directions { font-size: 13px; color: var(--color-link); font-weight: var(--weight-bold); }
.office-details__phone { font-weight: var(--weight-semibold); font-size: 14.5px; color: var(--color-text-strong); display: block; }
.office-details__phone-note { font-size: 13px; color: var(--color-text-muted); }
.office-details__hours { font-size: 14px; color: var(--color-text); line-height: 1.8; }
.office-details__hours strong { color: var(--color-text-strong); }
.office-details__amenities { display: flex; flex-wrap: wrap; gap: 8px; }
.office-details__amenity { font-size: 12.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); background: var(--teal-wash); padding: 6px 12px; border-radius: var(--radius-pill); }

/* ==== Location pages: lead form ==== */
.lead-form-section { padding-bottom: 56px; }
.lead-grid { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); }
.lead-grid__intro { background: var(--teal-deep); color: #fff; padding: 44px 36px; display: flex; flex-direction: column; justify-content: center; }
.lead-grid__eyebrow { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-primary); }
.lead-grid__title { font-size: 30px; color: #fff; margin: 12px 0 14px; }
.lead-grid__text { font-size: 15px; color: rgba(255, 255, 255, 0.85); line-height: 1.7; margin-bottom: 24px; }
.lead-grid__points { display: flex; flex-direction: column; gap: 14px; }
.lead-grid__point { display: flex; gap: 10px; align-items: center; font-size: 14px; }
.lead-grid__point svg { color: var(--color-primary); }
.lead-grid__form-wrap { background: #fff; padding: 44px 36px; display: flex; flex-direction: column; justify-content: center; }

/* ==== Location pages: FAQ ==== */
.office-faq { padding-bottom: 56px; }

/* ==== Sitemap page ==== */
.sitemap-section { padding-top: 44px; padding-bottom: 56px; }
.sitemap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; grid-auto-rows: 1fr; }

/* ==== Services page: hero ==== */
.services-hero { padding-top: 40px; }
.services-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; }
.services-hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: stretch; min-height: 360px; }
.services-hero__copy { padding: 52px 0; }
.services-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 18px; }
.services-hero__crumbs a { color: var(--teal-soft); }
.services-hero__crumb-current { color: var(--teal-deep); }
.services-hero__title { font-size: 52px; line-height: 1.1; margin: 0 0 16px; color: var(--teal-deep); }
.services-hero__text { font-size: 17px; color: var(--color-text); max-width: 440px; margin-bottom: 28px; }
.services-hero__media { position: relative; display: flex; align-items: flex-end; justify-content: center; }
.services-hero__media-decor { position: absolute; bottom: 0; right: 30px; width: 320px; height: 320px; background: var(--teal-phca); border-radius: 50%; opacity: 0.55; }
.services-hero__media img { position: relative; z-index: 1; max-width: 100%; max-height: 380px; object-fit: contain; display: block; }

/* ==== Services page: service cards ==== */
.service-cards-section { padding-top: var(--space-12); padding-bottom: var(--space-12); }

/* ==== Services page: priority ==== */
.priority { padding-bottom: var(--space-12); }
.priority__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.priority__media { position: relative; }
.priority__media-decor { position: absolute; top: -22px; left: -22px; width: 220px; height: 200px; background: var(--teal-wash); border-radius: var(--radius-xl); z-index: 0; }
.priority__media img { position: relative; z-index: 1; width: 100%; border-radius: var(--radius-xl); display: block; box-shadow: var(--shadow-lg); }
.priority__title { font-size: 36px; margin: 12px 0 16px; color: var(--teal-deep); }
.priority__text { font-size: 16.5px; max-width: 460px; margin-bottom: 28px; }

/* ==== Services page: testimonials ==== */
.testimonials { padding-bottom: var(--space-12); }
.testimonials__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

/* ==== Services page: safety ==== */
.safety { padding-bottom: var(--space-12); }
.safety__panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 56px 24px 64px; }
.safety__media { position: relative; max-width: 720px; margin: 0 auto; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); aspect-ratio: 16 / 10; background: var(--teal-soft); }
.safety__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.safety__overlay { position: absolute; inset: 0; background: var(--overlay-teal); }
.safety__play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 76px; height: 76px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--color-primary); color: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-teal); transition: transform var(--transition-fast);
}
.safety__play:active { transform: translate(-50%, -50%) scale(0.94); }
.safety__play-icon { color: #fff; }
.safety__caption {
  position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
  background: rgba(29, 104, 104, 0.9); color: #fff; padding: 8px 18px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: var(--weight-semibold);
}

/* ==== Services page: family care ==== */
.family-care { padding-bottom: var(--space-12); }
.family-care__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.family-care__title { font-size: 36px; margin: 12px 0 16px; color: var(--teal-deep); }
.family-care__text { font-size: 16.5px; max-width: 460px; margin-bottom: 28px; }
.family-care__images { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.family-care__image { width: 100%; border-radius: var(--radius-xl); display: block; box-shadow: var(--shadow-md); }
.family-care__image--offset { margin-top: 28px; }

/* ==== Homepage: CTA banner section ==== */
.cta-banner-section { padding-block: var(--space-8) var(--space-12); }

/* ==== Homepage: quick links ==== */
.quick-links-row { padding-top: 8px; padding-bottom: 8px; }
.quick-links-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }

/* ==== Contact page: hero ==== */
.contact-hero { padding-top: 36px; padding-bottom: 8px; text-align: center; }
.contact-hero__title { font-size: 42px; margin: 12px 0 14px; color: var(--teal-deep); }
.contact-hero__text { font-size: 16px; max-width: 620px; margin: 0 auto; }

/* ==== Contact page: offices ==== */
.contact-offices { padding-top: 30px; padding-bottom: 44px; }
.office-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); }

/* ==== Contact page: form ==== */
.contact-form-section { padding-bottom: 56px; }

/* ==== Providers page: hero ==== */
.providers-hero { padding-top: 32px; }
.providers-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; }
.providers-hero__copy { padding: 48px 0 40px; max-width: 680px; }
.providers-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.providers-hero__text { font-size: 16px; color: var(--color-text); margin-bottom: 26px; }
.providers-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.providers-hero__stats { border-top: 1px solid var(--color-border); background: rgba(255, 255, 255, 0.5); border-radius: 0; }
.providers-hero__stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; padding: 26px 24px; }
.providers-hero__stat-num { font-size: 30px; color: var(--teal-deep); }
.providers-hero__stat-label { font-size: 12px; font-weight: var(--weight-semibold); color: var(--color-text-muted); margin-top: 6px; }

/* ==== Providers page: grid ==== */
.provider-row { padding-top: 30px; padding-bottom: 44px; }
.provider-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.provider-row__note { text-align: center; font-size: 13px; color: var(--color-text-muted); margin-top: 28px; }

/* ==== Legal pages: hero (shared across the policy page family) ==== */
.legal-hero { padding-top: 32px; }
.legal-hero__panel { position: relative; overflow: hidden; background: var(--teal-deep); border-radius: 0; padding: 48px 0 40px; }
.legal-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: rgba(255, 255, 255, 0.7); margin-bottom: 18px; }
.legal-hero__crumbs a { color: rgba(255, 255, 255, 0.7); }
.legal-hero__crumbs a:hover { color: #fff; text-decoration: none; }
.legal-hero__crumbs svg { width: 14px; height: 14px; }
.legal-hero__crumb-current { color: #fff; }
.legal-hero__eyebrow { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-primary); }
.legal-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: #fff; }
.legal-hero__text { font-size: 16px; color: rgba(255, 255, 255, 0.88); max-width: 640px; margin-bottom: 26px; }
.legal-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.legal-hero__actions .btn--secondary { background: transparent; border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.legal-hero__actions .btn--secondary:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }

/* ==== Legal pages: content (TOC + article body) ==== */
.legal-content { padding-top: 44px; padding-bottom: 56px; }
.legal-grid { display: grid; grid-template-columns: 220px 1fr; gap: 56px; }
.legal-toc { position: sticky; top: 110px; }
.legal-toc__label { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 14px; }
.legal-toc nav { display: flex; flex-direction: column; gap: 10px; }
.legal-toc a { font-size: 14px; }
.legal-meta { font-size: 14px; color: var(--color-text-muted); margin: 0 0 4px; }
.legal-meta__effective { font-weight: var(--weight-semibold); color: var(--color-text-strong); }
.legal-contact-box { background: var(--teal-mist); border-radius: var(--radius-md); padding: 18px 22px; margin: 20px 0 28px; }
.legal-contact-box__org { font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0; }
.legal-contact-box p { margin: 4px 0 0; font-size: 15px; }
.legal-intro { font-size: 15px; line-height: 1.75; color: var(--color-text); margin: 0 0 14px; }
.legal-intro--org { font-weight: var(--weight-semibold); color: var(--color-text-strong); }
.legal-section { margin-bottom: 36px; }
.legal-section h2 { font-size: 22px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 12px; }
.legal-section h3 { font-size: 16.5px; font-weight: var(--weight-semibold); color: var(--color-text-strong); margin: 18px 0 8px; }
.legal-section p { font-size: 15px; line-height: 1.75; color: var(--color-text); margin: 0 0 14px; }
.legal-section ul { font-size: 15px; line-height: 1.75; color: var(--color-text); padding-left: 20px; margin: 0 0 14px; }
.legal-note { background: var(--teal-mist); border-radius: var(--radius-md); padding: 16px 20px; font-size: 14.5px; line-height: 1.7; color: var(--color-text); margin: 0 0 20px; }

/* ==== Legal pages: other-policies cross-links ==== */
.policy-links { padding-bottom: 56px; }
.policy-links__panel { border-top: 1px solid var(--color-border); padding-top: 36px; }
.policy-links__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.policy-links__head h2 { font-size: 20px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0; }
.policy-links__view-all { font-size: 13.5px; font-weight: var(--weight-bold); color: var(--color-link); display: inline-flex; align-items: center; gap: 4px; }
.policy-links__view-all svg { width: 13px; height: 13px; }
.policy-links__row { display: flex; flex-wrap: wrap; gap: 12px; }
.policy-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--teal-wash); color: var(--teal-deep); font-size: 13.5px; font-weight: var(--weight-semibold); padding: 10px 16px; border-radius: var(--radius-lg); }
.policy-chip:hover { text-decoration: none; background: var(--teal-phca); }
.policy-chip svg { width: 14px; height: 14px; }

/* ==== Homepage: CTA banner ==== */
.cta-banner {
  position: relative; overflow: hidden;
  background: var(--teal-deep); border-radius: var(--radius-xl);
  padding: 52px 32px; text-align: center; color: #fff; box-shadow: var(--shadow-lg);
}
.cta-banner__circle { position: absolute; border-radius: 50%; }
.cta-banner__circle--top { top: -60px; right: -40px; width: 240px; height: 240px; background: rgba(255, 255, 255, 0.06); }
.cta-banner__circle--bottom { bottom: -80px; left: -30px; width: 200px; height: 200px; background: rgba(114, 213, 231, 0.12); }
.cta-banner__content { position: relative; }
.cta-banner__title { color: #fff; font-size: 36px; margin: 0 0 10px; }
.cta-banner__text { color: rgba(255, 255, 255, 0.9); font-size: 18px; margin: 0; }
.cta-banner__text a { color: var(--color-primary); font-weight: var(--weight-bold); }

/* ==== Resources page: hero ==== */
.resources-hero { padding-top: 32px; }
.resources-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.resources-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.resources-hero__text { font-size: 16px; color: var(--color-text); max-width: 620px; margin-bottom: 26px; }
.resources-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Resources page: patient portal callout ==== */
.portal-callout { padding-top: 30px; padding-bottom: 30px; }
.portal-callout__panel { background: var(--teal-deep); border-radius: var(--radius-xl); padding: 40px 32px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.portal-callout__copy { max-width: 480px; }
.portal-callout__label { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-primary); margin-bottom: 10px; }
.portal-callout__title { font-size: 28px; color: #fff; margin: 0 0 8px; }
.portal-callout__text { font-size: 14.5px; color: rgba(255, 255, 255, 0.85); margin: 0; }

/* ==== Resources page: new patient steps ==== */
.patient-steps { padding-bottom: 44px; }
.resource-step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.resource-step-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-xs); }
.resource-step-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.resource-step-card__num { width: 36px; height: 36px; border-radius: 50%; background: var(--teal-wash); display: flex; align-items: center; justify-content: center; font-weight: var(--weight-bold); color: var(--teal-deep); font-size: 14px; flex-shrink: 0; }
.resource-step-card__title { font-size: 16px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 8px; }
.resource-step-card__body { font-size: 13.5px; line-height: 1.6; color: var(--color-text); margin: 0; }

/* ==== Resources page: patient forms ==== */
.patient-forms { padding-bottom: 44px; }
.resource-form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 26px; }
.resource-form-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 26px; box-shadow: var(--shadow-xs); }
.resource-form-card__icon svg { width: 26px; height: 26px; color: var(--teal-deep); }
.resource-form-card__title { font-size: 17px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 14px 0 8px; }
.resource-form-card__body { font-size: 13.5px; line-height: 1.6; color: var(--color-text); margin: 0 0 16px; }
.resource-forms-note { background: var(--teal-mist); border-radius: var(--radius-lg); padding: 24px 26px; display: flex; flex-direction: column; gap: 12px; }
.resource-forms-note__row { display: flex; gap: 12px; align-items: flex-start; }
.resource-forms-note__row svg { width: 17px; height: 17px; color: var(--teal-deep); flex-shrink: 0; margin-top: 2px; }
.resource-forms-note__row p { font-size: 14px; line-height: 1.6; color: var(--color-text); margin: 0; }

/* ==== Resources page: insurance list ==== */
.insurance-list { padding-bottom: 44px; }
.insurance-panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 36px 28px; }
.insurance-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.insurance-chip { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 16px 14px; text-align: center; font-size: 13.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); }

/* ==== Resources page: FAQ ==== */
.resources-faq { padding-bottom: 56px; }

/* ==== Terminology page: hero ==== */
.glossary-hero { padding-top: 32px; }
.glossary-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.glossary-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.glossary-hero__text { font-size: 16px; color: var(--color-text); max-width: 620px; margin-bottom: 26px; }
.glossary-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Terminology page: search + A-Z browser ==== */
.glossary-browser { padding-top: 20px; padding-bottom: 56px; }
.glossary-search { position: relative; max-width: 780px; margin: 0 auto 18px; }
.glossary-search__icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--color-text-muted); }
.glossary-search__input { width: 100%; padding: 13px 16px 13px 44px; border-radius: var(--radius-pill); border: 1px solid var(--color-border); font-size: 15px; font-family: var(--font-body); box-sizing: border-box; }
.glossary-letters { max-width: 780px; margin: 0 auto 26px; display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.glossary-letter-btn { width: 32px; height: 32px; border-radius: 50%; font-size: 12.5px; font-weight: var(--weight-bold); cursor: pointer; border: 1px solid var(--color-border); background: #fff; color: var(--color-text-heading); font-family: var(--font-body); }
.glossary-letter-btn.is-active { border-color: var(--teal-deep); background: var(--teal-deep); color: #fff; }
.glossary-letter-btn:disabled { cursor: default; color: var(--color-border); }
.glossary-list { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.glossary-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 20px 24px; box-shadow: var(--shadow-xs); }
.glossary-card__title { font-size: 16.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 8px; }
.glossary-card__body { font-size: 14.5px; line-height: 1.7; color: var(--color-text); margin: 0; }
.glossary-empty { text-align: center; color: var(--color-text-muted); font-size: 15px; }

/* ==== Symptom Checker page: hero ==== */
.symptom-hero { padding-top: 32px; }
.symptom-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0; }
.symptom-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.symptom-hero__text { font-size: 16px; color: var(--color-text); max-width: 640px; margin-bottom: 0; }
.symptom-hero__intro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 30px; }
.symptom-hero__intro-card { background: #fff; border-radius: var(--radius-lg); padding: 22px; }
.symptom-hero__intro-card svg { width: 22px; height: 22px; color: var(--teal-deep); }
.symptom-hero__intro-label { font-size: 12.5px; font-weight: var(--weight-bold); letter-spacing: 0.05em; color: var(--teal-deep); margin: 12px 0 6px; }
.symptom-hero__intro-body { font-size: 13.5px; line-height: 1.6; color: var(--color-text); margin: 0; }

/* ==== Symptom Checker page: interactive tool (third-party iframe) ==== */
.symptom-tool { padding-top: 44px; padding-bottom: 8px; }
.symptom-tool__frame { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-xl); box-shadow: var(--shadow-md); padding: var(--space-6); }
.symptom-tool__iframe { display: block; width: 100%; min-height: 640px; border: 0; }

/* ==== Symptom Checker page: stats ==== */
.symptom-stats { padding-top: 36px; padding-bottom: 8px; }
.symptom-stats__panel { background: var(--teal-deep); border-radius: var(--radius-xl); padding: 36px 24px; }
.symptom-stats__item { text-align: center; }
.symptom-stats__num { font-size: 32px; color: #fff; }
.symptom-stats__label { font-size: 12px; font-weight: var(--weight-semibold); color: rgba(255, 255, 255, 0.8); margin-top: 6px; }

/* ==== Symptom Checker page: symptom guide ==== */
.symptom-guide { padding-top: 44px; padding-bottom: 8px; }
.symptom-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.symptom-btn { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-radius: var(--radius-lg); cursor: pointer; text-align: left; border: 1px solid var(--color-border); background: #fff; font-family: var(--font-body); }
.symptom-btn.is-active { border-color: var(--teal-deep); background: var(--teal-wash); }
.symptom-btn__icon { width: 40px; height: 40px; border-radius: 50%; background: var(--teal-wash); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.symptom-btn.is-active .symptom-btn__icon { background: var(--teal-deep); }
.symptom-btn__icon svg { width: 19px; height: 19px; color: var(--teal-deep); }
.symptom-btn.is-active .symptom-btn__icon svg { color: #fff; }
.symptom-btn__label { font-size: 15px; font-weight: var(--weight-semibold); color: var(--teal-deep); }
.symptom-panel { background: var(--teal-mist); border-radius: var(--radius-lg); padding: 26px; display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 20px; }
.symptom-panel__icon { width: 26px; height: 26px; color: var(--teal-deep); flex-shrink: 0; }
.symptom-panel__body { flex: 1; min-width: 240px; }
.symptom-panel__title { font-size: 16.5px; color: var(--teal-deep); margin: 0 0 8px; }
.symptom-panel__text { font-size: 14.5px; line-height: 1.7; color: var(--color-text); margin: 0; }
.symptom-panel__cta { flex-shrink: 0; display: inline-flex; align-items: center; gap: 8px; background: var(--teal-deep); color: #fff; border: none; padding: 12px 22px; border-radius: var(--radius-lg); font-weight: var(--weight-bold); font-size: 14px; }
.symptom-panel__cta:hover { background: var(--teal-deep-hover); color: #fff; }
.symptom-guide__disclaimer { text-align: center; font-size: 12.5px; color: var(--color-text-muted); margin-top: 24px; }

/* ==== Symptom Checker page: emergency strip ==== */
.symptom-emergency { padding-top: 44px; padding-bottom: 8px; }
.symptom-emergency__panel { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; align-items: center; background: color-mix(in srgb, var(--color-coral) 12%, white); border: 1px solid var(--color-coral); border-radius: var(--radius-lg); padding: 18px 24px; text-align: center; }
.symptom-emergency__item { font-size: 14px; font-weight: var(--weight-bold); color: var(--teal-deep); display: flex; align-items: center; gap: 8px; }
.symptom-emergency__item svg { color: var(--color-coral); }
.symptom-emergency__divider { color: var(--color-border); }

/* ==== Service detail pages: hero ==== */
.svc-detail-hero { padding-top: 32px; }
.svc-detail-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; }
.svc-detail-hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: stretch; min-height: 340px; }
.svc-detail-hero__copy { padding: 48px 0; }
.svc-detail-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 18px; }
.svc-detail-hero__crumbs a { color: var(--teal-soft); }
.svc-detail-hero__crumb-current { color: var(--teal-deep); }
.svc-detail-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); color: var(--teal-deep); background: #fff; padding: 6px 14px; border-radius: var(--radius-pill); margin-bottom: 16px; }
.svc-detail-hero__title { font-size: 42px; line-height: 1.12; margin: 0 0 14px; color: var(--teal-deep); }
.svc-detail-hero__text { font-size: 16.5px; color: var(--color-text); max-width: 460px; margin-bottom: 26px; }
.svc-detail-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.svc-detail-hero__media { position: relative; display: flex; align-items: center; justify-content: center; padding: 32px; box-sizing: border-box; overflow: hidden; }
.svc-detail-hero__media-decor { position: absolute; bottom: 0; right: 24px; width: 280px; height: 280px; background: var(--teal-phca); border-radius: 50%; opacity: 0.5; }
.svc-detail-hero__media img { position: relative; z-index: 1; max-width: 100%; max-height: 260px; object-fit: contain; display: block; }

/* ==== Service detail pages: overview + at-a-glance ==== */
.svc-overview { padding-top: 44px; padding-bottom: 8px; }
.svc-overview__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; }
.svc-overview__title { font-size: 28px; margin: 12px 0 14px; color: var(--teal-deep); }
.svc-overview__text { font-size: 15.5px; line-height: 1.75; color: var(--color-text); margin-bottom: 14px; }
.svc-glance { background: var(--teal-mist); border-radius: var(--radius-lg); padding: 26px; align-self: start; }
.svc-glance__label { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal-deep); margin-bottom: 14px; }
.svc-glance__list { display: flex; flex-direction: column; gap: 14px; }
.svc-glance__row { display: flex; gap: 12px; align-items: flex-start; }
.svc-glance__row svg { width: 17px; height: 17px; color: var(--color-primary); flex-shrink: 0; margin-top: 2px; }
.svc-glance__row strong { color: var(--color-text-strong); font-size: 13.5px; }
.svc-glance__row span { font-size: 13.5px; color: var(--color-text); }

/* ==== Service detail pages: highlights (reuses .value-grid / .value-card) ==== */
.svc-highlights { padding-top: 44px; padding-bottom: 8px; }

/* ==== Service detail pages: process ==== */
.svc-process { padding-top: 44px; padding-bottom: 8px; }
.svc-process__panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 40px 28px; }
.svc-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.svc-process__step { background: #fff; border-radius: var(--radius-md); padding: 20px; border-top: 3px solid var(--color-primary); }
.svc-process__step-num { width: 30px; height: 30px; border-radius: 50%; background: var(--teal-wash); color: var(--teal-deep); display: flex; align-items: center; justify-content: center; font-weight: var(--weight-bold); font-size: 13px; margin-bottom: 12px; }
.svc-process__step-title { font-size: 14.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 6px; }
.svc-process__step-body { font-size: 13px; line-height: 1.6; color: var(--color-text); margin: 0; }

/* ==== Service detail pages: reviews (reuses .testimonials__grid / .testimonial) ==== */
.svc-reviews { padding-top: 44px; padding-bottom: 8px; }
.svc-reviews__intro { text-align: center; max-width: 600px; margin: 0 auto 28px; }
.svc-reviews__title { font-size: 28px; margin: 12px 0 6px; color: var(--teal-deep); }
.svc-reviews__stars { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; }
.svc-reviews__stars span { font-size: 13.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin-left: 4px; }
.svc-reviews__star { color: var(--color-primary); }

/* ==== Service detail pages: FAQ (reuses .faq-list / .faq-item) ==== */
.svc-faq { padding-top: 44px; padding-bottom: 8px; }

/* ==== Service detail pages: bottom CTA ==== */
.svc-cta { padding-top: 44px; padding-bottom: 8px; }
.svc-cta__panel { position: relative; overflow: hidden; background: var(--teal-deep); border-radius: var(--radius-xl); padding: 44px 28px; text-align: center; color: #fff; }
.svc-cta__title { color: #fff; font-size: 28px; margin: 0 0 10px; }
.svc-cta__text { color: rgba(255, 255, 255, 0.88); font-size: 15.5px; margin: 0 0 22px; max-width: 480px; margin-inline: auto; }
.svc-cta__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* ==== Service detail pages: related services ==== */
.svc-related { padding-top: 44px; padding-bottom: 8px; }
.svc-related__intro { text-align: center; max-width: 500px; margin: 0 auto 26px; }
.svc-related__title { font-size: 26px; margin: 12px 0 0; color: var(--teal-deep); }
.svc-related__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.svc-related__card { display: block; background: var(--teal-wash); border-radius: var(--radius-lg); padding: 20px; text-align: center; }
.svc-related__card:hover { text-decoration: none; background: var(--teal-phca); }
.svc-related__card svg { width: 26px; height: 26px; color: var(--teal-deep); }
.svc-related__card-title { font-size: 13.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin-top: 10px; }

/* ==== Book Appointment page: hero ==== */
.book-hero { padding-top: 32px; }
.book-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.book-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 18px; }
.book-hero__crumbs a { color: var(--teal-soft); }
.book-hero__crumb-current { color: var(--teal-deep); }
.book-hero__title { font-size: 42px; line-height: 1.12; margin: 0 0 14px; color: var(--teal-deep); }
.book-hero__text { font-size: 16px; color: var(--color-text); max-width: 560px; margin-bottom: 26px; }
.book-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Book Appointment page: form + sidebar layout ==== */
.book-layout { padding-top: 40px; padding-bottom: 56px; }
.book-layout__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: start; }
.book-layout .contact-form-card { max-width: none; margin: 0; }
.book-form__note { font-size: 13px; color: var(--color-text-muted); margin: 0 0 4px; }
.book-form__alt { font-size: 12.5px; color: var(--color-text-muted); text-align: center; margin: 0; }

.book-urgency { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.book-urgency__option { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: var(--radius-md); cursor: pointer; border: 1px solid var(--color-border); background: #fff; font-size: 14px; font-weight: var(--weight-semibold); color: var(--color-text-strong); }
.book-urgency__option:has(input:checked) { border-color: var(--teal-deep); background: var(--teal-wash); }
.book-urgency__option input { accent-color: var(--teal-deep); }
.book-urgency__option svg { color: var(--teal-deep); flex-shrink: 0; }

.book-sidebar { display: flex; flex-direction: column; gap: 20px; }
.book-sidebar__urgent { background: var(--teal-deep); border-radius: var(--radius-xl); padding: 26px; color: #fff; }
.book-sidebar__urgent-title { font-size: 18px; margin: 0 0 8px; }
.book-sidebar__urgent-text { font-size: 14px; color: rgba(255, 255, 255, 0.85); margin-bottom: 18px; }
.book-sidebar__urgent-btn { width: 100%; background: var(--color-primary); border: none; color: #fff; font-weight: var(--weight-bold); font-size: 14.5px; padding: 13px 0; border-radius: var(--radius-lg); display: flex; align-items: center; justify-content: center; gap: 8px; }
.book-sidebar__urgent-btn:hover { text-decoration: none; background: var(--color-primary-hover); color: #fff; }
.book-sidebar__steps { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: 26px; }
.book-sidebar__steps-title { font-size: 17px; color: var(--teal-deep); margin: 0 0 16px; }
.book-steps { display: flex; flex-direction: column; gap: 16px; }
.book-steps__item { display: flex; gap: 12px; align-items: flex-start; }
.book-steps__icon { width: 34px; height: 34px; border-radius: 50%; background: var(--teal-wash); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.book-steps__icon svg { color: var(--teal-deep); }
.book-steps__title { font-weight: var(--weight-semibold); font-size: 14.5px; color: var(--teal-deep); }
.book-steps__body { font-size: 13px; color: var(--color-text); line-height: 1.6; }
.book-sidebar__badges { display: flex; flex-wrap: wrap; gap: 10px; }
.book-sidebar__badge { font-size: 12.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); background: var(--teal-wash); padding: 8px 14px; border-radius: var(--radius-pill); }

/* ==== Health & Safety page: hero ==== */
.health-safety-hero { padding-top: 32px; }
.health-safety-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.health-safety-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.health-safety-hero__text { font-size: 16px; color: var(--color-text); max-width: 620px; margin-bottom: 26px; }
.health-safety-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Health & Safety page: practices (reuses .value-grid / .value-card) ==== */
.safety-practices { padding-top: 30px; padding-bottom: 44px; }

/* ==== Health & Safety page: vaccine schedule ==== */
.vaccine-schedule { padding-bottom: 44px; }
.vaccine-schedule__panel { background: var(--teal-mist); border-radius: var(--radius-xl); padding: 40px 28px; }
.vaccine-schedule__list { display: flex; flex-direction: column; gap: 12px; max-width: 800px; margin: 0 auto; }
.vaccine-schedule__row { background: #fff; border-radius: var(--radius-md); padding: 18px 22px; display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.vaccine-schedule__age { font-weight: var(--weight-bold); color: var(--teal-deep); font-size: 14.5px; min-width: 150px; }
.vaccine-schedule__items { font-size: 13.5px; color: var(--color-text); flex: 1; }
.vaccine-schedule__source { text-align: center; font-size: 12.5px; color: var(--color-text-muted); margin-top: 22px; }
.vaccine-schedule__source a { color: var(--color-link); font-weight: var(--weight-semibold); }

/* ==== Health & Safety page: bottom CTA ==== */
.safety-page-cta { padding-bottom: 44px; }
.safety-page-cta__panel { text-align: center; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: 36px 24px; }
.safety-page-cta__title { font-size: 26px; color: var(--teal-deep); margin: 0 0 10px; }
.safety-page-cta__text { font-size: 14.5px; margin-bottom: 20px; color: var(--color-text); }

/* ==== Provider detail page ==== */
.provider-detail-hero { padding-top: 32px; }
.provider-detail-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 44px 0 36px; }
.provider-detail-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 20px; }
.provider-detail-hero__crumbs a { color: var(--teal-soft); }
.provider-detail-hero__crumb-current { color: var(--teal-deep); }
.provider-detail-hero__body { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.provider-detail-hero__name { font-size: 36px; margin: 0 0 6px; color: var(--teal-deep); }
.provider-detail-hero__role { font-size: 15px; font-weight: var(--weight-semibold); color: var(--teal-soft); margin-bottom: 10px; }
.provider-detail-hero__office {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: var(--weight-semibold); color: var(--teal-deep);
  background: #fff; padding: 6px 14px; border-radius: var(--radius-pill);
}

.provider-detail-about { padding-top: 40px; padding-bottom: 8px; }
.provider-detail-about__grid { display: grid; grid-template-columns: 1.3fr 0.9fr; gap: 44px; }
.provider-detail-about__title { font-size: 26px; margin: 12px 0 14px; color: var(--teal-deep); }
.provider-detail-about__text { font-size: 15.5px; line-height: 1.75; color: var(--color-text); margin-bottom: 14px; }

.provider-confirmed { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 26px; align-self: start; }
.provider-confirmed__label { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal-deep); margin-bottom: 14px; }
.provider-confirmed__list { display: flex; flex-direction: column; gap: 14px; }
.provider-confirmed__row { display: flex; gap: 12px; align-items: flex-start; }
.provider-confirmed__row svg { width: 17px; height: 17px; color: var(--color-primary); flex-shrink: 0; margin-top: 2px; }
.provider-confirmed__row strong { color: var(--color-text-strong); font-size: 13.5px; }
.provider-confirmed__row span { font-size: 13.5px; color: var(--color-text); }
.provider-confirmed__cta { display: block; width: 100%; justify-content: center; margin-top: 20px; }

.provider-related { padding-top: 48px; padding-bottom: 56px; }
.provider-related__intro { text-align: center; max-width: 500px; margin: 0 auto 26px; }
.provider-related__title { font-size: 26px; margin: 12px 0 0; color: var(--teal-deep); }
.provider-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.provider-related__card { display: block; background: var(--teal-wash); border-radius: var(--radius-lg); padding: 22px; text-align: center; }
.provider-related__card:hover { text-decoration: none; background: var(--teal-phca); }
.provider-related__card-name { font-size: 14.5px; font-weight: var(--weight-semibold); color: var(--teal-deep); }

/* ==== FAQ page: hero ==== */
.faq-hero { padding-top: 32px; }
.faq-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.faq-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.faq-hero__text { font-size: 16px; color: var(--color-text); margin-bottom: 26px; }
.faq-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== FAQ page: search + category filter + accordion ==== */
.faq-browser { padding-top: 20px; padding-bottom: 56px; }
.faq-browser__controls { max-width: 780px; margin: 0 auto 30px; }
.faq-search { position: relative; margin-bottom: 18px; }
.faq-search__icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--color-text-muted); }
.faq-search__input { width: 100%; padding: 13px 16px 13px 44px; border-radius: var(--radius-pill); border: 1px solid var(--color-border); font-size: 15px; font-family: var(--font-body); box-sizing: border-box; }
/* .cat-pill / .cat-pill__count (category filter pills) now live in components.css, shared with the Blog page */
.faq-browser__empty { text-align: center; color: var(--color-text-muted); font-size: 15px; }
.faq-browser__groups { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 34px; }
.faq-group[hidden] { display: none; }
.faq-group__head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.faq-group__bar { width: 4px; height: 20px; background: var(--color-primary); border-radius: 2px; display: inline-block; }
.faq-group__title { font-size: 19px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0; }
.faq-group__list { display: flex; flex-direction: column; }
.faq-q { border-bottom: 1px solid var(--color-border); }
.faq-q[hidden] { display: none; }
.faq-q__trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 4px; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font-body); }
.faq-q__trigger span { font-weight: var(--weight-semibold); font-size: 15px; color: var(--color-text-strong); }
.faq-q__chevron { color: var(--color-primary); flex-shrink: 0; transition: transform var(--transition-fast); }
.faq-q__trigger[aria-expanded="true"] .faq-q__chevron { transform: rotate(180deg); }
.faq-q__answer { padding: 0 4px 18px; font-size: 14.5px; line-height: 1.7; color: var(--color-text); }
.faq-q__answer[hidden] { display: none; }

/* ==== Policies hub: hero ==== */
.policies-hero { padding-top: 32px; }
.policies-hero__panel { position: relative; overflow: hidden; background: var(--teal-deep); border-radius: 0; padding: 48px 0 40px; }
.policies-hero__eyebrow { font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-primary); }
.policies-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: #fff; }
.policies-hero__text { font-size: 16px; color: rgba(255, 255, 255, 0.88); max-width: 640px; margin-bottom: 26px; }
.policies-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.policies-hero__btn-ghost { background: transparent; border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.policies-hero__btn-ghost:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }

/* ==== Policies hub: grid ==== */
.policies-grid { padding-top: 44px; padding-bottom: 56px; }
.policies-grid__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.policy-card { display: block; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 26px; box-shadow: var(--shadow-xs); }
.policy-card:hover { text-decoration: none; box-shadow: var(--shadow-sm); }
.policy-card__icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--teal-wash); margin-bottom: 16px; }
.policy-card__icon svg { color: var(--teal-deep); }
.policy-card__title { font-size: 17px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 8px; }
.policy-card__body { font-size: 14px; line-height: 1.65; color: var(--color-text); margin: 0 0 14px; }
.policy-card__link { font-size: 13px; font-weight: var(--weight-bold); color: var(--color-link); display: inline-flex; align-items: center; gap: 4px; }

/* ==== Single blog post ==== */
.single-post-crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); padding-top: 28px; margin-bottom: 20px; }
.single-post-crumbs a { color: var(--teal-soft); }
.single-post-crumbs svg { width: 14px; height: 14px; }
.single-post-crumb-current { color: var(--teal-deep); }

/* ==== Printable patient forms (HIPAA release / over-18 consent / auth release) ==== */
.print-form-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 28px; padding-bottom: 20px; }
.print-form-toolbar__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); }
.print-form-toolbar__crumbs a { color: var(--teal-soft); }
.print-form-toolbar__crumbs span:last-child { color: var(--teal-deep); }
.print-form-toolbar__crumbs svg { width: 14px; height: 14px; }

.print-form { padding-bottom: 56px; }
.print-form__sheet { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 28px 40px; max-width: 900px; margin: 0 auto; font-size: 13px; color: #1a1a1a; }

.pf-hdr { display: flex; align-items: center; gap: 14px; border-bottom: 3px solid var(--teal-deep); padding-bottom: 12px; margin-bottom: 18px; }
.pf-hdr img { height: 46px; width: auto; }
.pf-hdr__titles { flex: 1; }
.pf-hdr__titles h1 { font-size: 15px; letter-spacing: 0.03em; color: var(--teal-deep); margin: 0 0 3px; text-transform: uppercase; font-family: var(--font-body); }
.pf-hdr__titles h2 { font-size: 12.5px; font-weight: var(--weight-semibold); color: #333; margin: 0; letter-spacing: 0.02em; }

.pf-offices { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; font-size: 12px; line-height: 1.5; color: #333; margin-bottom: 20px; }
.pf-offices div { background: var(--teal-wash); border-radius: var(--radius-sm); padding: 10px 12px; }
.pf-offices strong { display: block; font-size: 12.5px; color: var(--teal-deep); margin-bottom: 2px; }

.pf-row { display: flex; gap: 24px; margin-bottom: 16px; font-size: 13px; }
.pf-row--tight { margin-bottom: 0; }
.pf-row--wide-gap { gap: 48px; margin-bottom: 16px; }
.pf-row--top-gap { margin-top: 16px; margin-bottom: 0; }
.pf-field { flex: 1; }
.pf-field--narrow { flex: 0 0 180px; }
.pf-field--fixed-130 { flex: 0 0 130px; }
.pf-field--fixed-160 { flex: 0 0 160px; }
.pf-line { border-bottom: 1px solid #333; height: 22px; margin-bottom: 3px; }
.pf-label { font-size: 10.5px; color: #666; letter-spacing: 0.03em; }
.pf-label--strong { font-size: 11px; font-weight: var(--weight-bold); letter-spacing: 0.03em; }

.pf-name-row { display: flex; gap: 48px; border-bottom: 1px solid #333; padding-bottom: 24px; margin-bottom: 3px; }

.pf-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.pf-mini-field { font-size: 11px; color: #555; margin-bottom: 6px; }
.pf-mini-field .pf-line { height: 16px; margin-bottom: 2px; }
.pf-cap { color: #666; }

.pf-section-title { font-size: 13px; font-weight: var(--weight-bold); text-decoration: underline; margin: 18px 0 9px; color: #111; }
.pf-section-title--first { margin-top: 0; }
.pf-highlight { background: #fff59d; font-weight: var(--weight-bold); padding: 2px 4px; text-decoration: none; display: inline-block; }

.pf-checks { display: flex; flex-wrap: wrap; gap: 16px; font-size: 12px; margin-bottom: 8px; align-items: center; }
.pf-checks--last { margin-bottom: 14px; }
.pf-checks--col { flex-direction: column; align-items: flex-start; gap: 6px; }
.pf-chk { width: 12px; height: 12px; border: 1px solid #333; display: inline-block; margin-right: 6px; vertical-align: -1px; }
.pf-blank { display: inline-block; border-bottom: 1px solid #999; }
.pf-blank--md { width: 160px; }
.pf-blank--lg { width: 260px; }

.pf-sig-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 14px; }
.pf-sig-row--tight { margin-bottom: 6px; }
.pf-sig-line { border-bottom: 1px solid #333; height: 22px; margin-bottom: 3px; }
.pf-sig-line--spaced { margin-top: 10px; }
.pf-sig-line--220 { width: 220px; }
.pf-sig-label { font-size: 12px; font-weight: var(--weight-semibold); }
.pf-sig-cap { font-size: 11px; font-style: italic; color: #333; }
.pf-sig-block { margin-top: 10px; }

.pf-consent { font-size: 10.5px; line-height: 1.5; color: #333; margin: 8px 0 14px; font-style: italic; }
.pf-notice { font-size: 12.5px; font-weight: var(--weight-bold); line-height: 1.4; margin-top: 18px; }

.pf-form-title { text-align: center; font-size: 16px; font-weight: var(--weight-bold); text-decoration: underline; margin: 20px 0 22px; letter-spacing: 0.02em; }
.pf-intro { font-size: 13px; line-height: 1.75; color: #222; margin-bottom: 18px; }
.pf-box { border: 2px solid #111; border-radius: var(--radius-sm); padding: 16px 18px; font-size: 13px; line-height: 1.7; margin-bottom: 18px; }
.pf-box strong { text-transform: uppercase; }
.pf-disclaimer { font-size: 12px; line-height: 1.6; color: #333; border-top: 1px solid var(--color-border); padding-top: 14px; }

.pf-row3 { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 24px; margin: 18px 0; }
.pf-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 18px; }

.pf-records-fee { margin-top: 18px; padding-top: 10px; border-top: 1px solid var(--color-border); }
.pf-records-fee .pf-tag { background: #fff59d; font-weight: var(--weight-bold); text-decoration: underline; font-size: 12.5px; padding: 2px 4px; }
.pf-records-fee__opts { font-size: 12px; margin-top: 8px; display: flex; gap: 32px; }

.pf-ftr { border-top: 1px solid var(--color-border); margin-top: 20px; padding-top: 8px; display: flex; justify-content: space-between; font-size: 10.5px; color: #777; }

@media print {
  .no-print, #site-header, .site-footer, .skip-link { display: none !important; }
  body { background: #fff !important; }
  .print-form__sheet { border: none; box-shadow: none; padding: 0; max-width: none; }
  .container { max-width: none; padding-inline: 0; }
}
.provider-related__card-role { font-size: 12.5px; color: var(--teal-soft); margin-top: 4px; }

/* ==== Gallery page: hero ==== */
.gallery-hero { padding-top: 32px; }
.gallery-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.gallery-hero__crumbs { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: var(--weight-bold); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--teal-soft); margin-bottom: 18px; }
.gallery-hero__crumbs a { color: var(--teal-soft); }
.gallery-hero__crumb-current { color: var(--teal-deep); }
.gallery-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.gallery-hero__text { font-size: 16px; color: var(--color-text); max-width: 620px; margin-bottom: 26px; }
.gallery-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Gallery page: photo grid ==== */
.gallery-grid-section { padding-top: 20px; padding-bottom: 56px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-grid__tile { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-xs); aspect-ratio: 4 / 3; }
.gallery-grid__tile img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ==== Blog / Health Library: hero ==== */
.blog-hero { padding-top: 32px; }
.blog-hero__panel { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--teal-mist), var(--teal-wash)); border-radius: 0; padding: 48px 0 40px; }
.blog-hero__title { font-size: 42px; line-height: 1.12; margin: 12px 0 14px; color: var(--teal-deep); }
.blog-hero__text { font-size: 16px; color: var(--color-text); max-width: 620px; margin-bottom: 26px; }
.blog-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ==== Blog / Health Library: shared card meta (featured + grid cards) ==== */
.blog-card__media { border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 3 / 2; margin-bottom: 16px; background: var(--teal-wash); }
.blog-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--transition-base); }
.article-card:hover .blog-card__media img { transform: scale(1.03); }
.blog-card__media-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--teal-deep); }
.blog-card__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.blog-card__tag { font-size: 11.5px; font-weight: var(--weight-bold); letter-spacing: 0.04em; text-transform: uppercase; color: var(--teal-deep); }
.blog-card__read { font-size: 12px; color: var(--color-text-muted); display: inline-flex; align-items: center; gap: 5px; }
.blog-card__link { font-size: 13px; font-weight: var(--weight-bold); color: var(--color-link); display: inline-flex; align-items: center; gap: 4px; }

/* ==== Blog: featured post ==== */
.blog-featured { padding-top: 8px; padding-bottom: 40px; }
.blog-featured__card { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.blog-featured__card:hover { text-decoration: none; }
.blog-featured__media { border-radius: var(--radius-xl); overflow: hidden; aspect-ratio: 4 / 3; background: var(--teal-wash); }
.blog-featured__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-featured .blog-card__media-fallback { width: 100%; height: 100%; }
.blog-featured__title { font-size: 30px; line-height: 1.2; color: var(--teal-deep); margin: 0 0 12px; }
.blog-featured__excerpt { font-size: 15.5px; line-height: 1.7; color: var(--color-text); margin: 0 0 18px; }

/* ==== Blog / Health Library: filterable article grid ==== */
.article-grid-section { padding-top: 10px; padding-bottom: 56px; }
.article-grid-section .cat-pill-row { margin-bottom: 34px; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.article-card { display: block; }
.article-card:hover { text-decoration: none; }
.article-card__title { font-size: 17px; font-weight: var(--weight-semibold); color: var(--teal-deep); margin: 0 0 8px; line-height: 1.35; }
.article-card__excerpt { font-size: 13.5px; line-height: 1.6; color: var(--color-text); margin: 0 0 12px; }
.article-card[hidden] { display: none; }
.article-grid-section__empty { text-align: center; padding: 40px 20px; color: var(--color-text-muted); font-size: 15px; }
.article-grid-section__empty[hidden] { display: none; }
