/* ============================================================
   SECTION STRUCTURE — the layer beneath the skin
   ------------------------------------------------------------
   What is here is true on EVERY site in the fleet regardless of aesthetic:
   the first/last-section rule, and containment for editor content in parts
   that must stay byte-identical to upstream.

   Everything visual — the rhythm scale, band fills, dark-band tokens, the
   eyebrow, buttons, grids, cards, media — lives in blocks-skin.css, which is
   replaced per site. If you are about to add a colour or a type size here,
   it belongs there instead.
   ============================================================ */

/* ---- Last section ----
   Zeroes the trailing gap so a page does not end with a section-sized void above
   the footer.

   THE FIRST-CHILD RULE WAS REMOVED, 2026-09-03. It zeroed the first section's
   top margin, which was right in the theme this rhythm came from because a
   full-bleed BANNER sat above the first section there (their risk register #10
   is about the gap between banner and content). This site's flexible-content
   template has no banner — only the sticky nav — so zeroing it left the first
   block jammed against the header.

   With the rule gone the two cases differ deliberately, and should: a neutral
   first block keeps its normal gap below the nav, while a filled band still
   starts flush because its padding is inside the colour. A colour running up to
   the header reads as intentional; body copy doing it reads as broken. */
main > .sectionmb:last-child { margin-bottom: 0; }

/* ---- Containment for ported parts ----
   Blocks authored here use .fcmt0 / .lcmb0 (defined in the skin) directly.
   Parts kept byte-identical to their vsma-wp originals cannot have classes
   added to their markup without forking them, so they get the same containment
   through a scoped rule. Add a line here when porting another such part. */
.m434-rt .prose > :first-child { margin-top: 0; }
.m434-rt .prose > :last-child  { margin-bottom: 0; }

/* ---- Container variants ----
   Emitted by parts directly rather than by m434_section_classes(); structural
   because the measures come from tokens, not from a look. */
.wrap-narrow { max-width: var(--m434-maxw-narrow); }
.wrap-quote  { max-width: var(--m434-maxw-quote); }
