/* =====================================================
   GALLERY PAGE
===================================================== */

.gallery-page{

    width:100%;
    min-height:100vh;

    background:#F7F3EF;

    padding-top:150px;
    padding-bottom:120px;

}



/* =====================================================
   HERO
===================================================== */

.gallery-hero{

    width:min(1400px,92%);

    margin:auto;
    margin-bottom:110px;

    text-align:center;

}

.gallery-subtitle{

    display:block;

    color:#D4AF37;

    text-transform:uppercase;

    letter-spacing:5px;

    font-size:.82rem;

    font-family:"Manrope",sans-serif;

    margin-bottom:18px;

}

.gallery-hero h1{

    font-family:"Cormorant Garamond",serif;

    font-size:4.2rem;

    color:#08273A;

    font-weight:600;

    line-height:1.1;

}

.gold-divider{

    width:110px;

    height:2px;

    background:#D4AF37;

    margin:35px auto 0;

}



/* =====================================================
   GALLERY SECTION
===================================================== */

.gallery-section{

    width:min(1600px,94%);

    margin:auto;

}

.gallery-section:not(:last-child){

    margin-bottom:120px;

}

.section-subtitle{

    display:block;

    text-align:center;

    color:#D4AF37;

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:4px;

    font-family:"Manrope",sans-serif;

}

.gallery-section h2{

    margin-top:15px;

    text-align:center;

    color:#08273A;

    font-family:"Cormorant Garamond",serif;

    font-size:3.1rem;

    font-weight:600;

}

.section-divider{

    width:90px;

    height:2px;

    background:#D4AF37;

    margin:28px auto 55px;

}



/* =====================================================
   MAIN DIVIDER
===================================================== */

.gallery-main-divider{

    width:min(1400px,92%);

    height:1px;

    margin:120px auto;

    background:linear-gradient(
        to right,
        transparent,
        rgba(212,175,55,.85),
        transparent
    );

}



/* =====================================================
   APPLE MASONRY
===================================================== */

.gallery-masonry{

    display:grid;

    grid-template-columns:repeat(12,1fr);

    gap:22px;

    grid-auto-flow:dense;

}



/* =====================================================
   ITEMS
===================================================== */

.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:24px;

    cursor:pointer;

    background:#fff;

    box-shadow:
        0 10px 28px rgba(0,0,0,.08);

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}



/* =====================================================
   IMAGE
===================================================== */

.gallery-item img{

    width:100%;

    height:100%;

    display:block;

    object-fit:cover;

    transition:transform .6s ease;
	
	cursor:pointer;

}



/* =====================================================
   EDITORIAL LAYOUT
===================================================== */

.gallery-item{

    grid-column:span 3;

    height:260px;

}

.gallery-item.tall{

    grid-column:span 3;

    height:560px;

}

.gallery-item.wide{

    grid-column:span 6;

    height:260px;

}

.gallery-item.large{

    grid-column:span 6;

    height:560px;

}



/* =====================================================
   HOVER
===================================================== */

.gallery-item:hover{

    transform:translateY(-8px);

    box-shadow:
        0 25px 60px rgba(0,0,0,.18);

}

.gallery-item:hover img{

    transform:scale(1.08);

}



/* Gold Border */

.gallery-item::after{

    content:"";

    position:absolute;

    inset:0;

    border:2px solid transparent;

    border-radius:24px;

    transition:.35s ease;
	
	pointer-events:none;
	
}

.gallery-item:hover::after{

    border-color:#D4AF37;

}



/* Soft Glow */

.gallery-item::before{

    content:"";

    position:absolute;

    inset:0;

    opacity:0;

    background:linear-gradient(

        rgba(255,255,255,.08),

        rgba(212,175,55,.12)

    );

    transition:.35s;

    z-index:2;
	
	pointer-events:none;

}

.gallery-item:hover::before{

    opacity:1;

}

/* =====================================================
   LIGHTBOX
===================================================== */

.gallery-lightbox{

    position:fixed;

    inset:0;

    background:rgba(8,39,58,.82);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.35s ease;

    z-index:9999;

}

.gallery-lightbox.active{

    opacity:1;

    visibility:visible;

}



/* =====================================================
   LIGHTBOX CONTENT
===================================================== */

.lightbox-content{

    width:min(92vw,1250px);

    height:min(86vh,900px);

    display:flex;

    justify-content:center;

    align-items:center;

    position:relative;

}

.lightbox-content img{

    max-width:100%;

    max-height:100%;

    border-radius:22px;

    object-fit:contain;

    box-shadow:

        0 35px 90px rgba(0,0,0,.45);

    animation:lightboxFade .35s ease;

}



/* =====================================================
   ANIMATION
===================================================== */

@keyframes lightboxFade{

    from{

        opacity:0;

        transform:scale(.94);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}



/* =====================================================
   CLOSE BUTTON
===================================================== */

.lightbox-close{

    position:absolute;

    top:35px;

    right:40px;

    width:56px;

    height:56px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(8px);

    color:white;

    font-size:2rem;

    cursor:pointer;

    transition:.3s ease;

    z-index:10001;

}

.lightbox-close:hover{

    background:#D4AF37;

    color:#08273A;

    transform:rotate(90deg);

}



/* =====================================================
   ARROWS
===================================================== */

.lightbox-arrow{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:64px;

    height:64px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(8px);

    color:white;

    font-size:2rem;

    cursor:pointer;

    transition:.3s ease;

    z-index:10001;

}

.lightbox-arrow:hover{

    background:#D4AF37;

    color:#08273A;

    transform:translateY(-50%) scale(1.08);

}

.lightbox-prev{

    left:40px;

}

.lightbox-next{

    right:40px;

}



/* =====================================================
   IMAGE SHADOW
===================================================== */

.lightbox-content::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:22px;

    pointer-events:none;

    box-shadow:

        inset 0 0 80px rgba(255,255,255,.04);

}



/* =====================================================
   CURSOR
===================================================== */

.gallery-item img{

    cursor:pointer;

}

/* =====================================================
   RESPONSIVE
===================================================== */

/* ---------- Large Laptop ---------- */

@media (max-width: 1400px){

    .gallery-masonry{

        grid-template-columns:repeat(8,1fr);

    }

    .gallery-item{

        grid-column:span 2;

    }

    .gallery-item.tall{

        grid-column:span 2;

        height:500px;

    }

    .gallery-item.wide{

        grid-column:span 4;

    }

    .gallery-item.large{

        grid-column:span 4;

        height:500px;

    }

}


/* ---------- Tablet ---------- */

@media (max-width: 992px){

    .gallery-page{

        padding-top:130px;

    }

    .gallery-hero{

        margin-bottom:80px;

    }

    .gallery-hero h1{

        font-size:3.2rem;

    }

    .gallery-section h2{

        font-size:2.6rem;

    }

    .gallery-masonry{

        grid-template-columns:repeat(6,1fr);

        gap:18px;

    }

    .gallery-item{

        grid-column:span 3;

        height:240px;

        border-radius:20px;

    }

    .gallery-item.tall{

        grid-column:span 3;

        height:420px;

    }

    .gallery-item.wide{

        grid-column:span 6;

        height:240px;

    }

    .gallery-item.large{

        grid-column:span 6;

        height:420px;

    }

    .lightbox-arrow{

        width:56px;

        height:56px;

        font-size:1.8rem;

    }

}


/* ---------- Mobile ---------- */

@media (max-width: 768px){

    .gallery-page{

        padding-top:115px;

        padding-bottom:80px;

    }

    .gallery-hero{

        width:92%;

        margin-bottom:70px;

    }

    .gallery-subtitle{

        letter-spacing:3px;

        font-size:.72rem;

    }

    .gallery-hero h1{

        font-size:2.5rem;

    }

    .gallery-section{

        width:92%;

    }

    .gallery-section h2{

        font-size:2.2rem;

    }

    .gallery-masonry{

        grid-template-columns:repeat(2,1fr);

        gap:14px;

    }

    .gallery-item,

    .gallery-item.tall,

    .gallery-item.wide,

    .gallery-item.large{

        grid-column:span 1;

        height:220px;

    }

    .gallery-item{

        border-radius:18px;

    }

    .gallery-main-divider{

        margin:80px auto;

    }

    .lightbox-content{

        width:94vw;

        height:75vh;

    }

    .lightbox-arrow{

        width:48px;

        height:48px;

        font-size:1.5rem;

    }

    .lightbox-prev{

        left:12px;

    }

    .lightbox-next{

        right:12px;

    }

    .lightbox-close{

        top:15px;

        right:15px;

        width:48px;

        height:48px;

        font-size:1.8rem;

    }

}


/* ---------- Small Mobile ---------- */

@media (max-width: 480px){

    .gallery-hero h1{

        font-size:2rem;

    }

    .gallery-section h2{

        font-size:1.9rem;

    }

    .gallery-masonry{

        gap:12px;

    }

    .gallery-item,

    .gallery-item.tall,

    .gallery-item.wide,

    .gallery-item.large{

        height:190px;

    }

}

.mobile-reserve{
    display:none !important;
}

@media(max-width:900px){

    .mobile-reserve{
        display:block !important;
        width:100%;
        margin-top:10px;
    }

    .mobile-reserve a{
        display:flex;
        justify-content:center;
        align-items:center;
        width:100%;
        padding:14px 24px;
        border:1px solid var(--gold);
        border-radius:50px;
        color:white;
        font-size:1rem;
        font-weight:700;
        text-decoration:none;
        transition:.3s ease;
    }

    .mobile-reserve a:hover{
        background:var(--gold);
        color:#08273A;
    }
}