/* Shared headline coordinates. Keep this after page-specific styles. */
html.portal-inner-page {
  scrollbar-gutter: stable;
  --inner-page-gutter: clamp(28px, 4vw, 58px);
  /* EGE's 300px text band anchors all titles, regardless of copy length. */
  --inner-copy-offset: max(0px, calc((100svh - 72px - 54px - 300px) / 2));
}

html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1360px !important;
  min-height: calc(100svh - 72px) !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 24px var(--inner-page-gutter) 30px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.13fr) minmax(390px, .87fr) !important;
  gap: 28px !important;
  align-items: center !important;
}

html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child {
  position: relative !important;
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
  align-self: start !important;
  margin: var(--inner-copy-offset) 0 0 !important;
  padding: 0 !important;
  transform: none !important;
}

html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child > :is(.kicker, .eyebrow) {
  min-height: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 14px !important;
}

html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero h1 {
  margin: 15px 0 0 !important;
  padding: 0 !important;
}

/* Approved layout: every content section shares the hero's outside edges. */
html.portal-inner-page body:is(#portal-page, #top).portal-unified :is(.section, .footer),
html.portal-inner-page body:is(#portal-page, #top).portal-unified > main.main,
html.portal-inner-page body:is(#portal-page, #top).portal-unified > main > .catalog-shell {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1360px !important;
  margin-inline: auto !important;
  padding-inline: var(--inner-page-gutter) !important;
}

/* Nested sections use the parent's content edges, without a second gutter. */
html.portal-inner-page body:is(#portal-page, #top).portal-unified .section .section {
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

/* MV's formerly full-width bands must not turn into framed inset panels. */
html.portal-inner-page body:is(#portal-page, #top).portal-unified .section.alt {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
html.portal-inner-page body:is(#portal-page, #top).portal-unified .section.alt > .inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-inline: 0 !important;
}

/* Keep Sirius branding above the shared text band without shifting its title. */
html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child > .official-logo {
  position: absolute !important;
  left: 0 !important;
  bottom: calc(100% + 24px) !important;
  margin: 0 !important;
}

/* The materials catalog retains a compact header with the same title origin. */
html.portal-inner-page body:is(#portal-page, #top).portal-unified .catalog-hero.portal-inner-hero {
  min-height: 0 !important;
}

html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > .catalog-mini-sphere {
  align-self: start !important;
  justify-self: center !important;
  margin-top: var(--inner-copy-offset) !important;
}

@media (max-width: 980px) {
  html.portal-inner-page { --inner-copy-offset: 0px; }

  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero {
    min-height: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    padding-top: 54px !important;
  }

  /* On narrow screens the logo follows the title, keeping its origin aligned. */
  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child:has(> .official-logo) {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child > .official-logo {
    position: static !important;
    margin: 21px 0 0 !important;
  }

  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child:has(> .official-logo) > :is(.kicker, .eyebrow) { order: -2; }
  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child:has(> .official-logo) > h1 { order: -1; }
}

@media (max-width: 720px) {
  html.portal-inner-page { --inner-page-gutter: 20px; }

  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero {
    padding: 48px var(--inner-page-gutter) 35px !important;
    gap: 18px !important;
  }

  /* Reserve equal space for the short overline, including two-line labels. */
  html.portal-inner-page body:is(#portal-page, #top).portal-unified .portal-inner-hero > div:first-child > :is(.kicker, .eyebrow) {
    min-height: 28px !important;
  }
}

@media (min-width: 981px) and (max-height: 620px) {
  /* A short landscape viewport still leaves room for Sirius's 70px logo. */
  html.portal-inner-page { --inner-copy-offset: 100px; }
}
