/* One outer frame. Reading measures and the full-bleed photographic backdrop
   remain independent of this shared alignment grid. */
:root{
 --site-frame:1440px;
 --site-gutter:clamp(24px,4vw,56px);
 --gutter:var(--site-gutter);
 --site-inset:max(var(--site-gutter),calc((100% - var(--site-frame))/2 + var(--site-gutter)));
}
@media(max-width:900px){:root{--site-gutter:24px}}

/* These are outer shells, not text columns or padding inside individual cards. */
body:is(.editorial-main,.editorial-inner) :is(.wrap,.editorial-container,.treatment-page-shell,.aftercare-shell){
 box-sizing:border-box;
 width:100%;
 max-width:var(--site-frame);
 margin-inline:auto;
 padding-inline:var(--site-gutter);
 min-width:0;
}
/* A previous breakout rule removed the limit only from this home chapter. */
body.editorial-main #signature{
 width:100%;
 max-width:var(--site-frame);
 margin-inline:auto;
 padding-inline:var(--site-gutter);
}
body.editorial-main #philosophy .philosophy-copy{padding:0}

/* The header and footer backgrounds still span the screen. Their contents use
   exactly the same start and end positions as the centred outer shells. */
body:is(.editorial-main,.editorial-inner)>.header,
body:is(.editorial-main,.editorial-inner)>.footer{
 padding-inline:var(--site-inset);
}
body .editorial-header .mega-panel-inner,
body .editorial-header #treatment-navigation .mega-panel-inner[data-active-treatment-category]{
 box-sizing:border-box;
 width:100%;
 max-width:var(--site-frame);
 margin-inline:auto;
 padding-inline:var(--site-gutter);
}

/* Keep the image full screen; only the text and its bottom information align. */
body.editorial-main .editorial-hero{padding-inline:var(--site-inset)}

/* Reset the unrelated old promotion tile padding inside the new image rail. */
body.editorial-main .home-promotions .promotion-card{
 padding:0;
 border:0;
}

/* Horizontal scrolling can bleed beyond the frame, but the first card starts
   at the same line as its heading and the final card ends at that line. */
body.editorial-main #equipment .equipment-track{padding-inline:var(--site-inset)}
body.editorial-main #equipment .equipment-viewport{scroll-padding-inline:var(--site-inset)}
body.editorial-main #equipment .equipment-card{scroll-margin-inline:0;scroll-margin-left:0}

/* The two-floor scene retains its scroll runway and sticky height. Only its
   horizontal frame changes; neither the image nor the copy gets a second gutter. */
body.editorial-main #space .space-story{
 box-sizing:border-box;
 width:100%;
 max-width:var(--site-frame);
 margin-inline:auto;
 padding-inline:var(--site-gutter);
 column-gap:clamp(24px,3vw,48px);
}
body.editorial-main #space[data-space-mode] .space-heading{margin-inline:auto}
body.editorial-main #space .space-story .space-visual-wrap,
body.editorial-main #space .space-story .space-chapters{padding-inline:0}

/* Remove the separate tariff width calculation and its one-sided tablet inset. */
body .pricing-ledger .editorial-container{
 width:100%;
 max-width:var(--site-frame);
 margin-inline:auto;
 padding-inline:var(--site-gutter);
}

/* Narrow reading surfaces are intentional inner measures, not alternative
   outer grids. Their existing legible content widths are preserved. */
body.editorial-inner .treatment-page .treatment-reading{
 max-width:min(var(--site-frame),calc(1180px + var(--site-gutter)*2));
}
body.editorial-inner .clinic-editorial .brand-story{
 max-width:min(var(--site-frame),calc(900px + var(--site-gutter)*2));
}
body.editorial-inner .legal-page{
 max-width:min(var(--site-frame),calc(940px + var(--site-gutter)*2));
}
