
.photo-gallery {
overflow: hidden;
border-radius: 14px;
}

.photo-gallery a {
display: block;
position: relative;
overflow: hidden;
}

.photo-gallery figure {
position: relative;
overflow: hidden;
margin: 0;
}

.photo-gallery figure img {
width: 100%;
display: block;
transition: transform 0.5s ease;
}

.gallery-title-overlay {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 16px 18px;
background: linear-gradient(
to top,
rgba(0, 0, 0, 0.85),
rgba(0, 0, 0, 0.45),
transparent
);

transform: translateY(0);
opacity: 1;
transition:
transform 0.45s cubic-bezier(.22,.61,.36,1),
opacity 0.35s ease;
z-index: 2;
}

.gallery-title-overlay span {
display: block;
color: #fff;
font-size: 17px;
font-weight: 600;
line-height: 1.35;
text-align: center;
text-shadow: 0 2px 5px rgba(0,0,0,.4);
}

/*.photo-gallery:hover .gallery-title-overlay {
transform: translateY(0);
opacity: 1;
}
*/

.photo-gallery:hover figure img {
transform: scale(1.05);
}

@media (max-width: 767px) {

.gallery-title-overlay {
padding: 10px 12px;
}

.gallery-title-overlay span {
font-size: 13px;
}

}

/* ===GALLERY PAGINATION======= */

.gallery-pagination-wrapper {
    width: 100%;
    margin-top: 30px;
    margin-bottom: 0px;
}

.gallery-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}


/* Previous / Next */

.gallery-page-btn {
    min-width: 105px;
    height: 46px;

    padding: 0 17px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    border-radius: 12px;

    background: #ffffff;

    border: 1px solid #e2e9e5;

    color: #194638;

    text-decoration: none;

    font-size: 13px;

    font-weight: 600;

    transition: all .3s ease;
}

.gallery-page-btn:hover {
    background: #087c52;

    border-color: #087c52;

    color: #ffffff;

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(8,124,82,.18);
}


/* Disabled */

.gallery-page-btn.disabled {
    opacity: .45;

    cursor: not-allowed;

    pointer-events: none;
}


/* Page Numbers Container */

.gallery-page-numbers {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 7px;
}


/* Page Number */

.gallery-page-number {
    width: 44px;
    height: 44px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: #ffffff;

    border: 1px solid #e2e9e5;

    color: #234b3d;

    text-decoration: none;

    font-size: 13px;

    font-weight: 600;

    transition: all .3s ease;
}


/* Hover */

.gallery-page-number:hover {
    color: #087c52;

    border-color: #087c52;

    background: #f0faf6;

    transform: translateY(-2px);
}


/* Active */

.gallery-page-number.active {
    color: #ffffff;

    border-color: #087c52;

    background:
        linear-gradient(
            135deg,
            #075e40,
            #0b9865
        );

    box-shadow:
        0 8px 22px rgba(8,124,82,.25);

    transform: translateY(-2px);
}


/* Dots */

.gallery-page-dots {
    width: 28px;

    text-align: center;

    color: #7b8b84;

    font-weight: 700;

    letter-spacing: 1px;
}


/* ==========EMPTY GALLERY======== */

.gallery-empty-state {
    text-align: center;

    padding: 70px 20px;

    border: 1px dashed #d7e3dd;

    border-radius: 18px;

    background: #f8fbf9;
}

.gallery-empty-state i {
    font-size: 42px;

    color: #0b8b5c;

    margin-bottom: 15px;
}

.gallery-empty-state h4 {
    margin-bottom: 6px;

    color: #193f32;

    font-weight: 700;
}

.gallery-empty-state p {
    margin: 0;

    color: #829089;

    font-size: 14px;
}


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

@media (max-width: 767px) {

    .gallery-pagination-wrapper {
        margin-top: 35px;
    }

    .gallery-pagination {
        gap: 5px;
    }

    .gallery-page-btn {
        min-width: 42px;

        width: 42px;

        height: 42px;

        padding: 0;
    }

    .gallery-page-btn span {
        display: none;
    }

    .gallery-page-number {
        width: 40px;

        height: 40px;

        border-radius: 9px;
    }

    .gallery-page-numbers {
        gap: 4px;
    }

    .gallery-page-dots {
        width: 18px;
    }

}


/* Very Small Devices */

@media (max-width: 430px) {

    .gallery-page-number {
        width: 36px;

        height: 36px;

        font-size: 12px;
    }

    .gallery-page-btn {
        width: 36px;

        min-width: 36px;

        height: 36px;
    }

}
/* AJAX Gallery Loading */

#galleryContainer {
    transition: opacity .25s ease;
}

#galleryContainer.gallery-loading {
    pointer-events: none;
    cursor: wait;
}

#galleryContainer .gallery-item {
    animation: galleryItemShow .45s ease both;
}

@keyframes galleryItemShow {

    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}
