/* Shared responsive type scale, matching the restored October 1 homepage. */
:root {
  --section-heading-size: clamp(3rem, 6.5vw, 6rem);
  --body-size: clamp(1.05rem, 1.35vw, 1.25rem);
  --support-size: var(--body-size);
  --category-size: clamp(1.5rem, 2.2vw, 2rem);
  --hero-heading-size: min(8vw, 9rem);
}

html .hero h1,
html .solutions-intro h1,
html .about-hero h1,
html .program-hero h1 {
  font-size: var(--hero-heading-size);
  line-height: .92;
}

/* Allow the longer Who We Are title to wrap within its existing container. */
html .about-hero h1 > span { white-space: normal; }

html .statement h2,
html .approach-text h2,
html .beyond h2,
html .services h2,
html .work-heading h2,
html .closing h2,
html .solution h2,
html .solutions-cta h2,
html .about-section h2,
html .about-details h2,
html .about-cta h2,
html .program-section h2,
html .contact-intro h1 {
  font-size: var(--section-heading-size);
  line-height: .95;
  letter-spacing: -.025em;
}

html .tile-caption strong,
html .services-display h3,
html .work-layout .principles summary,
html .about-values h3,
html .program-card h3,
html .program-step h3,
html .program-type h3 {
  font-size: var(--category-size);
}

html .hero .intro p,
html .statement p,
html .approach-text p,
html .beyond-head p,
html .services-heading-row .services-intro,
html .services-display .service-copy p,
html .work-heading p,
html .work-layout .principles details p,
html .closing p,
html .tile-body,
html .solutions-intro p,
html .solutions-navigation-intro,
html .solution-copy p,
html .solution-examples,
html .solutions-cta p,
html .about-hero p:not(.eyebrow):not(.story-kicker):last-child,
html .about-section p:not(.value-number):not(.story-kicker),
html .about-details p,
html .about-cta p,
html .program-hero p:not(.eyebrow),
html .program-section p,
html .program-section li,
html .program-close p,
html .contact-intro p {
  font-size: var(--body-size);
  line-height: 1.6;
}

/* Compact diagram labels remain smaller than the primary copy. */
html .program-network p { font-size: clamp(.95rem, 1.2vw, 1.125rem); }

@media (max-width: 800px) {
  :root { --hero-heading-size: 8vw; }
}

/* Compact, consistent navigation across desktop and collapsed menus. */
html header .links a,
html header .ideas-nav summary {
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 400;
}

html header .links a:hover,
html header .links a:focus-visible,
html header .ideas-nav summary:hover,
html header .ideas-nav summary:focus-visible {
  font-weight: 700;
}
