.teaser-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
}

.teaser-grid__teaser {
  display: block;
  text-decoration: none;
}

.teaser-grid__media {
  padding-bottom: 100%;
  position: relative;
}

.teaser-grid__image {
  position: absolute;
  display: block;
  object-fit: contain;
  object-position: center center;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  transition: all .2s ease;
}

.teaser-grid__teaser:hover .teaser-grid__image {
  opacity: 0.9;
}

@media screen and (min-width: 48rem) {
  .teaser-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media screen and (min-width: 64rem) {
  .teaser-grid {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}
