/* Floating navigation builds on the recovered first design. */
.site-header {
  width: min(1380px, calc(100% - 48px));
  height: 78px;
  margin: 14px auto 0;
  top: 14px;
  border: 1px solid #e1478030;
  border-radius: 20px;
  background: var(--brand-gradient);
  color: #1e1327;
  box-shadow: 0 8px 28px #e1478024;
}
.site-header .header-inner { width: 100%; padding: 0 22px; gap: 38px; }
.site-header .brand { gap: 10px; color: #fff; }
.site-header .brand img { width: 35px; height: 38px; }
.site-header .brand > span { font-size: 29px; letter-spacing: -.065em; }
.site-nav { flex: 1; justify-content: space-between; gap: 22px; font-size: 12px; }
.nav-main, .nav-utilities { display: flex; align-items: center; gap: 7px; }
.nav-utilities { gap: 15px; margin-left: auto; }
.site-header .nav-link, .site-header .nav-dropdown > summary {
  min-height: 44px;
  padding: 12px 13px;
  border-radius: 10px;
  transition: background .2s, color .2s;
}
.site-header .nav-link:hover, .site-header .nav-link[aria-current],
.site-header .nav-dropdown > summary:hover, .site-header .nav-dropdown[open] > summary {
  color: #aa2358;
  background: #fceaf1;
}
.site-header .nav-dropdown { position: relative; }
.site-header .nav-panel, .site-header .nav-list-panel, .site-header .language-panel { color: #101d3e; }
.site-header .nav-panel {
  top: calc(100% + 15px);
  left: 0;
  transform: none;
  width: min(700px, calc(100vw - 100px));
  max-height: calc(100dvh - 140px);
  overflow-y: auto;
  grid-template-columns: 1fr 1.5fr;
  border-color: #eadce3;
  padding: 16px;
  gap: 15px;
  box-shadow: 0 18px 55px #63223a1c;
}
.site-header .nav-panel-intro { background: #fff2e9; padding: 24px; }
.site-header .nav-panel-intro .eyebrow { margin-bottom: 16px; }
.site-header .nav-panel-intro > a { font-size: 21px; }
.site-header .nav-panel-intro > p { font-size: 12px; line-height: 1.8; }
.site-header .nav-panel-intro .nav-small { font-size: 11px; line-height: 1.6; }
.site-header .nav-format-list { padding: 3px; gap: 2px; }
.site-header .nav-format-list > a { min-height: 44px; padding: 10px; font-size: 12px; }
.site-header .nav-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid #101d3e0c;
  color: #6f314c;
  font-size: 9px;
  letter-spacing: .03em;
}
.site-header .nav-format-list > a:hover,
.site-header .nav-format-list > a[aria-current] { background: #fceaf1; color: #aa2358; }
.nav-list-panel {
  position: absolute;
  left: 0;
  top: calc(100% + 15px);
  width: 270px;
  padding: 12px;
  border: 1px solid #eadce3;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 55px #63223a1c;
  max-height: calc(100dvh - 140px);
  overflow-y: auto;
}
.nav-list-panel > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 46px;
  padding: 12px;
  border-radius: 8px;
  font-size: 12px;
}
.nav-list-panel > a > span { font-size: 17px; font-weight: 500; }
.nav-list-panel > a:hover, .nav-list-panel > a[aria-current] { color: #aa2358; background: #fceaf1; }
.site-header .language-dropdown { margin-left: 0; }
.site-header .language-dropdown > summary { border: 1px solid #1e132750; gap: 9px; }
.site-header .language-panel { top: calc(100% + 15px); padding: 8px; min-width: 180px; }
.site-header .language-panel > a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 11px 14px; }
.site-header .language-panel > a > span:first-child { width: 24px; font-size: 18px; line-height: 1; }
.site-header .language-panel > a > span:last-child { font-size: 12px; }
.site-header .header-cta {
  min-height: 46px;
  border-radius: 12px;
  padding: 13px 17px;
  gap: 18px;
  background: #fff;
  color: #7c1d4a;
  white-space: nowrap;
  font-size: 11px;
}
.site-header .header-cta:hover { background: #fff2e8; }
.site-header :focus-visible { outline-color: #1e1327; outline-offset: 3px; }
.site-header .nav-panel :focus-visible,
.site-header .nav-list-panel :focus-visible,
.site-header .language-panel :focus-visible { outline-color: #aa2358; }
.site-header .menu-toggle { margin-left: auto; min-width: 44px; height: 44px; border-color: #1e132750; }
.site-header .menu-toggle span { background: #1e1327; }

@media (min-width: 1101px) {
  .site-header .site-nav { display: flex; position: static; }
  .site-header .menu-toggle { display: none; }
  .site-header .site-nav > .nav-main { margin-left: 4px; }
}
@media (max-width: 1100px) {
  .site-header { width: calc(100% - 32px); height: 72px; top: 10px; margin-top: 10px; border-radius: 18px; }
  .site-header .header-inner { padding: 0 18px; gap: 20px; }
  .site-header .menu-toggle { display: block; }
  .site-header .site-nav { display: none; }
  .site-header .site-nav.is-open {
    position: absolute;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    border: 1px solid #eadce3;
    border-radius: 18px;
    background: #fff;
    color: #101d3e;
    padding: 16px;
    gap: 18px;
    box-shadow: 0 18px 55px #63223a1c;
  }
  body.menu-open { overflow: hidden; }
  .site-header .site-nav.is-open :focus-visible { outline-color: #aa2358; }
  .nav-main { flex-direction: column; align-items: stretch; gap: 3px; }
  .nav-utilities { margin: 0; padding-top: 15px; border-top: 1px solid #eddae2; flex-wrap: wrap; justify-content: space-between; }
  .site-header .nav-main > .nav-link, .site-header .nav-main summary { font-size: 14px; padding: 14px; }
  .site-header .nav-panel { position: static; width: 100%; transform: none; max-height: none; overflow: visible; margin: 10px 0; box-shadow: none; padding: 10px; }
  .nav-list-panel { position: static; width: 100%; max-height: none; overflow: visible; box-shadow: none; padding: 5px; margin: 5px 0; }
  .nav-list-panel > a { min-height: 48px; padding: 13px; }
  .site-header .nav-panel-intro { padding: 18px; }
  .site-header .header-cta { margin: 0; }
  .site-header .language-panel { top: calc(100% + 8px); right: auto; left: 0; z-index: 2; }
}
@media (max-width: 600px) {
  .site-header { width: calc(100% - 24px); height: 68px; border-radius: 16px; top: 8px; margin-top: 8px; }
  .site-header .header-inner { padding: 0 14px; }
  .site-header .brand img { width: 30px; height: 33px; }
  .site-header .brand > span { font-size: 27px; }
  .site-header .site-nav.is-open { max-height: calc(100dvh - 96px); padding: 12px; }
  .site-header .nav-panel { grid-template-columns: 1fr; gap: 8px; }
  .site-header .nav-panel-intro > p { display: none; }
  .site-header .nav-panel-intro .nav-small { margin-top: 12px; }
  .site-header .nav-format-list > a { font-size: 12px; }
  .site-header .language-panel {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
    border: 0;
    padding: 5px 0 0;
    box-shadow: none;
  }
  .site-header .language-dropdown[open] { flex-basis: 100%; }
  .site-header .language-panel > a { padding: 11px 10px; }
  .site-header .nav-utilities { align-items: flex-start; gap: 12px; }
  .site-header .header-cta { font-size: 10px; gap: 10px; padding: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .nav-link, .site-header .nav-dropdown > summary { transition: none; }
}
@media print { .site-header { display: none; } }
