.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gallery-photo { position: relative; display: block; overflow: hidden; border-radius: 16px; background: #edf2ee; color: #fff; }
.gallery-photo img { width: 100%; height: 280px; object-fit: cover; transition: transform .25s; }
.gallery-photo:hover img { transform: scale(1.04); }
.gallery-photo span { position: absolute; bottom: 12px; right: 12px; padding: 8px 14px; border-radius: 8px; background: #12372ae6; font-size: .85rem; }
.gallery-photo:focus-visible { outline: 3px solid #12372a; outline-offset: 4px; }
.gallery-features { background: #f4f7f3; }
.gallery-feature-list { columns: 2; column-gap: 48px; padding-left: 22px; margin-top: 28px; }
.gallery-feature-list li { break-inside: avoid; padding: 0 0 18px 8px; }
.gallery-certifications { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 24px; }
.gallery-certifications img { max-width: 180px; height: auto; }
.gallery-lightbox { border: 0; border-radius: 16px; padding: 48px 16px 16px; width: min(1000px, 94vw); background: #10291f; color: #fff; }
.gallery-lightbox::backdrop { background: #000c; }
.gallery-lightbox > img { display: block; width: 100%; height: 70vh; object-fit: contain; }
.gallery-close { position: absolute; right: 14px; top: 6px; font-size: 28px; }
.gallery-lightbox button { border: 0; background: transparent; color: #fff; padding: 4px 16px; }
.gallery-controls { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 12px; }
@media (max-width: 991px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .gallery-grid { grid-template-columns: 1fr; } .gallery-feature-list { columns: 1; } .gallery-photo img { height: 260px; } }
@media (prefers-reduced-motion: reduce) { .gallery-photo img { transition: none; } }
