/* A shared rhythm for homepage sections; rules stay aligned to the content. */
body[data-page="home"] {
  --home-section-space: 56px;
  --home-rule-inset: max(1.5rem, calc((100% - 1200px) / 2 + 1.5rem));
}

body[data-page="home"] main > section:not([id="poster"]):not([id="participation-benefits"]) {
  position: relative;
  margin-block: 0;
  padding-block: var(--home-section-space);
}

body[data-page="home"] .home-benefits { margin-bottom: 0; }

/* Background changes already separate the hero, benefits, and venue.
   Fine rules distinguish the adjacent white editorial sections. */
body[data-page="home"] main > :is(#about, #latest-news, #highlights, #join)::before,
body[data-page="home"] > .footer-partners::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: var(--home-rule-inset);
  height: 1px;
  background: var(--border);
  pointer-events: none;
}

body[data-page="home"] main > :is(#about, #latest-news, #highlights, #join)::after,
body[data-page="home"] > .footer-partners::after {
  content: "";
  position: absolute;
  inset-block-start: -1px;
  inset-inline-start: var(--home-rule-inset);
  width: 36px;
  height: 3px;
  border-radius: 2px;
  background: var(--primary);
  opacity: .65;
  pointer-events: none;
}

body[data-page="home"] > .footer-partners {
  position: relative;
  padding-block: 40px 28px;
}

@media (max-width: 767px) {
  body[data-page="home"] { --home-section-space: 36px; }
  body[data-page="home"] main > :is(#about, #latest-news, #highlights, #join)::after,
  body[data-page="home"] > .footer-partners::after { width: 28px; }
  body[data-page="home"] > .footer-partners { padding-block: 30px 20px; }
}
