/* ==========================================
   GALLERY PAGE
========================================== */

.gallery-hero{

    height:60vh;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    background:
    linear-gradient(
        rgba(0,0,0,.6),
        rgba(0,0,0,.6)
    ),
    url("..")
    center/cover;

}

.gallery-hero h1{

    font-size:60px;

    color:#D4AF37;

}

.gallery-hero p{

    margin-top:20px;

    font-size:20px;

}


/* ==========================================
   GALLERY SECTION
========================================== */

.gallery-section{

    text-align:center;

}


/* ==========================================
   FILTER BUTTONS
========================================== */

.gallery-filter{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:12px;

    margin-bottom:50px;

}

.filter-btn{

    padding:12px 25px;

    border:1px solid #D4AF37;

    border-radius:30px;

    background:transparent;

    color:#fff;

    cursor:pointer;

    transition:.3s;

    font-family:inherit;

}

.filter-btn:hover{

    background:#D4AF37;

    color:#111;

}

.filter-btn.active{

    background:#D4AF37;

    color:#111;

}


/* ==========================================
   PREMIUM GALLERY
========================================== */

.premium-gallery{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:25px;

}


/* ==========================================
   GALLERY ITEM
========================================== */

.premium-gallery .gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:20px;

    cursor:pointer;

    aspect-ratio:4 / 5;

}

.premium-gallery .gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.5s;

}

.premium-gallery .gallery-item:hover img{

    transform:scale(1.08);

}


/* ==========================================
   GALLERY OVERLAY
========================================== */

.gallery-overlay{

    position:absolute;

    left:0;

    bottom:0;

    width:100%;

    padding:25px;

    background:
    linear-gradient(
        transparent,
        rgba(0,0,0,.9)
    );

    transform:translateY(20px);

    opacity:0;

    transition:.4s;

    text-align:left;

}

.gallery-item:hover .gallery-overlay{

    transform:translateY(0);

    opacity:1;

}

.gallery-overlay h3{

    color:#D4AF37;

    margin-bottom:5px;

}

.gallery-overlay p{

    color:#fff;

}


/* ==========================================
   LIGHTBOX
========================================== */

.gallery-lightbox{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.95);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:99999;

    padding:30px;

}

.gallery-lightbox.active{

    display:flex;

}

.gallery-lightbox img{

    max-width:90%;

    max-height:90%;

    object-fit:contain;

    border-radius:15px;

    animation:galleryZoom .3s ease;

}

.gallery-close{

    position:absolute;

    top:25px;

    right:35px;

    color:#fff;

    font-size:50px;

    cursor:pointer;

}

@keyframes galleryZoom{

    from{

        transform:scale(.7);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}


/* ==========================================
   GALLERY BOOKING
========================================== */

.gallery-booking{

    text-align:center;

    background:#181818;

}

.gallery-booking h2{

    color:#D4AF37;

}

.gallery-booking p{

    margin-bottom:30px;

    color:#ccc;

}


/* ==========================================
   GALLERY MOBILE
========================================== */

@media(max-width:768px){

    .gallery-hero h1{

        font-size:40px;

    }

    .gallery-hero p{

        font-size:16px;

    }

    .gallery-filter{

        gap:8px;

    }

    .filter-btn{

        padding:10px 18px;

        font-size:14px;

    }

    .premium-gallery{

grid-template-columns:
        repeat(2,1fr);

        gap:12px;

    }

    .gallery-overlay{

        padding:12px;

    }

    .gallery-overlay h3{

        font-size:15px;

    }

    .gallery-overlay p{

        font-size:12px;

    }

}

/* ==========================================
   BEFORE & AFTER SLIDER
========================================== */

.before-after-section{

    padding:100px 10%;

    text-align:center;

}

.before-after-section h2{

    color:#D4AF37;

    font-size:42px;

    margin-bottom:15px;

}

.before-after-section > p{

    color:#bbb;

    margin-bottom:40px;

}

.before-after-slider{

    position:relative;

    width:100%;

    max-width:900px;

    height:550px;

    margin:auto;

    overflow:hidden;

    border-radius:20px;

    box-shadow:
    0 15px 40px rgba(0,0,0,.5);

}

.before-after-slider > .after-image{

    position:absolute;

    width:100%;

    height:100%;

    object-fit:cover;

    left:0;

    top:0;

}

.before-image-wrapper{

    position:absolute;

    top:0;

    left:0;

    width:50%;

    height:100%;

    overflow:hidden;

    z-index:2;

}

.before-image{

    position:absolute;

    width:900px;

    max-width:none;

    height:100%;

    object-fit:cover;

    left:0;

    top:0;

}

.slider-line{

    position:absolute;

    top:0;

    left:50%;

    width:3px;

    height:100%;

    background:#D4AF37;

    z-index:4;

    pointer-events:none;

}

.slider-line::before{

    content:"↔";

    position:absolute;

    top:50%;

    left:50%;

    transform:
    translate(-50%,-50%);

    width:45px;

    height:45px;

    background:#D4AF37;

    color:#111;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:20px;

    font-weight:bold;

}

.before-after-range{

    position:absolute;

    width:100%;

    height:100%;

    top:0;

    left:0;

    opacity:0;

    cursor:ew-resize;

    z-index:5;

}


/* Mobile */

@media(max-width:768px){

    .before-after-slider{

        height:400px;

    }

    .before-image{

        width:100%;

    }

    .before-after-section h2{

        font-size:32px;

    }

}

/* ==========================================
   VIDEO SHOWCASE
========================================== */

.gallery-video{

    padding:100px 10%;

    text-align:center;

    background:#181818;

}

.gallery-video h2{

    color:#D4AF37;

    font-size:42px;

    margin-bottom:15px;

}

.gallery-video > p{

    color:#bbb;

    margin-bottom:40px;

}

.video-showcase{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(300px,1fr));

    gap:25px;

}

.video-showcase video{

    width:100%;

    border-radius:20px;

    background:#000;

    box-shadow:
    0 10px 30px rgba(0,0,0,.4);

}

@media(max-width:768px){

    .gallery-video{

        padding:70px 20px;

    }

    .gallery-video h2{

        font-size:32px;

    }

}
