:host {
  display: block;
}

.hy-hero {
  overflow: hidden;
  position: relative;

  @include breakpoint($extrawide) {
    margin-left: 8px;
    margin-right: 8px;
    margin-top: 8px;
  }

  @include breakpoint($xlarge) {
    margin-left: -12px;
    margin-right: 0;
    margin-top: 24px;
  }

  @include breakpoint(1648px) {
    margin-left: 0;
  }

  &--blue {
    .hy-hero__content-container,
    .hy-hero__spacer-box {
      background-color: var(--brand-main-light);
    }

    .hy-hero__title {
      &:not(.hy-hero__title--overlay) {
        span {
          color: var(--grayscale-white);
        }
      }

      h1 {
        color: var(--grayscale-white);
      }

      &--overlay {
        span {
          background-color: var(--brand-main-light);
          box-shadow: 24px 0 0 var(--brand-main-light), -24px 0 0 var(--brand-main-light);
          color: var(--brand-main-light);
          display: inline;
          position: relative;

          @include breakpoint($narrow) {
            box-shadow: 48px 0 0 var(--brand-main-light), -48px 0 0 var(--brand-main-light);
          }

          @include breakpoint($wide) {
            box-shadow: 32px 0 0 var(--brand-main-light), 0 0 0 var(--brand-main-light);
          }

          @include breakpoint($extrawide) {
            box-shadow: 40px 0 0 var(--brand-main-light), 0 0 0 var(--brand-main-light);
          }
        }
      }
    }

    .hy-hero__description {
      background-color: var(--brand-main-light);
      color: var(--grayscale-white);
    }
  }

  &--black {
    .hy-hero__content-container,
    .hy-hero__spacer-box {
      background-color: var(--grayscale-black);
    }

    .hy-hero__title {
      &:not(.hy-hero__title--overlay) {
        span {
          color: var(--grayscale-white);
        }
      }

      h1 {
        color: var(--grayscale-white);
      }

      &--overlay {
        span {
          background-color: var(--grayscale-black);
          box-shadow: 24px 0 0 var(--grayscale-black), -24px 0 0 var(--grayscale-black);
          color: var(--grayscale-black);
          display: inline;
          position: relative;

          @include breakpoint($narrow) {
            box-shadow: 48px 0 0 var(--grayscale-black), -48px 0 0 var(--grayscale-black);
          }

          @include breakpoint($wide) {
            box-shadow: 32px 0 0 var(--grayscale-black), 0 0 0 var(--grayscale-black);
          }

          @include breakpoint($extrawide) {
            box-shadow: 40px 0 0 var(--grayscale-black), 0 0 0 var(--grayscale-black);
          }
        }
      }
    }

    .hy-hero__description {
      background-color: var(--grayscale-black);
      color: var(--grayscale-white);
    }
  }

  &--white {
    border-bottom: 1px solid rgba(16, 126, 171, 0.1);
    box-shadow: inset 0 -2rem 2rem -2rem rgba(14, 104, 139, 0.1);
    padding-bottom: 2rem;

    @include breakpoint($narrow) {
      box-shadow: inset 0 -40px 40px -40px rgba(14, 104, 139, 0.1);
      padding-bottom: 40px;
    }

    @include breakpoint($wide) {
      background-color: var(--grayscale-white);
      box-shadow: inset 0 -8px 8px -8px rgba(14, 104, 139, 0.1);
      padding-bottom: 8px;
    }

    @include breakpoint($extrawide) {
      margin-left: 0;
      margin-right: 0;
    }

    @include breakpoint($xlarge) {
      box-shadow: inset 0 -24px 24px -24px rgba(14, 104, 139, 0.1);
      margin-left: -32px;
      margin-right: -32px;
      padding-bottom: 24px;
    }

    .hy-hero__container {
      @include breakpoint($extrawide) {
        margin-left: 8px;
        margin-right: 8px;
      }

      @include breakpoint($xlarge) {
        margin-left: 32px;
        margin-right: 32px;
      }
    }

    .hy-hero__content-container {
      @include breakpoint(max-width 959px) {
        padding-bottom: 0;
      }
    }

    .hy-hero__content-container,
    .hy-hero__spacer-box {
      background-color: var(--grayscale-white);
    }

    .hy-hero__title {
      &:not(.hy-hero__title--overlay) {
        span {
          color: var(--grayscale-black);
        }
      }

      h1 {
        color: var(--grayscale-black);
      }

      &--overlay {
        span {
          background-color: var(--grayscale-white);
          box-shadow: 24px 0 0 var(--grayscale-white), -24px 0 0 var(--grayscale-white);
          color: var(--grayscale-white);
          display: inline;
          position: relative;

          @include breakpoint($narrow) {
            box-shadow: 48px 0 0 var(--grayscale-white), -48px 0 0 var(--grayscale-white);
          }

          @include breakpoint($wide) {
            box-shadow: 32px 0 0 var(--grayscale-white), 0 0 0 var(--grayscale-white);
          }

          @include breakpoint($extrawide) {
            box-shadow: 40px 0 0 var(--grayscale-white), 0 0 0 var(--grayscale-white);
          }
        }
      }
    }

    .hy-hero__description {
      background-color: var(--grayscale-white);
      color: var(--grayscale-black);
    }
  }

  &--fp_white {
    border-bottom: 1px solid rgba(16, 126, 171, 0.1);
    box-shadow: inset 0 -2rem 2rem -2rem rgba(14, 104, 139, 0.1);
    padding-bottom: 2rem;
    position: relative;

    @include breakpoint($narrow) {
      box-shadow: inset 0 -40px 40px -40px rgba(14, 104, 139, 0.1);
      padding-bottom: 40px;
    }

    @include breakpoint($wide) {
      border-top: 1px solid rgba(16, 126, 171, 0.1);
      padding: 0;
    }

    @include breakpoint($extrawide) {
      margin-left: -2rem;
      margin-right: -2rem;
      margin-top: 0;
    }

    @include breakpoint($xlarge) {
      margin-top: 0;
    }

    &:before,
    &:after {
      @include breakpoint($wide) {
        content: '';
        height: 80px;
        left: 0;
        position: absolute;
        width: 100%;
        z-index: 1;
      }
    }

    &:after {
      @include breakpoint($wide) {
        box-shadow: inset 0 -20px 20px -20px rgba(14, 104, 139, 0.1);
        bottom: 0;
      }
    }

    &:before {
      @include breakpoint($wide) {
        box-shadow: inset 0 20px 20px -20px rgba(14, 104, 139, 0.1);
        top: 0;
      }
    }

    .hy-hero__content-container {
      @include breakpoint(max-width 959px) {
        padding-bottom: 0;
      }

      @include breakpoint($extrawide) {
        padding-left: 32px; // Original 24px + 8px
        padding-right: 8px;
      }

      @include breakpoint($xlarge) {
        padding-left: 0;
      }

      @include breakpoint(1280px) {
        padding-left: 0;
      }

      @include breakpoint(1440px) {
        min-height: 540px;
      }

      @include breakpoint(1920px) {
        min-height: 720px;
      }
    }

    .hy-hero__image-container {
      @include breakpoint($wide) {
        padding: 0;
      }
    }

    .hy-hero__content-container,
    .hy-hero__spacer-box {
      background-color: var(--grayscale-slightly-gray);
    }

    .hy-hero__title {
      &:not(.hy-hero__title--overlay) {
        span {
          color: var(--grayscale-black);
        }
      }

      h1 {
        color: var(--grayscale-black);
      }

      &--overlay {
        span {
          background-color: var(--grayscale-slightly-gray);
          box-shadow: 24px 0 0 var(--grayscale-slightly-gray), -24px 0 0 var(--grayscale-slightly-gray);
          color: var(--grayscale-slightly-gray);
          display: inline;
          position: relative;

          @include breakpoint($narrow) {
            box-shadow: 48px 0 0 var(--grayscale-slightly-gray), -48px 0 0 var(--grayscale-slightly-gray);
          }

          @include breakpoint($wide) {
            box-shadow: 32px 0 0 var(--grayscale-slightly-gray), 0 0 0 var(--grayscale-slightly-gray);
          }

          @include breakpoint($extrawide) {
            box-shadow: 40px 0 0 var(--grayscale-slightly-gray), 0 0 0 var(--grayscale-slightly-gray);
          }
        }
      }
    }

    .hy-hero__description {
      background-color: var(--grayscale-slightly-gray);
      color: var(--grayscale-black);

      @include breakpoint($extrawide) {
        max-width: 34%;
      }
    }
  }
}

.hy-hero__container {
  @include breakpoint($wide) {
    display: flex;
    position: relative;
  }
}

.hy-hero__image-container {
  background-position: 50% 50%;
  background-size: cover;
  background: transparent;
  margin: 0;
  padding: 0;
  position: relative;

  @include breakpoint($wide) {
    background-color: var(--grayscale-white);
    bottom: 0;
    order: 2;
    padding: 6px 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 60%;
  }
}

.hy-image__image {
  display: block;
  height: 100%;
  min-height: 205px;
  object-fit: cover;
  width: 100%;
}

.hy-hero__content-container {
  padding: 0 1rem 2rem;

  @include breakpoint($narrow) {
    padding: 0 2rem 40px;
  }

  @include breakpoint($wide) {
    background-color: transparent !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    min-height: 360px;
    padding: 52px 2rem;
    position: relative;
    width: 100%;
  }

  @include breakpoint($extrawide) {
    min-height: 400px;
    padding: 80px 24px;
  }

  @include breakpoint($overwide) {
    min-height: 450px;
  }

  @include breakpoint(1280px) {
    max-width: 1216px;
  }

  @include breakpoint($xlarge) {
    min-height: 500px;
    padding: 80px 0;
  }

  @include breakpoint(1920px) {
    min-height: 600px;
  }
}

.hy-hero__content {
  @include breakpoint($xlarge) {
    padding-left: 12px;
  }

  @include breakpoint(1648px) {
    padding-left: 0;
  }
}

.hy-hero__spacer-box {
  display: none;

  @include breakpoint($wide) {
    bottom: 0;
    display: block;
    left: 0;
    order: 1;
    position: absolute;
    top: 0;
    width: 40%;
  }
}

.hy-hero__title-container {
  position: relative;
}

.hy-hero__title {
  &:not(.hy-hero__title--overlay) {
    position: relative;
    z-index: 10;

    span {
      color: var(--grayscale-black);
    }
  }

  h1 {
    display: inline-block !important;
    margin-bottom: 12px !important;
    max-width: 100%;

    @include breakpoint($narrow) {
      margin-bottom: 16px !important;
      max-width: 87% !important;
    }

    @include breakpoint($wide) {
      margin-bottom: 0 !important;
      max-width: 48.75% !important;
    }

    span {
      padding-top: 24px;

      @include breakpoint($narrow) {
        padding-top: 40px;
      }

      @include breakpoint($wide) {
        padding-bottom: 28px;
        padding-top: 24px;
      }

      @include breakpoint($extrawide) {
        padding-bottom: 36px;
        padding-top: 30px;
      }
    }
  }

  &--overlay {
    display: block;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;

    span {
      display: inline;
      position: relative;
    }
  }
}

// TODO: Update this to use styles straight from DSLIB (Ingress).
.hy-hero__description {
  @include font-size(16px);
  color: var(--grayscale-black);
  font-family: var(--main-font-family);
  font-weight: 600;
  letter-spacing: -0.1px;
  line-height: 22px;
  margin: 0;
  padding: 0;
  position: relative;

  @include breakpoint($narrow) {
    line-height: 24px;
  }

  @include breakpoint($wide) {
    margin-top: -8px;
    max-width: 39%;
    padding: 16px 20px 20px 0;
  }

  @include breakpoint($extrawide) {
    @include font-size(18px);
    letter-spacing: -0.16px;
    line-height: 26px;
    max-width: 37%;
    padding: 28px 20px 32px 0;
  }
}

.hy-hero__actions {
  margin-top: 20px;

  @include breakpoint($narrow) {
    margin-top: 24px;
  }

  @include breakpoint($wide) {
    margin-top: 0;
  }
}