// Default navbar
.navbar-default {
  background-color: var(--navbar-bg);
  border-color: var(--navbar-border);
  padding: var(--navbar-padding);
  position: absolute;
  top: 0;
  width: 100%;
  height: $header-height;

  .navbar-container {
    padding-left: 0;
    padding-right: 0;
  }

  .navbar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1;
  }

  .navbar-brand {
    width: var(--navbar-brand-width);
    height: $header-height;
    padding: 0;
    background: var(--navbar-brand-image-url) no-repeat left center;
    background-size: contain;
  }

  .navbar-title {
    display: inline-block;
    font-size: var(--navbar-title-font-size);
    color: var(--navbar-title-color);
    text-decoration: none;

    &:hover,
    &:active,
    &:focus {
      color: var(--navbar-title-color-hover);
    }
  }

  .navbar-nav {
    > li {
      display: inline-flex;
      flex-shrink: 0;

      > .nav-link,
      > .dropdown-toggle {
        display: block;
        color: var(--navbar-link-color);
        background-color: transparent;
        padding: var(--navbar-btn-padding-v) var(--navbar-btn-padding-h);
        margin-left: var(--navbar-item-spacing-horizontal);
        border: var(--navbar-btn-border-width) solid
          var(--navbar-link-border-color);
        border-radius: var(--navbar-btn-border-radius);
        font-size: var(--navbar-btn-font-size);
        font-weight: var(--navbar-btn-font-weight);
        line-height: var(--navbar-btn-line-height);
        text-decoration: none;

        &.show,
        &:hover,
        &:focus {
          color: var(--navbar-link-hover-color);
          background-color: var(--navbar-link-hover-bg);
          border-color: var(--navbar-link-hover-border-color);
        }
      }

      &.subdued > .nav-link,
      &.subdued > .dropdown-toggle {
        border: 0;
        color: var(--navbar-subdued-color);
        padding: var(--navbar-subdued-padding);
        margin-left: 0;

        &.show,
        &:hover,
        &:focus {
          color: var(--navbar-subdued-hover-color);
          background-color: var(--navbar-subdued-hover-bg);
        }
      }

      &.primary > .nav-link {
        color: var(--navbar-primary-color);
        background-color: var(--navbar-primary-bg);
        border-color: var(--navbar-primary-border-color);

        &.show,
        &:hover,
        &:focus {
          background-color: var(--navbar-primary-hover-bg);
          border-color: var(--navbar-primary-hover-border-color);
        }
      }
    }
  }

  .navbar-toggler {
    --bs-navbar-toggler-padding-x: var(--spacing-04);

    color: var(--navbar-link-color);
    border-radius: var(--border-radius-base);
    border-width: 0;
    transition: 0.2s ease-out;

    &:not(.collapsed) {
      color: var(--navbar-toggler-expanded-color);
      background-color: var(--navbar-toggler-expanded-bg);
      transition: 0.2s ease-in;
    }

    & .material-symbols {
      font-size: inherit;
      font-weight: bold;
      vertical-align: middle;
    }
  }

  .navbar-collapse,
  .navbar-form {
    border-color: var(--navbar-border);
  }
}

@include media-breakpoint-only(lg) {
  :root {
    --navbar-btn-padding-h: #{$spacing-04};
  }
}

// Different (stacked) layout for smaller screens
@include media-breakpoint-down(lg) {
  .navbar-default .navbar-collapse {
    &.show {
      min-height: calc(100vh - $header-height);
    }

    background-color: var(--navbar-bg);
    margin: 0 calc(-1 * var(--navbar-padding-h));
    z-index: 1;

    .navbar-nav {
      > li {
        display: block;

        > a,
        > .dropdown-toggle,
        > .nav-link {
          margin: 0;
          padding-top: var(--spacing-05);
          padding-bottom: var(--spacing-05);
          width: 100%;
          text-align: left;
          border-radius: 0;
          border-width: 0;
        }

        // Dropdowns get custom display when collapsed
        .dropdown-menu.show {
          --bs-dropdown-spacer: 0;

          box-shadow: none;
          background-color: var(--navbar-hamburger-submenu-bg);
          width: auto;

          .dropdown-item {
            padding: var(--spacing-02) var(--spacing-06) var(--spacing-02)
              var(--spacing-08);

            &:not(.disabled) {
              color: var(--navbar-hamburger-submenu-item-color);

              &:hover,
              &:focus {
                color: var(--navbar-hamburger-submenu-item-hover-color);
                background-color: var(--navbar-hamburger-submenu-item-hover-bg);
              }
            }
          }
        }
      }
    }
  }
}

// Accessibility
.skip-to-content {
  color: var(--navbar-link-color);
  background-color: var(--navbar-link-bg);
  border: var(--spacing-01) solid transparent;
  border-radius: var(--navbar-btn-border-radius);
  font-size: var(--navbar-btn-font-size);
  font-weight: var(--navbar-btn-font-weight);
  left: calc(var(--navbar-brand-width) + var(--spacing-09));
  line-height: var(--navbar-btn-line-height);
  padding: var(--navbar-btn-padding-v) var(--navbar-btn-padding-h);
  position: absolute;
  top: -200px;
  z-index: 1;

  &:focus {
    background-color: var(--navbar-link-hover-bg);
    border: var(--spacing-01) solid var(--navbar-link-hover-color);
    color: var(--white);
    text-decoration: none;
    top: calc(($header-height - 36px) / 2); // 36px is the height of the link
  }
}

.website-redesign-navbar,
.website-redesign .navbar-default {
  --navbar-title-color: var(--content-primary);
  --navbar-title-color-hover: var(--content-secondary);
  --navbar-brand-image-url: url('../../../../public/img/ol-brand/overleaf-black.svg');
  --navbar-subdued-color: var(--content-primary);
  --navbar-subdued-hover-bg: var(--bg-dark-primary);
  --navbar-subdued-hover-color: var(--content-primary-dark);
  --navbar-bg: var(--bg-light-primary);

  // Navbar links
  --navbar-link-color: var(--content-primary);
  --navbar-link-border-color: var(--border-primary);
  --navbar-link-hover-color: var(--navbar-link-color);
  --navbar-link-hover-bg: var(--bg-light-tertiary);
  --navbar-link-hover-border-color: var(--navbar-link-border-color);

  // Toggler
  --navbar-toggler-expanded-color: var(--white);
  --navbar-toggler-expanded-bg: var(--bg-dark-primary);

  // Mobile view
  --navbar-hamburger-submenu-bg: var(--bg-light-secondary);
  --navbar-hamburger-submenu-item-color: var(--navbar-link-color);
  --navbar-hamburger-submenu-item-hover-color: var(--white);
  --navbar-hamburger-submenu-item-hover-bg: var(--bg-dark-primary);
}
