.spr-hero {
  inline-size: 100%;
  color: var(--department-text-color, var(--color-black));
  background-color: var(--color-gray-20);

  .spr-hero__wrapper {
    position: relative;
    max-inline-size: var(--container-max-inline-size);
    margin-inline: auto;
    padding-inline: unset;
    /* aspect-ratio: 3 / 2; */
    @media (min-width: 62rem) {
      aspect-ratio: 3 / 2;
    }

    @media (min-width: 70rem) {
      aspect-ratio: var(--base-aspect-ratio);
    }

    @media (min-width: 108rem) {
      max-inline-size: unset;
    }

    @media (min-width: 120rem) {
      max-inline-size: var(--container-max-inline-size);
    }
  }

  .grid {
    height: 100%;
  }

  .spr-hero__eyebrow {
    display: block;
    font-size: 0.875rem;
  }
  .spr-hero__title {
    margin: 0;
    margin-block-start: 1rem;
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-extra-bold);
    line-height: 120%;
    @media screen and (min-width: 62rem) {
      font-size: var(--font-size-h1-alt);
    }
  }
  .spr-hero__subtitle {
    display: block;
    margin-block-start: 1rem;
    font-size: var(--font-size-h3);
    font-weight: var(--font-weight-extra-bold);
  }
  .spr-hero--text {
    font-size: 1.25rem;
    font-weight: var(--font-weight-medium);
    line-height: 2rem;
  }

  .spr-hero__text a {
    text-decoration: underline;
    color: var(--link-color);
    text-underline-offset: 0.25rem;
    text-decoration-thickness: 0.125rem;
    &:hover {
      color: var(--link-hover-color);
    }
  }

  .spr-hero__image img {
    inline-size: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 2;
    @media screen and (min-width: 70rem) {
      aspect-ratio: var(--base-aspect-ratio);
    }
  }

  + section[data-component-id]:not(.spr-quick-links) {
    padding-block-start: clamp(7.5rem, calc(6.98rem + 2.217vw), 9.375rem); /* min: 120px, max: 150px */
    @media screen and (min-width: 108rem) {
      padding-block-start: var(--padding-component);
    }
  }

  @media screen and (min-width: 62rem) {
    max-block-size: 51.5rem;
  }
}

.spr-hero--is-dark {
  background-color: var(--color-white);
}

.spr-hero__buttons {
  display: flex;
  align-items: center;
  justify-content: left;
  inline-size: 100%;
  margin: 0;
  margin-block-start: 2rem;
  .spr-button {
    margin: 0 1rem;
    &:first-child {
      margin-inline-start: 0;
    }
  }
  @media (max-width: 35rem) {
    flex-direction: column;
    .spr-button {
      margin: 0.5rem 0;
    }
  }
}

.spr-hero.has-background-image,
.spr-hero.has-background-image-text-right {
  position: relative;
  .spr-hero__container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    height: 100%;
  }
  .spr-hero__image {
    position: relative;
    overflow: hidden;
    grid-column: 1 / span 4;
    inline-size: calc(100% + var(--padding-inline-grid) * 2);
    height: 100%;
    aspect-ratio: 3 / 2;
    margin-inline: calc(var(--padding-inline-grid) * -1);
    @media screen and (min-width: 24.625rem) {
      inline-size: calc(100% + var(--padding-inline-grid) * 2);
      margin-inline: calc(var(--padding-inline-grid) * -1);
    }
    @media screen and (min-width: 48rem) {
      inline-size: calc(100% + var(--padding-inline-grid) * 2);
      margin-inline: calc(var(--padding-inline-grid) * -1);
    }
    @media screen and (min-width: 62rem) {
      position: absolute;
      top: 0;
      left: 0;
      grid-column: unset;
      height: calc(100% - var(--padding-component));
      aspect-ratio: var(--base-aspect-ratio);
    }
  }
  .spr-hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    grid-column: 1 / span 12;
    height: 100%;
    text-align: left;

    .spr-hero--background {
      margin-block-start: calc(var(--padding-inline-grid) * -1);
      padding: var(--padding-component-inline);
      background-color: var(--department-color-scheme, var(--color-white));
      @media screen and (min-width: 24.625rem) {
        margin-block-start: calc(var(--padding-inline-grid) * -1);
      }
      @media screen and (min-width: 48rem) {
        margin-block-start: calc(var(--padding-inline-grid) * -1);
      }
      @media screen and (min-width: 70rem) {
        margin-block-start: unset;
      }
    }
    @media screen and (min-width: 62rem) {
      grid-column: 1 / span 8;
      justify-content: end;
    }
  }

  @media (min-width: 62rem) {
    aspect-ratio: var(--base-aspect-ratio);
  }
}

.spr-hero.has-background-image-text-right .spr-hero__content {
  @media screen and (min-width: 62rem) {
    grid-column: 5 / span 8;
  }
}
