/* Shared line-breaking rules. Short labels keep their intrinsic width;
   longer headings may wrap without leaving a single character behind. */
h1,h2,h3{line-break:strict;word-break:normal;overflow-wrap:normal;text-wrap:balance}
@supports(word-break:auto-phrase){h1,h2,h3{word-break:auto-phrase}}
.rail-heading h2,.news-heading h2,.join-label h2{white-space:nowrap}
@media(min-width:821px){
 .editorial-section:not(.news-section),.about-stage{grid-template-columns:max-content minmax(0,1fr)}
 .rail-heading{padding-left:clamp(28px,4.5vw,72px);padding-right:clamp(28px,3vw,48px)}
 .about-stage .rail-heading{padding-right:clamp(28px,3vw,48px)}
 .about-stage .about-copy{width:calc(100% - var(--page-gutter));max-width:800px}
}
/* Give the intro room before its action link competes with the heading. */
@media(min-width:821px) and (max-width:1100px){
 .rail-intro{align-items:flex-start;flex-direction:column;gap:20px}
}
.service-card h3,.work-card h3{align-items:flex-start;gap:16px}
.service-card h3>.card-title,.work-card h3>.card-title{display:block;flex:1;min-width:0;width:auto;height:auto;border:0;border-radius:0;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;transition:none;text-wrap:balance}
.service-card:hover h3>.card-title,.work-card:hover h3>.card-title{transform:none;background:none;color:inherit}
.service-card h3>span[aria-hidden],.work-card h3>span[aria-hidden]{flex:none}
.text-unit{display:inline-block;white-space:nowrap}
@media(max-width:560px){
 .news-heading{flex-wrap:wrap}
 .page-head h1{font-size:clamp(28px,7.8vw,34px)}
 .article-page h1{font-size:clamp(25px,7vw,29px)}
}
