.cards__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 2.8125rem;
}

.card { position: relative; display: flex; flex-direction: column; }

/* Toute la carte est cliquable, mais un seul lien est exposé aux lecteurs d'écran. */
.card__link::after { content: ""; position: absolute; inset: 0; }
.card--link:focus-within { outline: 2px solid var(--gl-link-hover); outline-offset: 4px; }
.card--link .card__link:focus-visible { outline: none; }

.card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 890 / 664;
  background: var(--gl-bg-soft);
}
.card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.1s var(--gl-ease);
}
.card:hover .card__media img,
.card:focus-within .card__media img { transform: scale(1.05); }

.card--wide .card__media { aspect-ratio: 414 / 233; }

.offers .cards__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.625rem; }
.offers .card { background: var(--gl-bg-alt); }
.offers .card__body { padding: 2.9rem 2rem; text-align: center; }
.offers .card__title { font-size: 1.556rem; line-height: 1.2; }

@media (max-width: 47.99em) {
  .offers .cards__grid { grid-template-columns: 1fr; }
}

.card__body { padding-top: 1.25rem; }

.card__title {
  margin: 0 0 0.5em;
  font-size: var(--gl-fs-h4);
  line-height: 1.2;
}
.card__title:last-child { margin-bottom: 0; }
.card__title a { color: inherit; }
.card__title a:hover, .card__title a:focus-visible { color: var(--gl-link); }

.card__text { margin: 0; }
.card__text p + p { margin-top: 0.8em; }
