/* Shared semantic headings retain the established responsive type and color tokens. */
#main .page-primary-heading {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}
#main .home-page .hero-copy h1.page-primary-heading {
  text-wrap: balance;
}
#main .approved-oem-process header h2 {
  font-family: var(--body-font);
  font-size: calc(23*var(--ou));
  line-height: 1.3;
  margin: 0 0 calc(5*var(--ou));
}
#main :is(.contact-v2-hero,.cases-v2-hero) p {
  max-width: 65ch;
}
@media (min-width: 1200px) {
  #main .approved-oem-copy h1.page-primary-heading { font-size: clamp(32px,3.2vw,54px); }
  #main .page-banner h1.page-primary-heading { max-width: 25ch; }
}
@media (max-width: 1199px) {
  #main .page-primary-heading { text-wrap: balance; }
  #main .home-page .hero-copy h1.page-primary-heading { display: block; }
}
@media (max-width: 767px) {
  #main :is(.contact-v2-hero,.cases-v2-hero) h1.page-primary-heading { font-size: 28px; line-height: 1.3; }
  #main :is(.contact-v2-hero,.cases-v2-hero) p { font-size: 13px; line-height: 1.5; }
}
/* Introductions grow with translated copy instead of centering outside a fixed box. */
#main :is(.contact-v2-hero,.cases-v2-hero) {
  height: auto;
  min-height: 196px;
  padding-block: 28px;
}
@media (max-width: 767px) {
  #main :is(.contact-v2-hero,.cases-v2-hero) {
    min-height: 112px;
    padding-block: 20px;
  }
}

@media (max-width: 1199px) {
  #main [data-mobile-catalog-heading] h1.page-primary-heading {
    font: 600 18px/1.45 var(--body-font);
    color: var(--brand);
    margin: 0;
    text-wrap: balance;
  }
}
