/* Keep the expanded public navigation comfortable across screen sizes. */
.site-header .site-nav {
  gap: clamp(0.75rem, 1.1vw, 1rem);
  white-space: nowrap;
}

.site-header .site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.site-header .site-nav a[aria-current="page"]::after {
  width: 100%;
}

@media (max-width: 1200px) {
  .site-header .site-nav {
    position: absolute;
    inset: 100% 0 auto;
    margin-left: 0;
    padding: 1rem 4vw;
    flex-direction: column;
    gap: 0.35rem;
    max-height: calc(100vh - 80px);
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--bg-light);
    box-shadow: 0 18px 32px rgba(0, 0, 0, 0.12);
    transform: translateY(-0.5rem);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform var(--transition), opacity var(--transition);
  }

  .site-header .site-nav.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .site-header .site-nav a {
    padding: 0.5rem 0;
  }

  .site-header .site-nav a::after {
    bottom: 0;
  }

  .site-header .nav-toggle {
    display: inline-flex;
    align-items: center;
    min-width: 44px;
    min-height: 44px;
    flex-shrink: 0;
    margin-left: auto;
    position: relative;
    z-index: 2;
  }

  .site-header .nav-toggle[aria-expanded="true"] .nav-toggle__bar--top {
    transform: translateY(6px) rotate(45deg);
  }

  .site-header .nav-toggle[aria-expanded="true"] .nav-toggle__bar--middle {
    opacity: 0;
  }

  .site-header .nav-toggle[aria-expanded="true"] .nav-toggle__bar--bottom {
    transform: translateY(-6px) rotate(-45deg);
  }
}

@media (max-width: 640px) {
  .site-header .header-inner {
    gap: 0.75rem;
  }

  .site-header .brand {
    min-width: 0;
    gap: 0.6rem;
  }

  .site-header .brand picture {
    flex: 0 0 46px;
  }

  .site-header .brand__mark {
    width: 46px;
  }

  .site-header .brand__tagline {
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    line-height: 1.4;
  }
}
