/* Gallery page */
.gpl-lead { margin: 0 0 var(--gp-s5); max-width: 48rem; color: var(--gp-ink-2); font-size: 1.0625rem; line-height: 1.65; }
.gpl-grid { display: grid; gap: var(--gp-s5); grid-template-columns: 1fr; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .gpl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .gpl-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gpl-card { display: flex; flex-direction: column; height: 100%; margin: 0; background: #fff; border: 1px solid var(--gp-line); border-radius: var(--gp-radius); box-shadow: var(--gp-shadow-sm); overflow: hidden; transition: box-shadow .15s ease, transform .15s ease; }
.gpl-card:hover { box-shadow: var(--gp-shadow); transform: translateY(-2px); }
.gpl-media { aspect-ratio: 16 / 10; background: var(--gp-surface-mid, #eceaf4); }
.gpl-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gpl-body { display: flex; flex-direction: column; gap: .5rem; padding: var(--gp-s4) var(--gp-s5) var(--gp-s5); }
.gpl-body h3 { margin: 0; font-size: 1.0625rem; line-height: 1.4; color: var(--gp-ink); }
.gpl-body p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--gp-ink-2); }
.gpl-body .gp-badge { align-self: flex-start; }
@media (prefers-reduced-motion: reduce) { .gpl-card { transition: none; } .gpl-card:hover { transform: none; } }
