@use "00-base/configure" as *;

.ma__secondary-nav {

  @include ma-container;

  // Used in openmass to help reliably detect item wrapping.

  &__container {
    position: relative;
  }

  &__items {

    @include ma-reset-list;

    display: flex;
    flex-wrap: wrap;
    position: relative;
  }

  &__subitems-container {
    display: none;
    padding-block: 0.5rem;
  }

  &__item {
    display: flex;
    align-items: center;
    position: relative;

    .ma__secondary-nav__link,
    .ma__secondary-nav__top-link-trigger {
      padding-block: 1rem;
    }

    &.has-subnav {

      .ma__secondary-nav__link {
        padding-inline-start: 1.25rem;
      }

      .ma__secondary-nav__top-link-trigger {
        padding-inline: 0 1.25rem;
      }
    }

    &:not(.has-subnav) {

      .ma__secondary-nav__link {
        padding-inline: 1.25rem;
      }
    }

    &:last-of-type {

      .ma__secondary-nav__subitems-container {
        inset-inline-start: auto;
        inset-inline-end: 0;
      }
    }

    &.is-open {

      .ma__secondary-nav {

        &__subitems-container {
          display: block;
        }
      }
    }

    &::after {
      content: '';
      position: absolute;
      z-index: $z-low;
      background-color: var(--mf-c-primary);
      display: none;
    }
  }

  &__link {
    color: inherit;
    font-weight: $fonts-medium;
    line-height: 1.78;
    text-decoration: none;
    transition: none;

    &:hover,
    &:focus {
      text-decoration: underline;
    }
  }

  &__top-link-trigger {
    color: var(--mf-c-primary-alt);
    background: transparent;
    border: none;
  }

  &__top-link-icon {
    color: var(--mf-c-primary-alt);
  }

  &__subitems {

    @include ma-reset-list;
  }

  &__subitem {

    &:hover {
      background-color: var(--mf-c-primary);
      color: var(--mf-c-white);
    }

    .ma__secondary-nav__link {
      display: block;
      font-size: 1rem;
      line-height: 1.5;
      padding-block: 0.75rem;
      padding-inline: 1rem;
    }
  }

  // Desktop-specific Styles

  @media ($bp-header-toggle-min) {

    &__subitems-container {
      position: absolute;
      z-index: $z-dropdown;
      inset-block-start: 100%;
      inset-inline-start: 0;
      background-color: var(--mf-c-bg);
      box-shadow: $box-shadow;
      width: 300px;
    }

    &__item {
      gap: 0 0.5rem;

      &.is-active,
      &.is-open,
      &:hover {

        &::after {
          display: block;
          width: 100%;
          height: 4px;
          inset-inline-start: 0;
          inset-block-end: 0;
        }
      }

      &.is-open {

        .ma__secondary-nav {

          &__top-link-icon {
            transform: rotateX(180deg);
          }
        }
      }

      &:hover,
      &.is-open {
        background-color: var(--mf-c-gray-lightest);
      }
    }

    &__top-link-trigger .icon-plus {
      display: none;
    }
  }

  // Mobile-specific Styles

  @media ($bp-header-toggle-max) {

    padding: 0;
    margin: 0;
    background-color: var(--mf-c-gray-lightest);

    &__items {
      flex-direction: column;
    }

    &__item {
      width: 100%;
      flex-wrap: wrap;
      border-block-end: 1px solid var(--mf-c-gray-light);
      align-items: stretch;

      &:first-of-type {
        border-block-start: 1px solid var(--mf-c-gray-light);
      }

      &.has-subnav,
      &:not(.has-subnav) {

        .ma__secondary-nav__link,
        .ma__secondary-nav__top-link-trigger {
          padding-block: 1rem;
          padding-inline: 1rem;
        }
      }

      & > .ma__secondary-nav__link {
        border-inline-start: 4px solid transparent;
      }

      &.is-active > .ma__secondary-nav__link {
        border-inline-start-color: var(--mf-c-primary);
      }

      &.is-open {

        .ma__secondary-nav {

          &__top-link-icon {
            transform: rotateZ(45deg);
          }
        }
      }
    }

    &__subitems-container {
      flex: 1 0 100%;
      background-color: var(--mf-c-white);
    }

    &__subitem {
      padding-inline: 0.5rem;
    }

    &__link {
      flex-grow: 1;
    }

    &__item > &__link,
    &__item > &__top-link-trigger {

      &:hover {
        background-color: var(--mf-c-gray-light);
      }
    }

    &__item > &__link {
      flex: 0 1 calc(100% - 3.5rem);
    }

    &__top-link-trigger {
      flex-shrink: 1;
      width: 3.5rem;
    }

    &__top-link-trigger {
      border-inline-start: 1px solid var(--mf-c-gray-light);

      .icon-chevron {
        display: none;
      }
    }
  }
}

// Show subitems on keyboard focus when JS is disabled.

html:not(.js) .ma__secondary-nav {

  &__item:hover {
    background-color: var(--mf-c-gray-light);
  }

  &__item:focus-within {

    .ma__secondary-nav__subitems-container {
      display: block;
    }
  }

  @media ($bp-header-toggle-min) {

    &__item {

      &:hover {

        .ma__secondary-nav__subitems-container {
          display: block;
        }
      }
    }
  }
}
