.promotion-grid .promotion-card {
  min-height: 0;
  aspect-ratio: 1 / 1;
}

.promotion-grid .promotion-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 1101px) {
  .promotion-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .promotion-copy {
    inset: auto 6% 6%;
    width: 88%;
  }

  .promotion-copy h2 {
    margin: 6px 0 7px;
    font-size: clamp(1.2rem, 1.55vw, 1.7rem);
    line-height: 1.06;
    letter-spacing: -.7px;
  }

  .promotion-copy p {
    display: -webkit-box;
    margin-bottom: 12px;
    overflow: hidden;
    font-size: .68rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .promotion-copy a {
    padding: 8px 11px;
    font-size: .65rem;
  }
}

@media (min-width: 801px) and (max-width: 1100px) {
  .promotion-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 800px) {
  .promotion-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .promotion-grid .promotion-card {
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .promotion-copy {
    inset: auto 5% 5%;
    width: 90%;
  }

  .promotion-copy h2 {
    margin: 4px 0 7px;
    font-size: clamp(.9rem, 4.1vw, 1.3rem);
    line-height: 1.08;
    letter-spacing: -.4px;
  }

  .promotion-copy p {
    display: none;
  }

  .promotion-copy a {
    padding: 7px 9px;
    font-size: clamp(.52rem, 2.2vw, .68rem);
  }
}
