/* Extend existing sections while retaining the site's typography. */
.program-story{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:38px 52px;padding-bottom:76px;margin-bottom:76px;border-bottom:1px solid var(--line)}
.program-story>h2{grid-column:1/-1;margin:0}
.program-animation,.program-copy{min-width:0}
/* Centred on the animation FRAME, not on its column: align-self centres an
   item's margin box, so a hanging bottom margin lifts the copy by half of
   it. The column is 10px of padding, the frame, then the 88px control bar,
   which puts the frame centre 39px above the column centre at every frame
   height. ponytail: a fixed 78px, so the no-canvas fallback -- which hides
   the controls and shortens that bar -- lands ~20px high; drive it from a
   custom property if that state ever becomes the common one. Below 1150px
   the copy is already as tall as the column, so there is no slack to centre
   in and the margin would only add dead space under it. */
.program-copy{align-self:center}
@media(min-width:1150px){.program-copy{margin-bottom:78px}}
.program-copy p{font-size:1rem;line-height:1.7;margin:0 0 24px}
.program-copy p:last-child{margin-bottom:0}
/* A1 pages: the rule between the room program and the laboratory results is
   the top border of its own section, so it runs edge to edge like every other
   section divider -- as a border on .program-story it was a .wrap, and stopped
   at the content width once the viewport passed the wrap's max-width. Zeroing
   .program-story's own spacing hands both sides back to .section's ladder
   (110 / 87 / 63), the same clearance every other divider on the page gets.
   The intl healthcare pages keep the inset border; they share this component
   only. */
[data-scroll-story="a1"] .program-story{padding-bottom:0;margin-bottom:0;border-bottom:0}
.workflow-comparison{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:40px}
.workflow-comparison>div{border-top:1px solid var(--line);padding-top:24px;min-width:0}
.workflow-comparison h3{font-size:1.25rem;line-height:1.3;font-weight:400;letter-spacing:-.025em;margin:0 0 14px}
.workflow-comparison p{font-size:1rem;line-height:1.8;margin:0}
@media(max-width:1000px){.program-story{grid-template-columns:1fr;gap:32px}.program-copy{max-width:780px}.program-animation{width:100%}}
@media(max-width:780px){.program-story{padding-bottom:52px;margin-bottom:52px}.workflow-comparison{grid-template-columns:1fr;gap:28px}}
/* When the story is the last thing in its section, the section's own padding and the next
   section's rule already close it: no second hairline or extra space below. */
.program-story:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
