.photo-gallery { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.photo-card { display: block; text-decoration: none; overflow: hidden; border: 1px solid var(--rule); border-radius: 4px; background: white; color: inherit; transition: border-color .15s, transform .15s; }
.photo-card:hover { border-color: #b4a690; transform: translateY(-2px); }
.photo-card img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #e8e2d7; }
.photo-card figcaption { padding: 11px 13px 13px; font: 13px/1.5 system-ui,sans-serif; }
.photo-card strong { display: block; font-weight: 550; }
.photo-card span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.gallery-footer { max-width: 1200px; margin: 24px auto 0; font: 13px/1.5 system-ui,sans-serif; color: var(--muted); }
.gallery-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.gallery-empty { grid-column: 1/-1; padding: 32px; border: 1px solid var(--rule); color: var(--muted); text-align: center; font: 14px/1.6 system-ui,sans-serif; }
@media(max-width:760px) { .photo-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } }
@media(max-width:500px) { .photo-gallery { grid-template-columns: 1fr; } .photo-card img { aspect-ratio: 5/3; } }
@media(prefers-reduced-motion:reduce) { .photo-card { transition: none; } }
