.nb-nav {
  align-items: center;
  overflow: visible;
  position: relative;
}

.site-logo-image {
  display: block;
  width: auto;
  height: 38px;
  max-width: 150px;
  object-fit: contain;
}

/* Keep the repeated CTA headline compact on desktop without forcing overflow on small screens. */
.cta-heading-one-line {
  white-space: nowrap;
  font-size: clamp(24px, 2.2vw, 32px) !important;
}

/* The utility bar stays in normal flow and scrolls away; only the main header sticks. */
header:has([data-mega-group]) {
  position: sticky;
  top: 0;
  z-index: 1100;
}

.mega-nav__group {
  position: static;
}

header:has(.mega-nav__group:hover),
header:has(.mega-nav__group:focus-within),
header:has(.mega-nav__group.is-open) {
  border-bottom-color: transparent !important;
}

header.mega-nav-layout-open {
  margin-bottom: var(--mega-nav-space, 0px);
}

.mega-nav__trigger {
  appearance: none;
  border: 0;
  background: transparent;
  color: #0A1A33;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 0;
  font: inherit;
  font-weight: 600;
}

.mega-nav__trigger:hover,
.mega-nav__trigger:focus-visible,
.mega-nav__trigger.is-active {
  color: #1F4FD1;
}

.mega-nav__trigger:focus-visible {
  outline: 3px solid #5B9BFF;
  outline-offset: 4px;
  border-radius: 5px;
}

.mega-nav__chevron {
  width: 14px;
  height: 14px;
  transition: transform .2s ease;
}

.mega-nav__group.is-open .mega-nav__chevron {
  transform: rotate(180deg);
}

.mega-nav__panel {
  position: fixed;
  z-index: 1000;
  top: var(--mega-nav-top, 96px);
  left: 0;
  width: 100vw;
  box-sizing: border-box;
  padding: 34px max(32px, calc((100vw - 1240px) / 2)) 40px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  color: #0A1A33;
  background: #FFFFFF;
  border: 0;
  border-top: 0;
  border-bottom: 1px solid #D6E2F5;
  border-radius: 0;
  box-shadow: 0 22px 32px -20px rgba(10, 26, 51, .28);
  opacity: 0;
  visibility: hidden;
  transform: none;
  transition: opacity .16s ease, visibility .16s;
}

.mega-nav__panel::before {
  content: "";
  position: absolute;
  inset: -12px 0 auto;
  height: 12px;
  background: #FFFFFF;
}

.mega-nav__group:focus-within .mega-nav__panel,
.mega-nav__group.is-open .mega-nav__panel {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.mega-nav__column {
  grid-row: 1;
  min-width: 0;
  padding: 4px 28px 2px;
  border-left: 1px solid #D6E2F5;
}

.mega-nav__column:first-of-type {
  border-left: 0;
}

.nb-nav .mega-nav__column-title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #0A1A33;
  font-family: 'Sora', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
}

.mega-nav__column-icon {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: #1F4FD1;
  border: 1px solid #B8CCF2;
  background: #EEF4FF;
  border-radius: 8px;
  font-size: 15px;
}

.mega-nav__list {
  display: grid;
  gap: 7px;
  margin-top: 18px;
}

.mega-nav__list--dense {
  gap: 4px;
}

.mega-nav__list--two-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 14px;
}

.nb-nav .mega-nav__sublink {
  display: block;
  padding: 4px 0;
  color: #263750;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
  transition: color .16s ease, transform .16s ease;
}

.nb-nav .mega-nav__sublink:hover,
.nb-nav .mega-nav__sublink:focus-visible,
.nb-nav .mega-nav__sublink[aria-current="page"] {
  color: #1F4FD1;
  text-decoration: none;
  transform: translateX(3px);
}

.nb-nav .mega-nav__column-title:hover,
.nb-nav .mega-nav__column-title:focus-visible,
.nb-nav .mega-nav__column-title[aria-current="page"] {
  color: #1F4FD1;
  text-decoration: none;
}

.nb-nav .mega-nav__column-title[aria-current="page"] .mega-nav__column-icon {
  color: #FFFFFF;
  background: #1F4FD1;
  border-color: #1F4FD1;
}

.nb-nav .mega-nav__view-all {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 22px;
  color: #1F4FD1;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.nb-nav .mega-nav__view-all:hover,
.nb-nav .mega-nav__view-all:focus-visible {
  color: #163BA3;
  text-decoration: none;
}

.mega-nav__view-all span {
  transition: transform .16s ease;
}

.mega-nav__view-all:hover span,
.mega-nav__view-all:focus-visible span {
  transform: translateX(3px);
}

@media (max-width: 900px) {
  .cta-heading-one-line {
    white-space: normal;
    font-size: clamp(28px, 3.4vw, 40px) !important;
  }

  .mega-nav__panel {
    left: 0;
    width: 100vw;
    padding: 26px 24px 32px;
    grid-template-columns: 1fr;
    max-height: calc(100vh - var(--mega-nav-top, 96px));
    overflow-y: auto;
    background: #FFFFFF;
    transform: none;
  }

  .mega-nav__column {
    grid-row: auto;
    padding: 22px 4px;
    border-top: 1px solid #D6E2F5;
    border-left: 0;
  }

  .mega-nav__column:first-of-type {
    border-top: 0;
  }

  .mega-nav__group:focus-within .mega-nav__panel,
  .mega-nav__group.is-open .mega-nav__panel {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mega-nav__panel,
  .mega-nav__chevron,
  .mega-nav__sublink,
  .mega-nav__view-all span {
    transition: none;
  }
}

@media (max-width: 480px) {
  .site-logo-image {
    height: 34px;
    max-width: 132px;
  }

  .mega-nav__list--two-columns {
    grid-template-columns: 1fr;
  }
}
