/*-------------------------------------------*\
    2.21. Hamburger
\*-------------------------------------------*/

.u-hamburger {
  font-size: inherit;
  line-height: 0;
  padding: $hamburger-padding;

  &:hover {
    .u-hamburger__inner {
      &,
      &::before,
      &::after {
        background-color: $hamburger-layer-hover-color;
      }
    }
  }

  &__box {
    width: $hamburger-layer-width;
    height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;
    display: inline-block;
    position: relative;
  }

  &__inner {
    display: block;
    top: $hamburger-layer-height / 2;
    margin:top, $hamburger-layer-height / -2;

    &,
    &::before,
    &::after {
      width: $hamburger-layer-width;
      height: $hamburger-layer-height;
      background-color: $hamburger-layer-color;
      position: absolute;
      transition-property: transform;
      transition-duration: $hamburger-transition-duration;
      transition-timing-function: $hamburger-transition-timing-function;
    }

    &::before,
    &::after {
      content: "";
      display: block;
    }

    &::before {
      top: $hamburger-layer-height + $hamburger-layer-spacing;
      transition-property: transform, opacity;
      transition-duration: $hamburger-transition-duration;
      transition-timing-function: $hamburger-transition-timing-function;
    }

    &::after {
      top: ($hamburger-layer-height * 2) + ($hamburger-layer-spacing * 2);
    }
  }

  &[aria-expanded="true"] .u-hamburger__inner,
  & .is-active .u-hamburger__inner {
    $y-offset: $hamburger-layer-spacing + $hamburger-layer-height;
    transform: translate3d(0, $y-offset, 0) rotate(45deg);

    &::before {
      transform: rotate(-45deg) translate3d($hamburger-layer-width / -7, $hamburger-layer-spacing * -1, 0);
      opacity: 0;
    }

    &::after {
      transform: translate3d(0, $y-offset * -2, 0) rotate(-90deg);
    }
  }

  &--white {
    .u-hamburger__inner {
      &,
      &::before,
      &::after {
        background-color: $hamburger-layer-white-color;
      }
    }

    &:hover {
      .u-hamburger__inner {
        &,
        &::before,
        &::after {
          background-color: $hamburger-layer-white-hover-color;
        }
      }
    }
  }

  &--primary {
    .u-hamburger__inner {
      &,
      &::before,
      &::after {
        background-color: $primary;
      }
    }

    &:hover {
      .u-hamburger__inner {
        &,
        &::before,
        &::after {
          background-color: $primary;
        }
      }
    }
  }
}

.js-header-fix-moment {
  .u-hamburger--white {
    .u-hamburger__inner {
      &,
      &::before,
      &::after {
        background-color: $hamburger-layer-color;
      }
    }

    &:hover {
      .u-hamburger__inner {
        &,
        &::before,
        &::after {
          background-color: $hamburger-layer-hover-color;
        }
      }
    }
  }
}
