/**
 * Card grid for the [emergence_cards] shortcode.
 *
 * Loaded wherever the shortcode appears, including pages built with the theme's
 * page builder. Kept separate from emergence-programme.css because that file
 * carries global element resets meant only for the plugin's own page template.
 */
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }
.cards.two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cards .card { display: block; text-decoration: none; color: inherit; }
.cards .card h3 { font-weight: 500; font-size: 1.125rem; margin: 1.15rem 0 0; }
.cards .card .h-icon { margin-top: 1.15rem; }
.cards .card .meta { font-size: 0.875rem; color: #4b5158; margin-top: 0.15rem; }
.cards .card p { color: #4b5158; margin-top: 0.4rem; font-size: 0.9875rem; line-height: 1.55; }
.cards .frame { overflow: hidden; border-radius: 20px; aspect-ratio: 4 / 3; }
.cards .photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 20px; background: #eceae6; }
@media (hover: hover) and (pointer: fine) {
  .cards .frame .photo { transition: transform 0.9s cubic-bezier(0.23, 1, 0.32, 1); }
  .cards .frame:hover .photo { transform: scale(1.03); }
}
@media (max-width: 960px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cards, .cards.two-up { grid-template-columns: 1fr; } }
