/* Keep editorial word groups intact; paragraphs avoid short final lines. */
main :is(h1, h2, h3, h4) {
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal !important;
  hyphens: manual;
}
main :is(p, li), .footer p {
  text-wrap: pretty;
  hyphens: manual;
}
.discretionary-wrap { overflow-wrap: normal !important; }
.contact-grid address a[href^="mailto:"] { white-space: nowrap; }

/* Word groups must not enlarge the minimum width of a grid column. */
.company-story-layout > *, .jobs > *, .cards--services > *,
.relationship-layout > *, .energy-layout > *, .contact-grid > *,
.relationship-steps > *, .relationship-steps li > div {
  min-width: 0;
}
@media (max-width: 480px) {
  .timeline { grid-template-columns: minmax(0, 1fr); }
}

/* A bounded fallback also keeps both homepage hero lines intact without JS. */
.home-page .hero-copy { container-type: inline-size; }
.home-page .hero-copy h1 {
  font-size: min(clamp(4.25rem, 7.2vw, 7.45rem), 13.5cqi);
}
@media (max-height: 760px) and (min-width: 701px) {
  .home-page .hero-copy h1 { font-size: min(clamp(3.6rem, 6.4vw, 5.8rem), 13.5cqi); }
}
@media (min-width: 1680px) and (min-height: 900px) and (max-height: 1200px) {
  .home-page .hero-copy h1 { font-size: min(clamp(5.6rem, 5.7vw, 6.85rem), 13.5cqi); }
}
@media (max-width: 700px) {
  .home-page .hero-copy h1 { font-size: min(clamp(3.4rem, 16.1vw, 5rem), 13.5cqi); }
}
@media (max-width: 480px) {
  .home-page .hero-copy h1 { font-size: min(clamp(3.05rem, 15.2vw, 4rem), 13.5cqi); }
}
