/* Shared subpage type roles, taken from the unchanged homepage. */
:root {
  --mc-title-size: clamp(60px, 7.2vw, 118px);
  --mc-title-line: .86;
  --mc-title-tracking: -.075em;
  --mc-section-size: clamp(42px, 5vw, 74px);
  --mc-card-size: clamp(36px, 3vw, 52px);
  --mc-lead-size: clamp(18px, 1.4vw, 22px);
}
main:not(.home-page) h1 {
  font-family: var(--font-display) !important;
  font-size: var(--mc-title-size);
  font-weight: 400 !important;
  line-height: var(--mc-title-line);
  letter-spacing: var(--mc-title-tracking) !important;
}
main:not(.home-page) h2 {
  font-family: var(--font-display) !important;
  font-size: var(--mc-section-size);
  font-weight: 400 !important;
  line-height: 1;
  letter-spacing: -.055em !important;
}
main:not(.home-page) :is(h1,h2) em {
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-weight: 400 !important;
}
/* Editorial cards match homepage competency cards, regardless of heading level. */
main:not(.home-page) :is(.competency-services h3,.competency-detail-services h3,.about-values h2,.partner-path-grid h2,.subpage-services h2) {
  font-family: var(--font-display) !important;
  font-size: var(--mc-card-size);
  font-weight: 400 !important;
  line-height: .95;
  letter-spacing: -.055em !important;
}
main:not(.home-page) :is(.service-related h3,.legal-section h3) {
  font-family: var(--font-body);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.045em;
}
/* Standard copy uses the homepage's 17 px card/body role. */
main:not(.home-page) :is(p:not(.eyebrow),.legal-address,.legal-section li,.service-question-card li,.service-deep-dive li,.service-approach li,.partner-process li) {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.55;
}
/* Intro paragraphs match the homepage hero lead. */
main:not(.home-page) :is(.subpage-hero>p:last-child,.service-hero-copy>p:last-child,.partner-hero>p:not(.eyebrow),.checklist-hero>div>p:last-child,.about-page-hero>div:first-child>p:last-child,.legal-hero>p:last-child) {
  font-size: var(--mc-lead-size);
  line-height: 1.55;
}
/* Contact block and FAQ retain their exact homepage counterparts. */
main:not(.home-page) .contact-card h1 {
  font-size: clamp(50px,6vw,88px);
  line-height: .92;
  letter-spacing: -.065em !important;
}
main:not(.home-page) .contact-card>div>p:not(.eyebrow) {font-size:18px;line-height:1.6}
main:not(.home-page) .service-faq summary {font-family:var(--font-body);font-size:21px;font-weight:700;line-height:1.5}
main:not(.home-page) .service-faq details p {font-size:16px;line-height:1.7}
/* Checklist choices match the homepage checklist preview, not oversized lead text. */
main:not(.home-page) .checklist-list p {font-size:17px;line-height:1.45;letter-spacing:normal}
main:not(.home-page) :is(h1,h2,h3) {overflow-wrap:anywhere;hyphens:auto}
@media(max-width:640px) {
  :root {--mc-title-size:clamp(60px,17vw,70px)}
  main:not(.home-page) .contact-card h1 {font-size:49px}
}

/* Match the homepage mobile text gutter: 12 px image inset + 12 px inner padding = 24 px. */
@media(max-width:640px) {
  main:not(.home-page) .service-detail-hero {padding-left:12px;padding-right:12px}
}

/* Let whole words wrap before considering emergency breaks. */
main:not(.home-page) :is(h1,h2,h3) {hyphens:manual;text-wrap:wrap}
/* Display titles use intentional soft-hyphen opportunities; whole words otherwise stay together. */
main:not(.home-page) h3 {hyphens:auto}
main:not(.home-page) .legal-section h2 {hyphens:auto}
