/* ===== Alignment layer · 6 November 2026 =====
   Loaded after style.css and page styles. Only positions things; no copy, colour or type changes.
   --g mirrors the .container side padding at each breakpoint in style.css, so text inside the
   framed heroes (border box sits on the container's outer edge) starts on the same line as
   section text below. The 1px frame border is taken off so the text lands exactly on the gutter. */
:root{--g:28px}
@media(min-width:1440px){:root{--g:48px}}
@media(max-width:1024px){:root{--g:24px}}
@media(max-width:768px){:root{--g:18px}}
@media(max-width:600px){:root{--g:14px}}
@media(max-width:380px){:root{--g:12px}}
:root{--hero-pad-x:calc(var(--g) - 1px)}

/* (1) Framed hero rows: eyebrow strip, title, deck, facts, buttons, stats, essay rows */
:is(.hero,.page-header,.hero-below,.hero-after,.e2-lead) .container>:is(.page-num,.hero-title,h1,.hero-meta-eyebrow,.hero-edition,.hero-actions,.essay-chip-row,.essay-hero-lead,.essay-meta-row,.study-head,.page-deck,.hero-deck,.essay-note){padding-left:var(--hero-pad-x)}
:is(.hero,.page-header,.hero-below,.hero-after,.e2-lead) .container>:is(.page-num,.hero-title,h1:not(.essay-title),.hero-meta-eyebrow,.hero-edition,.hero-actions,.essay-chip-row,.essay-hero-lead,.essay-meta-row,.study-head){padding-right:var(--hero-pad-x)}
:is(.hero,.page-header,.hero-below,.hero-after,.e2-lead) .container .hero-meta>span{padding-left:var(--hero-pad-x);padding-right:var(--hero-pad-x)}

/* (2) Page header rule: where nothing full-bleed follows, the header's full-width bottom rule
   ran past the frame and doubled the frame's own bottom line (Request, Partnership enquiry). */
.page-header:not(.page-header-dark):not(:has(+ .hero-band)){border-bottom-color:transparent}

/* (3) Essays: everything after the prose sits on the 680px reading column, like the gate box */
.essay-signoff{max-width:680px;padding-left:0;padding-right:0}
.block .container>:is(.study-facts,.section-eyebrow,.tdr-record,.tdr-record-grid)[style*="max-width:720px"]{max-width:680px!important}

/* (4) Request form: the guard note sits inside the form padding, as on Partnership enquiry */
.tdr-form>.tf-guard{margin:28px 28px 0}
@media(max-width:760px){.tdr-form>.tf-guard{margin:18px 18px 0}}

/* (5) Contact: the inbox panel's text lines up with the facts row directly above it */
.contact-3col-dark~.rv:has(.aw-actions)[style*="padding:34px 32px"]{padding-left:24px!important;padding-right:24px!important}

/* (6) Header frames that end on the title: the title's own bottom rule doubled the frame border */
.page-header .container>h1:last-child{border-bottom:0}
