/*==================================================
                    HERO
==================================================*/

.hero{

    position:relative;

    width:100%;

    height:100vh;

    overflow:hidden;

}


/*=========================
        VIDEO
=========================*/

.hero-video{

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    object-fit:cover;

    object-position:center;

}


/*=========================
        OVERLAY
=========================*/

.hero-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.28);

    z-index:1;

}



.hero-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.45);

    opacity:0;

    animation:overlayFade 1.3s ease forwards;

}

@keyframes overlayFade{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}


/*=========================
        CONTENT
=========================*/

.hero-content{

    position:absolute;

    inset:0;

    z-index:2;

    display:flex;

    justify-content:center;

    align-items:flex-end;

    padding-bottom:60px;

}


/*=========================
        TITLE
=========================*/

.hero-title{

    
    margin:0;
    font-family:var(--heading-font);

    font-size:80px;

    font-weight:200;

    color:#ADAAAA;

    text-align:center;

    line-height:1;

    letter-spacing:.02em;

    opacity:0;

    transform:translateY(120px);

}

/*=========================
        HERO TEXT
=========================*/

.hero-text{
    display:flex;
    flex-direction:column;

    align-items:center;
    justify-content:center;

    text-align:center;

    width:100%;
}


/*=========================
        SUBTITLE
=========================*/

.hero-subtitle{

    display:block;

    width:auto;
    
    margin:12px 0 0;

    font-family:var(--body-font);

    font-size:24px;

    font-weight:400;

    color:#ADAAAA;

     text-align:center;

    letter-spacing:.08em;

    line-height:1;

    opacity:0;

    transform:translateY(120px);

}



/*=========================
    ANIMATION STATE
=========================*/

.hero-title.show,
.hero-subtitle.show{

    opacity:1;

    transform:translateY(0);

    transition:
        opacity 1s ease,
        transform 1.4s cubic-bezier(.16,1,.3,1);
}


/*==================================================
            RESPONSIVE
==================================================*/


/*--------------------------
        1600px
--------------------------*/

@media(max-width:1600px){

    .hero-title{

        font-size:80px;

    }

}


/*--------------------------
        1400px
--------------------------*/

@media(max-width:1400px){

    .hero-title{

        font-size:120px;

    }

}


/*--------------------------
        1200px
--------------------------*/

@media(max-width:1200px){

    .hero-title{

        font-size:82px;

    }

}


/*--------------------------
        1024px
--------------------------*/

@media(max-width:1024px){

    .hero-title{

        font-size:70px;

    }

}


/*==================================================
                TABLET
==================================================*/

@media(max-width:991px){

    .hero{

        height:70vh;

    }

    .hero-content{

        padding-bottom:45px;

    }

    .hero-title{

        font-size:58px;

    }

}


/*==================================================
                MOBILE
==================================================*/

@media(max-width:768px){

    .hero{

        height:auto;

    }

    .hero-video{

        position:relative;

        width:100%;

        height:auto;

        aspect-ratio:9/14;

        object-fit:cover;

    }

    .hero-overlay{

        height:100%;

    }

    .hero-content{

        position:absolute;

        inset:0;

        justify-content:center;

        


        padding-bottom:28px;

    }

    .hero-title{

        font-size:52px;

        line-height:1.1;

    }

}


/*--------------------------
        576px
--------------------------*/

@media(max-width:576px){

    .hero-title{

        font-size:46px;

    }

}


/*--------------------------
        430px
--------------------------*/

@media(max-width:430px){

    .hero-title{

        font-size:40px;

    }

}


/*--------------------------
        390px
--------------------------*/

@media(max-width:390px){

    .hero-title{

        font-size:36px;

    }

}


/*--------------------------
        360px
--------------------------*/

@media(max-width:360px){

    .hero-title{

        font-size:32px;

    }

}



.hero-video{

    animation:heroZoom 8s ease forwards;

}

@keyframes heroZoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.06);

    }

}



@media (prefers-reduced-motion: reduce){

    .hero-video,
    .hero-title,
    .hero-overlay{

        animation:none !important;

        transition:none !important;

        opacity:1;

        transform:none;

    }

}







/*==================================================
            ABOUT PREVIEW
==================================================*/

.about-preview{

    background:#FFF8E8;

    padding:40px 0;

    overflow:hidden;

}

.about-preview .container{

    max-width:1320px;

}


/*==============================
        CONTENT
==============================*/

.about-content{

    margin-bottom:50px;

}

.about-title{

    font-family:var(--heading-font);

    font-size:20px;

    font-weight:400;

    color:var(--primary);

    margin-bottom:12px;

}

.about-text{

    max-width:900px;

    font-family:var(--body-font);

    font-size:16px;

    line-height:1.8;

    color:var(--primary);

    margin-bottom:16px;

}

.about-btn{

    position:relative;

    display:inline-block;

    font-family:var(--body-font);

    font-size:20px;

    font-weight:500;

    color:var(--primary);

    transition:.35s ease;

}

.about-btn::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:62px;

    height:1px;

    background:var(--primary);

    transition:.35s ease;

}



.about-btn:hover::after{

    width:100%;



}


/*==============================
            IMAGE
==============================*/

.about-image{

    width:100%;

    overflow:hidden;

}

.about-image img{

    width:100%;

    display:block;

    transition:

        transform .8s cubic-bezier(.22,1,.36,1),

        filter .8s ease;

    will-change:transform;

}

/* Premium hover */
/*
.about-image:hover img{

    transform:scale(1.06);

    filter:brightness(1.03);

}*/

.about-image{

    overflow:hidden;

    border-radius:4px;

}

.about-image img{

    transition:

        transform 1.2s cubic-bezier(.22,1,.36,1),

        filter .8s ease;

}

.about-image:hover img{

    transform:scale(1.08);

    filter:brightness(1.05);

}


/*==============================
        FADE ANIMATION
==============================*/

.reveal{

    opacity:0;

    transform:translateY(70px);

    transition:

        transform .9s cubic-bezier(.22,1,.36,1),

        opacity .9s ease;

    will-change:transform,opacity;

}

.reveal.active{

    opacity:1;

    transform:translateY(0);

}


/*==================================================
            RESPONSIVE
==================================================*/


/*--------------------------
        1400px
--------------------------*/

@media(max-width:1400px){

    .about-text{

        max-width:820px;

    }

}


/*--------------------------
        1200px
--------------------------*/

@media(max-width:1200px){

    .about-preview{

        padding:80px 0;

    }

}


/*--------------------------
            991px
--------------------------*/

@media(max-width:991px){

    .about-preview{

        padding:70px 0;

    }

    .about-title{

        font-size:22px;

    }

    .about-text{

        font-size:18px;

    }

}


/*--------------------------
            768px
--------------------------*/

@media(max-width:768px){

    .about-preview{

        padding:55px 0;

    }

    .about-content{

        margin-bottom:35px;

    }

    .about-title{

        font-size:16px;

        margin-bottom:15px;

    }

    .about-text{

        font-size:14px;

        line-height:2;

        margin-bottom:22px;

    }

    .about-btn{

        font-size:16px;

    }

    .about-btn::after{

        width:45px;

        bottom:-6px;

    }

}


/*--------------------------
            430px
--------------------------*/

@media(max-width:430px){

    .about-preview{

        padding:45px 0;

    }

}





/*==================================================
                    SERVICES
==================================================*/

.services{

    background:#F1F1F1;

    padding:40px 0;

    overflow:hidden;

}


/*==============================
        SECTION HEADER
==============================*/

.services-heading{

    text-align:center;

    max-width:900px;

    margin:0 auto 70px;

}

.services-title{

    font-family:var(--heading-font);

    font-size:20px;

    font-weight:400;

    color:var(--primary);

    margin-bottom:12px;

}

.services-text{

    font-family:var(--body-font);

    font-size:16px;

    line-height:1.8;

    color:var(--primary);

    margin-bottom:16px;

}

.services-btn{

    position:relative;

    display:inline-block;

    font-family:var(--body-font);

    font-size:20px;

    font-weight:500;

    color:var(--primary);

    transition:.35s ease;

}

.services-btn::after{

    content:"";

    position:absolute;

    left:50%;

    transform:translateX(-50%);

    bottom:-8px;

    width:70px;

    height:2px;

    background:var(--primary);

    transition:.35s ease;

}



.services-btn:hover::after{

    width:100%;

    

}


/*==============================
            GRID
==============================*/

.services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:28px;

}


/*==============================
            CARD
==============================*/

.service-card{

    display:block;

    text-decoration:none;

    color:inherit;

}


/*==============================
            IMAGE
==============================*/

.service-image{

    position:relative;

    overflow:hidden;

    aspect-ratio:4/5;

}

.service-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .8s cubic-bezier(.22,1,.36,1);

}


/*==============================
            OVERLAY
==============================*/

.service-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.55);

    display:flex;

    align-items:flex-end;

    padding:35px;

    opacity:0;

    transition:.45s ease;

}

.service-overlay-content{

    transform:translateY(40px);

    transition:.45s ease;

}

.service-overlay h3{

    font-family:var(--heading-font);

    font-size:20px;

    font-weight:400;

    color:#fff;

    margin-bottom:15px;

}

.service-overlay p{

    font-family:var(--body-font);

    font-size:16px;

    line-height:1.8;

    color:#fff;

}


/*==============================
            HOVER
==============================*/

.service-card:hover img{

    transform:scale(1.08);

}

.service-card:hover .service-overlay{

    opacity:1;

}

.service-card:hover .service-overlay-content{

    transform:translateY(0);

}


/*==============================
        SERVICE NAME
==============================*/

.service-name{

    margin-top:20px;

    font-family:var(--heading-font);

    font-size:16px;

    font-weight:400;

    color:var(--primary);

}


/*==================================================
                RESPONSIVE
==================================================*/


/*-------------------------
        1200
-------------------------*/

@media(max-width:1200px){

    .services-grid{

        gap:22px;

    }

}


/*-------------------------
        991
-------------------------*/

@media(max-width:991px){

    .services{

        padding:80px 0;

    }

    .services-grid{

        grid-template-columns:repeat(2,1fr);

    }

}


/*-------------------------
        768
-------------------------*/

@media(max-width:768px){

    .services{

        padding:60px 0;

    }

    .services-heading{

        margin-bottom:40px;

    }

    .services-title{

        font-size:15px;

    }

    .services-text{

        font-size:14px;

        line-height:2;

    }

    .services-btn{

        font-size:16px;

    }

    .services-grid{

        grid-template-columns:1fr;

        gap:35px;

    }

    .service-name{

        font-size:14px;

        margin-top:10px;

    }

    /* Remove hover effect on mobile */

    .service-overlay{

        display:none;

    }

    .service-card:hover img{

        transform:none;

    }

}


/*-------------------------
        430
-------------------------*/

@media(max-width:430px){

    .services{

        padding:45px 0;

    }

}






/*==================================================
                    PROJECTS
==================================================*/

.projects{

    background:#2D2D2D;

    padding:40px 0;

    overflow:hidden;

}


/*==============================
        HEADING
==============================*/

.projects-heading{

    max-width:900px;

    margin-bottom:70px;

}

.projects-title{

    font-family:var(--heading-font);

    font-size:20px;

    font-weight:400;

    color:#fff;

    margin-bottom:12px;

}

.projects-text{

    font-family:var(--body-font);

    font-size:18px;

    line-height:1.8;

    color:#E8E8E8;

    margin-bottom:16px;

    max-width:850px;

}

.projects-btn{

    position:relative;

    display:inline-block;

    font-family:var(--body-font);

    font-size:20px;

    font-weight:500;

    color:#fff;

    transition:.35s ease;

}

.projects-btn::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:72px;

    height:1px;

    background:#fff;

    transition:.35s ease;

}

.projects-btn:hover::after{

    width:100%;

    

}


/*==============================
            SLIDER
==============================*/

.projects-slider{

    overflow:hidden;

    width:100%;

}

.projects-track{

    display:flex;

    gap:28px;

    width:max-content;

}


/*==============================
            CARD
==============================*/

.project-card{

    width:560px;

    flex-shrink:0;

    text-decoration:none;

    color:inherit;

}

.project-image{

    width:100%;

    height:420px;

    overflow:hidden;

}

.project-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .8s cubic-bezier(.22,1,.36,1);

}


/*==============================
        CARD INFO
==============================*/

.project-info{

    background:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 22px;

}

.project-info h3{

    font-family:var(--heading-font);

    font-size:24px;

    font-weight:400;

    color:var(--primary);

}

.project-info span{

    width:32px;

    height:32px;

    display:flex;

    justify-content:center;

    align-items:center;

}

.project-info img{

    width:24px;

    transition:.35s ease;

}


/*==============================
        HOVER
==============================*/

.project-card:hover .project-image img{

    transform:scale(1.08);

}

.project-card:hover .project-info img{

    transform:translateX(8px);

}

.project-card:hover .project-info{

    background:#FFF8E8;

}


/*==================================================
                RESPONSIVE
==================================================*/


/*--------------------------
        1400
--------------------------*/

@media(max-width:1400px){

    .project-card{

        width:500px;

    }

}


/*--------------------------
        1200
--------------------------*/

@media(max-width:1200px){

    .projects{

        padding:90px 0;

    }

    .project-card{

        width:460px;

    }

    .project-image{

        height:360px;

    }

}


/*--------------------------
        991
--------------------------*/

@media(max-width:991px){

    .projects{

        padding:80px 0;

    }

    .projects-heading{

        margin-bottom:45px;

    }

    .project-card{

        width:360px;

    }

    .project-image{

        height:300px;

    }

}


/*--------------------------
        768
--------------------------*/

@media(max-width:768px){

    .projects{

        padding:60px 0;

    }

    .projects-title{

        font-size:16px;

    }

    .projects-text{

        font-size:14px;

        line-height:2;

    }

    .projects-btn{

        font-size:16px;

    }

    .project-card{

        width:233px;

    }

    .project-image{

        height:204px;

    }

    .project-info{

        padding:12px 14px;

    }

    .project-info h3{

        font-size:14px;

    }

    .project-info img{

        width:18px;

    }

    /* No hover on mobile */

    .project-card:hover .project-image img{

        transform:none;

    }

}


/*--------------------------
        430
--------------------------*/

@media(max-width:430px){

    .projects{

        padding:45px 0;

    }

}


/*==================================================
            PROJECT MARQUEE
==================================================*/

.projects-track{

    display:flex;

    gap:28px;

    width:max-content;

    animation:projectMarquee 45s linear infinite;

    will-change:transform;

}


/* Pause when hovered */

.projects-slider:hover .projects-track{

    animation-play-state:paused;

}


/* Infinite Scroll */

@keyframes projectMarquee{

    0%{

        transform:translateX(0);

    }

    100%{

        transform:translateX(calc(-50% - 14px));

    }

}





/*==================================================
            BEFORE & AFTER
==================================================*/
/*
.comparison-section{

    background:#F5F5F5;

    padding:40px 0;

    overflow:hidden;

}

.comparison-wrapper{

    position:relative;

    width:100%;

    
    height:620px;

    overflow:hidden;

    user-select:none;

    cursor:ew-resize;
    
    touch-action:none;

}



.comparison-after,
.comparison-before img{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    pointer-events:none;

}

.comparison-before{

    position:absolute;

    top:0;

    left:0;

    width:50%;

    height:100%;

    overflow:hidden;

}


.comparison-divider{

    position:absolute;

    top:0;

    left:50%;

    transform:translateX(-50%);

    width:2px;

    height:100%;

    background:#ffffff;

    z-index:5;

}



.comparison-handle{

    position:absolute;

    top:50%;

    left:50%;

    transform:translate(-50%,-50%);

    width:40px;

    height:40px;

    border:none;

    border-radius:50%;

    background:#ffffff;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:grab;

    transition:.35s ease;

    box-shadow:

        0 10px 30px rgba(0,0,0,.18);

}

.comparison-handle img{

    width:20px;

    pointer-events:none;

}

.comparison-handle{

    transition:

        transform .35s ease,

        box-shadow .35s ease;

}

.comparison-wrapper:hover .comparison-handle{

    transform:translate(-50%,-50%) scale(1.08);

    box-shadow:0 15px 40px rgba(0,0,0,.25);

}

.comparison-handle:active{

    cursor:grabbing;

}



.comparison-content{

    max-width:1050px;

    margin:22px auto 0;

    text-align:center;

}

.comparison-content p{

    font-family:var(--body-font);

    font-size:16px;

    line-height:1.8;

    color:var(--primary);

}



@media(max-width:1400px){

    .comparison-section{

        padding:90px 0;

    }

}



@media(max-width:1200px){

    .comparison-wrapper{

        aspect-ratio:15/9;

    }

}


@media(max-width:991px){

    .comparison-section{

        padding:80px 0;

    }

}



@media(max-width:768px){

    .comparison-section{

        padding:60px 0;

    }

    .comparison-wrapper{

        aspect-ratio:1/1;

    }

    .comparison-handle{

        width:42px;

        height:42px;

    }

    .comparison-handle img{

        width:16px;

    }

    .comparison-content{

        margin-top:28px;

    }

    .comparison-content p{

        font-size:14px;

        line-height:2;

    }

}



@media(max-width:430px){

    .comparison-section{

        padding:45px 0;

    }

}



@media(max-width:1600px){

    .comparison-wrapper{

        height:560px;

    }

}



@media(max-width:1400px){

    .comparison-wrapper{

        height:500px;

    }

}



@media(max-width:991px){

    .comparison-wrapper{

        height:420px;

    }

}


@media(max-width:768px){

    .comparison-wrapper{

        height:260px;

    }

}



@media(max-width:430px){

    .comparison-wrapper{

        height:220px;

    }

}
*/

/*==================================================
            BEFORE & AFTER
==================================================*/

.comparison-section {
    background: #F5F5F5;
    padding: 40px 0;
    overflow: hidden;
}


/*====================================
        COMPARISON WRAPPER
====================================*/

.comparison-wrapper {
    position: relative;
    width: 100%;
    height: 620px;

    overflow: hidden;

    user-select: none;
    -webkit-user-select: none;

    cursor: ew-resize;

    touch-action: none;
}


/*====================================
        AFTER IMAGE
====================================*/

.comparison-after {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    pointer-events: none;
}


/*====================================
        BEFORE IMAGE
====================================*/

.comparison-before {
    position: absolute;

    top: 0;
    left: 0;

    width: 50%;
    height: 100%;

    overflow: hidden;

    z-index: 2;
}


.comparison-before img {
    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    /*
       IMPORTANT:
       The image inside the clipped area
       must remain the same size as the
       complete comparison image.
    */
    width: var(--comparison-width);
    max-width: none;

    object-fit: cover;

    pointer-events: none;
}


/*====================================
        DIVIDER
====================================*/

.comparison-divider {
    position: absolute;

    top: 0;
    left: 50%;

    transform: translateX(-50%);

    width: 1px;
    height: 100%;

    background: #000;

    z-index: 10;

    pointer-events: none;
}


/*====================================
        HOLD & DRAG CIRCLE
====================================*/

.comparison-handle {
    position: absolute;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    width: 120px;
    height: 120px;

    border-radius: 50%;

    background: #111;

    color: #fff;

    display: flex;
    flex-direction: column;

    justify-content: center;
    align-items: center;

    text-align: center;

    font-family: var(--body-font);

    font-size: 16px;
    font-weight: 400;

    line-height: 1.35;

    letter-spacing: 0;

    cursor: grab;

    pointer-events: auto;

    user-select: none;
    -webkit-user-select: none;

    transition:
        transform .3s ease,
        background .3s ease;

    box-shadow: none;
}


/*====================================
        HANDLE HOVER
====================================*/

.comparison-wrapper:hover .comparison-handle {
    transform: translate(-50%, -50%) scale(1.03);
}


/*====================================
        HANDLE ACTIVE
====================================*/

.comparison-wrapper.dragging .comparison-handle {
    cursor: grabbing;

    transform: translate(-50%, -50%) scale(1.03);
}


/*====================================
        DESCRIPTION
====================================*/

.comparison-content {
    max-width: 1050px;

    margin: 22px auto 0;

    text-align: center;
}


.comparison-content p {
    font-family: var(--body-font);

    font-size: 16px;

    line-height: 1.8;

    color: var(--primary);
}


/*==================================================
                    RESPONSIVE
==================================================*/


@media (max-width: 1600px) {

    .comparison-wrapper {
        height: 560px;
    }

}


@media (max-width: 1400px) {

    .comparison-wrapper {
        height: 500px;
    }

}


@media (max-width: 991px) {

    .comparison-section {
        padding: 80px 0;
    }

    .comparison-wrapper {
        height: 420px;
    }

    .comparison-handle {
        width: 100px;
        height: 100px;

        font-size: 15px;
    }

}


@media (max-width: 768px) {

    .comparison-section {
        padding: 60px 0;
    }

    .comparison-wrapper {
        height: 260px;
    }

    .comparison-handle {
        width: 82px;
        height: 82px;

        font-size: 12px;
    }

    .comparison-content {
        margin-top: 28px;
    }

    .comparison-content p {
        font-size: 14px;
        line-height: 2;
    }

}


@media (max-width: 430px) {

    .comparison-section {
        padding: 45px 0;
    }

    .comparison-wrapper {
        height: 220px;
    }

    .comparison-handle {
        width: 75px;
        height: 75px;

        font-size: 11px;
    }

}





/*==================================================
                    GALLERY
==================================================*/
/*==================================================
                    GALLERY
==================================================*/

.gallery{

    padding:40px 0;

    background:#F5F5F5;

}

.gallery .container{

    max-width:1140px;

}


/*====================================
            HEADING
====================================*/

.gallery-heading{

    max-width:820px;

    margin:0 auto 55px;

    text-align:center;

}

.gallery-title{

    font-family:var(--heading-font);

    font-size:20px;

    font-weight:400;

    color:var(--primary);

    margin-bottom:12px;

}

.gallery-description{

    font-family:var(--body-font);

    font-size:16px;

    line-height:1.8;

    color:var(--primary);

    margin-bottom:16px;

}

.gallery-btn{

    position:relative;

    display:inline-block;

    font-family:var(--body-font);

    font-size:20px;

    font-weight:500;

    color:var(--primary);

    transition:.35s;

}

.gallery-btn::after{

    content:"";

    position:absolute;

    left:50%;

    transform:translateX(-50%);

    bottom:-8px;

    width:70px;

    height:1px;

    background:var(--primary);

    transition:.35s;

}


.gallery-btn:hover::after{

    width:100%;

    
}


/*====================================
            GRID
====================================*/

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(4,200px);

    justify-content:center;

    gap:20px;

}

.gallery-item{

    width:200px;

    height:200px;

    overflow:hidden;

    cursor:pointer;

    position:relative;

}

.gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:

        transform .7s cubic-bezier(.22,1,.36,1),

        filter .5s;

}


/*====================================
        HOVER
====================================*/

.gallery-item:hover img{

    transform:scale(1.08);

    filter:brightness(.85);

}

.gallery-item::before{

    content:"+";

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:52px;

    color:#fff;

    opacity:0;

    background:rgba(0,0,0,.18);

    transition:.35s;

    z-index:2;

    pointer-events:none; 

}

.gallery-item:hover::before{

    opacity:1;

}


/*==================================================
                LIGHTBOX
==================================================*/

.gallery-lightbox{

    position:fixed;
    inset:0;

    display:flex;
    justify-content:center;
    align-items:center;

    background:rgba(0,0,0,.95);

    opacity:0;
    visibility:hidden;

    transition:.35s;

    z-index:999999;

}

.gallery-lightbox.active{

    opacity:1;
    visibility:visible;

}


/*====================================
            IMAGE
====================================*/

.lightbox-image{

    width:auto;

    max-width:75vw;

    max-height:75vh;

    object-fit:contain;

    position:relative;
    z-index:1;

    animation:galleryFade .35s ease;

}

@keyframes galleryFade{

    from{

        opacity:0;

        transform:scale(.96);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}


/*====================================
            CLOSE
====================================*/

.lightbox-close{

    position:absolute;

    top:30px;

    right:35px;

    width:52px;

    height:52px;

    border:none;

    background:none;

    cursor:pointer;

    z-index:999999; 

}

.lightbox-close img{

    width:30px;

}


/*====================================
            ARROWS
====================================*/

.lightbox-arrow{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:52px;

    height:52px;

    border:none;

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    border-radius:50%;

    cursor:pointer;

    transition:.3s;

    display:flex;
    justify-content:center;
    align-items:center;

     z-index:999999; 

}

.lightbox-arrow img{

    width:22px;

}

.lightbox-prev{

    left:30px;

}

.lightbox-next{

    right:30px;

}

.lightbox-arrow:hover{

    background:#C0ED96;

}


/*==================================================
                RESPONSIVE
==================================================*/

@media(max-width:1200px){

    .gallery-grid{

        grid-template-columns:repeat(4,220px);

        gap:16px;

    }

    .gallery-item{

        width:220px;

        height:220px;

    }

}


@media(max-width:991px){

    .gallery{

        padding:70px 0;

    }

    .gallery-grid{

        grid-template-columns:repeat(4,160px);

        gap:10px;

    }

    .gallery-item{

        width:160px;

        height:160px;

    }

}


@media(max-width:768px){

    .gallery{

        padding:55px 0;

    }

    .gallery-title{

        font-size:16px;

    }

    .gallery-description{

        font-size:14px;

        line-height:2;

    }

    .gallery-btn{

        font-size:16px;

    }

    .gallery-grid{

        grid-template-columns:repeat(4,1fr);

        gap:6px;

    }

    .gallery-item{

        width:100%;

        height:auto;

        aspect-ratio:1/1;

    }

    /* Disable hover on mobile */

    .gallery-item:hover img{

        transform:none;

        filter:none;

    }

    .gallery-item::before{

        display:none;

    }

    .lightbox-image{

        max-width:92vw;

        max-height:70vh;

    }

    .lightbox-arrow{

        width:42px;

        height:42px;

    }

    .lightbox-arrow img{

        width:16px;

    }

    .lightbox-prev{

        left:10px;

    }

    .lightbox-next{

        right:10px;

    }

    .lightbox-close{

        top:15px;

        right:15px;

        width:40px;

        height:40px;

    }

    .lightbox-close img{

        width:22px;

    }

}


@media(max-width:430px){

    .gallery{

        padding:45px 0;

    }

}

