/* Final typography and responsive spacing layer */
:root {
  --copy-measure: 68ch;
  --heading-measure: 19ch;
}

h1,
h2,
h3 {
  text-wrap: balance;
  overflow-wrap: normal;
  hyphens: none;
}

p,
li {
  text-wrap: pretty;
}

.section-heading {
  max-width: 900px;
}

.section-heading h2,
.pricing-heading h2,
.intro-grid h2,
.website-intro h2,
.region-grid h2,
.split-panel h2,
.contact-copy h2,
.narrow-center h2 {
  max-width: var(--heading-measure);
}

.section-heading > p:last-child,
.pricing-heading > p,
.intro-copy,
.website-copy,
.region-grid > div:first-child > p:not(.eyebrow),
.split-panel > p:not(.eyebrow),
.contact-copy > p:not(.eyebrow),
.narrow-center > p:not(.eyebrow) {
  max-width: var(--copy-measure);
}

.overview-card h3,
.service-detail-card h3,
.price-card h3,
.care-card h3 {
  text-wrap: balance;
}

@media (max-width: 1050px) {
  h2 {
    font-size: clamp(34px, 4.8vw, 46px) !important;
    line-height: 1.12 !important;
  }

  .section-heading {
    max-width: 820px;
  }

  .section-heading h2 {
    max-width: 17ch;
  }

  .section-heading > p:last-child {
    max-width: 62ch;
  }
}

@media (max-width: 850px) {
  h2 {
    font-size: clamp(32px, 7vw, 42px) !important;
  }

  .section-heading,
  .pricing-heading,
  .intro-grid > div:first-child,
  .website-intro > div:first-child {
    max-width: 100%;
  }

  .section-heading h2,
  .pricing-heading h2,
  .intro-grid h2,
  .website-intro h2,
  .region-grid h2,
  .split-panel h2,
  .contact-copy h2,
  .narrow-center h2 {
    max-width: 20ch;
  }

  .section-heading > p:last-child,
  .pricing-heading > p,
  .intro-copy,
  .website-copy,
  .region-grid > div:first-child > p:not(.eyebrow),
  .split-panel > p:not(.eyebrow),
  .contact-copy > p:not(.eyebrow),
  .narrow-center > p:not(.eyebrow) {
    max-width: 58ch;
  }
}

@media (max-width: 620px) {
  h1,
  h2,
  h3 {
    text-wrap: pretty;
  }

  h2 {
    font-size: clamp(30px, 9.5vw, 38px) !important;
    line-height: 1.14 !important;
  }

  .section-heading h2,
  .pricing-heading h2,
  .intro-grid h2,
  .website-intro h2,
  .region-grid h2,
  .split-panel h2,
  .contact-copy h2,
  .narrow-center h2 {
    max-width: 100%;
  }
}

/* Audience section and pricing refinements */
.audience-section {
  background: #fff;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.audience-card {
  min-width: 0;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: 0 10px 28px rgba(6, 24, 41, .06);
}

.audience-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  border-radius: 14px;
  color: var(--blue-700);
  background: var(--blue-100);
}

.audience-icon svg {
  width: 24px;
  height: 24px;
}

.audience-card h3 {
  margin: 0 0 10px;
  font-size: 22px;
}

.audience-card p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

.offer-label {
  font-weight: 800;
}

.reference-footnote,
.pricing-note,
.care-note {
  max-width: 980px;
  margin-inline: auto;
}

@media (max-width: 1050px) {
  .audience-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .audience-grid {
    grid-template-columns: 1fr;
  }

  .audience-card {
    padding: 24px;
  }
}
