/* ===================================
   PAGE
=================================== */

* {

    box-sizing: border-box;

}


body {

    margin: 0;

    background: #f5f5f2;

    color: #111;

}


/* ===================================
   HERO
=================================== */

.completed-vans-hero {

    min-height: 190px;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    padding: 70px 20px 45px;

    background: #111;

    color: #fff;

}


.completed-vans-hero-content {

    max-width: 800px;

}


.completed-vans-hero h1 {

    margin: 0 0 12px;

    font-size: 46px;

    line-height: 1.1;

}


.completed-vans-hero p {

    margin: 0;

    color: #ccc;

    font-size: 18px;

    line-height: 1.6;

}


/* ===================================
   MAIN SECTION
=================================== */

.completed-vans-section {

    max-width: 1200px;

    margin: 0 auto;

    padding: 70px 25px 90px;

}


/* ===================================
   VAN CARD
=================================== */

.completed-van {

    background: #fff;

    border: 1px solid #ddd;

    border-radius: 12px;

    padding: 40px;

    margin-bottom: 60px;

    box-shadow:
        0 6px 20px rgba(0,0,0,.10);

}


.completed-van:last-child {

    margin-bottom: 0;

}


/* ===================================
   VAN TITLE
=================================== */

.completed-van-title {

    text-align: center;

    margin-bottom: 30px;

}


.completed-van-title h2 {

    margin: 0;

    font-size: 32px;

    line-height: 1.2;

    color: #111;

}


/* ===================================
   PHOTO GALLERY
=================================== */

.completed-van-gallery {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 18px;

    padding: 5px;

}


/* ===================================
   PHOTO
=================================== */

.gallery-photo {

    position: relative;

    display: block;

    width: 100%;

    aspect-ratio: 3 / 4;

    padding: 0;

    border: 0;

    border-radius: 8px;

    overflow: hidden;

    background: #eee;

    cursor: pointer;

}


.gallery-photo img {

    display: block;

    width: 100%;

    height: 100%;

    object-fit: cover;

    background: #eee;

    transition:
        transform .35s ease;

}


.gallery-photo:hover img {

    transform: scale(1.03);

}


/* ===================================
   LIGHTBOX
=================================== */

.gallery-lightbox {

    position: fixed;

    inset: 0;

    z-index: 9999;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 30px;

    background: rgba(0,0,0,.92);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity .25s ease,
        visibility .25s ease;

}


.gallery-lightbox.active {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

}


/* ===================================
   LIGHTBOX IMAGE
=================================== */

.gallery-lightbox img {

    display: block;

    max-width: 92vw;

    max-height: 90vh;

    width: auto;

    height: auto;

    object-fit: contain;

    border-radius: 5px;

    box-shadow:
        0 10px 40px rgba(0,0,0,.5);


    touch-action: none;

    user-select: none;

    -webkit-user-drag: none;

}


/* ===================================
   CLOSE BUTTON
=================================== */

.lightbox-close {

    position: absolute;

    top: 20px;

    right: 25px;

    z-index: 2;

    width: 48px;

    height: 48px;

    border: 0;

    border-radius: 50%;

    background: rgba(255,255,255,.12);

    color: #fff;

    font-size: 34px;

    line-height: 1;

    cursor: pointer;

    transition:
        background .2s ease,
        transform .2s ease;

}


.lightbox-close:hover {

    background: rgba(255,255,255,.25);

    transform: scale(1.05);

}


/* ===================================
   BODY LOCK
=================================== */

body.lightbox-open {

    overflow: hidden;

}


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

.empty-gallery {

    max-width: 700px;

    margin: 0 auto;

    padding: 60px 30px;

    text-align: center;

    background: #fff;

    border-radius: 8px;

}


.empty-gallery h2 {

    margin: 0 0 10px;

    font-size: 28px;

}


.empty-gallery p {

    margin: 0;

    color: #777;

    line-height: 1.6;

}


/* ===================================
   TABLET
=================================== */

@media (max-width: 900px) {


    .completed-vans-section {

        padding:
            60px 20px
            75px;

    }


    .completed-van {

        padding: 30px;

    }


    .completed-van-gallery {

        grid-template-columns:
            repeat(3, 1fr);

    }


}


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

@media (max-width: 650px) {


    .completed-vans-hero {

        min-height: 190px;

        padding:
            40px 20px
            30px;

    }


    .completed-vans-hero h1 {

        font-size: 34px;

    }


    .completed-vans-hero p {

        font-size: 15px;

        line-height: 1.5;

    }


    .completed-vans-section {

        padding:
            35px 12px
            50px;

    }


    .completed-van {

        padding: 22px 15px;

        margin-bottom: 35px;

        border-radius: 10px;

        border: 1px solid #d8d8d8;

        box-shadow:
            0 4px 14px rgba(0,0,0,.09);

    }


    .completed-van-title {

        margin-bottom: 22px;

    }


    .completed-van-title h2 {

        font-size: 26px;

    }


    .completed-van-gallery {

        grid-template-columns:
            repeat(2, 1fr);

        gap: 12px;

        padding: 3px;

    }


    .gallery-photo {

        border-radius: 6px;

    }


    .gallery-lightbox {

        padding: 15px;

        touch-action: none;

    }


    .gallery-lightbox img {

        max-width: 96vw;

        max-height: 88vh;

        touch-action: none;

    }


    .lightbox-close {

        top: 12px;

        right: 12px;

        width: 42px;

        height: 42px;

        font-size: 30px;

    }

}
