/* ── Page component spacing ───────────────────────────────
   The custom tvsub/* blocks placed into a page's content are the
   page's "components" (intro, board, events, sponsors, history…).
   They render as direct children of .entry-content and all carry a
   wp-block-tvsub-* wrapper class, so we target that class to avoid
   touching rich-text blog content (which also lives in .entry-content).

   Goal:
     • Breathing room above the FIRST component so it doesn't sit
       flush beneath the fixed navbar — except a leading hero, which
       is meant to tuck under the translucent navbar (see blocks/hero).
     • Space below EVERY component so stacked components never touch.
       The footer lives outside .entry-content and is never affected. */
:root {
  --section-gap: var(--space-12); /* space below every component   */
  --section-top: var(--space-8); /* space above the first component */
}

/* Space below every component so they don't touch each other. */
.entry-content > [class*="wp-block-tvsub-"] {
  margin-bottom: var(--section-gap);
}

/* Breathing room above the first component, except a leading hero. */
.entry-content > [class*="wp-block-tvsub-"]:first-child:not(.wp-block-tvsub-hero) {
  margin-top: var(--section-top);
}
