.gallery-section{
    position:relative;
    width:100%;
    min-height:100vh;
}

.gallery-content{
    width:100%;
    min-height:100vh;
    margin:0 auto;
    padding:80px 0;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    box-sizing:border-box;
}

/* ===========================
   SLIDER
=========================== */
.gallery-top-slider,
.gallery-bottom-slider{
    display:flex;
    gap:8px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.gallery-top-slider::-webkit-scrollbar,
.gallery-bottom-slider::-webkit-scrollbar{
    display:none;
}

/* ===========================
   ITEM
=========================== */
.gallery-item{
    flex:0 0 auto;
    scroll-snap-align:start;
}
.gallery-item img{
    display:block;
    width:auto;
    height:210px;
    object-fit:contain;
    border-radius:2px;
    cursor:pointer;
    transition:.3s ease;
}
.gallery-item img:hover{
    transform:scale(1.03);
}
.gallery-top-slider .gallery-item:last-child,
.gallery-bottom-slider .gallery-item:last-child{
    margin-right:28px;
}

/* ===========================
   LIGHTBOX
=========================== */
.gallery-lightbox{
    position:fixed;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.9);
    opacity:0;
    visibility:hidden;
    transition:.35s ease;
    z-index:9999;
}
.gallery-lightbox.active{
    opacity:1;
    visibility:visible;
}
.gallery-lightbox-content{
    width:100%;
    max-width:1100px;
    padding:20px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.gallery-lightbox-content img{
    max-width:100%;
    max-height:85vh;
    object-fit:contain;
    border-radius:8px;
    user-select:none;
    -webkit-user-drag:none;
    box-shadow:0 15px 40px rgba(0,0,0,.35);
}

/* ===========================
   CLOSE
=========================== */
.gallery-close{
    position:absolute;
    top:24px;
    right:24px;
    width:52px;
    height:52px;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    color:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.3s ease;
    z-index:2;
}
.gallery-close i{
    font-size:1.3rem;
}
.gallery-close:hover{
    background:#fff;
    color:#000;
}

/* ===========================
   NAVIGATION
=========================== */
.gallery-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:58px;
    height:58px;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    color:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.3s ease;
}
.gallery-nav i{
    font-size:1.6rem;
}
.gallery-nav:hover{
    background:#fff;
    color:#000;
}
.gallery-prev{
    left:28px;
}
.gallery-next{
    right:28px;
}

/* ===========================
   GUIDE
=========================== */
.gallery-guide{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#fff;
    padding:40px 20px;
}
.gallery-guide h2{
    font-family:var(--heading);
    font-size:3rem;
    margin-bottom:20px;
}
.gallery-guide p{
    display:flex;
    align-items:center;
    gap:16px;
    font-style:italic;
    font-size:1.4rem;
    margin-bottom:4px;
}
.gallery-guide p i{
    font-size:2rem;
}
.gallery-guide span{
    font-style:italic;
    font-size:1.4rem;
}

/* ===========================
   TABLET & MOBILE
=========================== */
@media (max-width:1199px){
    .gallery-content{
        padding:100px 0;
    }
    .gallery-item img{
        height:250px;
    }
    .gallery-guide h2{
        font-size:3.5rem;
    }
    .gallery-guide p{
        font-size:1.25rem;
    }
    .gallery-guide span{
        font-size:1.1rem;
    }
}

@media (max-width:768px){
    .gallery-content{
        padding:60px 0;
    }
    .gallery-item img{
        height:180px;
    }
    .gallery-lightbox-content{
        padding:18px;
    }
    .gallery-lightbox-content img{
        max-height:70vh;
    }
    .gallery-nav{
        width:46px;
        height:46px;
    }
    .gallery-nav i{
        font-size:1.2rem;
    }
    .gallery-prev{
        left:10px;
    }
    .gallery-next{
        right:10px;
    }
    .gallery-close{
        width:44px;
        height:44px;
        top:12px;
        right:12px;
    }
    .gallery-guide{
        padding:30px 20px;
    }
    .gallery-guide h2{
        font-size:3.5rem;
    }
    .gallery-guide p{
        font-size:1rem;
        gap:10px;
    }
    .gallery-guide p i{
        font-size:1.5rem;
    }
    .gallery-guide span{
        font-size:.9rem;
    }
}

/* ===========================
   DESKTOP
=========================== */
@media (min-width:1200px){
    .gallery-content{
        padding:100px 0;
    }
    .gallery-item img{
        height:240px;
    }
    .gallery-guide{
        padding:50px 20px;
    }
    .gallery-guide h2{
        font-size:3.2rem;
    }
}

/* ========================================
   GALLERY ANIMATION
======================================== */
.gallery-top-slider,
.gallery-guide,
.gallery-bottom-slider{
    opacity:0;
    transform:translateY(35px);
    transition:
        opacity 1.2s ease,
        transform 1.2s ease;
}
.gallery-section.is-visible .gallery-top-slider{
    opacity:1;
    transform:translateY(0);
    transition-delay:.2s;
}
.gallery-section.is-visible .gallery-guide{
    opacity:1;
    transform:translateY(0);
    transition-delay:.4s;
}
.gallery-section.is-visible .gallery-bottom-slider{
    opacity:1;
    transform:translateY(0);
    transition-delay:.6s;
}