/* Keep the desktop header's occupied row stable while links and menus are hovered. */
@media (min-width: 761px) {
  .site-header,
  .site-header-inner {
    height: 76px;
    min-height: 76px;
    max-height: 76px;
  }

  .primary-nav .nav-submenu {
    top: calc(100% + 27px);
  }

  .primary-nav .nav-submenu::before {
    height: 27px;
  }
}

/* Draw the desktop navigation underline in, then out towards the right. */
@media (min-width: 761px) {
  .site-header .primary-nav > a,
  .site-header .primary-nav > .nav-item > a {
    position: relative;
    border-bottom-color: transparent;
  }

  .site-header .primary-nav > a::after,
  .site-header .primary-nav > .nav-item > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--brass);
    pointer-events: none;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 300ms ease-out;
  }

  .site-header .primary-nav > a:is(:hover, :focus-visible)::after,
  .site-header .primary-nav > .nav-item > a:is(:hover, :focus-visible)::after {
    transform: scaleX(1);
    transform-origin: left center;
  }
}

@media (min-width: 761px) and (prefers-reduced-motion: reduce) {
  .site-header .primary-nav > a::after,
  .site-header .primary-nav > .nav-item > a::after {
    transition: none;
  }
}

/* Keep desktop dropdowns open on the way to them.
   The panels fade in place instead of sliding, so the hover bridge always
   meets the menu item above it. Closing waits a moment, so a mouse path that
   strays slightly does not shut the menu before the pointer arrives. Moving
   on to another menu item still closes the previous one straight away. */
@media (min-width: 761px) {
  .desktop-refresh .site-header .primary-nav .nav-item .nav-submenu {
    visibility: hidden;
    pointer-events: auto;
    transform: none;
    transition:
      opacity 0.16s ease 0.12s,
      visibility 0s linear 0.28s;
  }

  .desktop-refresh .site-header .primary-nav .nav-item .nav-submenu::before {
    height: 18px;
  }

  .desktop-refresh .site-header .primary-nav .nav-item:hover .nav-submenu,
  .desktop-refresh .site-header .primary-nav .nav-item:focus-within .nav-submenu {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition:
      opacity 0.16s ease,
      visibility 0s linear 0s;
  }

  .desktop-refresh .site-header .primary-nav:hover .nav-item:not(:hover):not(:focus-within) .nav-submenu {
    visibility: hidden;
    opacity: 0;
    transition: none;
  }

  .desktop-refresh .site-header .nav-submenu-item .nav-submenu-flyout {
    visibility: hidden;
    pointer-events: auto;
    transform: none;
    transition:
      opacity 0.14s ease 0.1s,
      visibility 0s linear 0.24s;
  }

  .desktop-refresh .site-header .nav-submenu-item:hover > .nav-submenu-flyout,
  .desktop-refresh .site-header .nav-submenu-item:focus-within > .nav-submenu-flyout {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition:
      opacity 0.14s ease,
      visibility 0s linear 0s;
  }

  .desktop-refresh .site-header .nav-submenu:hover .nav-submenu-item:not(:hover):not(:focus-within) > .nav-submenu-flyout {
    visibility: hidden;
    opacity: 0;
    transition: none;
  }
}
