/* Shared responsive typography; existing type sizes and authored breaks stay intact. */
:where(h1,h2,h3,h4,h5,h6,dt,p,dd,blockquote,figcaption,
       .study-intake li,.service-intake li,.overview-notes li,.pm-body li,
       .pm-facts > div > strong,.pm-facts > div > span) {
 text-wrap:balance;
}

/* A final phrase stays together when it fits, and can still wrap on narrow screens. */
.prose-tail,.study-intake li .prose-tail,.pm-facts .prose-tail {
 display:inline-block;
 inline-size:max-content;
 max-inline-size:100%;
 vertical-align:bottom;
 white-space:normal;
 font:inherit;
 color:inherit;
 letter-spacing:inherit;
 padding:0;
 margin:0;
}

/* Give small-screen copy enough room for useful phrases. */
@media (max-width:650px) {
 .front-head { grid-template-columns:minmax(0,1fr); gap:24px; }
 .front-head p { justify-self:start; max-width:none; }
 .ft-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ft-cols > * { min-width:0; }
 .ft-cols .ft-brand { grid-column:1 / -1; }
}
@media (max-width:380px) {
 .service-page .service-capability { padding-inline:0; }
 .service-page .service-capability .cap-body { padding-inline:40px 0; }
 .study-intake-columns ul { grid-template-columns:minmax(0,1fr); row-gap:22px; }
 .study-intake-columns li { border-right:1px solid var(--study-line); }
}
