/* Gallery Page */
.gb-gallery-hero {
    min-height: 55vh;
    background-image: url('../images/gallery-bg.jpg');
}
.gb-gallery-hero .gb-inner { min-height: 55vh; }
    .gb-gallery-hero h1 {
        font-size: 75px;
        font-family: 'Montserrat',sans-serif;
        font-weight:900;
    }

.gb-gallery-section .gb-inner { padding: 80px 20px; }
.gb-gallery-dark  { background-color: #0a0a0a; }
.gb-gallery-medium { background-color: #111; }
.gb-gallery-dark .gb-overlay,
.gb-gallery-medium .gb-overlay { display: none; }

/* Carousel */
.gb-carousel {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 28px;
    overflow: hidden;
}

.gb-carousel-viewport { flex: 1; overflow: hidden; }

.gb-carousel-track {
    display: flex;
    gap: 16px;
    transition: transform .4s ease;
    will-change: transform;
}

.gb-carousel-slide { flex: 0 0 calc(33.333% - 11px); }
.gb-carousel-slide figure { margin: 0; overflow: hidden; }
.gb-carousel-slide img {
    width: 100%; /*height: 240px;*/
    object-fit: cover;
    cursor: pointer;
    display: block;
    filter: brightness(0.82);
    transition: filter .3s, transform .3s;
}
.gb-carousel-slide img:hover { filter: brightness(1); transform: scale(1.03); }

.gb-carousel-btn {
    flex-shrink: 0;
    background: transparent; border: none;
    color: #fff; font-size: 28px; line-height: 1;
    padding: 12px 16px; cursor: pointer;
    transition: background .2s;
}
.gb-carousel-btn:hover { background: #bb1111; }

/* Lightbox */
#gb-lightbox {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center;
}
.gb-lb-backdrop {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.93);
}
.gb-lb-stage {
    position: relative; z-index: 2;
    max-width: 80vw; max-height: 85vh;
    display: flex; align-items: center; justify-content: center;
}
.gb-lb-stage img {
    max-width: 80vw; max-height: 85vh;
    object-fit: contain; display: block;
}
.gb-lb-close {
    position: absolute; top: 20px; right: 24px;
    z-index: 3; background: none; border: none;
    color: #fff; font-size: 48px; line-height: 1;
    cursor: pointer; transition: color .2s;
}
.gb-lb-close:hover { color: #dd3333; }
.gb-lb-nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    z-index: 3; background: rgba(221,51,51,.85); border: none;
    color: #fff; font-size: 36px; line-height: 1;
    padding: 14px 18px; cursor: pointer;
    transition: background .2s;
}
.gb-lb-nav:hover { background: #dd3333; }
.gb-lb-prev { left: 20px; }
.gb-lb-next { right: 20px; }

@media (max-width: 768px) {
    .gb-gallery-hero h1 { font-size: 40px; }
    .gb-carousel-slide { flex: 0 0 calc(50% - 8px); }
    .gb-carousel-slide img { height: 180px; }
}
@media (max-width: 480px) {
    .gb-carousel-slide { flex: 0 0 100%; }
}
