/* =========================================================
   GOKART GALLERY PAGE
========================================================= */
.gk-gallery-page{
    width:100%;
    background:#fff;
    color:#321017;
}
/* =========================================================
   BANNER
========================================================= */
.gk-gallery-banner{
    position:relative;
    width:100%;
    height:360px;
    overflow:hidden;
    background:#3a0a14;
}
.gk-gallery-banner-image{
    position:absolute;
    inset:0;
    background:
        url("assets/gallery/gallery-banner.jpg")
        center / cover no-repeat;
    transform:scale(1.02);
}
.gk-gallery-banner-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            90deg,
            rgba(48,7,15,.70) 0%,
            rgba(76,10,24,.42) 48%,
            rgba(47,6,14,.10) 100%
        );
}
.gk-gallery-banner-content{
    position:relative;
    z-index:2;
    width:min(1180px,calc(100% - 40px));
    height:100%;
    margin:auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.gk-gallery-banner-label{
    display:flex;
    align-items:center;
    gap:8px;
    color:#ffdbe0;
    font-size:10px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}
.gk-gallery-banner-label::before{
    content:"";
    width:24px;
    height:2px;
    border-radius:50px;
    background:#e8475e;
}
.gk-gallery-banner-content h1{
    max-width:650px;
    margin-top:13px;
    font-family:"Montserrat",sans-serif;
    font-size:clamp(39px,5vw,62px);
    line-height:1.06;
    letter-spacing:-2px;
    color:#fff;
}
.gk-gallery-banner-content h1 span{
    display:block;
    color:#f07181;
}
.gk-gallery-banner-content p{
    max-width:530px;
    margin-top:12px;
    color:rgba(255,255,255,.79);
    font-size:13px;
    line-height:1.65;
}
.gk-gallery-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:19px;
    font-size:10px;
}
.gk-gallery-breadcrumb a{
    color:#fff;
}
.gk-gallery-breadcrumb i{
    color:#e34a61;
    font-size:8px;
}
.gk-gallery-breadcrumb span{
    color:rgba(255,255,255,.60);
}
/* =========================================================
   MAIN
========================================================= */
.gk-gallery-main{
    width:min(1180px,calc(100% - 40px));
    margin:auto;
    padding:65px 0 60px;
}
/* =========================================================
   INTRO
========================================================= */
.gk-gallery-intro{
    max-width:650px;
    margin:0 auto 30px;
    text-align:center;
}
.gk-gallery-label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#c91f35;
    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}
.gk-gallery-label::before,
.gk-gallery-label::after{
    content:"";
    width:20px;
    height:2px;
    border-radius:50px;
    background:#c91f35;
}
.gk-gallery-intro h2{
    margin-top:10px;
    font-family:"Montserrat",sans-serif;
    font-size:clamp(31px,3.8vw,47px);
    line-height:1.1;
    letter-spacing:-1.4px;
}
.gk-gallery-intro h2 span{
    color:#c91f35;
}
.gk-gallery-intro p{
    margin-top:10px;
    color:#766b6d;
    font-size:13px;
    line-height:1.7;
}
/* =========================================================
   FILTERS
========================================================= */
.gk-gallery-filters{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-bottom:23px;
    overflow-x:auto;
    scrollbar-width:none;
}
.gk-gallery-filters::-webkit-scrollbar{
    display:none;
}
.gk-gallery-filter{
    flex-shrink:0;
    min-height:33px;
    padding:0 14px;
    border-radius:18px;
    border:1px solid #e1dadd;
    background:#fff;
    color:#766a6d;
    cursor:pointer;
    font-size:9px;
    font-weight:600;
    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease;
}
.gk-gallery-filter:hover{
    color:#c91f35;
    border-color:#c91f35;
}
.gk-gallery-filter.active{
    color:#fff;
    border-color:#c91f35;
    background:#c91f35;
}
/* =========================================================
   GALLERY GRID
========================================================= */
.gk-gallery-grid{
    display:grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    grid-auto-rows:190px;
    gap:12px;
    transition:opacity .25s ease;
}
/* =========================================================
   GALLERY PHOTO
========================================================= */
.gk-gallery-photo{
    position:relative;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    overflow:hidden;
    border-radius:15px;
    background:#eee;
    cursor:pointer;
    outline:none;
    isolation:isolate;
}
/* Grid variations */
.gk-gallery-wide{
    grid-column:span 2;
}
.gk-gallery-tall{
    grid-row:span 2;
}
/* =========================================================
   IMAGE
========================================================= */
.gk-gallery-photo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:
        transform .65s cubic-bezier(.2,.7,.2,1);
}
.gk-gallery-photo:hover img{
    transform:scale(1.06);
}
/* =========================================================
   PHOTO OVERLAY
========================================================= */
.gk-gallery-photo-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    padding:17px;
    background:
        linear-gradient(
            180deg,
            transparent 48%,
            rgba(28,5,11,.72) 100%
        );
    opacity:0;
    transition:
        opacity .3s ease;
}
.gk-gallery-photo:hover .gk-gallery-photo-overlay{
    opacity:1;
}
.gk-gallery-photo-overlay > span{
    color:#fff;
    font-size:8px;
    font-weight:700;
    letter-spacing:1.4px;
}
.gk-gallery-photo-overlay i{
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    border:1px solid rgba(255,255,255,.26);
    background:rgba(100,16,29,.72);
    backdrop-filter:blur(5px);
    font-size:10px;
}
/* =========================================================
   LIGHTBOX
========================================================= */
.gk-gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    opacity:0;
    visibility:hidden;
    transition:
        opacity .3s ease,
        visibility .3s ease;
}
.gk-gallery-lightbox.active{
    opacity:1;
    visibility:visible;
}
.gk-gallery-lightbox-bg{
    position:absolute;
    inset:0;
    background:rgba(19,3,8,.91);
    backdrop-filter:blur(7px);
}
.gk-gallery-lightbox-box{
    position:relative;
    z-index:2;
    width:min(1050px,92vw);
    height:min(730px,86vh);
    display:flex;
    align-items:center;
    justify-content:center;
}
/* =========================================================
   LARGE IMAGE
========================================================= */
.gk-gallery-large-image{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    display:block;
    object-fit:contain;
    border-radius:10px;
    box-shadow:
        0 25px 80px rgba(0,0,0,.45);
    user-select:none;
}
/* =========================================================
   CLOSE BUTTON
========================================================= */
.gk-lightbox-close{
    position:absolute;
    top:-16px;
    right:-16px;
    z-index:5;
    width:43px;
    height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    color:#fff;
    background:#64101d;
    cursor:pointer;
    transition:
        background .25s ease,
        transform .25s ease;
}
.gk-lightbox-close:hover{
    background:#c91f35;
    transform:rotate(90deg);
}
/* =========================================================
   LIGHTBOX ARROWS
========================================================= */
.gk-lightbox-control{
    position:absolute;
    top:50%;
    z-index:5;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    color:#fff;
    background:rgba(91,12,28,.78);
    cursor:pointer;
    transform:translateY(-50%);
    transition:
        background .25s ease,
        transform .25s ease;
}
.gk-lightbox-control:hover{
    background:#c91f35;
    transform:
        translateY(-50%)
        scale(1.05);
}
.gk-lightbox-prev{
    left:-24px;
}
.gk-lightbox-next{
    right:-24px;
}
/* =========================================================
   LIGHTBOX INFO
========================================================= */
.gk-lightbox-info{
    position:absolute;
    left:50%;
    bottom:-35px;
    transform:translateX(-50%);
    min-width:150px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    color:rgba(255,255,255,.72);
    font-size:9px;
}
.gk-lightbox-info > span{
    color:#f06a7d;
    font-weight:700;
    letter-spacing:1.4px;
}
.gk-lightbox-info strong{
    color:#fff;
}
/* =========================================================
   CTA
========================================================= */
.gk-gallery-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    margin-top:27px;
    padding:25px 28px;
    border-radius:17px;
    background:
        linear-gradient(
            135deg,
            #fff3f5,
            #fdf8f8
        );
    border:1px solid rgba(201,31,53,.09);
}
.gk-gallery-cta > div > span{
    color:#c91f35;
    font-size:8px;
    font-weight:700;
    letter-spacing:1.6px;
}
.gk-gallery-cta h2{
    margin-top:5px;
    color:#42111b;
    font-family:"Montserrat",sans-serif;
    font-size:23px;
    line-height:1.2;
}
.gk-gallery-cta h2 em{
    color:#c91f35;
    font-style:normal;
}
.gk-gallery-cta > a{
    flex-shrink:0;
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 17px;
    border-radius:7px;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            #d52b43,
            #8e172a
        );
    font-size:10px;
    font-weight:700;
}
.gk-gallery-cta > a:hover{
    color:#fff;
}
/* =========================================================
   TABLET
========================================================= */
@media(max-width:900px){
    .gk-gallery-banner{
        height:330px;
    }
    .gk-gallery-grid{
        grid-template-columns:
            repeat(3,minmax(0,1fr));
        grid-auto-rows:175px;
    }
}
/* =========================================================
   MOBILE
========================================================= */
@media(max-width:600px){
    .gk-gallery-banner{
        height:300px;
    }
    .gk-gallery-banner-content{
        width:calc(100% - 30px);
    }
    .gk-gallery-banner-content h1{
        font-size:35px;
        letter-spacing:-1px;
    }
    .gk-gallery-banner-content p{
        font-size:11px;
    }
    .gk-gallery-main{
        width:calc(100% - 28px);
        padding:50px 0;
    }
    .gk-gallery-intro{
        margin-bottom:24px;
    }
    .gk-gallery-intro h2{
        font-size:29px;
        letter-spacing:-.8px;
    }
    .gk-gallery-intro p{
        font-size:11px;
    }
    /* 2-column mobile gallery */
    .gk-gallery-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        grid-auto-rows:150px;
        gap:9px;
    }
    .gk-gallery-wide{
        grid-column:span 2;
    }
    .gk-gallery-tall{
        grid-row:span 2;
    }
    .gk-gallery-photo{
        border-radius:12px;
    }
    .gk-gallery-photo-overlay{
        opacity:1;
        padding:11px;
    }
    .gk-gallery-photo-overlay > span{
        font-size:7px;
    }
    .gk-gallery-photo-overlay i{
        width:28px;
        height:28px;
        font-size:9px;
    }
    /* Lightbox */
    .gk-gallery-lightbox{
        padding:12px;
    }
    .gk-gallery-lightbox-box{
        width:94vw;
        height:72vh;
    }
    .gk-gallery-large-image{
        max-width:94vw;
        max-height:68vh;
        border-radius:7px;
    }
    .gk-lightbox-close{
        top:-9px;
        right:-5px;
        width:38px;
        height:38px;
    }
    .gk-lightbox-control{
        width:38px;
        height:38px;
    }
    .gk-lightbox-prev{
        left:-4px;
    }
    .gk-lightbox-next{
        right:-4px;
    }
    .gk-lightbox-info{
        bottom:-28px;
    }
    /* CTA */
    .gk-gallery-cta{
        flex-direction:column;
        align-items:flex-start;
        gap:13px;
        margin-top:20px;
        padding:21px;
    }
    .gk-gallery-cta h2{
        font-size:20px;
    }
    .gk-gallery-cta > a{
        width:100%;
    }
}
/* =========================================================
   SMALL MOBILE
========================================================= */
@media(max-width:390px){
    .gk-gallery-banner{
        height:285px;
    }
    .gk-gallery-banner-content h1{
        font-size:32px;
    }
    .gk-gallery-grid{
        grid-auto-rows:135px;
    }
}