*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:#F8F6F2;
    color:#222;
}


/* =========================================================
   HEADER
========================================================= */

.galleryHeader{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    padding:25px 8%;
    background:rgba(255,255,255,.75);
    backdrop-filter:blur(15px);
    z-index:999;
}

.backBtn{
    text-decoration:none;
    color:#222;
    font-weight:600;
    transition:.3s;
}

.backBtn:hover{
    color:#C8A46A;
}


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

.galleryHero{
    padding:150px 8% 70px;
    text-align:center;
}

.galleryHero span{
    color:#C8A46A;
    letter-spacing:5px;
    font-size:13px;
    font-weight:600;
}

.galleryHero h1{
    font-family:'Playfair Display',serif;
    font-size:70px;
    margin:20px 0;
}

.galleryHero p{
    max-width:650px;
    margin:auto;
    color:#666;
    line-height:1.8;
}


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

.galleryGrid{
    width:min(1400px,90%);
    margin:70px auto 100px;

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}

.galleryItem{
    aspect-ratio:1/1;
    overflow:hidden;
    border-radius:18px;
    cursor:pointer;
}

.galleryItem img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.5s;
}

.galleryItem:hover img{
    transform:scale(1.08);
}

.tall{
    grid-row:span 2;
}

.wide{
    grid-column:span 2;
}


/* =========================================================
   LIGHTBOX — DESKTOP
========================================================= */

.lightbox{
    position:fixed;
    inset:0;

    width:100vw;
    height:100vh;

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

    display:none;

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

    overflow:hidden;

    z-index:99999;

    touch-action:none;
}

.lightbox.show{
    display:flex;
}


/* =========================================================
   LIGHTBOX PHOTO — DESKTOP
========================================================= */

#lightboxImg{
    max-width:92vw;
    max-height:90vh;

    width:auto;
    height:auto;

    object-fit:contain;

    user-select:none;
    -webkit-user-select:none;

    -webkit-user-drag:none;

    will-change:transform;

    cursor:grab;

    transition:transform .30s ease;

    touch-action:none;
}

#lightboxImg.dragging{
    cursor:grabbing;
    transition:none;
}


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

.closeLightbox{
    position:absolute;

    top:20px;
    right:25px;

    color:#fff;

    font-size:38px;
    line-height:1;

    cursor:pointer;

    opacity:.85;

    transition:.3s;

    z-index:100000;

    user-select:none;
}

.closeLightbox:hover{
    opacity:1;
}


/* =========================================================
   DESKTOP ARROWS
========================================================= */

.prevBtn,
.nextBtn{
    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:58px;
    height:58px;

    border:none;

    border-radius:50%;

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

    color:#fff;

    font-size:30px;

    cursor:pointer;

    transition:.25s;

    z-index:100;
}

.prevBtn:hover,
.nextBtn:hover{
    background:#C8A46A;
}

.prevBtn{
    left:20px;
}

.nextBtn{
    right:20px;
}


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

@media(max-width:900px){

    .galleryGrid{
        grid-template-columns:repeat(2,1fr);
        gap:15px;
    }

    .tall,
    .wide{
        grid-column:unset;
        grid-row:unset;
    }

    .galleryHero h1{
        font-size:48px;
    }
}


/* =========================================================
   PHONE ONLY — MOBILE PHOTO VIEWER
========================================================= */

@media(max-width:768px){

    /* -----------------------------------------------------
       LIGHTBOX
    ----------------------------------------------------- */

    .lightbox{
        position:fixed;
        inset:0;

        width:100vw;
        height:100vh;

        padding:0;

        display:none;

        justify-content:center;

        /* Default = centered.
           JS adds .isPortrait when needed. */
        align-items:center;

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

        overflow:hidden;

        z-index:99999;

        touch-action:none;
    }

    .lightbox.show{
        display:flex;
    }


    /* -----------------------------------------------------
       HIDE ARROWS ON PHONE
    ----------------------------------------------------- */

    .lightbox .prevBtn,
    .lightbox .nextBtn{

        display:none !important;

        visibility:hidden !important;

        opacity:0 !important;

        pointer-events:none !important;
    }


    /* -----------------------------------------------------
       X BUTTON
       BLACK AREA
    ----------------------------------------------------- */

    .closeLightbox{

        position:absolute;

        top:6px;
        right:12px;

        z-index:100001;

        color:#fff;

        font-size:40px;

        line-height:1;

        padding:0;

        margin:0;

        cursor:pointer;

        opacity:.95;

        user-select:none;

        -webkit-tap-highlight-color:transparent;
    }


    /* -----------------------------------------------------
       DEFAULT PHONE IMAGE
       LANDSCAPE = CENTER
    ----------------------------------------------------- */

    #lightboxImg{

        width:100vw;

        max-width:100vw;

        height:auto;

        max-height:85vh;

        margin:0;

        object-fit:contain;

        object-position:center;

        border-radius:0;

        user-select:none;

        -webkit-user-select:none;

        -webkit-user-drag:none;

        touch-action:none;

        will-change:transform;

        cursor:grab;

        transition:transform .25s ease;
    }


    /* -----------------------------------------------------
       PORTRAIT PHOTO
       IMAGE MOVES UP
    ----------------------------------------------------- */

    .lightbox.isPortrait{

        align-items:flex-start;

    }

    .lightbox.isPortrait #lightboxImg{

        width:100vw;

        max-width:100vw;

        height:auto;

        max-height:calc(100vh - 55px);

        margin-top:45px;

        object-fit:contain;

        object-position:top center;

    }


    /* -----------------------------------------------------
       LANDSCAPE PHOTO
       CENTERED
    ----------------------------------------------------- */

    .lightbox.isLandscape{

        align-items:center;

        justify-content:center;

    }

    .lightbox.isLandscape #lightboxImg{

        width:100vw;

        max-width:100vw;

        height:auto;

        max-height:85vh;

        margin:0;

        object-fit:contain;

        object-position:center center;

    }


    /* -----------------------------------------------------
       DRAGGING
    ----------------------------------------------------- */

    #lightboxImg.dragging{

        cursor:grabbing;

        transition:none !important;
    }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:480px){

    .galleryHero{
        padding:120px 20px 55px;
    }

    .galleryHero h1{
        font-size:38px;
    }

    .galleryHero p{
        font-size:14px;
    }

    .galleryGrid{
        width:94%;
        gap:12px;
        margin-top:45px;
    }

    .galleryItem{
        border-radius:14px;
    }

    .closeLightbox{
        top:5px;
        right:10px;
        font-size:38px;
    }

}


/* =========================================================
   VIDEO GALLERY
========================================================= */

.videoGrid{
    width:min(1400px,90%);
    margin:70px auto;

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

    gap:35px;
}

.videoCard{
    width:100%;

    background:#fff;

    border-radius:18px;

    overflow:hidden;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    transition:.3s;
}

.videoCard:hover{
    transform:translateY(-8px);
}

.videoCard iframe{
    width:100%;

    aspect-ratio:16/9;

    display:block;

    border:0;

    border-radius:18px 18px 0 0;
}

.videoCard video{
    width:100%;

    aspect-ratio:16/9;

    display:block;

    object-fit:cover;

    background:#000;
}

.videoInfo{
    padding:18px;

    text-align:center;
}

.videoInfo h3{
    font-family:'Playfair Display',serif;

    font-size:24px;

    margin-bottom:8px;
}

.videoInfo span{
    color:#888;

    font-size:14px;

    letter-spacing:1px;

    text-transform:uppercase;
}


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

@media screen and (max-width:768px){

    .videoGrid{

        display:grid !important;

        grid-template-columns:1fr !important;

        width:92% !important;

        gap:25px !important;

        margin:40px auto !important;

    }

    .videoCard{
        width:100% !important;
    }

    .videoCard video{

        width:100%;

        aspect-ratio:16/9;

    }

}


/* =========================================================
   COLLECTIONS
========================================================= */

.collectionGrid{

    width:min(1400px,90%);

    margin:60px auto 100px;

    display:grid;

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

    gap:30px;
}

.collectionCard{

    position:relative;

    display:block;

    border-radius:24px;

    overflow:hidden;

    height:420px;

    text-decoration:none;
}

.collectionCard:hover{

    transform:translateY(-10px);

}

.collectionCard img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.collectionCard:hover img{

    transform:scale(1.08);

}

.collectionOverlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        rgba(0,0,0,.15),
        rgba(0,0,0,.75)
    );

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:35px;

    color:#fff;
}

.collectionOverlay span{

    font-size:13px;

    letter-spacing:3px;

    color:#D8B26E;

    text-transform:uppercase;
}

.collectionOverlay h3{

    font-family:'Playfair Display',serif;

    font-size:36px;

    margin:12px 0;
}

.collectionOverlay p{

    opacity:.9;

    margin-bottom:25px;
}

.viewBtn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    width:max-content;

    background:#C8A46A;

    color:#fff;

    padding:12px 22px;

    border-radius:50px;

    font-weight:600;
}


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

@media(max-width:768px){

    .collectionGrid{

        grid-template-columns:1fr;

    }

    .collectionCard{

        height:350px;

    }

    .collectionOverlay h3{

        font-size:30px;

    }

}


/* =========================================================
   YOUTUBE VIDEO
========================================================= */

.youtubeVideo{

    position:relative;

    width:100%;

    aspect-ratio:16 / 9;

    overflow:hidden;

    background:#000;
}

.youtubeVideo iframe{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    border:0;

    display:block;
}


/* =========================================================
   MOBILE GALLERY GRID
========================================================= */

@media(max-width:768px){

    .galleryGrid{

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

        gap:15px;

    }

}