.navbar .nav-link {
  color: var(--bs-body-color);
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1ch;
  text-decoration: none;
  position: relative;
}
.navbar .nav-link::after {
  content: "";
  background-color: transparent;
  transition: background-color 0.2s ease-in-out;
  height: 4px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.3em;
}
.navbar .nav-link:hover::after,
.navbar .nav-link[aria-current="page"]::after {
  background-color: var(--color-highlight) !important;
}

/* Fade edge of navbar to indicate there's content to scroll to */
@media (max-width: 768px) {
  .navbar::after {
    content: "";
    position: absolute;
    right: 0;
    width: 48px;
    height: 100%;
    background: linear-gradient(
      to right,
      rgba(255, 255, 255, 0),
      rgba(255, 255, 255, 1)
    );
    pointer-events: none;
  }
}

.language-switcher-select {
  min-width: 8rem;
  padding-left: 2.2em;
}

/* Collapse to icon-only at the same breakpoint #user-profile already uses to drop its
   username (see the d-none d-md-inline-block span in nav/_nav_header.html and
   nav/_nav_slim.html), so the picker isn't left as the one full-width control in an
   otherwise-compact header. */
@media (max-width: 767.98px) {
  .language-switcher-select {
    min-width: 0;
    width: 4.5rem;
    /* forms.css forces a 0.6rem top/bottom padding on every .form-select regardless of the
       -sm modifier, which otherwise makes this box taller than the 24px "Online" badge icon
       it sits next to and throws off their vertical alignment. */
    padding: 0.1rem 0.5rem 0.1rem 2.2em;
    color: transparent;
    background-color: transparent;
    border-color: transparent;
  }
}
