.spr-teaser {
  position: relative;
  display: flex;
  overflow: hidden;
  transition: all 0.2s ease;
  gap: 1rem;

  &.is-vertical {
    @media (min-width: 992px) {
      grid-row-gap: 1rem;
    }
  }

  &.is-vertical-large {
    @media (min-width: 992px) {
      position: relative;
      grid-row-gap: 1rem;
    }
  }

  &.is-horizontal {
    display: flex;
    flex-direction: row;

    @media (min-width: 768px) {
      display: grid;
      border: 0;
      border-radius: calc(var(--card-border-radius) / 2);
    }
  }

  @media (min-width: 768px) {
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: repeat(4, 1fr);
  }

  @media screen and (min-width: 992px) {
    grid-template-columns: repeat(8, 1fr);
  }
}

.spr-teaser__media {
  position: relative;
  overflow: hidden;
  flex: none;
  width: 4.875rem;
  height: 4.875rem;
  border-radius: calc(var(--card-border-radius) / 2);

  .is-vertical & {
    .embed-responsive + img {
      aspect-ratio: 323 / 190;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .embed-responsive + img + img {
      display: none;
    }
    @media (min-width: 768px) {
      width: 100%;
      height: auto;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-area: 1 / 1 / 2 / 4;
      pointer-events: none;
    }
  }

  .is-vertical-large & {
    .embed-responsive + img {
      aspect-ratio: 211 / 130;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .embed-responsive + img + img {
      display: none;
    }
    @media (min-width: 768px) {
      width: 100%;
      height: auto;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-column: 1 / span 2;
      pointer-events: none;
    }
  }

  .is-horizontal & {
    .embed-responsive + img {
      aspect-ratio: 437 / 270;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .embed-responsive + img + img {
      display: none;
    }
    @media (min-width: 768px) {
      width: 100%;
      height: auto;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-area: 1 / 1 / 2 / 5;
      align-content: flex-end;
      pointer-events: none;
    }
  }

  @media (min-width: 992px) {
    grid-column: 1 / span 4;
    align-content: flex-end;
    width: 100%;
    height: auto;
    border-radius: var(--card-border-radius);
  }
}

.spr-teaser__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;

  & + img {
    display: none;
  }

  .is-vertical &,
  .is-vertical-large & {
    @media (min-width: 768px) and (max-width: 991px) {
      aspect-ratio: 211 / 130;
    }
  }

  .is-horizontal & {
    @media (min-width: 768px) {
      aspect-ratio: 211 / 130;
    }
  }

  @media (min-width: 768px) {
    aspect-ratio: 16 / 10;
  }
}

.spr-teaser__type {
  position: absolute;
  z-index: 1;
  bottom: 0.1875rem;
  left: 0.1875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  color: var(--color-white);
  border: 0.09375rem solid var(--color-white);
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.3);

  .is-vertical-large & {
    @media (min-width: 768px) {
      bottom: 0.1875rem;
      left: 0.1875rem;
      width: 1.875rem;
      height: 1.875rem;
    }
  }

  @media (min-width: 992px) {
    bottom: var(--space-small);
    left: var(--space-small);
    width: 4.375rem;
    height: 4.375rem;
  }
}

.spr-teaser--news .spr-teaser__type .spr-icon--24 {
  width: 0.6875rem;
  height: 0.625rem;

  .is-vertical-large & {
    @media (min-width: 768px) {
      width: 0.6875rem;
      height: 0.625rem;
    }
  }

  .is-horizontal & {
    @media (min-width: 768px) {
      width: 0.6875rem;
      height: 0.625rem;
    }

    @media (min-width: 992px) {
      width: 1.5rem;
      height: 1.5rem;
    }
  }

  @media (min-width: 992px) {
    width: 1.5rem;
    height: 1.5rem;
  }
}

.spr-teaser--photo .spr-teaser__type .spr-icon--24 {
  width: 0.9375rem;
  height: 0.6875rem;

  .is-vertical-large & {
    @media (min-width: 768px) {
      width: 0.9375rem;
      height: 0.6875rem;
    }
  }

  @media (min-width: 992px) {
    width: 2.125rem;
    height: 1.5rem;
  }
}

.spr-teaser--video .spr-teaser__type .spr-icon--24 {
  width: 0.75rem;
  height: 0.75rem;
  transform: translateX(2px);

  .is-vertical-large & {
    @media (min-width: 768px) {
      width: 0.75rem;
      height: 0.75rem;
    }
  }

  @media (min-width: 992px) {
    width: 2.125rem;
    height: 1.5rem;
  }
}

.spr-teaser__content h3 {
  letter-spacing: 0;
  text-wrap: balance;
  font-size: var(--font-size-xxs);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-text);

  .is-vertical-large & {
    @media (min-width: 992px) {
      font-size: var(--font-size-xl);
      line-height: var(--font-size-xl);
    }
  }

  @media (min-width: 768px) {
    font-size: var(--font-size-xs);
    line-height: var(--line-height-heading-5);
  }
}

.spr-teaser__content {
  width: 100%;
  height: 100%;

  .is-vertical & {
    max-width: 18.75rem;

    @media (min-width: 768px) {
      grid-column: 2 / span 2;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-area: 2 / 1 / 3 / 4;
      max-width: none;
      pointer-events: none;
    }
  }

  .is-vertical-large & {
    max-width: 18.75rem;

    @media (min-width: 768px) {
      grid-column: 2 / span 2;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-column: 1 / span 5;
      max-width: none;
      pointer-events: none;
    }
  }

  .is-horizontal & {
    max-width: 18.75rem;

    @media (min-width: 768px) {
      grid-column: 2 / span 2;
    }

    @media (min-width: 992px) {
      z-index: 1;
      grid-area: 1 / 5 / 2 / 8;
      align-content: flex-end;
      max-width: none;
      pointer-events: none;
    }
  }
}

.spr-teaser__actions {
  .is-horizontal & {
    @media (min-width: 992px) {
      z-index: 0;
      grid-area: 1 / 1 / 2 / 8;
    }
  }

  > .spr-button {
    display: none;
  }

  .is-vertical & {
    @media (min-width: 992px) {
      z-index: 0;
      grid-area: 1 / 1 / 3 / 4;
    }
  }

  .is-vertical-large & {
    > .spr-button {
      @media (min-width: 992px) {
        position: relative;
        z-index: 1;
        display: flex;
      }
    }
    @media (min-width: 992px) {
      z-index: 0;
      grid-column: 1 / span 5;
    }
  }
}

.spr-teaser__readmore::after {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  inset: 0;
}

.is-vertical-large .spr-teaser__readmore::after {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  inset: 0;
}
