.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.gallery-item{cursor:pointer;}
.gallery-img-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/3;border:1.5px solid var(--border-light);box-shadow:var(--card-shadow);}
.gallery-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;display:block;}
.gallery-item:hover .gallery-img-wrap img{transform:scale(1.06);}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,33,68,.8) 0%,rgba(21,101,192,.2) 100%);display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition);}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-overlay-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;}
.gallery-overlay-content i{font-size:1.8rem;color:#90caf9;}
.gallery-overlay-content span{font-family:var(--font-display);font-size:.92rem;font-weight:600;}
.gallery-caption{text-align:center;font-size:.8rem;color:var(--text-muted);margin-top:8px;}
.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(5,10,20,.96);display:none;align-items:center;justify-content:center;backdrop-filter:blur(10px);}
.lightbox.active{display:flex;}
.lb-content{max-width:80vw;text-align:center;}
.lb-content img{max-height:80vh;max-width:100%;border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.6);}
.lb-content p{color:rgba(255,255,255,.7);margin-top:12px;font-size:.9rem;}
.lb-close,.lb-prev,.lb-next{position:fixed;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.1rem;cursor:pointer;border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;transition:var(--transition);}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--blue-core);}
.lb-close{top:20px;right:20px;}
.lb-prev{left:20px;top:50%;transform:translateY(-50%);}
.lb-next{right:20px;top:50%;transform:translateY(-50%);}
@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.gallery-grid{grid-template-columns:1fr;}}
