$header-meta-height: 40px;
$header-main-height: 72px;
$header-brand-height: 44px;

$header-search-xs-width: 200px;
$header-search-sm-width: 300px;
$header-search-md-width: 400px;
$header-search-lg-width: 500px;

$header-item-padding: 15px;

.header {
  display: block;
  position: relative;

  width: 100%;

  transition: background-color $transition-normal $transition-ease;
  background-color: $color-white;
  z-index: $z-index-header;

  &.transparent {
    background-color: transparent;
    color: $color-white;
  }

  &.header-fixed-top,
  &.affix {
    position: fixed;
    top: 0;
    z-index: $z-index-fixed-header;
  }

  &.header-absolute {
    position: absolute;
    transition: position 0 linear $transition-delay-normal;
  }

  &.revealable {
    position: fixed;
    top: 0;
    transform: translateY(-100%);
  }

  &.revealed,
  &.unrevealed {
    transition: transform $transition-normal $transition-ease;
  }

  &.revealed {
    transform: translateY(0%);
  }

  &.unrevealed {
    transform: translateY(-100%);
  }
}

.header-title {
  @extend .typo-18;

  display: flex;
  align-items: center;
  height: 100%;
  padding-right: $header-item-padding;
}

.header-brand {
  @extend .typo-24;

  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-start;
  height: $header-brand-height;

  padding-right: $header-item-padding;

  float: left;

  color: $color-axa-blue;
  font-weight: normal;
  line-height: 1;
  text-decoration: none;

  &:hover,
  &:focus,
  &:active {
    color: $color-deep-sapphire;
    text-decoration: none;

    .header.transparent & {
      color: $color-wild-sand;
    }
  }

  .header.transparent & {
    color: $color-white;
  }
}

.header-brand-axa-xx {
  height: 72px;
}

.header-brand-image {
  width: auto;
  height: $header-brand-height;
}

.header-item {
  display: flex;
  align-items: center;
  height: 100%;
  padding-right: $header-item-padding;
}

.header-search {
  display: flex;
  position: relative;
  width: 60px;
  height: 100%;
  overflow: visible;
}

.header-search-dunno {
  display: flex;
  position: absolute;
  right: 0;
  width: 60px;
  height: 100%;
  transition: width $transition-normal $transition-easeout;

  .header-search.is-open & {
    width: $header-search-xs-width;
    transition: width $transition-normal $transition-easein $transition-delay-normal;

    @include media-breakpoint-up(sm) {
      width: $header-search-sm-width;
    }

    @include media-breakpoint-up(md) {
      width: $header-search-md-width;
    }

    @include media-breakpoint-up(lg) {
      width: $header-search-lg-width;
    }
  }

}

.header-search-input {
  @extend .typo-20;

  flex-grow: 1;
  width: inherit;
  min-width: 0;
  padding: 0;
  border: none;
  outline: none;
  background: transparent;

  color: $color-mineshaft;

  .header.transparent & {
    color: $color-white;
  }
}

.header-search-button {
  flex-grow: 0;
  flex-shrink: 0;
  width: 60px;
  border: none;
  outline: none;
  background: none;
  color: $color-silver;
  font-size: 24px;

  @include media-breakpoint-up(sm) {
    &:before {
      margin-right: 10px;
      border-left: 1px solid $color-silver;
      content: '';
    }
  }

  @include media-breakpoint-down(xs) {
    &:after {
      margin-right: 10px;
      margin-left: 8px;
      border-right: 1px solid $color-silver;
      content: '';
    }
  }

}

.header-meta {
  @include clearfix();

  height: $header-meta-height;
  transition: border-bottom $transition-normal $transition-ease;
  border-top: 2px solid $color-azure;
  border-bottom: 1px solid $color-wild-sand;

  .header.transparent & {
    border-bottom-color: transparent;
  }

  .container,
  .container-fluid {
    height: 100%;
    padding-right: 0;
  }
}

.header-meta-menu {
  display: inline-block;
  height: 100%;
}

.header-meta-menu-list {
  display: flex;
  align-items: flex-end;

  height: 100%;

  margin: 0;
  padding: 0;

  list-style-type: none;
}

.header-meta-menu-item {
  height: 100%;

  margin: 0;
  padding: 0;
}

.header-meta-menu-link {
  @extend .typo-navigation;

  display: flex;
  align-items: center;
  justify-content: center;

  height: 100%;
  padding-right: 20px;
  padding-left: 20px;

  color: $color-silver;

  .header.transparent & {
    color: $color-alabaster;
  }

  &.is-active,
  &:hover,
  &:focus,
  &:active {
    text-decoration: none;
    cursor: pointer;

    .header.transparent & {
      color: $color-white;
    }
  }
}

.header-main {
  @include clearfix();

  position: relative;

  height: $header-main-height;

  transition: border-bottom $transition-normal $transition-ease;
  border-bottom: 2px solid $color-wild-sand;

  .header.transparent & {
    border-bottom-color: transparent;
  }

  .container,
  .container-fluid {
    height: 100%;
    padding-right: 0;
  }
}

.header-burger {
  display: inline-flex;
  align-items: center;
  order: 6;

  height: 100%;

  margin-left: -$header-item-padding;
  padding: 10px $header-item-padding;
  font-size: 30px;

  .header-burger-line {
    display: block;
    position: relative;
    width: 23px;
    height: 2px;
    transition: all $transition-normal $transition-ease;
    background: $color-axa-blue;

    &:before,
    &:after {
      display: block;
      position: absolute;
      left: 0;
      width: 23px;
      height: 2px;
      transition: all $transition-normal $transition-ease;
      background: $color-axa-blue;
      content: '';
      z-index: 0;
    }

    &:before {
      top: -8px;
    }

    &:after {
      top: 8px;
    }

    .header.transparent &,
    .header.transparent &:before,
    .header.transparent &:after {
      background: $color-white;
    }
  }

  &.is-open {
    .header-burger-line {
      &,
      .header.transparent & {
        background: transparent;
      }

      &:before,
      &:after {
        top: 0;
        transform-origin: 50% 50%;
      }

      &:before {
        transform: rotate(45deg);
        transform: rotate3d(0, 0, 1, 45deg);
      }

      &:after {
        transform: rotate(-45deg);
        transform: rotate3d(0, 0, 1, -45deg);
      }
    }
  }
}
