.gallery-center { max-width: 1180px; }
.gallery-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 1rem; align-items: end; }
.gallery-card { border: 1px solid rgba(0,0,0,.12); border-radius: 1rem; overflow: hidden; background: #fff; }
.gallery-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f3f5f1; }
.gallery-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.gallery-card__media:hover img { transform: scale(1.02); }
.gallery-card__fallback { display: grid; place-items: center; width: 100%; height: 100%; color: #5f6d5c; font-weight: 700; }
.gallery-card__body { padding: 1rem; }
.gallery-card__body h2 a { color: inherit; text-decoration: none; }
.gallery-card__badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.gallery-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.gallery-lightbox-trigger { border: 0; padding: 0; border-radius: .9rem; overflow: hidden; background: #f3f5f1; text-align: right; cursor: zoom-in; }
.gallery-lightbox-trigger img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gallery-lightbox-trigger span { display: block; padding: .65rem .8rem; color: #313c2f; }
.gallery-lightbox { width: min(96vw, 1200px); height: min(92vh, 900px); max-width: none; max-height: none; border: 0; border-radius: 1rem; padding: 0; background: rgba(16,20,16,.98); color: #fff; }
.gallery-lightbox::backdrop { background: rgba(0,0,0,.82); }
.gallery-lightbox__toolbar { display: flex; justify-content: flex-end; padding: .5rem; }
.gallery-lightbox__stage { height: calc(100% - 54px); display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .75rem; padding: 0 .75rem .75rem; }
.gallery-lightbox__stage figure { margin: 0; min-width: 0; display: grid; place-items: center; gap: .6rem; height: 100%; }
.gallery-lightbox__stage img { max-width: 100%; max-height: calc(100% - 3rem); object-fit: contain; }
.gallery-lightbox__stage figcaption { min-height: 1.5rem; text-align: center; }
.gallery-lightbox__nav { width: 2.7rem; height: 2.7rem; border: 0; border-radius: 50%; font-size: 2rem; line-height: 1; background: rgba(255,255,255,.92); }
@media (max-width: 768px) {
    .gallery-filters { grid-template-columns: 1fr; }
    .gallery-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .gallery-lightbox { width: 100vw; height: 100dvh; border-radius: 0; }
    .gallery-lightbox__stage { grid-template-columns: 2.4rem minmax(0,1fr) 2.4rem; gap: .25rem; padding-inline: .35rem; }
    .gallery-lightbox__nav { width: 2.25rem; height: 2.25rem; font-size: 1.6rem; }
}
@media (max-width: 480px) {
    .gallery-detail-grid { grid-template-columns: 1fr; }
}
