/* Bounded typography shared by every public page, after legacy theme rules.
   Rem limits preserve browser text scaling; wide screens never enlarge columns' titles. */
body h1 {
  font-size: clamp(2.5rem, 2rem + 2.2vw, 4.5rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
  max-width: min(100%, 18ch) !important;
}
body h2 {
  font-size: clamp(2rem, 1.6rem + 1.5vw, 3.5rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
}
body :is(h1, h2, h3) {
  text-wrap: balance;
  overflow-wrap: break-word;
  word-break: normal;
}
body :is(.ig-profile, .recent-work-copy, .custom-copy, .process-copy, .lab-copy, .contact-copy, .google-card, .pm-home, .case-card, .team-panel) h2 {
  font-size: clamp(1.9rem, 1.55rem + 1vw, 2.75rem) !important;
}
body .case-card h2 { font-size: clamp(1.65rem, 1.4rem + .7vw, 2.25rem) !important; }
body :is(.hero-copy, .section-head, .ig-profile, .recent-work-copy, .custom-copy, .process-copy, .lab-copy, .contact-copy, .subpage-hero-grid > *, .pm-hero > *, .dp-hero > *) { min-width: 0; }
body h1 .no-break, body h2 .no-break { white-space: normal; }
body h1 span, body h2 span { line-height: inherit; }
@media (max-width: 760px) {
  body h1 { font-size: clamp(2.25rem, 1.25rem + 4.5vw, 3.25rem) !important; line-height: 1.1 !important; }
  body h2,
  body :is(.ig-profile, .recent-work-copy, .custom-copy, .process-copy, .lab-copy, .contact-copy, .google-card, .pm-home, .team-panel) h2 {
    font-size: clamp(1.8rem, 1.2rem + 2.6vw, 2.5rem) !important;
    line-height: 1.15 !important;
    max-width: 100% !important;
  }
  body .case-card h2 { font-size: clamp(1.6rem, 1.2rem + 2vw, 2rem) !important; }
}
