
:root{
    --vrg-navy:#182454;
    --vrg-deep:#101936;
    --vrg-gold:#DAB66A;
    --vrg-ink:#20263a;
    --vrg-muted:#6d7382;
    --vrg-line:#e5e8ee;
    --vrg-soft:#f6f7fa;
    --vrg-white:#fff;
}

.vr-gallery-section,
.vr-gallery-lightbox{
    font-family:Roboto,Arial,sans-serif;
}

.vr-gallery-section *,
.vr-gallery-lightbox *{
    box-sizing:border-box;
}

.vr-gallery-section{
    padding:72px 0 100px;
    background:#fff;
    color:var(--vrg-ink);
}

.vr-gallery-shell{
    width:min(1320px,calc(100% - 48px));
    margin:auto;
}

.vr-gallery-heading{
    max-width:820px;
    margin-bottom:34px;
}

.vr-gallery-eyebrow{
    color:var(--vrg-gold);
    font-size:10px;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
}

.vr-gallery-heading h2{
    margin:9px 0 13px;
    color:var(--vrg-navy);
    font-size:clamp(36px,4.2vw,56px);
    font-weight:300;
    line-height:1.05;
    letter-spacing:-1.8px;
}

.vr-gallery-heading p{
    max-width:720px;
    margin:0;
    color:var(--vrg-muted);
    font-size:15px;
    line-height:1.75;
}

.vr-gallery-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:26px;
    padding:18px 20px;
    border:1px solid var(--vrg-line);
    background:var(--vrg-soft);
}

.vr-gallery-filters{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.vr-gallery-filters button{
    min-height:42px;
    padding:0 17px;
    border:1px solid #dfe2e9;
    background:#fff;
    color:var(--vrg-navy);
    cursor:pointer;
    font:inherit;
    font-size:11px;
    font-weight:600;
    transition:.25s ease;
}

.vr-gallery-filters button:hover,
.vr-gallery-filters button.is-active{
    border-color:var(--vrg-navy);
    background:var(--vrg-navy);
    color:#fff;
}

.vr-gallery-count{
    flex:0 0 auto;
    color:var(--vrg-muted);
    font-size:12px;
}

.vr-gallery-masonry{
    column-count:4;
    column-gap:18px;
}

.vr-gallery-item{
    display:inline-block;
    width:100%;
    margin:0 0 18px;
    break-inside:avoid;
    overflow:hidden;
    vertical-align:top;
    background:var(--vrg-soft);
}

.vr-gallery-item[hidden]{
    display:none!important;
}

.vr-gallery-open{
    position:relative;
    display:block;
    width:100%;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    background:none;
    cursor:pointer;
}

.vr-gallery-open img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
    transition:transform .65s ease;
}

.vr-gallery-overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:linear-gradient(180deg,rgba(16,25,54,.04),rgba(16,25,54,.82));
    opacity:0;
    transition:.35s ease;
}

.vr-gallery-item:hover .vr-gallery-overlay,
.vr-gallery-open:focus-visible .vr-gallery-overlay{
    opacity:1;
}

.vr-gallery-item:hover img{
    transform:scale(1.035);
}

.vr-gallery-zoom{
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    margin-bottom:13px;
    border:1px solid rgba(255,255,255,.65);
    border-radius:50%;
    background:rgba(24,36,84,.55);
    backdrop-filter:blur(7px);
}

.vr-gallery-zoom svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:#fff;
    stroke-width:1.7;
    stroke-linecap:round;
}

.vr-gallery-item-title{
    color:#fff;
    font-size:13px;
    font-weight:500;
    line-height:1.45;
    text-align:center;
}

.vr-gallery-empty,
.vr-gallery-empty-filter{
    padding:55px 25px;
    border:1px solid var(--vrg-line);
    background:var(--vrg-soft);
    text-align:center;
}

.vr-gallery-empty h3,
.vr-gallery-empty-filter h3{
    margin:0 0 8px;
    color:var(--vrg-navy);
    font-size:23px;
    font-weight:400;
}

.vr-gallery-empty p{
    margin:0;
    color:var(--vrg-muted);
}

/* Lightbox */
.vr-gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.vr-gallery-lightbox.is-open{
    display:flex;
}

.vr-gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,12,29,.92);
    backdrop-filter:blur(6px);
}

.vr-gallery-lightbox-dialog{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:min(1400px,100%);
    height:min(92vh,980px);
}

.vr-gallery-lightbox-content{
    display:flex;
    flex-direction:column;
    max-width:calc(100% - 130px);
    max-height:100%;
}

.vr-gallery-lightbox-content img{
    display:block;
    max-width:100%;
    max-height:78vh;
    margin:auto;
    object-fit:contain;
}

.vr-gallery-lightbox-details{
    padding:18px 6px 0;
    color:#fff;
    text-align:center;
}

.vr-gallery-lightbox-category{
    display:block;
    margin-bottom:7px;
    color:var(--vrg-gold);
    font-size:9px;
    font-weight:700;
    letter-spacing:1.3px;
    text-transform:uppercase;
}

.vr-gallery-lightbox-title{
    margin:0;
    color:#fff;
    font-size:21px;
    font-weight:400;
}

.vr-gallery-lightbox-caption{
    max-width:700px;
    margin:8px auto 0;
    color:rgba(255,255,255,.72);
    font-size:13px;
    line-height:1.65;
}

.vr-gallery-lightbox-close{
    position:absolute;
    top:0;
    right:0;
    z-index:3;
    width:46px;
    height:46px;
    border:1px solid rgba(255,255,255,.25);
    background:rgba(255,255,255,.08);
    color:#fff;
    cursor:pointer;
    font-size:30px;
    line-height:1;
}

.vr-gallery-lightbox-nav{
    position:absolute;
    top:50%;
    z-index:3;
    width:50px;
    height:58px;
    border:1px solid rgba(255,255,255,.25);
    background:rgba(255,255,255,.08);
    color:#fff;
    transform:translateY(-50%);
    cursor:pointer;
    font-size:38px;
    font-weight:200;
    line-height:1;
}

.vr-gallery-lightbox-prev{left:0}
.vr-gallery-lightbox-next{right:0}

.vr-gallery-lightbox-close:hover,
.vr-gallery-lightbox-nav:hover{
    border-color:var(--vrg-gold);
    background:var(--vrg-gold);
    color:var(--vrg-navy);
}

body.vr-gallery-lightbox-open{
    overflow:hidden;
}

@media(max-width:1100px){
    .vr-gallery-masonry{column-count:3}
}

@media(max-width:820px){
    .vr-gallery-masonry{column-count:2}
    .vr-gallery-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:560px){
    .vr-gallery-section{padding:55px 0 75px}
    .vr-gallery-shell{width:calc(100% - 30px)}
    .vr-gallery-masonry{column-count:1}
    .vr-gallery-toolbar{padding:15px}
    .vr-gallery-filters{
        display:grid;
        width:100%;
        grid-template-columns:1fr 1fr;
    }
    .vr-gallery-filters button{width:100%}
    .vr-gallery-lightbox{padding:10px}
    .vr-gallery-lightbox-content{max-width:100%}
    .vr-gallery-lightbox-content img{max-height:72vh}
    .vr-gallery-lightbox-nav{
        top:auto;
        bottom:8px;
        width:48px;
        height:48px;
        transform:none;
    }
    .vr-gallery-lightbox-prev{left:8px}
    .vr-gallery-lightbox-next{right:8px}
    .vr-gallery-lightbox-close{top:8px;right:8px}
    .vr-gallery-lightbox-details{padding-bottom:62px}
}


/* v1.1 media toggle + video support */
.vr-gallery-media-toggle{
    display:inline-flex;
    gap:8px;
    margin-bottom:18px;
    padding:7px;
    border:1px solid var(--vrg-line);
    background:var(--vrg-soft);
}
.vr-gallery-media-toggle button{
    min-width:100px;
    min-height:40px;
    padding:0 16px;
    border:1px solid #dfe2e9;
    background:#fff;
    color:var(--vrg-navy);
    cursor:pointer;
    font:inherit;
    font-size:11px;
    font-weight:600;
    transition:.25s ease;
}
.vr-gallery-media-toggle button:hover,
.vr-gallery-media-toggle button.is-active{
    border-color:var(--vrg-navy);
    background:var(--vrg-navy);
    color:#fff;
}
.vr-gallery-video-play{
    position:absolute;
    left:50%;
    top:50%;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:50%;
    background:rgba(24,36,84,.82);
    transform:translate(-50%,-50%);
    pointer-events:none;
}
.vr-gallery-video-play span{
    width:0;
    height:0;
    margin-left:5px;
    border-top:10px solid transparent;
    border-bottom:10px solid transparent;
    border-left:16px solid #fff;
}
.vr-gallery-video-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:250px;
    background:linear-gradient(135deg,#101936,#182454);
    color:#fff;
    font-size:20px;
    font-weight:300;
}
.vr-gallery-lightbox-media{
    display:flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    max-height:78vh;
}
.vr-gallery-lightbox-media img{
    display:block;
    max-width:100%;
    max-height:78vh;
    object-fit:contain;
}
.vr-gallery-lightbox-media iframe,
.vr-gallery-lightbox-media video{
    width:min(1050px,80vw);
    aspect-ratio:16/9;
    max-height:72vh;
    border:0;
    background:#000;
}
@media(max-width:560px){
    .vr-gallery-media-toggle{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        width:100%;
    }
    .vr-gallery-media-toggle button{min-width:0;width:100%}
    .vr-gallery-lightbox-media iframe,
    .vr-gallery-lightbox-media video{
        width:92vw;
        max-height:64vh;
    }
}


/* v1.2: natural aspect ratios for all media */
.vr-gallery-item--image .vr-gallery-open img{
    width:100%;
    height:auto!important;
    object-fit:contain!important;
}

.vr-gallery-item--video .vr-gallery-open{
    background:#101936;
}

.vr-gallery-item--video .vr-gallery-open img{
    width:100%;
    height:auto!important;
    object-fit:contain!important;
    background:#101936;
}

.vr-gallery-video-preview-shell{
    width:100%;
    background:#101936;
}

.vr-gallery-video-preview-shell video{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    background:#101936;
}

.vr-gallery-media-toggle{
    width:max-content;
    margin-bottom:18px;
}

.vr-gallery-media-toggle button{
    min-width:130px;
}

@media(max-width:560px){
    .vr-gallery-media-toggle{
        display:grid;
        grid-template-columns:1fr 1fr;
        width:100%;
    }
}
