:root {
  --text-media-cta-text-color: var(--color-black);
  --text-media-cta-background-element: url("../../images/branding-element-01.webp");
}

.spr-text-media-cta {
  background-image: var(--gradient-0);
  background-position: var(--gradient-0-position);
  background-size: var(--gradient-0-size);

  h2,
  h3 {
    &.spr-heading {
      margin-block: 0;
    }
  }

  @media (min-width: 992px) {
    aspect-ratio: 1440 / 876;
  }
}

.spr-text-media-cta--dark {
  --text-media-cta-text-color: var(--color-white);
}

.spr-text-media-cta__cols.grid {
  height: 100%;
  background-image: var(--text-media-cta-background-element);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 25%;
  gap: var(--padding-vertical-main) var(--grid-gap);
  padding-block: var(--padding-vertical-large);

  @media (min-width: 992px) {
    grid-template-rows: auto;
    gap: var(--size-1);
    padding-block: var(--padding-vertical-main);
  }
}

.spr-text-media-cta__col .spr-rich-text {
  display: flex;
  flex-direction: column;
  gap: var(--size-4);
}

.spr-text-media-cta__col:first-child {
  display: flex;
  flex-direction: column;
  grid-column: 1 / span 4;

  @media (min-width: 992px) {
    justify-content: center;
  }
}

.spr-text-media-cta__col:last-child {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--grid-gap);
  grid-column: 1 / span 4;
  padding-bottom: calc(var(--padding-vertical-main) * 2);

  @media (min-width: 992px) {
    display: contents;
    padding-bottom: 0;
  }
}

.spr-text-media-cta__media {
  display: contents;
  flex-direction: column;
  gap: var(--grid-gap);

  @media (min-width: 992px) {
    display: flex;
    grid-column: 6 / span 2;
  }
}

.spr-text-media-cta__one-media {
  grid-column: 1 / span 2;
  width: calc(50% - (var(--grid-gap) / 2));

  @media (min-width: 992px) {
    grid-column: unset;
    width: 100%;
  }
}

.spr-text-media-cta__two-media {
  grid-column: 1 / span 2;
  width: calc(50% - (var(--grid-gap) / 2));
  transform: translateY(var(--padding-vertical-main));

  @media (min-width: 992px) {
    grid-column: 6 / span 2;
    width: 100%;
    transform: none;
  }
}

.spr-text-media-cta__three-media {
  grid-column: 3 / span 2;
  width: calc(50% - (var(--grid-gap) / 2));

  @media (min-width: 992px) {
    grid-column: 8 / span 3;
    width: 100%;
  }
}

.spr-text-media-cta__four-media {
  grid-column: 3 / span 2;
  width: calc(50% - (var(--grid-gap) / 2));
  transform: translateY(var(--padding-vertical-main));

  @media (min-width: 992px) {
    grid-column: 11 / span 2;
    width: 100%;
    transform: none;
  }
}

.spr-text-media-cta__one-media img,
.spr-text-media-cta__two-media img,
.spr-text-media-cta__three-media img,
.spr-text-media-cta__four-media img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius);
}

.spr-text-media-cta__one-media img {
  @media (min-width: 992px) {
    aspect-ratio: 211 / 222;
    width: 100%;
  }
}

.spr-text-media-cta__two-media img {
  @media (min-width: 992px) {
    aspect-ratio: 211 / 166;
    width: 100%;
  }
}

.spr-text-media-cta__three-media {
  @media (min-width: 992px) {
    padding-block: var(--padding-vertical-small) 0;

    img {
      aspect-ratio: 324 / 416;
      width: 100%;
    }
  }
}

.spr-text-media-cta__four-media {
  @media (min-width: 992px) {
    padding-block: var(--padding-vertical-main) 0;

    img {
      aspect-ratio: 211 / 166;
      width: 100%;
    }
  }
}

.spr-text-media-cta__text {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-heading-5);
}

.spr-text-media-cta__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
