@import "../../scss/variables";
@import "../../scss/breakpoints.mixins";
@import "../../scss/grid.mixins";
@import "../../scss/typo.mixins";

// stylelint-disable-next-line selector-no-qualifying-type, selector-max-type
body.is-menu-open {
  overflow: hidden;
}

.header {
  position: relative;
}

.header__meta {
  display: none;

  @include media-breakpoint-up(smallDesktop) {
    display: block;
    width: 100%;
    height: 41px;
    padding-right: 0;
    padding-left: 0;
    background: $color-alabaster;
    border-top: 2px solid $color-axa-blue;
    border-bottom: 1px solid $color-mercury;
  }
}

.header__meta__container {
  // TODO: fluidity
  @include make-container();
  @include make-container-max-widths();

  display: flex;
  padding: 0 !important; // TODO: because media queries
}

.header__meta__links {
  display: flex;
  height: 41px - 2px; // will prevent links from growing when something messes up the meta bar
  padding: 0;
  margin-bottom: -1px; // overlay over the border-bottom of .header__meta
  list-style-type: none;
}

.header__meta__actions {
  display: flex;
  flex: 1;
  flex-direction: row;
  justify-content: flex-end;

  .button {
    height: 41px;
    padding-top: 3px;
    margin-top: -2px;
    margin-bottom: 0;
    background-color: $color-axa-blue;
    border-color: $color-axa-blue;

    @extend %typo-13;

    &:hover {
      border-color: $color-deep-sapphire;
    }

    &::after {
      background-color: $color-deep-sapphire;
    }
  }
}

.header__meta__actions__action {
  & + & {
    display: flex;

    &::before {
      display: block;
      width: 1px;
      height: 20px;
      content: "";
      background: $color-mercury;
      align-self: center;
    }
  }
}

.header__main {
  height: 60px;
  background: #fff;
  border-bottom: 1px solid $color-mercury;

  @include media-breakpoint-up(tablet) {
    height: 70px;
  }

  @include media-breakpoint-up(smallDesktop) {
    height: 75px;
    border-bottom-width: 2px;
  }
}

.header__main__container {
  @include make-container();
  @include make-container-max-widths(); // TODO: fluidity

  position: static;
  display: flex;
  height: 100%;
  justify-content: space-between;
}

.header__main__logo {
  display: block;
  align-self: center;
  font-size: 0;
  line-height: 1;
  border: 0;

  @include media-breakpoint-up(smallDesktop) {
    align-self: flex-start;
  }
}

.header__main__logo__svg {
  width: 35px;
  height: 35px;

  @include media-breakpoint-up(tablet) {
    width: 40px;
    height: 40px;
  }

  @include media-breakpoint-up(smallDesktop) {
    width: 55px;
    height: 55px;
  }
}

.header__main__burger {
  display: block;
  align-self: center;
  font-size: 0;
  line-height: 1;
  cursor: pointer;

  @include media-breakpoint-up(smallDesktop) {
    display: none;
  }
}

.header__main__burger__icon {
  width: 25px;
  height: 22px;
  color: $color-axa-blue;

  .header.is-menu-open & {
    display: none;
  }
}

.header__main__burger__close-icon {
  display: none;
  width: 20px;
  height: 20px;
  color: $color-axa-blue;

  .header.is-menu-open & {
    display: block;
  }
}

.header__main__menu {
  display: none;

  @include media-breakpoint-up(smallDesktop) {
    display: block;
  }
}

.header__mobile-menu {
  position: fixed;
  top: 60px;
  right: 0;
  bottom: 0;
  width: 100%;
  overflow: auto;
  background: #fff;
  transition: transform 0.2s $transition-ease;
  transform: translate3d(100%, 0, 0);

  .header.is-menu-open & {
    transform: translate3d(0, 0, 0);
  }

  @include media-breakpoint-up(tablet) {
    top: 69px;
    width: 370px;
    border-top: 1px solid $color-mercury;
  }

  @include media-breakpoint-up(smallDesktop) {
    display: none;
  }
}

.header__mobile-menu-backdrop {
  position: fixed;
  top: 69px;
  right: 0;
  bottom: 0;
  left: 0;
  visibility: hidden;
  background-color: #000;
  opacity: 0;
  transition: visibility 0s $transition-ease 0.2s, opacity 0.2s $transition-ease;

  .header.is-menu-open & {
    @include media-breakpoint-up(tablet) {
      visibility: visible;
      opacity: 0.5;
      transition: visibility 0s $transition-ease 0s, opacity 0.2s $transition-ease;
    }

    @include media-breakpoint-up(smallDesktop) {
      visibility: hidden;
      transition: visibility 0s $transition-ease 0s, opacity 0s $transition-ease;
    }
  }
}

.header__stroke {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: $z-index-header-stroke;
  width: 120px; // initial width
  height: 0;
  background: #f07662;
  opacity: 0;
  transition:
    height 195ms $transition-ease,
    width 195ms $transition-ease,
    transform 195ms $transition-ease,
    opacity 0s linear 195ms; // prevent the opacity from blocking close animation
  transform: translate(0);
  transform: translateZ(0);

  &.is-visible {
    height: 3px;
    opacity: 1;
    transition:
      height 195ms $transition-ease,
      width 195ms $transition-ease,
      transform 195ms $transition-ease,
      opacity 0s linear; // prevent the opacity from blocking open animation
  }
}
