.menu-drawer {
  pointer-events: none;
  overflow: hidden;

  &__wrap {
    pointer-events: all;
    background-color: $white;
    transform: translateY(-100%);
    opacity: 0;
    transition: all 0.3s ease-out;
  }

  &.js-open {
    .menu-drawer__wrap {
      transform: translateY(0);
      opacity: 1;
    }
  }

  &__content {
    width: 100%;
    overflow: hidden;

    .js-open & {
      transition: height 250ms ease-out;
    }
  }

  &__content-wrap {
    width: 100%;
    height: 100%;
    max-width: $max-width;
    display: flex;
    align-items: flex-start;
    padding: 0 $gutter;
    justify-content: space-between;
    margin: auto;
  }

  &__col {
    width: 100%;
    margin-right: 30px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-out;

    &:first-child {
      transition-delay: 100ms;
    }

    &:nth-child(2) {
      transition-delay: 200ms;
    }

    &:nth-child(3) {
      transition-delay: 300ms;
    }

    &:nth-child(4) {
      transition-delay: 400ms;
    }

    .js-active & {
      opacity: 1;
      pointer-events: all;
    }
  }

  &__menus {
    position: relative;
    width: 100%;

    @include mdx {
      margin-left: 15px;
    }

    nav {
      left: 200px;
      position: absolute;
      display: flex;
      flex-direction: column;
      padding: 32px 0;
      pointer-events: none;
      width: 100%;
      max-width: calc(100% - 200px);

      &.js-active {
        pointer-events: all;
      }
    }

    ul {
      width: 100%;
      max-width: 50%;
      padding: 32px;
      position: absolute;
      opacity: 0;
      pointer-events: none;
      top: 0;
      left: 50%;
      transition: all 300ms ease-out;

      &.js-active {
        opacity: 1;
        pointer-events: all;
      }
    }

    li {
      display: block;
      width: 100%;

      a {
        display: block;
        border-bottom-width: 1px;
        border-bottom-style: solid;
        border-bottom-color: $gray-10;
        cursor: pointer;
        padding: 16px 0;
        font-family: $font-default;
        font-size: 1.6rem;
        font-style: normal;
        font-weight: 500;
        line-height: 150%;
        letter-spacing: -0.16px;
        width: 100%;
        transition: all 300ms ease-out;

        .menu-drawer__menu-item-text {
          display: block;
          width: 100%;
          max-width: calc(100% - 32px);
          transition: all 300ms ease-out;
        }

        &:hover {
          background-color: $gray-bluish-light;
          border-radius: 4px;
          border-bottom-color: transparent;

          .menu-drawer__menu-item-text {
            margin-left: 16px;
          }
        }
      }
    }
  }

  &__menus-title {
    position: absolute;
    width: 100%;
    max-width: 200px;
    padding: 32px 32px 32px 0;
    color: $medium-color;
    margin: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-out;

    &.js-active {
      opacity: 1;
      pointer-events: all;
    }
  }

  &__ctas {
    position: relative;
    width: 588px;
    height: 100%;
    padding: 0 32px;
    flex-shrink: 0;
    overflow: hidden;
    transition: all 300ms ease-out;

    &.js-children-active {
      width: 294px !important;
    }

    &:before {
      content: '';
      display: block;
      position: absolute;
      left: 0;
      top: 0;
      width: 100vw;
      height: 100%;
      transform: translateX(30%);
      opacity: 0;
      transition: all 300ms ease-out;

      .js-open & {
        transform: translateX(0);
        opacity: 1;
        transition-delay: 100ms;
      }
    }
  }

  &__cta {
    display: flex;
    position: absolute;
    opacity: 1;
    pointer-events: none;
    width: 294px;
    transition: opacity 1ms linear 0;

    &.js-active {
      opacity: 1;
      transition-delay: 0;
      pointer-events: all;
    }
  }

  &__col-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: $medium-color;
    font-family: $font-default;
    font-size: 1.8rem;
    font-style: normal;
    font-weight: 500;
    line-height: 150%;
    letter-spacing: -0.18px;
    width: 100%;
    padding: 16px 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: $gray-10;
    cursor: pointer;
    transition: all 300ms ease-out;

    &:hover {
      background-color: $gray-bluish-light;
      border-radius: 4px;
      border-bottom-color: transparent;
      padding: 16px;
    }

    a {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      color: $medium-color;
    }
  }

  [data-role="submenu"] {
    transition: all 300ms ease-out;
    transition-delay: 0ms;

    &.js-active {
      opacity: 1;
      transition-delay: 200ms;
    }
  }

  &__col-heading-text {
    display: inline-block;
    max-width: calc(100% - 50px);
  }

  &__col-heading-icon {
    display: inline-block;
    margin-left: 12px;
    width: 24px;
    height: 24px;

    svg {
      width: 100%;
      height: 100%;
    }
  }

  &__col-footer {
    margin-top: 25px;

    a {
      font-size: 1.4rem;
      letter-spacing: 0.2px;
    }
  }

  &__banner {
    background: $medium-color;
    cursor: pointer;
  }

  &__banner-content {
    position: relative;
    max-width: $max-width;
    padding: 0 $gutter;
    margin: auto;
    height: 70px;

    @include sm {
      padding: 0 $gutter-mobile;
    }
  }

  &__banner-item {
    font-family: var(--font-heading);;
    position: absolute;
    top: 0;
    display: flex;
    align-items: center;
    // margin-left: calc(100% / 12);
    color: $white;
    font-size: 2.1rem;
    font-weight: 600;
    height: 70px;
    pointer-events: none;
    opacity: 0;
    transform: translateX(-50px);
    transition: all 300ms ease-out;

    @include mdx {
      margin-left: 15px;
    }

    &.js-active {
      opacity: 1;
      transform: translateX(0);
      transition-delay: 200ms;
      pointer-events: all;
    }

    img {
      max-height: 34px;
      margin-right: 15px;
    }
  }

  &__banner-cta {
    margin-left: 30px;
    font-size: 2.1rem;
    font-weight: 400;
    color: $white;

    &:after {
      top: 6px;
      background-color: $white;
      width: 24px;
      height: 23px;
    }

    &:hover .link-underline {
      width: calc(100% - 26px);
    }
  }
}
