/*
  Homepage-only integration boundary.
  The NIORET OS presentation stylesheet predates the site's shared header and
  uses a few of the same generic class names. These narrow selectors preserve
  the accepted shared header after the presentation stylesheet loads.
*/
.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 12px 16px;
  color: white;
  background: #1169e8;
  transform: translateY(-160%);
}

.skip-link:focus { transform: none; }

.site-header :focus-visible {
  outline: 3px solid rgba(121, 104, 255, 0.68);
  outline-offset: 4px;
}

.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  height: var(--header-height);
  color: #d8e8f8;
  background: rgba(4, 9, 18, .74);
  border-bottom: 1px solid rgba(150, 190, 230, .11);
  backdrop-filter: blur(22px);
  transition: background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);
}

.site-header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  height: 100%;
  min-height: 0;
}

.site-header .brand-lockup {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.site-header .brand-divider {
  width: 1px;
  height: 31px;
  margin: 0 11px;
  background: rgba(151, 188, 224, .24);
}

.site-header .brand-nioret-stack {
  display: flex;
  min-width: 92px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
}

.site-header .brand-systems {
  margin-left: 2px;
  color: #6f8498;
  font-size: .42rem;
  font-weight: 760;
  line-height: 1;
  letter-spacing: .38em;
  text-transform: uppercase;
}

.site-header .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: auto;
  min-height: 54px;
  padding: 0 23px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: white;
  background: linear-gradient(105deg, #1169e8, #178ff0 65%, #5b69ee);
  box-shadow: 0 14px 35px rgba(17, 105, 232, .27);
  font: inherit;
  font-size: .77rem;
  font-weight: 790;
  letter-spacing: .035em;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease, border-color var(--motion-fast) ease, background var(--motion-fast) ease;
}

.site-header .button-small {
  min-height: 44px;
  padding-inline: 18px;
  font-size: .7rem;
}

/* Preserve the original content position while allowing the shared fixed header to sit over the hero. */
main > .hero:first-child .hero-grid { padding-top: 183px; }

main .section-intro { max-width: none; }

main h1,
main h2,
main h3 {
  color: inherit;
  line-height: inherit;
}

main p { margin-top: 1em; }

main img,
.site-footer img { display: inline; }

main .button {
  border: 0;
  box-shadow: none;
  font-family: inherit;
  line-height: inherit;
  transition: none;
}

main .button:hover {
  box-shadow: none;
  transform: none;
}

main .text-link {
  display: inline;
  min-height: 0;
}

/* Remove the visible generic number while retaining its exact layout footprint. */
.overline .index:empty::before {
  content: attr(data-layout);
  visibility: hidden;
}

@media (max-width: 1180px) {
  .site-header .brand-nioret-stack { min-width: 82px; }
}

@media (max-width: 800px) {
  main > .hero:first-child .hero-grid { padding-top: 159px; }
}

@media (max-width: 520px) {
  .site-header .brand-divider { height: 27px; margin-inline: 8px; }
  .site-header .brand-nioret-stack { min-width: 76px; }
  .site-header .brand-systems { font-size: .36rem; letter-spacing: .32em; }
  main > .hero:first-child .hero-grid { padding-top: 125px; }
}


.hero-program-label {
  margin: 14px 0 0;
  color: #dceaff;
  font-size: .72rem;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hero-program-label strong { color: #67dcff; font-weight: 820; }
