header {
  .top-nav {
    /* stickiness on .top-nav is no longer necessary since 'header' in 'basics.css' is 'sticky' */
    /* position: sticky; */
    /* top: 0; */
    display: flex;
    align-items: center;
    background: var(--top-nav--bg-color);
    min-height: 52px;
    border-radius: 0px;
    border: var(--top-nav--border);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    padding: 0 8px;
    flex-wrap: wrap;
    font-family:
      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    box-sizing: border-box;
  }

  .top-nav *,
  .top-nav *::before,
  .top-nav *::after {
    box-sizing: border-box;
  }

  .top-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .top-navlogo {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-right: auto;
  }

  .top-navlogo > a {
    text-decoration: none;
  }

  .top-navlogo-text {
    color: var(--top-nav--fg-color);
    font-size: 18px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1;
  }

  .top-navhamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0;
  }

  .top-navhamburger span {
    display: block;
    background-color: var(--top-nav--fg-color);
    transition: all 0.3s;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    margin: 3px 0;
  }

  .top-nav > ul {
    display: flex;
    justify-content: center;
    flex: 1;
    flex-wrap: wrap;
  }

  .top-nav > ul > li {
    position: relative;
  }

  .top-nav > ul > li > .no-link,
  .top-nav > ul > li > a {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 16px;
    height: 52px;
    color: var(--top-nav--fg-color);
    font-size: 16px;
    font-weight: 500;
    text-transform: none;
    text-decoration: none;
    transition:
      background 0.2s,
      color 0.2s;
    white-space: nowrap;
  }

  .top-nav > ul > li > .no-link {
    cursor: default;
  }

  .top-nav > ul > li > a:hover,
  .top-nav > ul > li:hover > a {
    background-color: var(--top-nav--li-a-hover-bg-color);
    color: var(--top-nav--li-a-hover-fg-color);
  }

  .top-navarrow {
    font-size: 1.3em;
    opacity: 0.85;
    vertical-align: middle;
  }

  /* Dropdown */
  .top-nav > ul > li > ul {
    display: none;
    position: absolute;
    top: 100%;
    /* left: 0;
    right: 0; */
    background-color: var(--top-nav--dropdown-bg-color);
    min-width: max-content;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    z-index: 1000;
    overflow: hidden;
  }

  .top-nav > ul > li:hover > ul {
    display: block;
  }

  .top-nav > ul > li > ul > li > a {
    display: block;
    padding: 10px 18px;
    color: var(--top-nav--dropdown-fg-color);
    font-size: 16px;
    text-decoration: none;
    transition:
      background 0.15s,
      color 0.15s;
  }

  .top-nav > ul > li > ul > li > a:hover {
    background-color: var(--top-nav--dropdown-hover-bg-color);
    color: var(--top-nav--dropdown-hover-fg-color);
  }

  .top-nav > ul > li > ul > li:last-child {
    border-radius: 0 0 6px 6px;
    overflow: hidden;
  }

  .top-nav > ul > li > ul > li:last-child > a {
    border-radius: 0 0 6px 6px;
  }

  /* Responsive */
  @media (max-width: 300px) {
    .top-navhamburger {
      display: flex;
      margin-left: 0;
    }

    .top-nav {
      display: flex;
      flex-wrap: wrap;
    }

    .top-navlogo {
      margin-right: auto;
      margin-left: 0;
      justify-self: unset;
      order: -1;
    }

    .top-nav > ul {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      flex-direction: column;
      background: linear-gradient(90deg, #1e40af, #2563eb);
      border-radius: 0 0 0px 0px;
      box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
      z-index: 9999;
      padding: 8px 0;
      overflow: hidden;
    }

    .top-nav > ul.open {
      display: flex;
    }

    /* Remove nav bottom radius when dropdown is open so they flow together */
    .top-nav.mobile-open {
      border-radius: 0px 0px 0 0;
    }

    .top-nav > ul > li > a {
      height: auto;
      padding: 14px 20px;
    }

    /* Reset desktop last-child rounding — not needed on mobile */
    .top-nav > ul > li:last-child {
      border-radius: 0;
      overflow: visible;
    }

    .top-nav > ul > li:last-child > a {
      border-radius: 0;
    }

    .top-nav > ul > li > ul {
      display: none;
      position: static;
      box-shadow: none;
      border-radius: 0;
      overflow: visible;
      background: rgba(0, 0, 0, 0.15);
      min-width: 0;
    }

    .top-nav > ul > li > ul.sub-open {
      display: block;
    }

    .top-nav > ul > li.has-sub > a .top-navarrow {
      display: inline-block;
    }

    /* No rounding on submenu items in mobile */
    .top-nav > ul > li > ul > li:last-child {
      border-radius: 0;
      overflow: visible;
    }

    .top-nav > ul > li > ul > li:last-child > a {
      border-radius: 0;
    }

    .top-nav > ul > li > ul > li > a {
      padding: 10px 32px;
    }

    /* Hamburger animates to X when open */

    .top-nav.mobile-open .top-navhamburger span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }

    .top-nav.mobile-open .top-navhamburger span:nth-child(2) {
      opacity: 0;
    }

    .top-nav.mobile-open .top-navhamburger span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }
  }
}
