html {
  scroll-padding-top: var(--l2-header-offset, 5rem);
}

.l2p-nav-brand-text {
  font-family: var(--l2-brand, 'Artemus', 'Sora', sans-serif);
  line-height: 1;
  color: #272a64;
  transform: translateY(0.1em);
}

[data-bs-theme="dark"] .l2p-nav-brand-text {
  color: rgba(222, 226, 230, 0.75);
}

.l2p-nav-brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
}

.l2p-nav-toggler {
  margin-left: auto;
  border: 0;
}

.l2p-nav-toggler:focus {
  box-shadow: none;
}

.l2p-nav-toggler:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.4);
}

.l2p-nav-link {
  font-weight: 500;
  white-space: nowrap;
}

.l2p-header-sticky {
  position: sticky;
  top: 0;
  z-index: 1030;
}

.l2p-header-sticky::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-color: var(--bs-body-bg);
  background-color: rgba(var(--bs-body-bg-rgb), 0.72);
  backdrop-filter: saturate(180%) blur(16px);
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  border-bottom: 1px solid var(--bs-border-color-translucent);
  box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.28);
}

.l2p-nav-panel {
  --bs-offcanvas-width: min(20rem, 86vw);
}

.l2p-nav-panel-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
}

@media (max-width: 991.98px) {
  .l2p-nav-panel .offcanvas-header {
    border-bottom: 1px solid var(--bs-border-color-translucent);
  }

  .l2p-nav-panel .offcanvas-body {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 1rem 1rem;
  }

  .l2p-nav-panel .nav-item + .nav-item {
    border-top: 1px solid var(--bs-border-color-translucent);
  }

  .l2p-nav-panel .l2p-nav-link {
    position: relative;
    padding: 0.75rem 0 0.75rem 1rem;
    font-family: var(--l2-display, 'Sora', sans-serif);
    font-size: 1.05rem;
  }

  .l2p-nav-panel .l2p-nav-link.active {
    color: var(--bs-body-color);
  }

  .l2p-nav-panel .l2p-nav-link.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2px;
    height: 1.5rem;
    margin-top: -0.75rem;
    border-radius: 999px;
    background-color: var(--bs-primary);
  }

  .l2p-nav-action {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color-translucent);
  }

  .l2p-nav-action > * {
    width: 100%;
    justify-content: center;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
}

@media (max-width: 359.98px) {
  .l2p-nav-brand .l2p-nav-brand-text {
    display: none;
  }
}
