/**
 * Retreat landing — inter-section rhythm (item P1, build-tracker.md).
 *
 * DECISION (P1 owns this): consecutive sections render FLUSH against each
 * other, with zero added gap between them. The comp (frame 1:561) shows no
 * visible seam between sections — the vertical rhythm reader sees is
 * entirely supplied by each section's OWN padding-block (see each
 * section's own sections/retreat/*.css for its padding value) or, for
 * the two full-bleed grain bands (hero, join), the band's own internal
 * padding on its inner wrapper.
 *
 * ── R2-4 update (2026-08-16) — rhythm VALUE, not just the zero-gap rule ──
 * P1 originally had every white/flow section (how-it-works, leave-with,
 * guides, story, testimonials, logistics, who-for, what-this-isnt) at a flat
 * var(--space-100) padding-block (100/64/48). Since sections render flush
 * (this file's own rule), that made every seam TWO section paddings stacked
 * — ~200px desktop against a comp that measures 55-128px (avg ~90-100px)
 * across all 9 seams. R2-4 (Alain's feedback round 2) introduced a single
 * shared page token, `--retreat-section-pad` (sections/retreat/
 * token-overrides.css — 48/32/24 desktop/1024/768, a bespoke halving of the
 * old --space-100 chain, not --space-48's own cascade), which every one of
 * those 8 sections now consumes for its OWN padding-block instead of
 * var(--space-100) directly. Landing seam: 2 x 48 = 96px desktop, centered
 * in the comp's typical band. ONE documented exception: the section
 * immediately before the join band carries a large padding-BOTTOM
 * (calc(--space-2xl + --space-100), ~220px desktop) reproducing the comp's
 * deliberately bigger ~228px break before the finale band — see that
 * section's own header comment for the exact math. UPDATE (2026-09-01,
 * build-tracker.md / decision-log #23): this exception lived on
 * what-this-isnt.css until the two guide-bio sections were inserted
 * between "what this isn't" and Join — it now lives on
 * `.retreat-bio--peter` (sections/retreat/bio.css), the new last section
 * before Join. What-this-isnt.css is back to the standard
 * --retreat-section-pad bottom rhythm. Band-
 * internal paddings (hero __inner, join inner, story panel, leave-with/
 * testimonials card insets) are NOT section rhythm and were left alone —
 * this file's "own padding-block" framing above already only ever meant the
 * section WRAPPER's padding, not any card/panel nested inside it.
 *
 * Why this file exists even though the rule below changes nothing today:
 * the page-retreat template (templates/page-retreat.html) deliberately
 * omits the theme's .page-content wrapper class specifically so its
 * 120px !important inter-child margin rule (global.css /
 * utilities.css .page-content > * + *) never applies here, and
 * theme.json's root blockGap is 0. Combined, direct children of
 * .retreat-page's post-content already render flush with NO extra
 * margin — that's what the explicit rule below locks in. Without this
 * file, that flush rhythm is an unowned side effect of two unrelated
 * settings (template markup + theme.json default) that a future editor
 * change (e.g. a client picking a "gap" block-spacing value in Settings,
 * or the theme.json blockGap default changing site-wide) could silently
 * break. This file makes the zero-gap decision explicit, scoped, and
 * editable in one place, per build-tracker.md P1's rhythm mandate.
 *
 * Verified live (2026-08-15, page 494, 1440 viewport): every section's
 * computed marginTop/marginBottom was already 0px and section N's bottom
 * === section N+1's top for the full run hero→...→join→footer (no gaps,
 * no double-spacing stacks). This rule is a defensive lock-in of that
 * already-correct state, not a fix for a visible bug.
 *
 * Scope: only the direct section children of the retreat page's
 * post-content, inside .retreat-page (template-scoped, decision-log #12).
 * Never touches .page-content elsewhere on the site.
 */
.retreat-page > .wp-block-post-content > * {
	margin-block: 0;
}

/**
 * ── Hero seam (2026-09-01, Alain) ──
 *
 * Every flow-section seam on this page is TWO section paddings stacked
 * (2 x --retreat-section-pad = 96px desktop, per the R2-4 note above).
 * The hero seam is the one exception: .retreat-hero is a full-bleed grain
 * band whose vertical space lives on its INNER wrapper, so the section
 * wrapper itself has padding-block: 0. That leaves the hero -> next-section
 * seam carrying only the next section's own 48px — literally half the
 * rhythm of every other seam, which reads as the hero running into the
 * section below it.
 *
 * Fixed at the SEAM (adjacent sibling), not on a named section, so it keeps
 * working when the section order changes — e.g. moving the video block up
 * under the hero. Whatever lands first inherits the correct break.
 */
.retreat-page > .wp-block-post-content > .retreat-hero + * {
	padding-top: calc(var(--retreat-section-pad) * 2);
}
