/*====================================================
GALLERY PAGE
This CSS only affects gallery.php
====================================================*/

.gallery-page{
    background:#f5f9ff;
    overflow:hidden;
    padding-bottom:70px;
}

/*====================================================
HERO SECTION
====================================================*/

.gallery-hero{
    position:relative;
    overflow:hidden;
    padding:70px 0 120px;
    background:
        linear-gradient(rgba(255,255,255,.72),rgba(255,255,255,.72)),
        url("../images/gallery-banner-bg.jpg") center center/cover no-repeat;
}

.gallery-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at left,#d7ecff 0%,transparent 55%),
        radial-gradient(circle at right,#dcefff 0%,transparent 60%);
}

.gallery-hero .container{
    position:relative;
    z-index:2;
}

.gallery-hero-content h1{
    font-size:72px;
    font-weight:800;
    color:#082c78;
    margin-bottom:20px;
}

.gallery-hero-content p{
    font-size:22px;
    color:#495566;
    line-height:36px;
    max-width:520px;
}

.gallery-title-line{
    display:block;
    width:90px;
    height:4px;
    border-radius:30px;
    background:#1565ff;
    margin-top:22px;
}

.gallery-banner-image{
    max-height:320px;
    animation:galleryFloat 4s ease-in-out infinite;
}

@keyframes galleryFloat{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-10px);
    }

    100%{
        transform:translateY(0);
    }

}

/*====================================================
FILTER BOX
====================================================*/

.gallery-filter-box{

    margin-top:-55px;
    position:relative;
    z-index:20;

    background:#fff;

    border-radius:20px;

    padding:20px;

    display:flex;

    gap:15px;

    flex-wrap:wrap;

    justify-content:center;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.gallery-filter-btn{

    border:none;

    background:#fff;

    border:2px solid #e8eef8;

    border-radius:14px;

    padding:14px 28px;

    font-size:18px;

    font-weight:600;

    color:#334155;

    transition:.35s;

}

.gallery-filter-btn i{

    margin-right:8px;

    color:#1565ff;

}

.gallery-filter-btn:hover{

    background:#1565ff;

    color:#fff;

    border-color:#1565ff;

}

.gallery-filter-btn:hover i{

    color:#fff;

}

.gallery-filter-btn.active{

    background:#1565ff;

    color:#fff;

    border-color:#1565ff;

}

.gallery-filter-btn.active i{

    color:#fff;

}

/*====================================================
GALLERY CARD
====================================================*/

.gallery-card{

    position:relative;

    overflow:hidden;

    border-radius:18px;

    background:#fff;

    cursor:pointer;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    transition:.35s;

}

.gallery-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 45px rgba(0,0,0,.15);

}

.gallery-image{

    width:100%;

    height:320px;

    object-fit:cover;

    transition:.45s;

}

.gallery-card:hover .gallery-image{

    transform:scale(1.08);

}

/*====================================================
OVERLAY
====================================================*/

.gallery-overlay{

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    height:110px;

    background:
    linear-gradient(to top,
    rgba(7,31,82,.92),
    rgba(7,31,82,.10));

    display:flex;

    align-items:flex-end;

    padding:25px;

    transition:.35s;

}

.gallery-card:hover .gallery-overlay{

    height:140px;

}

.gallery-content{

    color:#fff;

}

.gallery-content i{

    font-size:26px;

    margin-right:10px;

}

.gallery-content h4{

    font-size:28px;

    font-weight:700;

    margin-bottom:4px;

}

.gallery-content span{

    font-size:16px;

    opacity:.9;

}
/*====================================================
POPUP / LIGHTBOX
====================================================*/

.gallery-popup{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(5,15,35,.95);

    display:flex;
    align-items:center;
    justify-content:center;

    visibility:hidden;
    opacity:0;

    transition:.35s;

    z-index:99999;

    backdrop-filter:blur(8px);

}

.gallery-popup.gallery-open{

    visibility:visible;
    opacity:1;

}

.gallery-popup-content{

    position:relative;

    width:90%;
    max-width:1100px;

    text-align:center;

    animation:galleryZoom .35s ease;

}

@keyframes galleryZoom{

    from{

        transform:scale(.85);
        opacity:0;

    }

    to{

        transform:scale(1);
        opacity:1;

    }

}

.gallery-popup-content img{

    width:100%;
    max-height:80vh;

    object-fit:contain;

    border-radius:15px;

    background:#fff;

    padding:8px;

    box-shadow:0 20px 60px rgba(0,0,0,.35);

}

/*====================================================
POPUP FOOTER
====================================================*/

.gallery-popup-footer{

    margin-top:20px;

    color:#fff;

}

.gallery-popup-footer h4{

    font-size:28px;

    font-weight:700;

    margin-bottom:8px;

}

.gallery-popup-footer span{

    font-size:17px;

    opacity:.8;

}

/*====================================================
CLOSE BUTTON
====================================================*/

.gallery-close{

    position:absolute;

    top:30px;

    right:40px;

    width:55px;

    height:55px;

    border-radius:50%;

    background:#1565ff;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    transition:.35s;

    z-index:100000;

}

.gallery-close i{

    font-size:24px;

}

.gallery-close:hover{

    background:#fff;

    color:#1565ff;

    transform:rotate(180deg);

}

/*====================================================
PREV / NEXT
====================================================*/

.gallery-prev,
.gallery-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:60px;

    height:60px;

    border:none;

    border-radius:50%;

    background:#1565ff;

    color:#fff;

    cursor:pointer;

    transition:.35s;

    z-index:100000;

}

.gallery-prev{

    left:40px;

}

.gallery-next{

    right:40px;

}

.gallery-prev i,
.gallery-next i{

    font-size:28px;

}

.gallery-prev:hover,
.gallery-next:hover{

    background:#fff;

    color:#1565ff;

    transform:translateY(-50%) scale(1.1);

}

/*====================================================
BOTTOM FEATURE BAR
====================================================*/

.gallery-bottom-bar{

    background:linear-gradient(90deg,#082c78,#0d56e5);

    border-radius:20px;

    padding:30px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:20px;

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.gallery-feature{

    display:flex;

    align-items:center;

    gap:18px;

    color:#fff;

    padding:10px;

    border-right:1px solid rgba(255,255,255,.15);

}

.gallery-feature:last-child{

    border-right:none;

}

.gallery-feature i{

    width:65px;

    height:65px;

    border-radius:50%;

    background:rgba(255,255,255,.15);

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:30px;

    transition:.35s;

}

.gallery-feature:hover i{

    background:#fff;

    color:#1565ff;

    transform:rotate(360deg);

}

.gallery-feature h5{

    font-size:22px;

    font-weight:700;

    margin-bottom:6px;

}

.gallery-feature p{

    margin:0;

    font-size:16px;

    opacity:.9;

}

/*====================================================
ANIMATIONS
====================================================*/

.gallery-card,
.gallery-filter-btn,
.gallery-feature{

    transition:all .35s ease;

}

.gallery-item{

    animation:galleryFade .5s ease;

}

@keyframes galleryFade{

    from{

        opacity:0;

        transform:translateY(25px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/*====================================================
RESPONSIVE DESIGN
====================================================*/

/* Large Desktop */
@media (max-width:1400px){

    .gallery-hero-content h1{
        font-size:64px;
    }

    .gallery-banner-image{
        max-height:290px;
    }

}

/* Laptop */
@media (max-width:1200px){

    .gallery-hero{
        padding:60px 0 100px;
    }

    .gallery-hero-content h1{
        font-size:56px;
    }

    .gallery-hero-content p{
        font-size:20px;
        line-height:34px;
    }

    .gallery-image{
        height:280px;
    }

    .gallery-bottom-bar{
        grid-template-columns:repeat(2,1fr);
    }

}

/* Tablet */
@media (max-width:991px){

    .gallery-hero{

        text-align:center;
        padding:50px 0 80px;

    }

    .gallery-title-line{

        margin:20px auto;

    }

    .gallery-banner-image{

        margin-top:35px;
        max-height:220px;

    }

    .gallery-filter-box{

        margin-top:-40px;
        padding:15px;

    }

    .gallery-filter-btn{

        width:48%;

    }

    .gallery-image{

        height:260px;

    }

    .gallery-prev{

        left:15px;

    }

    .gallery-next{

        right:15px;

    }

    .gallery-close{

        top:15px;
        right:15px;

    }

}

/* Mobile */
@media (max-width:767px){

    .gallery-page{

        padding-bottom:40px;

    }

    .gallery-hero{

        padding:40px 0 60px;

    }

    .gallery-hero-content h1{

        font-size:42px;

    }

    .gallery-hero-content p{

        font-size:17px;
        line-height:28px;

    }

    .gallery-banner-image{

        max-height:180px;

    }

    .gallery-filter-btn{

        width:100%;
        justify-content:center;

    }

    .gallery-image{

        height:240px;

    }

    .gallery-overlay{

        height:95px;
        padding:18px;

    }

    .gallery-content h4{

        font-size:22px;

    }

    .gallery-content span{

        font-size:14px;

    }

    .gallery-popup-content{

        width:96%;

    }

    .gallery-popup-content img{

        max-height:65vh;

    }

    .gallery-popup-footer h4{

        font-size:22px;

    }

    .gallery-prev,
    .gallery-next{

        width:45px;
        height:45px;

    }

    .gallery-prev i,
    .gallery-next i{

        font-size:20px;

    }

    .gallery-close{

        width:45px;
        height:45px;

    }

    .gallery-close i{

        font-size:18px;

    }

    .gallery-bottom-bar{

        grid-template-columns:1fr;

    }

    .gallery-feature{

        border-right:none;
        border-bottom:1px solid rgba(255,255,255,.15);
        padding-bottom:20px;

    }

    .gallery-feature:last-child{

        border-bottom:none;

    }

}

/* Small Mobile */
@media (max-width:576px){

    .gallery-hero-content h1{

        font-size:34px;

    }

    .gallery-hero-content p{

        font-size:16px;
        line-height:26px;

    }

    .gallery-image{

        height:220px;

    }

    .gallery-content h4{

        font-size:20px;

    }

    .gallery-feature{

        flex-direction:column;
        text-align:center;

    }

    .gallery-feature h5{

        font-size:18px;

    }

    .gallery-feature p{

        font-size:14px;

    }

}

/*====================================================
UTILITY CLASSES
====================================================*/

.gallery-shadow{

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.gallery-radius{

    border-radius:20px;

}

.gallery-transition{

    transition:all .35s ease;

}

.gallery-text-primary{

    color:#1565ff;

}

.gallery-bg-primary{

    background:#1565ff;

}

.gallery-fw-600{

    font-weight:600;

}

.gallery-fw-700{

    font-weight:700;

}

.gallery-fw-800{

    font-weight:800;

}

/* Hide Items */

.gallery-hidden{

    display:none !important;

}