/*
  Authoritative site-wide AOA header.
  Every page uses the same header markup and these same dimensions.
*/
.aoa-site-header {
  position: absolute !important;
  inset: 0 0 auto !important;
  z-index: 30 !important;
  min-height: 112px !important;
  background: #0B2D5B !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}
.aoa-site-header .nav {
  position: relative !important;
  width: min(1440px, calc(100% - 72px)) !important;
  min-height: 112px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 40px !important;
}
.aoa-site-header .brand {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 320px !important;
  width: 320px !important;
  min-width: 320px !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}
.aoa-site-header .header-logo-container {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 0 0 320px !important;
  width: 320px !important;
  min-width: 320px !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}
.aoa-site-header .header-logo {
  display: block !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: left center !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.aoa-site-header .menu-button { display: none !important; }
.aoa-site-header .nav-links {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  gap: 18px !important;
}
.aoa-site-header .nav-links > a {
  color: #fff !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  font-family: var(--aoa-body-font, Inter, Arial, sans-serif) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .03em !important;
}
.aoa-site-header .nav-links > a:hover,
.aoa-site-header .nav-links > a[aria-current="page"] { color: #FFB45A !important; }
.aoa-site-header .nav-more {
  position: relative !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #FF8A00 !important;
  border: 0 !important;
  border-radius: 10px !important;
}
.aoa-site-header .nav-more summary {
  display: flex !important;
  align-items: center !important;
  min-height: 48px !important;
  padding: 16px 23px !important;
  color: #fff !important;
  cursor: pointer !important;
  font-family: var(--aoa-body-font, Inter, Arial, sans-serif) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
  list-style: none !important;
  white-space: nowrap !important;
}
.aoa-site-header .nav-more summary::-webkit-details-marker { display: none !important; }
.aoa-site-header .nav-more summary::after { content: "+" !important; margin-left: 7px !important; color: #fff !important; }
.aoa-site-header .nav-more[open] summary::after { content: "−" !important; }
.aoa-site-header .nav-more-menu {
  position: absolute !important;
  top: calc(100% + 12px) !important;
  right: 0 !important;
  z-index: 50 !important;
  display: grid !important;
  min-width: 240px !important;
  gap: 3px !important;
  padding: 8px !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 10px !important;
  background: #061B36 !important;
  box-shadow: 0 18px 40px rgba(3,20,48,.3) !important;
}
.aoa-site-header .nav-more-menu a {
  display: block !important;
  min-height: 0 !important;
  padding: 12px 14px !important;
  color: #fff !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
.aoa-site-header .nav-more-menu a:hover { color: #FF8A00 !important; background: rgba(255,255,255,.08) !important; }

/* Tablet: retain the fixed logo and move the navigation into the menu. */
@media (min-width: 901px) and (max-width: 1399px) {
  .aoa-site-header .nav { justify-content: space-between !important; gap: 20px !important; }
  .aoa-site-header .brand,
  .aoa-site-header .header-logo-container { flex-basis: 280px !important; width: 280px !important; min-width: 280px !important; }
  .aoa-site-header .brand,
  .aoa-site-header .header-logo-container { height: 80px !important; min-height: 80px !important; }
  .aoa-site-header .menu-button {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    border-radius: 8px !important;
    background: rgba(4,39,83,.35) !important;
    color: #fff !important;
    font-family: var(--aoa-body-font, Inter, Arial, sans-serif) !important;
    font-weight: 800 !important;
    cursor: pointer !important;
  }
  .aoa-site-header .nav-links {
    position: absolute !important;
    top: 112px !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 1rem 1.375rem 1.4rem !important;
    background: #061B36 !important;
    border-bottom: 2px solid #FF8A00 !important;
  }
  .aoa-site-header .nav-links.open { display: grid !important; }
  .aoa-site-header .nav-links > a,
  .aoa-site-header .nav-more summary { min-height: 44px !important; display: flex !important; align-items: center !important; padding: .65rem !important; }
  .aoa-site-header .nav-more summary { justify-content: center !important; }
  .aoa-site-header .nav-more-menu { position: static !important; min-width: 0 !important; margin: 0 .65rem .35rem !important; box-shadow: none !important; }
}

/* Mobile: keep the fixed logo beside the menu button. */
@media (max-width: 900px) {
  .aoa-site-header {
    position: relative !important;
    inset: auto !important;
    min-height: 80px !important;
    border-bottom: 2px solid #FF8A00 !important;
  }
  .aoa-site-header .nav {
    width: calc(100% - 40px) !important;
    min-height: 80px !important;
    justify-content: space-between !important;
    gap: 1rem !important;
  }
  .aoa-site-header .brand,
  .aoa-site-header .header-logo-container { flex-basis: min(220px, 58vw) !important; width: min(220px, 58vw) !important; min-width: min(220px, 58vw) !important; height: 56px !important; min-height: 56px !important; }
  .aoa-site-header .menu-button {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    border-radius: 8px !important;
    background: rgba(4,39,83,.35) !important;
    color: #fff !important;
    font-family: var(--aoa-body-font, Inter, Arial, sans-serif) !important;
    font-weight: 800 !important;
    cursor: pointer !important;
  }
  .aoa-site-header .nav-links {
    position: absolute !important;
    top: 80px !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    padding: 12px !important;
    background: #061B36 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 10px !important;
  }
  .aoa-site-header .nav-links.open { display: flex !important; }
  .aoa-site-header .nav-links > a { min-height: 48px !important; display: flex !important; align-items: center !important; padding: 12px 14px !important; }
  .aoa-site-header .nav-more { width: 100% !important; text-align: center !important; }
  .aoa-site-header .nav-more summary { justify-content: center !important; }
  .aoa-site-header .nav-more-menu { position: static !important; min-width: 0 !important; margin: 0 8px 4px !important; box-shadow: none !important; }
  .aoa-site-header .nav-more-menu a { min-height: 48px !important; display: flex !important; align-items: center !important; }
}

/* Homepage desktop exception: enlarge the approved wordmark by 50% in the upper-left header. */
@media (min-width: 1400px) {
  body.aoa-homepage .aoa-site-header,
  body.aoa-homepage .aoa-site-header .nav {
    min-height: 132px !important;
  }
  body.aoa-homepage .aoa-site-header .brand,
  body.aoa-homepage .aoa-site-header .header-logo-container {
    flex-basis: 480px !important;
    width: 480px !important;
    min-width: 480px !important;
    height: 132px !important;
    min-height: 132px !important;
  }
}
