@import url('https://fonts.googleapis.com/css2?family=Shadows+Into+Light&display=swap');
:root{
    --gdps-black:#0d0d0d;
    --gdps-muted:#727272;
    --gdps-line:#dedede;
    --gdps-paper:#fbfbf8;
}
.gdps-gallery-page{
    width:100%;
    max-width:1450px;
    margin:0 auto;
    padding:clamp(55px,8vw,125px) clamp(22px,5vw,78px);
    box-sizing:border-box;
    color:var(--gdps-black);
    font-family:inherit;
}
.gdps-gallery-hero{
    max-width:980px;
    margin:0 0 clamp(48px,6vw,82px);
}
.gdps-gallery-eyebrow{
    font-size:11px;
    line-height:1;
    letter-spacing:.19em;
    text-transform:uppercase;
    font-weight:600;
    color:#777;
    margin-bottom:22px;
}
.gdps-gallery-eyebrow span{margin:0 8px;color:#aaa}
.gdps-gallery-hero h1,
.gdps-event-hero h1{
    margin:0;
    font-size:clamp(54px,8vw,116px);
    line-height:.86;
    letter-spacing:-.065em;
    font-weight:500;
}
.gdps-gallery-hero p{
    margin:34px 0 0;
    max-width:780px;
    font-size:clamp(18px,1.7vw,26px);
    line-height:1.55;
    letter-spacing:-.02em;
    color:#626262;
}
.gdps-gallery-filter{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
    padding:0 0 20px;
    margin-bottom:58px;
    border-bottom:1px solid var(--gdps-line);
}
.gdps-filter{
    appearance:none;
    border:1px solid var(--gdps-line);
    background:#fff;
    color:#333;
    border-radius:999px;
    padding:13px 22px;
    font:inherit;
    font-size:13px;
    letter-spacing:.01em;
    cursor:pointer;
    transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.gdps-filter:hover{transform:translateY(-1px);border-color:#aaa}
.gdps-filter.is-active{
    background:#111;
    color:#fff;
    border-color:#111;
}
.gdps-editorial-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(28px,5vw,80px);
    row-gap:clamp(72px,10vw,150px);
    align-items:start;
}
.gdps-editorial-card{
    color:inherit;
    text-decoration:none;
    display:block;
    min-width:0;
}
.gdps-editorial-card:nth-child(even){margin-top:clamp(45px,8vw,125px)}
.gdps-card-media{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#e8e8e4;
}
.gdps-card-media img{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:cover;
    transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease;
}
.gdps-editorial-card:hover .gdps-card-media img{
    transform:scale(1.035);
}
.gdps-card-open{
    display:none;
    position:absolute;
    top:18px;
    right:18px;
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.94);
    font-size:23px;
    line-height:1;
    opacity:0;
    transform:translateY(10px);
    transition:opacity .3s ease,transform .3s ease;
}
.gdps-editorial-card:hover .gdps-card-open{
    opacity:1;
    transform:none;
}
.gdps-card-caption{display:none}
.gdps-card-hover{
    position:absolute;
    inset:0;
    z-index:3;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:flex-start;
    padding:32px;
    box-sizing:border-box;
    color:#000;
    background:linear-gradient(
        to top,
        rgba(255,255,255,.97) 0%,
        rgba(255,255,255,.78) 24%,
        rgba(255,255,255,.22) 58%,
        rgba(255,255,255,0) 78%
    );
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:opacity .35s ease,transform .4s cubic-bezier(.2,.7,.2,1),visibility .35s ease;
    pointer-events:none;
}
.gdps-editorial-card:hover .gdps-card-hover{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.gdps-card-hover-year{
    margin:0 0 6px;
    font-family:inherit;
    font-size:12px;
    line-height:1.2;
    font-weight:500;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:#000;
}
.gdps-card-hover h2{
    margin:0;
    max-width:90%;
    font-family:"Shadows Into Light",Sans-serif;
    font-size:30px;
    font-weight:500;
    line-height:1.15;
    letter-spacing:0;
    color:#000000;
}
.gdps-empty{
    padding:70px 0;
    color:#777;
}
.gdps-event-page{
    max-width:1500px;
}
.gdps-event-hero{
    margin-bottom:clamp(50px,7vw,100px);
}
.gdps-event-back{
    display:inline-block;
    margin-bottom:42px;
    color:#222;
    font-size:13px;
    text-decoration:none;
}
.gdps-event-back:hover{text-decoration:underline}
.gdps-event-count{
    display:inline-flex;
    margin-top:27px;
    padding:9px 15px;
    border:1px solid #ddd;
    border-radius:999px;
    font-size:11px;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.gdps-photo-masonry{
    columns:3 280px;
    column-gap:14px;
}
.gdps-photo{
    width:100%;
    display:block;
    padding:0;
    border:0;
    margin:0 0 14px;
    background:#eee;
    position:relative;
    cursor:zoom-in;
    break-inside:avoid;
    overflow:hidden;
}
.gdps-photo img{
    display:block;
    width:100%;
    height:auto;
    transition:transform .65s cubic-bezier(.2,.7,.2,1);
}
.gdps-photo:hover img{transform:scale(1.035)}
.gdps-photo-view{
    position:absolute;
    left:15px;
    bottom:15px;
    padding:9px 12px;
    border-radius:999px;
    background:rgba(0,0,0,.78);
    color:#fff;
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(8px);
    transition:.25s ease;
}
.gdps-photo-view b{font-size:14px;margin-left:7px}
.gdps-photo:hover .gdps-photo-view{opacity:1;transform:none}
.gdps-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(8,8,8,.97);
    padding:45px 75px 90px;
}
.gdps-lightbox.is-open{display:flex}
.gdps-lightbox-stage{
    max-width:92vw;
    max-height:84vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
}
.gdps-lightbox-image{
    max-width:100%;
    max-height:78vh;
    width:auto;
    height:auto;
    object-fit:contain;
}
.gdps-lightbox-counter{
    color:rgba(255,255,255,.7);
    font-size:11px;
    letter-spacing:.16em;
}
.gdps-lightbox-close,.gdps-lightbox-prev,.gdps-lightbox-next{
    position:absolute;
    border:0;
    background:transparent;
    color:#fff;
    cursor:pointer;
    font-family:inherit;
    font-weight:300;
}
.gdps-lightbox-close{right:24px;top:12px;font-size:44px}
.gdps-lightbox-prev,.gdps-lightbox-next{
    top:50%;
    transform:translateY(-50%);
    font-size:62px;
}
.gdps-lightbox-prev{left:20px}.gdps-lightbox-next{right:20px}
.gdps-lightbox-thumbs{
    position:absolute;
    bottom:18px;
    left:50%;
    transform:translateX(-50%);
    max-width:85vw;
    display:flex;
    gap:6px;
    overflow:auto;
}
.gdps-lightbox-thumbs button{
    width:58px;
    height:42px;
    flex:0 0 58px;
    padding:0;
    border:2px solid transparent;
    background:transparent;
    opacity:.55;
    cursor:pointer;
}
.gdps-lightbox-thumbs button.is-active{opacity:1;border-color:#fff}
.gdps-lightbox-thumbs img{width:100%;height:100%;object-fit:cover}
body.gdps-lightbox-open{overflow:hidden}
.gdps-editorial-grid.is-loading{opacity:.35;pointer-events:none;transition:opacity .2s ease}
@media(max-width:800px){
    .gdps-editorial-grid{column-gap:18px;row-gap:70px}
    .gdps-editorial-card:nth-child(even){margin-top:35px}
    .gdps-card-caption h2{font-size:28px}
    .gdps-card-open{width:44px;height:44px;top:12px;right:12px;font-size:18px}
}
@media(max-width:600px){
    .gdps-gallery-page{padding:45px 18px}
    .gdps-gallery-hero h1,.gdps-event-hero h1{font-size:clamp(48px,15vw,78px)}
    .gdps-gallery-hero p{font-size:17px;margin-top:25px}
    .gdps-gallery-filter{margin-bottom:38px}
    .gdps-editorial-grid{grid-template-columns:1fr;gap:58px}
    .gdps-editorial-card:nth-child(even){margin-top:0}
    .gdps-card-caption h2{font-size:34px}
    .gdps-photo-masonry{columns:2 130px;column-gap:8px}
    .gdps-photo{margin-bottom:8px}
    .gdps-lightbox{padding:45px 25px 80px}
    .gdps-lightbox-prev{left:5px;font-size:48px}.gdps-lightbox-next{right:5px;font-size:48px}
}

@media (hover:none){
    .gdps-card-hover{
        opacity:1;
        transform:none;
    }
}


/* GDPS v2.3 — title + academic year are overlayed INSIDE the image */
.gdps-gallery-archive .gdps-editorial-card{
    position:relative !important;
    display:block !important;
    color:inherit !important;
    text-decoration:none !important;
}
.gdps-gallery-archive .gdps-card-media{
    position:relative !important;
    display:block !important;
    overflow:hidden !important;
    isolation:isolate !important;
}
.gdps-gallery-archive .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:auto !important;
}
.gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
    z-index:10 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-end !important;
    align-items:flex-start !important;
    box-sizing:border-box !important;
    padding:32px !important;
    margin:0 !important;
    opacity:0 !important;
    visibility:hidden !important;
    transform:translateY(0) !important;
    pointer-events:none !important;
    color:#000 !important;
    background:linear-gradient(
        to top,
        rgba(255,255,255,.97) 0%,
        rgba(255,255,255,.76) 28%,
        rgba(255,255,255,.18) 62%,
        rgba(255,255,255,0) 82%
    ) !important;
    transition:opacity .3s ease, visibility .3s ease !important;
}
.gdps-gallery-archive .gdps-editorial-card:hover .gdps-card-hover{
    opacity:1 !important;
    visibility:visible !important;
}
.gdps-gallery-archive .gdps-card-hover-year{
    display:block !important;
    margin:0 0 5px !important;
    padding:0 !important;
    color:#000 !important;
    font-family:inherit !important;
    font-size:12px !important;
    font-weight:500 !important;
    line-height:1.2 !important;
    letter-spacing:.13em !important;
    text-transform:uppercase !important;
}
.gdps-gallery-archive .gdps-card-hover h2{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    color:#000000 !important;
    font-family:"Shadows Into Light", Sans-serif !important;
    font-size:30px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:0 !important;
}
.gdps-gallery-archive .gdps-card-open,
.gdps-gallery-archive .gdps-card-caption,
.gdps-gallery-archive .gdps-card-meta{
    display:none !important;
}
@media (hover:none){
    .gdps-gallery-archive .gdps-card-hover{
        opacity:1 !important;
        visibility:visible !important;
    }
}


/* GDPS v2.4 — featured image hero banner on event pages */
.gdps-event-page{
    max-width:none !important;
    padding-top:clamp(32px,4vw,65px) !important;
}
.gdps-event-hero-banner{
    position:relative;
    width:100%;
    min-height:min(72vh,760px);
    margin:0 0 clamp(60px,8vw,110px);
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    background:#e9e9e6;
    isolation:isolate;
}
.gdps-event-hero-banner.has-image{
    background-image:var(--gdps-hero-image);
    background-size:cover;
    background-position:center center;
}
.gdps-event-hero-overlay{
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.72) 0%,
            rgba(0,0,0,.38) 35%,
            rgba(0,0,0,.08) 70%,
            rgba(0,0,0,.04) 100%
        );
}
.gdps-event-hero-content{
    position:relative;
    z-index:1;
    width:100%;
    box-sizing:border-box;
    padding:clamp(30px,5vw,80px);
    color:#fff;
}
.gdps-event-hero-content .gdps-event-back{
    color:#fff;
    margin-bottom:28px;
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.65);
    padding-bottom:3px;
}
.gdps-event-hero-content .gdps-event-back:hover{
    border-color:#fff;
}
.gdps-event-hero-content .gdps-gallery-eyebrow{
    color:rgba(255,255,255,.82);
    margin-bottom:18px;
}
.gdps-event-hero-content .gdps-gallery-eyebrow span{
    color:rgba(255,255,255,.55);
}
.gdps-event-hero-content h1{
    max-width:1100px;
    margin:0;
    font-size:clamp(52px,8vw,122px);
    line-height:.88;
    letter-spacing:-.065em;
    font-weight:500;
    color:#fff;
}
.gdps-event-hero-content .gdps-event-count{
    margin-top:24px;
    border-color:rgba(255,255,255,.5);
    color:#fff;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
}
.gdps-event-page .gdps-photo-masonry{
    max-width:1450px;
    margin:0 auto;
    padding:0 clamp(22px,5vw,78px);
    box-sizing:border-box;
}
@media(max-width:700px){
    .gdps-event-page{
        padding-left:0 !important;
        padding-right:0 !important;
    }
    .gdps-event-hero-banner{
        min-height:72vh;
        margin-bottom:55px;
    }
    .gdps-event-hero-content{
        padding:28px 20px 35px;
    }
    .gdps-event-hero-content h1{
        font-size:clamp(48px,14vw,78px);
    }
    .gdps-event-page .gdps-photo-masonry{
        padding:0 18px;
    }
}


/* ============================================================
   GDPS v2.5 — Full-width magazine / portfolio event gallery
   ============================================================ */

/* The event content breaks out of the theme's centered container. */
body.single-gdps_gallery .gdps-event-page{
    width:100vw !important;
    max-width:none !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    padding:0 !important;
    box-sizing:border-box !important;
}

/* Full browser-width featured hero. */
body.single-gdps_gallery .gdps-event-hero-banner{
    width:100vw !important;
    max-width:none !important;
    min-height:min(82vh,900px) !important;
    margin:0 !important;
    border-radius:0 !important;
    background-size:cover !important;
    background-position:center center !important;
}

/* Editorial hero content remains aligned to a readable grid. */
body.single-gdps_gallery .gdps-event-hero-content{
    max-width:1550px;
    width:100%;
    margin:0 auto;
    padding:clamp(45px,6vw,95px) clamp(24px,5vw,82px) !important;
    box-sizing:border-box;
}

/* Magazine photo section */
body.single-gdps_gallery .gdps-photo-masonry{
    width:100% !important;
    max-width:1550px !important;
    margin:0 auto !important;
    padding:clamp(65px,9vw,135px) clamp(24px,5vw,82px) !important;
    box-sizing:border-box !important;

    columns:3 300px !important;
    column-gap:clamp(14px,2vw,28px) !important;
}

/* Individual portfolio image */
body.single-gdps_gallery .gdps-photo{
    width:100% !important;
    margin:0 0 clamp(14px,2vw,28px) !important;
    border-radius:0 !important;
    overflow:hidden !important;
    break-inside:avoid !important;
    background:#eee !important;
}

body.single-gdps_gallery .gdps-photo img{
    width:100% !important;
    height:auto !important;
    display:block !important;
    object-fit:cover !important;
    transform:scale(1) !important;
    transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease !important;
}

body.single-gdps_gallery .gdps-photo:hover img{
    transform:scale(1.035) !important;
}

/* Portfolio-style hover label */
body.single-gdps_gallery .gdps-photo-view{
    left:20px !important;
    bottom:20px !important;
    padding:10px 14px !important;
    background:rgba(255,255,255,.94) !important;
    color:#111 !important;
    border-radius:999px !important;
    opacity:0 !important;
    transform:translateY(10px) !important;
    transition:opacity .3s ease,transform .35s ease !important;
}

body.single-gdps_gallery .gdps-photo:hover .gdps-photo-view{
    opacity:1 !important;
    transform:none !important;
}

/* On larger screens make the masonry feel more editorial by allowing
   image columns to have natural different heights. */
@media(min-width:1200px){
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:3 !important;
    }
}

@media(min-width:1700px){
    body.single-gdps_gallery .gdps-photo-masonry{
        max-width:1700px !important;
        columns:4 !important;
    }
}

/* Tablet */
@media(max-width:900px){
    body.single-gdps_gallery .gdps-event-hero-banner{
        min-height:70vh !important;
    }
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:2 !important;
    }
}

/* Mobile */
@media(max-width:600px){
    body.single-gdps_gallery .gdps-event-hero-banner{
        min-height:70vh !important;
    }
    body.single-gdps_gallery .gdps-event-hero-content{
        padding:28px 20px 38px !important;
    }
    body.single-gdps_gallery .gdps-event-hero-content h1{
        font-size:clamp(48px,14vw,78px) !important;
    }
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:1 !important;
        padding:55px 18px 70px !important;
    }
    body.single-gdps_gallery .gdps-photo{
        margin-bottom:18px !important;
    }
}


/* ============================================================
   GDPS v2.6 — Magazine masonry + hero typography
   ============================================================ */

/* Hero banner */
body.single-gdps_gallery .gdps-event-hero-banner{
    min-height:clamp(420px,58vh,720px) !important;
    background-size:cover !important;
    background-position:center center !important;
}
body.single-gdps_gallery .gdps-event-hero-content h1{
    font-family:"Shadows Into Light",sans-serif !important;
    font-size:50px !important;
    font-weight:400 !important;
    line-height:1.05 !important;
    letter-spacing:0 !important;
    color:#fff !important;
    max-width:1100px !important;
}
body.single-gdps_gallery .gdps-event-hero-content .gdps-gallery-eyebrow{
    font-size:12px !important;
    letter-spacing:.12em !important;
}

/* True editorial masonry: CSS columns preserve each image's natural ratio. */
body.single-gdps_gallery .gdps-photo-masonry{
    display:block !important;
    columns:3 !important;
    column-width:auto !important;
    column-gap:24px !important;
    max-width:1500px !important;
    padding:clamp(75px,9vw,135px) 55px 110px !important;
}
body.single-gdps_gallery .gdps-photo{
    display:block !important;
    width:100% !important;
    height:auto !important;
    margin:0 0 24px !important;
    padding:0 !important;
    border:0 !important;
    break-inside:avoid !important;
    -webkit-column-break-inside:avoid !important;
    overflow:hidden !important;
    background:#eee !important;
}
body.single-gdps_gallery .gdps-photo img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:initial !important;
    transform:none !important;
}
body.single-gdps_gallery .gdps-photo:hover img{
    transform:scale(1.025) !important;
    transition:transform .7s cubic-bezier(.2,.7,.2,1) !important;
}

/* More portfolio-like spacing and hover treatment */
body.single-gdps_gallery .gdps-photo-view{
    left:18px !important;
    bottom:18px !important;
    font-size:10px !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    padding:10px 14px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.94) !important;
    color:#111 !important;
}

/* Desktop: create editorial stagger through column flow rather than equal cards. */
@media(min-width:1200px){
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:3 !important;
    }
}

/* Tablet */
@media(max-width:900px){
    body.single-gdps_gallery .gdps-event-hero-banner{
        min-height:500px !important;
    }
    body.single-gdps_gallery .gdps-event-hero-content h1{
        font-size:50px !important;
    }
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:2 !important;
        column-gap:18px !important;
        padding:65px 28px 85px !important;
    }
    body.single-gdps_gallery .gdps-photo{
        margin-bottom:18px !important;
    }
}

/* Mobile */
@media(max-width:600px){
    body.single-gdps_gallery .gdps-event-hero-banner{
        min-height:520px !important;
    }
    body.single-gdps_gallery .gdps-event-hero-content{
        padding:28px 20px 38px !important;
    }
    body.single-gdps_gallery .gdps-event-hero-content h1{
        font-size:50px !important;
        line-height:1.02 !important;
    }
    body.single-gdps_gallery .gdps-photo-masonry{
        columns:1 !important;
        padding:55px 18px 70px !important;
    }
}


/* GDPS v2.7 — Minimal main gallery header + editorial year navigation */

/* Remove School Gallery eyebrow, title and description from the main gallery. */
body .gdps-gallery-archive .gdps-gallery-hero{
    display:none !important;
}

/* Year selector becomes the main gallery's compact navigation. */
body .gdps-gallery-archive .gdps-gallery-filter{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:space-between !important;
    gap:30px !important;
    margin:0 0 clamp(55px,7vw,100px) !important;
    padding:0 0 17px !important;
    border:0 !important;
    border-bottom:1px solid #dedede !important;
    border-radius:0 !important;
}
body .gdps-gallery-archive .gdps-filter-label{
    display:block !important;
    color:#888 !important;
    font-size:10px !important;
    line-height:1 !important;
    font-weight:600 !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
}
body .gdps-gallery-archive .gdps-filter-list{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:wrap !important;
    gap:28px !important;
}
body .gdps-gallery-archive .gdps-filter{
    position:relative !important;
    appearance:none !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#777 !important;
    padding:5px 0 9px !important;
    margin:0 !important;
    font-family:inherit !important;
    font-size:13px !important;
    line-height:1.2 !important;
    font-weight:500 !important;
    letter-spacing:.02em !important;
    cursor:pointer !important;
    transform:none !important;
    transition:color .25s ease !important;
}
body .gdps-gallery-archive .gdps-filter:hover{
    color:#111 !important;
    border:0 !important;
    transform:none !important;
}
body .gdps-gallery-archive .gdps-filter::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:2px !important;
    background:#111 !important;
    transform:scaleX(0) !important;
    transform-origin:center !important;
    transition:transform .28s ease !important;
}
body .gdps-gallery-archive .gdps-filter.is-active{
    background:transparent !important;
    color:#111 !important;
}
body .gdps-gallery-archive .gdps-filter.is-active::after{
    transform:scaleX(1) !important;
}
body .gdps-gallery-archive .gdps-editorial-grid{
    margin-top:0 !important;
}

@media(max-width:700px){
    body .gdps-gallery-archive .gdps-gallery-filter{
        align-items:flex-start !important;
        flex-direction:column !important;
        gap:17px !important;
        margin-bottom:45px !important;
    }
    body .gdps-gallery-archive .gdps-filter-list{
        width:100% !important;
        justify-content:flex-start !important;
        gap:22px !important;
        flex-wrap:nowrap !important;
        overflow-x:auto !important;
        scrollbar-width:none !important;
        padding-bottom:2px !important;
    }
    body .gdps-gallery-archive .gdps-filter-list::-webkit-scrollbar{
        display:none !important;
    }
    body .gdps-gallery-archive .gdps-filter{
        flex:0 0 auto !important;
    }
}


/* ============================================================
   GDPS v2.8 — Main gallery true 3-column image grid
   ============================================================ */

body .gdps-gallery-archive .gdps-editorial-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:clamp(28px,3.2vw,58px) clamp(22px,2.8vw,48px) !important;
    width:100% !important;
    max-width:1500px !important;
    margin:0 auto !important;
    align-items:start !important;
}

body .gdps-gallery-archive .gdps-editorial-card{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    break-inside:auto !important;
    column-break-inside:auto !important;
}

body .gdps-gallery-archive .gdps-card-media{
    width:100% !important;
    margin:0 !important;
    overflow:hidden !important;
}

body .gdps-gallery-archive .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:cover !important;
}

/* Keep the year/title overlay inside each image. */
body .gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
}

/* Desktop */
@media(min-width:1101px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

/* Tablet */
@media(max-width:1100px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:28px 22px !important;
    }
}

/* Mobile */
@media(max-width:650px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:1fr !important;
        gap:30px !important;
    }
}

/* Remove old column-based masonry behavior if any previous rule remains. */
body .gdps-gallery-archive .gdps-editorial-grid{
    columns:auto !important;
    column-count:auto !important;
    column-width:auto !important;
}


/* ============================================================
   GDPS v2.9 — Gallery image sizing / full image visibility
   ============================================================ */

/* Keep the main gallery as a stable 3-column grid. */
body .gdps-gallery-archive .gdps-editorial-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    align-items:start !important;
}

/* Give every event image a controlled visual frame so portrait
   source images cannot create extremely long columns. */
body .gdps-gallery-archive .gdps-card-media{
    position:relative !important;
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    height:auto !important;
    overflow:hidden !important;
    background:#f3f3f1 !important;
}

/* Show the complete source image without stretching or cropping. */
body .gdps-gallery-archive .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
    background:#f3f3f1 !important;
    transform:none !important;
}

/* Keep the hover overlay over the complete image frame. */
body .gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
}

/* Prevent old card rules from forcing image height. */
body .gdps-gallery-archive .gdps-editorial-card,
body .gdps-gallery-archive .gdps-card-media,
body .gdps-gallery-archive .gdps-card-media img{
    min-height:0 !important;
}

/* Tablet */
@media(max-width:1100px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    body .gdps-gallery-archive .gdps-card-media{
        aspect-ratio:4 / 3 !important;
    }
}

/* Mobile */
@media(max-width:650px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:1fr !important;
    }
    body .gdps-gallery-archive .gdps-card-media{
        aspect-ratio:4 / 3 !important;
    }
}

/* v2.9.1 — no image background color */
body .gdps-gallery-archive .gdps-card-media,
body .gdps-gallery-archive .gdps-card-media > img{
    background:transparent !important;
}


/* ============================================================
   GDPS v3.0 — Main Gallery true staggered masonry
   Inspired by editorial / packed masonry layouts
   ============================================================ */

/* Main gallery masonry container */
body .gdps-gallery-archive .gdps-editorial-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-auto-rows:10px !important;
    grid-auto-flow:row dense !important;
    align-items:stretch !important;
    gap:18px !important;
    width:100% !important;
    max-width:1500px !important;
    margin:0 auto !important;
}

/* Every card participates in the masonry packing system. */
body .gdps-gallery-archive .gdps-editorial-card{
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    height:auto !important;
}

/* Natural image frame — no forced 4:3 ratio. */
body .gdps-gallery-archive .gdps-editorial-card .gdps-card-media{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    background:transparent !important;
}

/* Images keep their original proportions. */
body .gdps-gallery-archive .gdps-editorial-card .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:initial !important;
    object-position:center !important;
    background:transparent !important;
    transform:none !important;
    transition:transform .65s cubic-bezier(.2,.7,.2,1) !important;
}

body .gdps-gallery-archive .gdps-editorial-card:hover .gdps-card-media > img{
    transform:scale(1.035) !important;
}

/* Let JS calculate each card's row span from its actual image height. */
body .gdps-gallery-archive .gdps-editorial-card{
    grid-row-end:auto;
}

/* Overlay remains inside the image. */
body .gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
}

/* Remove any old fixed-height/card image rules. */
body .gdps-gallery-archive .gdps-editorial-card,
body .gdps-gallery-archive .gdps-card-media,
body .gdps-gallery-archive .gdps-card-media > img{
    min-height:0 !important;
}

/* Tablet */
@media(max-width:1000px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:16px !important;
    }
}

/* Mobile */
@media(max-width:650px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:1fr !important;
        grid-auto-rows:10px !important;
        gap:14px !important;
    }
}


/* ============================================================
   GDPS v3.1 — Stable packed masonry
   ============================================================ */

/* Main gallery has no intro hero; the year navigation is the header. */
body .gdps-gallery-archive .gdps-gallery-hero{
    display:none !important;
}

/* Stable masonry using CSS columns. No row-span calculations. */
body .gdps-gallery-archive .gdps-editorial-grid{
    display:block !important;
    width:100% !important;
    max-width:1500px !important;
    margin:0 auto !important;
    padding:0 !important;
    columns:3 !important;
    column-count:3 !important;
    column-width:auto !important;
    column-gap:24px !important;
    column-fill:balance !important;
}

/* Each event is a masonry brick. */
body .gdps-gallery-archive .gdps-editorial-card{
    display:inline-block !important;
    position:relative !important;
    vertical-align:top !important;
    width:100% !important;
    height:auto !important;
    margin:0 0 24px !important;
    padding:0 !important;
    break-inside:avoid !important;
    -webkit-column-break-inside:avoid !important;
    page-break-inside:avoid !important;
}

/* Natural image proportions. */
body .gdps-gallery-archive .gdps-editorial-card .gdps-card-media{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    background:transparent !important;
}

body .gdps-gallery-archive .gdps-editorial-card .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:initial !important;
    background:transparent !important;
    transform:none !important;
    transition:transform .7s cubic-bezier(.2,.7,.2,1) !important;
}

body .gdps-gallery-archive .gdps-editorial-card:hover .gdps-card-media > img{
    transform:scale(1.035) !important;
}

/* Overlay stays over the image only. */
body .gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
}

/* Keep the modern year navigation. */
body .gdps-gallery-archive .gdps-gallery-filter{
    margin-bottom:clamp(45px,6vw,85px) !important;
}

/* Tablet */
@media(max-width:1000px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:2 !important;
        column-count:2 !important;
        column-gap:18px !important;
    }
}

/* Mobile */
@media(max-width:650px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:1 !important;
        column-count:1 !important;
    }
    body .gdps-gallery-archive .gdps-editorial-card{
        margin-bottom:18px !important;
    }
}

/* ============================================================
   GDPS v3.2 — 4-column main gallery masonry
   ============================================================ */

body .gdps-gallery-archive .gdps-editorial-grid{
    columns:4 !important;
    column-count:4 !important;
    column-width:auto !important;
    column-gap:20px !important;
}

body .gdps-gallery-archive .gdps-editorial-card{
    width:100% !important;
    margin:0 0 20px !important;
    break-inside:avoid !important;
    -webkit-column-break-inside:avoid !important;
}

@media(max-width:1200px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:3 !important;
        column-count:3 !important;
        column-gap:18px !important;
    }
}

@media(max-width:900px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:2 !important;
        column-count:2 !important;
        column-gap:16px !important;
    }
}

@media(max-width:600px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:1 !important;
        column-count:1 !important;
    }
}

/* ============================================================
   GDPS v3.3 — Compact masonry image frames
   ============================================================ */

body .gdps-gallery-archive .gdps-editorial-grid{
    columns:4 !important;
    column-count:4 !important;
    column-gap:20px !important;
}

body .gdps-gallery-archive .gdps-editorial-card{
    display:inline-block !important;
    width:100% !important;
    height:auto !important;
    margin:0 0 20px !important;
    break-inside:avoid !important;
    -webkit-column-break-inside:avoid !important;
}

body .gdps-gallery-archive .gdps-card-media{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
    min-height:0 !important;
    max-height:420px !important;
    overflow:hidden !important;
    background:transparent !important;
}

body .gdps-gallery-archive .gdps-card-media > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center !important;
    background:transparent !important;
    transform:none !important;
}

body .gdps-gallery-archive .gdps-editorial-card:hover .gdps-card-media > img{
    transform:scale(1.035) !important;
}

/* Tablet */
@media(max-width:1200px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:3 !important;
        column-count:3 !important;
        column-gap:18px !important;
    }
}

/* Small tablet */
@media(max-width:900px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:2 !important;
        column-count:2 !important;
        column-gap:16px !important;
    }
}

/* Mobile */
@media(max-width:600px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        columns:1 !important;
        column-count:1 !important;
    }
    body .gdps-gallery-archive .gdps-card-media{
        aspect-ratio:4 / 3 !important;
        max-height:none !important;
    }
}

/* ============================================================
   GDPS v4.0 — Fixed 4-column gallery grid
   No masonry. Equal image frames. Reliable image rendering.
   ============================================================ */

/* Normal grid — explicitly remove all masonry/column behavior. */
body .gdps-gallery-archive .gdps-editorial-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    grid-auto-rows:auto !important;
    columns:auto !important;
    column-count:auto !important;
    column-width:auto !important;
    column-gap:20px !important;
    row-gap:20px !important;
    width:100% !important;
    max-width:1500px !important;
    margin:0 auto !important;
}

/* Equal-size event cards. */
body .gdps-gallery-archive .gdps-editorial-card{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    break-inside:auto !important;
    -webkit-column-break-inside:auto !important;
}

/* Identical image frame for every card. */
body .gdps-gallery-archive .gdps-card-media{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
    background:transparent !important;
}

/* Reliable normal image rendering — no absolute positioning. */
body .gdps-gallery-archive .gdps-card-media > img{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center center !important;
    background:transparent !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    transition:transform .55s cubic-bezier(.2,.7,.2,1) !important;
}

body .gdps-gallery-archive .gdps-editorial-card:hover .gdps-card-media > img{
    transform:scale(1.035) !important;
}

/* Hover content remains above the image. */
body .gdps-gallery-archive .gdps-card-hover{
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
}

/* No image placeholder/background. */
body .gdps-gallery-archive .gdps-card-media,
body .gdps-gallery-archive .gdps-card-media > img{
    background-color:transparent !important;
}

/* Desktop: 4 columns */
@media(min-width:1201px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    }
}

/* Laptop/tablet: 3 columns */
@media(max-width:1200px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        column-gap:18px !important;
        row-gap:18px !important;
    }
}

/* Tablet: 2 columns */
@media(max-width:900px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        column-gap:16px !important;
        row-gap:16px !important;
    }
}

/* Mobile: 1 column */
@media(max-width:600px){
    body .gdps-gallery-archive .gdps-editorial-grid{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }
}

/* ============================================================
   GDPS v4.1 — HARD RESET: NO MASONRY ON MAIN GALLERY
   ============================================================ */

/* Force the main gallery to a regular row-based grid. */
body .gdps-gallery-archive .gdps-editorial-grid,
body .gdps-gallery-archive .gdps-gallery-grid,
body .gdps-gallery-archive .gdps-events-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-template-rows:none !important;
    grid-auto-flow:row !important;
    grid-auto-rows:auto !important;
    grid-auto-columns:auto !important;

    columns:initial !important;
    column-count:initial !important;
    column-width:initial !important;
    column-fill:initial !important;
    column-gap:20px !important;
    row-gap:20px !important;

    width:100% !important;
    height:auto !important;
    max-width:1500px !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Every event is a normal grid item. */
body .gdps-gallery-archive .gdps-editorial-grid > *,
body .gdps-gallery-archive .gdps-gallery-grid > *,
body .gdps-gallery-archive .gdps-events-grid > *{
    display:block !important;
    position:relative !important;
    grid-column:auto !important;
    grid-row:auto !important;
    grid-row-start:auto !important;
    grid-row-end:auto !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    break-inside:auto !important;
    -webkit-column-break-inside:auto !important;
    page-break-inside:auto !important;
}

/* Equal image frame. */
body .gdps-gallery-archive .gdps-editorial-grid .gdps-card-media,
body .gdps-gallery-archive .gdps-gallery-grid .gdps-card-media,
body .gdps-gallery-archive .gdps-events-grid .gdps-card-media{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
}

/* Normal-flow images: visible, same size, cover the frame. */
body .gdps-gallery-archive .gdps-editorial-grid .gdps-card-media > img,
body .gdps-gallery-archive .gdps-gallery-grid .gdps-card-media > img,
body .gdps-gallery-archive .gdps-events-grid .gdps-card-media > img{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center !important;
    opacity:1 !important;
    visibility:visible !important;
    background:transparent !important;
}

/* Responsive normal grid. */
@media(max-width:1200px){
    body .gdps-gallery-archive .gdps-editorial-grid,
    body .gdps-gallery-archive .gdps-gallery-grid,
    body .gdps-gallery-archive .gdps-events-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:900px){
    body .gdps-gallery-archive .gdps-editorial-grid,
    body .gdps-gallery-archive .gdps-gallery-grid,
    body .gdps-gallery-archive .gdps-events-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        column-gap:16px !important;
        row-gap:16px !important;
    }
}

@media(max-width:600px){
    body .gdps-gallery-archive .gdps-editorial-grid,
    body .gdps-gallery-archive .gdps-gallery-grid,
    body .gdps-gallery-archive .gdps-events-grid{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }
}

/* ============================================================
   GDPS v4.2 — EVENT / FUNCTION IMAGES: FIXED 4-COLUMN GRID
   No masonry. All function images have identical dimensions.
   ============================================================ */

body.single-gdps_gallery .gdps-photo-masonry{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    grid-auto-rows:auto !important;
    columns:initial !important;
    column-count:initial !important;
    column-width:initial !important;
    column-gap:20px !important;
    row-gap:20px !important;
    width:100% !important;
    max-width:1500px !important;
    margin:0 auto !important;
    padding:clamp(55px,7vw,100px) 40px 100px !important;
    box-sizing:border-box !important;
}

body.single-gdps_gallery .gdps-photo{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    break-inside:auto !important;
    -webkit-column-break-inside:auto !important;
    overflow:hidden !important;
    background:transparent !important;
    border-radius:0 !important;
}

body.single-gdps_gallery .gdps-photo img{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:100% !important;
    aspect-ratio:4 / 3 !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center center !important;
    background:transparent !important;
    transform:none !important;
    transition:transform .6s cubic-bezier(.2,.7,.2,1) !important;
}

body.single-gdps_gallery .gdps-photo:hover img{
    transform:scale(1.035) !important;
}

/* Keep the lightbox/view control above the image. */
body.single-gdps_gallery .gdps-photo-view{
    z-index:10 !important;
}

/* 3 columns on medium screens */
@media(max-width:1200px){
    body.single-gdps_gallery .gdps-photo-masonry{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        column-gap:18px !important;
        row-gap:18px !important;
        padding-left:28px !important;
        padding-right:28px !important;
    }
}

/* 2 columns on tablet */
@media(max-width:900px){
    body.single-gdps_gallery .gdps-photo-masonry{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:16px !important;
        padding:55px 22px 75px !important;
    }
}

/* 1 column on mobile */
@media(max-width:600px){
    body.single-gdps_gallery .gdps-photo-masonry{
        grid-template-columns:1fr !important;
        gap:16px !important;
        padding:45px 18px 65px !important;
    }

    body.single-gdps_gallery .gdps-photo img{
        aspect-ratio:4 / 3 !important;
    }
}
