/* Hover dropdown */

.hoverdropdown {
  --hoverdropdown-gap: 12px;
  --hoverdropdown-width: 300px;
  --hoverdropdown-padding: 18px;
  --hoverdropdown-radius: var(--br-l, 16px);
  --hoverdropdown-shadow: var(--box-shadow, 0 8px 28px rgb(0 0 0 / 8%));

  position: relative;
}

.hoverdropdown__trigger {
  --size: 12px;

  color: inherit;
}

.hoverdropdown__trigger::after {
  transition: transform var(--transition, 0.2s ease);
}

.hoverdropdown.is-open > .hoverdropdown__trigger::after,
.hoverdropdown__trigger[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

.hoverdropdown__menu {
  position: absolute;
  z-index: var(--hoverdropdown-z, 100);
  top: calc(100% + var(--hoverdropdown-gap));
  left: var(--hoverdropdown-left, 50%);

  width: min(
    var(--hoverdropdown-width),
    calc(100vw - var(--container-pad, 16px) * 2)
  );
  padding: var(--hoverdropdown-padding);

  color: var(--text-color);
  background: var(--surface, var(--background));
  border: var(--border, 1px solid var(--border-color));
  border-radius: var(--hoverdropdown-radius);
  box-shadow: var(--hoverdropdown-shadow);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(var(--hoverdropdown-translate-x, -50%), -6px);

  transition:
    opacity var(--transition, 0.2s ease),
    visibility var(--transition, 0.2s ease),
    transform var(--transition, 0.2s ease);
}

.hoverdropdown__menu::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: var(--hoverdropdown-gap);
}

.hoverdropdown.is-open > .hoverdropdown__menu,
.hoverdropdown__menu.is-open,
.hoverdropdown__menu[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(var(--hoverdropdown-translate-x, -50%), 0);
}

.hoverdropdown--align-start {
  --hoverdropdown-left: 0;
  --hoverdropdown-translate-x: 0%;
}

.hoverdropdown--align-end {
  --hoverdropdown-left: auto;
  --hoverdropdown-translate-x: 0%;
}

.hoverdropdown--align-end > .hoverdropdown__menu {
  right: 0;
}

.hoverdropdown__list {
  display: grid;
  gap: 4px;
}

.hoverdropdown__link {
  display: block;
  padding: 10px 12px;

  color: inherit;
  text-decoration: none;
  border-radius: var(--br-s, 8px);

  transition:
    color var(--transition, 0.2s ease),
    background-color var(--transition, 0.2s ease);
}

.hoverdropdown__link:hover,
.hoverdropdown__link:focus-visible {
  color: var(--accent-color);
  background: var(--accent-light-color, var(--surface-light));
}

@media (max-width: 767px) {
  .hoverdropdown {
    width: 100%;
  }

  .hoverdropdown__trigger {
    justify-content: space-between;
    width: 100%;
  }

  .hoverdropdown__menu,
  .hoverdropdown--align-end > .hoverdropdown__menu {
    position: static;

    width: 100%;
    max-height: 0;
    overflow: hidden;
    padding: 0;

    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;

    opacity: 1;
    visibility: visible;
    pointer-events: none;
    transform: none;

    transition:
      max-height 0.35s ease,
      padding-block 0.35s ease;
  }

  .hoverdropdown__menu::before {
    display: none;
  }

  .hoverdropdown.is-open > .hoverdropdown__menu,
  .hoverdropdown__menu.is-open,
  .hoverdropdown__menu[aria-hidden="false"] {
    max-height: var(--hoverdropdown-mobile-height, 600px);
    padding-block: 8px;
    pointer-events: auto;
    transform: none;
  }

  .hoverdropdown__list {
    padding-left: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hoverdropdown__trigger::after,
  .hoverdropdown__menu {
    transition: none;
  }
}
