.card { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.card a {
  display: block;
  color: var(--color-text);
  text-decoration: none;
  background: var(--color-surface);
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 100%;
}
.card a:hover h3 { text-decoration: underline; }
.card img { display: block; width: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.card-category, .card h3, .card-text { margin: 0.75rem 1rem; }
.card-text { margin-top: 0; }
.card-category + h3 { margin-top: 0; }
.section-body:has(.card) {
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: stretch;
}
@media (min-width: 768px) {
  .card { flex: 0 0 calc(50% - 0.5rem); }
  .section-body:has(.card) { grid-template-columns: 1fr 1fr 1fr; }
}
@media (min-width: 1024px) { .card { flex: 0 0 calc(33.333% - 0.7rem); } }
