/* gmenu Core ----------------------------------------------------- */
.gmenu-nav {
  padding-top: .5rem;
  padding-bottom: 1rem;
}

.gmenu-list {
  margin: 0;
  padding: 0;
}

.gmenu-item + .gmenu-item {
  margin-top: .125rem;
}

/* Links & Buttons ------------------------------------------------ */
.gmenu-link {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .5rem;
  border-radius: .5rem;
  border: 1px solid transparent;
  background-color: transparent;
  color: var(--bs-body-color);
  text-decoration: none;
  font-size: .925rem;
  line-height: 1.3;
  cursor: pointer;
  transition:
    background-color .15s ease,
    border-color .15s ease,
    color .15s ease,
    box-shadow .15s ease;
}

.gmenu-link > span, .gmenu-link > .gmenu-text {
  position: relative;
  top: 1px;
}

/* HOVER ---------------------------------------------------------- */
.gmenu-link:hover {
  --gmenulink-background-color: color-mix(in srgb, var(--bs-tertiary-color) 18%, var(--bs-tertiary-bg));
  background-color: var(--gmenulink-background-color);
  border-color: var(--bs-border-color);
  text-decoration: none;
}

/* FOCUS ---------------------------------------------------------- */
.gmenu-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--bs-primary);
}

/* ACTIVE --------------------------------------------------------- */
.gmenu-link.active {
  background-color: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary-border-subtle);
  color: var(--bs-primary-text-emphasis);
}

/* Icons & Bullets ------------------------------------------------ */
.gmenu-icon {
  flex: 0 0 auto;
  font-size: 1.1rem;
  position: relative;
  bottom: .5px;
}

.gmenu-emoji {
  margin-left: -.2rem;
  margin-right: -.2rem;
}

.gmenu-bullet {
  flex: 0 0 auto;
  width: .5rem;
  height: .5rem;
  border-radius: 999px;
  margin-right: .25rem;
  background-color: var(--bs-border-color);
}

/* Tail: badge + chevron ----------------------------------------- */
.gmenu-tail {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  flex-shrink: 0;
}
.gmenu-tail:has(.gmenu-chevron) > .badge {
  margin-right: unset !important;
}
.gmenu-tail:not(.gmenu-chevron) > .badge {
  margin-right: 1.15rem;
}

/* Chevron -------------------------------------------------------- */
.gmenu-chevron {
  font-size: .8rem;
  opacity: .7;
  transition: transform .15s ease, opacity .15s ease;
}
/* Rotate when open */
.gmenu-item.gmenu-open > .gmenu-link .gmenu-chevron {
  transform: rotate(90deg);
}
.gmenu-item.gmenu-has-children > .gmenu-link:hover .gmenu-chevron {
  opacity: 1;
}

/* Submenus -------------------------------------------------------- */
.gmenu-sub {
  display: none;
  padding-left: .75rem;
  margin-top: .125rem;
}

.gmenu-item.gmenu-open > .gmenu-sub {
  display: block;
}

.gmenu-sub .gmenu-link {
  padding-top: .375rem;
  padding-bottom: .5rem;
}

/* Nested submenus indentation */
.gmenu-sub .gmenu-sub {
  padding-left: .75rem;
}

/*************************************************/

/* Active submenu item */
.gmenu-link.active {
  background-color: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary-border-subtle);
  color: var(--bs-primary-text);
  font-weight: 600;
}

/* Parent active items */
.gmenu-link.parent-active {
  background-color: var(--bs-tertiary-bg);
  border-color: var(--bs-border-color);
  color: var(--bs-body-color);
}

.gmenu-invisible {
  visibility: hidden !important;
}

.gmenu .badge.text-bg-primary {
    filter: hue-rotate(18deg);
}
