/* Shared reading rhythm across program, editorial, campaign, and utility pages. */
body :is(h1,h2,h3,h4,h5,h6){text-wrap:balance}
body :is(p,li,dd,dt,blockquote,figcaption,label,summary){text-wrap:pretty}
body :is(.hero-lead,.section-intro>p,.eyebrow,.lead,.artifact-title,.artifact-row strong,.fit-list strong,.fit-list span,.include-list strong,.help-description,.help-duration,.help-link-label){text-wrap:balance}

/* Let phrases wrap naturally instead of reserving a whole line for one word. */
body :is(h1,h2,h3,h4,h5,h6) br{display:none}

/* Keep prominent introductions compact even when the left column has more room. */
body:is(.page-team-sprint,.page-enablement-program,.page-workshop) .hero-lead{
  max-inline-size:34ch;
  text-wrap:balance;
}
body:is(.page-team-sprint,.page-enablement-program,.page-workshop) .hero-description{
  max-inline-size:54ch;
  text-wrap:pretty;
}
body .hero-copy{min-inline-size:0}
body :is(.article-hero-grid,.offer-grid)>*{min-inline-size:0}
body .about-experience dd br{display:none}
body .about-experience dd{max-inline-size:24ch;text-wrap:balance}
body .bp-title-mobile{max-inline-size:100%;text-wrap:balance}
body .bp-title-mobile em{white-space:nowrap}
body .direct-email a{overflow-wrap:anywhere}
body .type-ending{white-space:nowrap}

@media(max-width:800px){
  body :is(.offer-card,.payoff-offer) h3{font-size:28px}
  body .support-band h3{font-size:28px}
}
@media(max-width:500px){
  body .trainer{grid-template-columns:68px minmax(0,1fr);gap:16px}
  body .trainer>img{width:68px;height:96px}
  body .trainer h3{font-size:28px}
  body .bp-hero h1{font-size:clamp(45px,13.5vw,58px)}
  body.utility-page h1{font-size:clamp(36px,11vw,50px)}
}

/* Narrow columns need smaller long phrases, rather than a stranded last word. */
body #hero-title{overflow-wrap:normal}
body:not([class]) #hero-title{font-size:clamp(33px,5.1vw,72px)}
body :is(#proof-title,#payoff-proof-title){font-size:clamp(32px,3.7vw,48px)}
body .article-hero h1[data-type-ending="long"]{font-size:clamp(30px,4.1vw,56px)}
body .hero:not(.dark) h1:not(#hero-title){font-size:clamp(32px,3.5vw,50px)}
body .book-grid h2{font-size:clamp(32px,3.3vw,46px)}
body main.section-dark h1{font-size:clamp(32px,4vw,58px)!important}
body .about-experience{grid-template-columns:1fr 1fr}
body .approval-toolbar label{white-space:nowrap}
@media(max-width:800px){
  body :is(.offer-card,.payoff-offer) h3{font-size:26px}
}
@media(max-width:1050px){
  body .bp-reading-intro h2{font-size:clamp(36px,4.8vw,46px)}
  body .bp-reading-intro h2 em{white-space:nowrap}
}
@media(max-width:500px){
  body :is(h2,h3)[data-type-ending="long"]{font-size:30px}
  body .article-body :is(h2,h3)[data-type-ending="long"]{font-size:27px}
  body .article-hero h1[data-type-ending="long"]{font-size:29px}
  body.page-enablement-program .hero h1{font-size:clamp(38px,12vw,58px)}
  body .offer-grid h2,body .book-grid h2{font-size:30px}
  body .scope-panel h3{font-size:29px}
  body .handoff h3{font-size:30px}
  body .roles-grid h3[data-type-ending="long"]{font-size:26px}
  body .artifact-row strong{font-size:14px}
  body .fact{padding-inline:10px}
  body .fact dd{font-size:13px}
  body .about-experience{grid-template-columns:1fr}
}

/* Long editorial paragraphs retain a comfortable measure and a natural rag. */
body :is(.article-body,.resource-article,.legal-content)>p{max-inline-size:68ch}
