/* The desktop navigation retains its existing layout and interaction. */
.mobile-navigation {
  display: none;
}

@media (max-width: 1199.98px) {
  .site-navigation {
    flex: 0 0 auto;
    gap: 0;
  }

  .site-navigation > .navigation-list {
    display: none;
  }

  .mobile-navigation {
    display: block;
    position: relative;
  }

  .mobile-menu-toggle,
  .mobile-nav-control {
    display: flex;
    align-items: center;
    min-width: 44px;
    min-height: 44px;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: start;
    text-decoration: none;
  }

  .mobile-menu-toggle,
  .mobile-nav-split > button {
    justify-content: center;
  }

  .mobile-menu-toggle,
  .mobile-nav-control:is(button:not([aria-disabled]), a) {
    cursor: pointer;
  }

  .mobile-menu-toggle:focus-visible,
  .mobile-nav-control:focus-visible {
    outline: 2px solid var(--color-white);
    outline-offset: -2px;
  }

  .mobile-menu {
    position: absolute;
    z-index: 5;
    top: calc(50% + var(--logo-height) / 2 + var(--header-padding-block));
    right: 0;
    width: min(300px, calc(100vw - 128px));
    max-height: calc(100vh - var(--logo-height) - 2 * var(--header-padding-block));
    max-height: calc(100dvh - var(--logo-height) - 2 * var(--header-padding-block));
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--brand-teal);
    color: var(--color-white);
    border: 1px solid rgb(255 255 255 / 35%);
  }

  .mobile-menu[hidden],
  .mobile-menu ul[hidden] {
    display: none;
  }

  .mobile-menu,
  .mobile-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .mobile-menu ul {
    padding-inline-start: 8px;
  }

  .mobile-menu .mobile-nav-control {
    width: 100%;
    justify-content: space-between;
    gap: 4px;
    padding: 4px 8px;
    overflow-wrap: anywhere;
  }

  .mobile-menu .mobile-nav-split {
    display: flex;
  }

  .mobile-menu .mobile-nav-split > button {
    flex: 0 0 44px;
    width: 44px;
    justify-content: center;
  }

  .mobile-nav-control.is-current {
    text-decoration: underline;
  }

  .mobile-nav-badge {
    flex: none;
    padding: 2px 4px;
    border: 1px solid currentColor;
    border-radius: 4px;
    font-size: 0.75em;
    white-space: nowrap;
  }
}
