/* Frontend styles for Menu Button */
.qm-menu-button {
  position: relative;
  display: inline-block;
}

.qm-menu-button__single,
.qm-menu-button__toggle {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: .5rem;
  padding: 0 var(--wp--preset--spacing--large);
  border-radius: var(--wp--preset--radius--2-x-large);
  text-decoration: none;
  border: none;
  cursor: pointer;
  height: var(--wp--preset--size--large);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--preset--line-height--large);
  font-weight: var(--wp--preset--font-weight--regular);
  margin: 0;
  justify-content: start;
  background-color: transparent;
  color: #000000;
}

/* Hover state: primary color */
.qm-menu-button__single:hover,
.qm-menu-button__toggle:hover {
  color: var(--wp--preset--color--primary);
}

.qm-menu-button__caret { 
  opacity: .8;
  display: inline-block;
  transition: transform 0.3s ease;
  transform: rotate(0deg);
  flex-shrink: 0;
}

/* Rotate caret 180deg when menu is open */
.qm-menu-button.is-open .qm-menu-button__caret {
  transform: rotate(180deg);
}

/* Default submenu style (desktop dropdown) */
.qm-menu-button__submenu {
  position: absolute;
  list-style: none;
  padding: 8px;
  margin: 0px;
  background: var(--wp--preset--color--base, #ffffff);
  border-radius: var(--wp--preset--radius--2-x-large);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  z-index: 30;
  top: 100%;
  left: 0;
}

.qm-menu-button__submenu-item { margin: 0; }

.qm-menu-button__submenu-item .qm-menu-button__link {
  display: flex;
  flex-direction: row;
  align-items: center;
  white-space: nowrap;
  gap: var(--wp--preset--spacing--small);
  padding: 0 var(--wp--preset--spacing--large);
  border-radius: var(--wp--preset--radius--2-x-large);
  text-decoration: none;
  color: #000000;
  margin: 0px;
  height: var(--wp--preset--size--large);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--preset--line-height--large);
  font-weight: var(--wp--preset--font-weight--regular);
  justify-content: start;
  background-color: transparent;
}

.qm-menu-button__submenu-item .qm-menu-button__link:hover,
.qm-menu-button__submenu-item .qm-menu-button__link:focus {
  color: var(--wp--preset--color--primary);
}

/* Hover behavior on desktop */
@media (hover: hover) and (pointer: fine) and (min-width: 782px) {
  .qm-menu-button.has-submenu:hover .qm-menu-button__submenu {
    display: block !important;
  }
  
  /* Rotate caret on hover (desktop only) */
  .qm-menu-button.has-submenu:hover .qm-menu-button__caret {
    transform: rotate(180deg);
  }
}

/* is-open state for click/touch */
.qm-menu-button.is-open .qm-menu-button__submenu {
  display: block !important;
}

/* When open, only main toggle becomes primary (submenu items change on their own hover) */
.qm-menu-button.is-open .qm-menu-button__toggle {
  color: var(--wp--preset--color--primary);
}

/* Default hidden state using [hidden] attribute (set in PHP) */
.qm-menu-button__submenu[hidden] { display: none; }

/* Mobile / touch styles: stack submenu full width below the button */
@media (hover: none) and (pointer: coarse), (max-width: 782px) {
  /* Only click (is-open) should show submenu; do not alter on hover */
  .qm-menu-button.is-open .qm-menu-button__submenu { display: block !important; }

  .qm-menu-button { display: block; }
  .qm-menu-button__toggle { display: flex; width: 100%; }
  .qm-menu-button__single { display: inline-flex; width: 100%; justify-content: start; }
  .qm-menu-button__submenu {
    position: static;
    width: 100%;
    padding: 0px;
    padding-left: var(--wp--preset--spacing--small);
    border-radius: 0;
    box-shadow: none;
  }

  .qm-menu-button__toggle {
    justify-content: space-between;
  }
}
