.bs-mobile-toggle {
  display: none;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border: 1px solid var(--bs-mobile-nav-border, rgba(36, 33, 27, 0.2));
  border-radius: 4px;
  background: var(--bs-mobile-nav-toggle-background, rgba(255, 255, 255, 0.42));
  color: var(--bs-mobile-nav-text, #24211b);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.bs-mobile-toggle-line,
.bs-mobile-toggle::before,
.bs-mobile-toggle::after {
  content: "";
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
}

.bs-mobile-toggle-line {
  margin: 5px 0;
}

.bs-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: var(--bs-mobile-nav-backdrop, rgba(36, 33, 27, 0.32));
}

.bs-mobile-menu[hidden] {
  display: none !important;
}

.bs-mobile-menu-panel {
  width: min(330px, calc(100vw - 28px));
  max-height: calc(100svh - 28px);
  margin: 14px 14px 0 auto;
  overflow-y: auto;
  border: 1px solid var(--bs-mobile-nav-border, rgba(36, 33, 27, 0.2));
  border-radius: 4px;
  background: var(--bs-mobile-nav-background, #f7f3e8);
  box-shadow: var(--bs-mobile-nav-shadow, 0 24px 80px rgba(36, 33, 27, 0.22));
  padding: 12px;
  display: grid;
  gap: 0;
}

.bs-mobile-menu-panel a {
  border-bottom: 1px solid var(--bs-mobile-nav-border, rgba(36, 33, 27, 0.2));
  padding: 13px 10px;
  color: var(--bs-mobile-nav-text, #24211b);
  font-family: var(--bs-mobile-nav-font, ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-decoration: none;
  text-transform: uppercase;
}

.bs-mobile-menu-panel a:hover,
.bs-mobile-menu-panel a:focus-visible {
  background: var(--bs-mobile-nav-hover-background, rgba(36, 33, 27, 0.06));
}

.bs-mobile-menu-group {
  display: grid;
}

.bs-mobile-menu-group-label {
  padding: 16px 10px 6px;
  color: var(--bs-mobile-nav-muted, #6f685c);
  font-family: var(--bs-mobile-nav-font, ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.bs-mobile-menu-group a:last-child {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .bs-mobile-nav-host .bs-mobile-desktop-links {
    display: none;
  }

  .bs-mobile-toggle {
    display: inline-flex;
    flex-direction: column;
  }
}
