/* ============================================================
   Hero frame lines — shared normalization layer.

   The hero top/bottom hairlines were built bespoke per page, so their
   stroke opacity drifted (0.14 → 0.55) and, on the ".sl" scan-line heroes
   (careers / azure-co-sell / newsroom), the top line spanned the whole
   section from y=0 and hid under the fixed nav.

   This sheet is the single source of truth for those lines:
     1. one standard stroke for every hero top/bottom line, and
     2. lifts the .sl hero frame below the page-top spacer so its top line
        clears the fixed nav (header itself is never touched).

   Loaded per page after its own styles; !important overrides the bespoke
   per-page values without editing each inline block.
   ============================================================ */

:root { --hero-line: rgba(255, 255, 255, 0.30); }

/* Container-anchored heroes (already clear the nav via the page-top spacer):
   ind_hero (incl. .is-framed + gradient overrides), detect, home. */
.ind_hero .ind_hero_container::before,
.ind_hero .ind_hero_container::after,
.detect_hero .dh_container::before,
.detect_hero .dh_container::after,
.hero_home_contain_wrap::before,
.hero_home_contain_wrap::after,
.ihl-h {                       /* real-element hero line (defend* / blog / manufacturing / public-sector) */
  background: var(--hero-line) !important;
}

/* .sl scan-line frame used AS a hero (first <section>): recolour to match,
   and drop the frame top to the content edge (page-top spacer height minus
   the same 1.5rem the other heroes use) so the top line sits just below the
   fixed nav instead of behind it. Scoped to the first section so the
   decorative mid-page .sl frames are left untouched. */
main > section:first-of-type > .sl .sl_line { background: var(--hero-line) !important; }
main > section:first-of-type > .sl {
  top: calc(var(--_spacing---section-space--page-top) - 1.5rem);
}
