﻿/*==================================
SECTION TITLE
==================================*/

.section-title .subtitle {
    display: inline-block;
    color: #0B4EA2;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
    position: relative;
    padding: 0 55px;
}

    .section-title .subtitle::before,
    .section-title .subtitle::after {
        content: "";
        position: absolute;
        top: 50%;
        width: 40px;
        height: 2px;
        background: #0B4EA2;
    }

    .section-title .subtitle::before {
        left: 0;
    }

    .section-title .subtitle::after {
        right: 0;
    }

.section-title h2 {
    font-size: 52px;
    font-weight: 800;
    margin: 18px 0;
    color: #1d3557;
    line-height: 1.2;
}

.section-title p {
    max-width: 760px;
    margin: 0 auto;
    color: #666;
    font-size: 18px;
    line-height: 32px;
}


/*==================================
REVEAL ANIMATION
==================================*/

.reveal {
    opacity: 0;
    transition: 1.1s cubic-bezier(.22,.61,.36,1);
    will-change: transform,opacity;
}

.left {
    transform: translateX(-140px);
}

.right {
    transform: translateX(140px);
}

.top {
    transform: translateY(-140px);
}

.bottom {
    transform: translateY(140px);
}

.reveal.active {
    opacity: 1;
    transform: translate(0,0);
}


/*==================================
STAGGER DELAY
==================================*/

.reveal:nth-child(1) {
    transition-delay: .1s;
}

.reveal:nth-child(2) {
    transition-delay: .2s;
}

.reveal:nth-child(3) {
    transition-delay: .3s;
}

.reveal:nth-child(4) {
    transition-delay: .4s;
}

.reveal:nth-child(5) {
    transition-delay: .5s;
}

.reveal:nth-child(6) {
    transition-delay: .6s;
}

.reveal:nth-child(7) {
    transition-delay: .7s;
}

.reveal:nth-child(8) {
    transition-delay: .8s;
}

.reveal:nth-child(9) {
    transition-delay: .9s;
}


/*==================================
CARD
==================================*/

.gallery-card {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 20px 45px rgba(0,0,0,.08);
    transition: .55s cubic-bezier(.22,.61,.36,1);
}

    .gallery-card img {
        width: 100%;
        height: 320px;
        object-fit: cover;
        transition: 1s cubic-bezier(.22,.61,.36,1);
    }


/*==================================
OVERLAY
==================================*/

.gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(8,61,119,.10), rgba(8,61,119,.92));
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: .5s;
}

.icon-box {
    width: 85px;
    height: 85px;
    border-radius: 50%;
    background: white;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: scale(.2) rotate(-180deg);
    transition: .6s cubic-bezier(.22,.61,.36,1);
}

    .icon-box i {
        font-size: 30px;
        color: #0B4EA2;
    }


/*==================================
HOVER
==================================*/

.gallery-card:hover {
    transform: translateY(-18px);
    box-shadow: 0 35px 70px rgba(0,0,0,.22);
}

    .gallery-card:hover img {
        transform: scale(1.18) rotate(2deg);
        filter: brightness(.65);
    }

    .gallery-card:hover .gallery-overlay {
        opacity: 1;
    }

    .gallery-card:hover .icon-box {
        transform: scale(1) rotate(0);
    }

.gallery-card::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 2px solid rgba(255,255,255,.8);
    opacity: 0;
    transform: scale(.85);
    border-radius: 18px;
    transition: .55s;
    z-index: 2;
}

.gallery-card:hover::before {
    opacity: 1;
    transform: scale(1);
}


/*==================================
FLOAT EFFECT
==================================*/

.gallery-card {
    animation: floating 5s ease-in-out infinite;
}

    .gallery-card:nth-child(even) {
        animation-delay: 1.5s;
    }

@keyframes floating {

    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-6px);
    }

    100% {
        transform: translateY(0px);
    }
}


/*==================================
RESPONSIVE
==================================*/

@media(max-width:992px) {

    .section-title p {
        width: 90%;
    }
}

@media(max-width:768px) {

    .section-title h2 {
        font-size: 34px;
    }

    .gallery-card img {
        height: 250px;
    }
}

@media(max-width:576px) {

    .gallery-card img {
        height: 220px;
    }
}

/*==================================
LIGHTBOX
==================================*/

.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.95);
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: .4s;
    z-index: 99999;
}

    .lightbox.show {
        opacity: 1;
        visibility: visible;
    }

    .lightbox img {
        max-width: 85%;
        max-height: 85vh;
        border-radius: 15px;
        box-shadow: 0 20px 60px rgba(0,0,0,.5);
        transform: scale(.8);
        transition: .4s;
    }

    .lightbox.show img {
        transform: scale(1);
    }

.close-lightbox {
    position: absolute;
    top: 25px;
    right: 40px;
    color: #fff;
    font-size: 45px;
    cursor: pointer;
}

.lightbox-prev,
.lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 65px;
    height: 65px;
    border-radius: 50%;
    background: #fff;
    color: #0B4EA2;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    font-size: 25px;
    transition: .3s;
}

.lightbox-prev {
    left: 40px;
}

.lightbox-next {
    right: 40px;
}

    .lightbox-prev:hover,
    .lightbox-next:hover {
        background: #0B4EA2;
        color: #fff;
        transform: translateY(-50%) scale(1.1);
    }

@media(max-width:768px) {

    .lightbox img {
        max-width: 95%;
    }

    .lightbox-prev,
    .lightbox-next {
        width: 50px;
        height: 50px;
        font-size: 18px;
    }
}