/* ==========================================================================
   HERO CSS — copied verbatim from the previous gallery.php ("living wall" /
   board-revision file) so the hero#hp-main-content markup below renders
   exactly like it does on index.php / about.php / news.php. Nothing else
   in this file (the V3 heritage photo journal redesign below) was touched.
   ========================================================================== */

    /* BOARD-REQUESTED REVISION: page background forced to solid white
       everywhere except the hero (see .hero#hp-main-content below, which
       keeps its own dark green + company.jpg/video background). */
    body {
        background: #ffffff !important;
    }

    /* ============================================================================
       GSC-TEMPC MASTER HERO SYNC — GALLERY PAGE
       Self-contained, byte-for-byte structural/visual match to the
       `hero#hp-main-content` system on index.php / about.php / news.php:
       same permanent company.jpg fallback -> gsctempc.mp4 video (only
       reveals via loadeddata/canplay, never a hard flash) -> identical
       three-gradient scrim -> identical ledger-line texture ->
       hero-particles -> left-aligned content column (CSS-generated
       institutional eyebrow, giant Fraunces headline with a Playfair
       Display gold/green sheen <em> word, Bodoni Moda tagline, "Est. 1991"
       hairline, .btn-primary/.btn-outline pair, .hp-trust-row chips,
       bottom fade, right-aligned "Scroll" cue) — same breakpoints
       (1100/768/520/landscape) and prefers-reduced-motion handling.
       ============================================================================ */
    body:has(#hp-main-content) { background:#fff; }

    .hero#hp-main-content {
        position: relative;
        overflow: hidden;
        isolation: isolate;
        min-height: max(760px, 100svh);
        height: max(760px, 100svh);
        padding: 148px 30px 90px;
        display: flex;
        align-items: stretch;
        justify-content: flex-start;
        background-color: #071d12;
        background-image: url('../../company.jpg');
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
        color: #fff;
    }

    .hero#hp-main-content .hp-hero-video {
        position: absolute;
        inset: 0;
        z-index: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
        opacity: 0;
        transform: scale(1.025);
        transition: opacity .7s ease, transform 12s cubic-bezier(.22,1,.36,1);
        filter: saturate(.78) contrast(1.02) brightness(.82);
        pointer-events: none;
    }
    .hero#hp-main-content .hp-hero-video.is-visible { opacity: 1; transform: scale(1.045); }
    @media (prefers-reduced-motion: reduce) { .hero#hp-main-content .hp-hero-video { display: none; } }

    .hero#hp-main-content::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: 1;
        pointer-events: none;
        background:
            radial-gradient(ellipse 70% 100% at 70% 46%, rgba(10,42,24,.06) 0%, rgba(4,19,11,.20) 60%, rgba(2,13,8,.56) 100%),
            linear-gradient(90deg, rgba(3,20,11,.72) 0%, rgba(4,24,13,.42) 38%, rgba(3,18,10,.12) 72%, rgba(3,15,9,.28) 100%),
            linear-gradient(180deg, rgba(3,17,10,.58) 0%, rgba(3,17,10,.03) 22%, rgba(3,17,10,.04) 62%, rgba(2,14,8,.78) 100%);
    }

    .hero#hp-main-content .hp-ledger-lines {
        position: absolute;
        inset: 0;
        z-index: 1;
        pointer-events: none;
        opacity: .12;
        -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.12) 70%, transparent);
        mask-image: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.12) 70%, transparent);
        background-image: linear-gradient(to bottom, rgba(239,247,237,.16) 1px, transparent 1px);
        background-size: 100% 92px;
    }

    .hero#hp-main-content .hero-particles { position: absolute; inset: 0; z-index: 1; opacity: .16; pointer-events: none; }
    .hero#hp-main-content .hero-particles .particle { position: absolute; width: 2px; height: 2px; border-radius: 50%; background: rgba(255,255,255,.5); animation: galParticleFloat 8s ease-in-out infinite; }
    .hero#hp-main-content .hero-particles .particle:nth-child(1) { left: 14%; top: 22%; animation-delay: -1s; }
    .hero#hp-main-content .hero-particles .particle:nth-child(2) { left: 32%; top: 64%; animation-delay: -3.5s; }
    .hero#hp-main-content .hero-particles .particle:nth-child(3) { left: 58%; top: 30%; animation-delay: -6s; }
    .hero#hp-main-content .hero-particles .particle:nth-child(4) { left: 74%; top: 70%; animation-delay: -2s; }
    .hero#hp-main-content .hero-particles .particle:nth-child(5) { left: 88%; top: 40%; animation-delay: -4.5s; }
    @keyframes galParticleFloat { 0%, 100% { transform: translate3d(0,0,0); opacity: .15; } 50% { transform: translate3d(0,-18px,0); opacity: .5; } }

    .hero#hp-main-content .hero-grid {
        position: relative;
        z-index: 2;
        max-width: 1500px;
        width: 100%;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
    }
    .hero#hp-main-content .hero-content {
        position: relative;
        z-index: 2;
        width: 100%;
        max-width: 1180px;
        margin: 0;
        padding-top: clamp(38px, 7vh, 82px);
        text-align: left;
    }
    .hero#hp-main-content .hero-content::before {
        content: "GENERAL SANTOS CITY TEACHERS \A & EMPLOYEES MULTI-PURPOSE COOPERATIVE";
        white-space: pre;
        display: block;
        max-width: 760px;
        margin: 0 0 30px;
        color: rgba(245,249,241,.90);
        font-family: 'Poppins', sans-serif;
        font-size: clamp(.63rem, .72vw, .78rem);
        line-height: 1.9;
        font-weight: 500;
        letter-spacing: .30em;
        text-transform: uppercase;
        text-shadow: 0 2px 14px rgba(0,0,0,.35);
        animation: gscLuxuryReveal .95s cubic-bezier(.22,1,.36,1) both;
    }
    .hero#hp-main-content .hero-content::after {
        content: "";
        position: absolute;
        left: 0;
        top: 2px;
        width: 72px;
        height: 1px;
        background: rgba(230,197,106,.82);
        transform-origin: left center;
        animation: gscLuxuryRule .9s cubic-bezier(.22,1,.36,1) .08s both;
    }
    .hero#hp-main-content h1 {
        max-width: none;
        margin: 0;
        padding-bottom: .08em;
        line-height: .95;
        font-family: 'Fraunces', Georgia, serif;
        font-size: clamp(5.2rem, 11.8vw, 12.5rem);
        font-weight: 500;
        letter-spacing: -.045em;
        text-align: left;
        animation: gscLuxuryReveal 1.15s cubic-bezier(.22,1,.36,1) .18s both;
    }
    .hero#hp-main-content h1 em {
        font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
        font-style: normal;
        font-weight: 900;
        letter-spacing: -.055em;
        display: inline-block;
        background: linear-gradient(105deg, #f8fbf1 0%, #e7f5df 34%, #fffef6 58%, #d9eed6 82%, #f7faef 100%);
        background-size: 220% 100%;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
        text-shadow: 0 10px 40px rgba(0,0,0,.12);
        animation: gscTitleSheen 8s ease-in-out infinite;
    }
    .hero#hp-main-content .hero-content > p {
        max-width: 760px;
        margin: 42px 0 0;
        color: rgba(249,251,245,.93);
        font-family: 'Bodoni Moda', Georgia, serif;
        font-size: clamp(1.12rem, 1.65vw, 1.55rem);
        line-height: 1.62;
        font-weight: 400;
        letter-spacing: .005em;
        text-align: left;
        text-shadow: 0 3px 18px rgba(0,0,0,.32);
        animation: gscLuxuryReveal 1s cubic-bezier(.22,1,.36,1) .48s both;
    }
    .hero#hp-main-content .hp-hero-est {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 13px;
        margin: 26px 0 0;
        animation: gscLuxuryReveal 1s cubic-bezier(.22,1,.36,1) .58s both;
    }
    .hero#hp-main-content .hp-hero-est-line { width: 42px; height: 1px; background: rgba(230,197,106,.78); flex-shrink: 0; }
    .hero#hp-main-content .hp-hero-est span:last-child { color: rgba(232,218,166,.94); font-size: .72rem; letter-spacing: .22em; font-weight: 600; text-transform: uppercase; }
    .hero#hp-main-content .hero-buttons {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap: 34px;
        margin-top: 34px;
        animation: gscLuxuryReveal 1s cubic-bezier(.22,1,.36,1) .68s both;
    }
    .hero#hp-main-content .hero-buttons .btn-primary {
        display: inline-flex;
        align-items: center;
        min-height: 68px;
        padding: 0 34px;
        border-radius: 5px;
        background: #f5f6e9;
        color: #143b25;
        border: 1px solid rgba(255,255,255,.55);
        box-shadow: 0 16px 40px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.10) inset;
        font-family: 'Poppins', sans-serif;
        font-size: .86rem;
        font-weight: 700;
        letter-spacing: .13em;
        text-transform: uppercase;
        text-decoration: none;
        transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, background .35s ease;
    }
    .hero#hp-main-content .hero-buttons .btn-primary:hover { transform: translateY(-4px); background: #fffef5; box-shadow: 0 22px 46px rgba(0,0,0,.28); }
    .hero#hp-main-content .hero-buttons .btn-primary i { color: #2e7d32; margin-right: 8px; }
    .hero#hp-main-content .hero-buttons .btn-outline {
        display: inline-flex;
        align-items: center;
        width: auto;
        min-height: auto;
        padding: 8px 0 6px;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: rgba(239,226,179,.96);
        box-shadow: none;
        font-family: 'Poppins', sans-serif;
        font-size: .9rem;
        font-weight: 500;
        letter-spacing: .04em;
        position: relative;
        text-decoration: none;
        transition: transform .35s cubic-bezier(.22,1,.36,1), color .2s ease;
    }
    .hero#hp-main-content .hero-buttons .btn-outline::after {
        content: '';
        position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
        background: rgba(230,197,106,.78);
        transform: scaleX(.45);
        transform-origin: left;
        transition: transform .35s cubic-bezier(.22,1,.36,1);
    }
    .hero#hp-main-content .hero-buttons .btn-outline:hover { color: #fff8df; transform: translateY(-2px); }
    .hero#hp-main-content .hero-buttons .btn-outline:hover::after { transform: scaleX(1); }
    .hero#hp-main-content .hero-buttons .btn-outline i { color: rgba(230,197,106,.92); margin-right: 7px; }
    .hero#hp-main-content .hp-trust-row {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 22px;
        margin-top: 30px;
        opacity: .82;
        animation: gscLuxuryReveal 1s cubic-bezier(.22,1,.36,1) .78s both;
    }
    .hero#hp-main-content .hp-trust-chip {
        display: inline-flex;
        align-items: center;
        padding: 0;
        border: 0;
        background: transparent;
        color: rgba(244,247,238,.72);
        font-family: 'Poppins', sans-serif;
        font-size: .67rem;
        font-weight: 600;
        letter-spacing: .12em;
        text-transform: uppercase;
    }
    .hero#hp-main-content .hp-trust-chip i { color: rgba(230,197,106,.88); margin-right: 7px; }
    .hero#hp-main-content .hp-hero-bottom-fade {
        position: absolute; left: 0; right: 0; bottom: 0;
        height: 180px;
        z-index: 3;
        pointer-events: none;
        background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(7,29,18,.08) 38%, #fff 100%);
    }
    .hero#hp-main-content .hp-hero-scroll-cue {
        position: absolute;
        left: auto;
        right: 8%;
        bottom: 30px;
        z-index: 3;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        color: rgba(246,249,241,.74);
        text-decoration: none;
        animation: gscScrollReveal .9s cubic-bezier(.22,1,.36,1) 1.25s both, gscScrollNudge 2.6s ease-in-out 2s infinite;
        transition: color .2s ease;
    }
    .hero#hp-main-content .hp-hero-scroll-cue:hover { color: rgba(255,255,255,.95); }
    .hero#hp-main-content .hp-hero-scroll-cue-line { width: 1px; height: 46px; background: linear-gradient(to bottom, rgba(230,197,106,0), rgba(230,197,106,.88)); }
    .hero#hp-main-content .hp-hero-scroll-label { font-family: 'Poppins', sans-serif; font-size: .58rem; letter-spacing: .30em; text-transform: uppercase; font-weight: 600; }

    @keyframes gscLuxuryReveal { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes gscLuxuryRule { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
    @keyframes gscTitleSheen { 0%, 22% { background-position: 180% 0; } 48%, 62% { background-position: 0 0; } 100% { background-position: -180% 0; } }
    @keyframes gscScrollReveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes gscScrollNudge { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(7px); } }

    @media (max-width: 1100px) {
        .hero#hp-main-content { padding-left: 24px; padding-right: 24px; }
        .hero#hp-main-content h1 { font-size: clamp(4.8rem, 12vw, 9rem); }
        .hero#hp-main-content .hero-content > p { max-width: 680px; }
    }
    @media (max-width: 768px) {
        .hero#hp-main-content { min-height: 100svh; height: auto; padding: 128px 20px 110px; align-items: center; }
        .hero#hp-main-content .hero-grid { max-width: 100%; }
        .hero#hp-main-content .hero-content { max-width: 100%; padding-top: 18px; }
        .hero#hp-main-content .hero-content::before { margin-bottom: 24px; font-size: .58rem; letter-spacing: .20em; line-height: 1.8; }
        .hero#hp-main-content h1 { font-size: clamp(4rem, 18vw, 7rem); }
        .hero#hp-main-content .hero-content > p { margin-top: 30px; max-width: 600px; font-size: 1rem; line-height: 1.6; }
        .hero#hp-main-content .hp-hero-est { margin-top: 20px; gap: 9px; }
        .hero#hp-main-content .hp-hero-est-line { width: 26px; }
        .hero#hp-main-content .hp-hero-est span:last-child { font-size: .62rem; letter-spacing: .13em; }
        .hero#hp-main-content .hero-buttons { gap: 18px; flex-wrap: wrap; margin-top: 26px; }
        .hero#hp-main-content .hero-buttons .btn-primary { min-height: 58px; padding: 0 22px; font-size: .76rem; }
        .hero#hp-main-content .hero-buttons .btn-outline { font-size: .82rem; }
        .hero#hp-main-content .hp-trust-row { gap: 12px 18px; margin-top: 22px; }
        .hero#hp-main-content .hp-trust-chip { font-size: .58rem; }
        .hero#hp-main-content .hp-hero-scroll-cue { right: 22px; bottom: 26px; }
    }
    @media (max-width: 520px) {
        .hero#hp-main-content { padding-left: 18px; padding-right: 18px; }
        .hero#hp-main-content .hero-content::before { max-width: 320px; font-size: .54rem; letter-spacing: .16em; }
        .hero#hp-main-content h1 { font-size: clamp(3.25rem, 19.5vw, 5.7rem); }
        .hero#hp-main-content .hero-content > p { max-width: 340px; font-size: .98rem; }
        .hero#hp-main-content .hero-buttons { align-items: flex-start; flex-direction: column; }
        .hero#hp-main-content .hp-trust-row { display: none; }
        .hero#hp-main-content .hp-hero-scroll-cue { display: flex; }
    }
    @media (orientation: landscape) and (max-height: 560px) {
        .hero#hp-main-content { min-height: 720px; height: auto; padding-top: 116px; }
        .hero#hp-main-content h1 { font-size: clamp(3.8rem, 12vw, 7rem); }
        .hero#hp-main-content .hero-content > p { margin-top: 22px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .hero#hp-main-content .hp-hero-video { transform: none; }
        .hero#hp-main-content .hero-content::before,
        .hero#hp-main-content .hero-content::after,
        .hero#hp-main-content h1,
        .hero#hp-main-content h1 em,
        .hero#hp-main-content .hero-content > p,
        .hero#hp-main-content .hp-hero-est,
        .hero#hp-main-content .hero-buttons,
        .hero#hp-main-content .hp-trust-row,
        .hero#hp-main-content .hp-hero-scroll-cue {
            animation: none !important;
            opacity: 1 !important;
        }
    }
/* ==========================================================================
   END HERO CSS — everything below this line is unchanged from the V3 file.
   ========================================================================== */

/* ==========================================================================
   GSC-TEMPC GALLERY — HERITAGE PHOTO JOURNAL / V3
   --------------------------------------------------------------------------
   The hero above is intentionally left alone. Everything in this stylesheet
   is scoped to .gal-archive / .gal-stats / .gal-lightbox so this redesign
   cannot leak into the site's header or hero.

   DESIGN PRINCIPLES
   - Full-bleed editorial gallery rhythm
   - Large photography, never tiny "card gallery" tiles
   - Uniform All Photographs grid: every image uses the same aspect ratio
   - Categories behave like an archival index, not Bootstrap pills
   - Featured collection is a true visual centerpiece
   - Antique gold is a detail, not a loud accent
   - Pure white paper + logo green (#30AA28) ink + restrained gold
   ========================================================================== */

:root{
    --ga-forest:#30AA28;
    --ga-forest-2:#30AA28;
    --ga-forest-3:#2a9622;
    --ga-deep:#30AA28;
    --ga-ivory:#ffffff;
    --ga-paper:#ffffff;
    --ga-paper-2:#ffffff;
    --ga-ink:#30AA28;
    --ga-muted:#707a73;
    --ga-gold:#caa45a;
    --ga-gold-light:#e0c98f;
    --ga-line:rgba(48,170,40,.16);
    --ga-line-soft:rgba(48,170,40,.09);
    --ga-white:#ffffff;
    --ga-ease:cubic-bezier(.22,1,.36,1);
    --ga-shadow:0 28px 80px rgba(48,170,40,.14);
    --ga-shadow-soft:0 14px 40px rgba(48,170,40,.09);
    --ga-max:1480px;
}

html{scroll-behavior:smooth;}

@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
}

/* --------------------------------------------------------------------------
   Stats strip
   -------------------------------------------------------------------------- */
.gal-stats{
    position:relative;
    z-index:5;
    width:100%;
    margin:0;
    background:var(--ga-paper);
    border-top:1px solid rgba(48,170,40,.08);
    border-bottom:1px solid var(--ga-line-soft);
}
.gal-stats__inner{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto;
    min-height:96px;
    padding:0 clamp(24px,4vw,64px);
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.gal-stats__item{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    padding:18px 26px;
    border-right:1px solid var(--ga-line-soft);
}
.gal-stats__item:first-child{border-left:1px solid var(--ga-line-soft);}
.gal-stats__number{
    display:block;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(1.8rem,2.7vw,2.65rem);
    line-height:1;
    letter-spacing:-.05em;
}
.gal-stats__label{
    display:block;
    color:var(--ga-muted);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.54rem;
    line-height:1.35;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.gal-stats__item:last-child .gal-stats__number{
    font-family:'Poppins',Arial,sans-serif;
    font-size:1rem;
}
.gal-stats__item:last-child .gal-stats__number i{color:#c96e6e!important;}

/* --------------------------------------------------------------------------
   Master archive surface
   -------------------------------------------------------------------------- */
.gal-archive{
    position:relative;
    width:100%;
    margin:0;
    padding:0;
    background:#ffffff;
    color:var(--ga-ink);
    overflow:clip;
    isolation:isolate;
}
.gal-archive *,
.gal-archive *::before,
.gal-archive *::after{box-sizing:border-box;}
.gal-archive button,
.gal-archive input{font:inherit;}

/* Paper grain removed so the surface stays pure white. */
.gal-archive::before{
    content:"";
    display:none;
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    opacity:.17;
    background-image:
        radial-gradient(rgba(48,170,40,.13) .55px,transparent .65px),
        radial-gradient(rgba(202,164,90,.10) .45px,transparent .55px);
    background-position:0 0,8px 9px;
    background-size:17px 17px,23px 23px;
}

/* --------------------------------------------------------------------------
   Editorial introduction — wide, asymmetrical, premium
   -------------------------------------------------------------------------- */
.gal-archive__intro{
    position:relative;
    width:100%;
    max-width:var(--ga-max);
    min-height:300px;
    margin:0 auto;
    padding:clamp(66px,7.5vw,112px) clamp(24px,4.2vw,64px) clamp(52px,5vw,76px);
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:60px;
    align-items:end;
}
.gal-archive__intro::after{
    content:"";
    position:absolute;
    left:clamp(24px,4.2vw,64px);
    right:clamp(24px,4.2vw,64px);
    bottom:0;
    height:1px;
    background:linear-gradient(90deg,var(--ga-line),rgba(48,170,40,.05) 70%,transparent);
}
.gal-archive__eyebrow,
.gal-archive__section-kicker,
.gal-showcase__eyebrow,
.gal-showcase__collection-no,
.gal-showcase__meta,
.gal-showcase__counter,
.gal-gallery-head__count,
.gal-archive__stat-label,
.gal-collection-index__eyebrow,
.gal-collection-index__number,
.gal-photo-card__meta{
    font-family:'Poppins',Arial,sans-serif;
    text-transform:uppercase;
    letter-spacing:.17em;
}
.gal-archive__eyebrow{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:11px;
    margin:0 0 17px;
    color:var(--ga-forest);
    font-size:.57rem;
    line-height:1;
    font-weight:800;
}
.gal-archive__eyebrow::before{
    content:"";
    width:42px;
    height:1px;
    background:var(--ga-gold);
}
.gal-archive__title{
    margin:0;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(4rem,8vw,8.7rem);
    line-height:.82;
    font-weight:600;
    letter-spacing:-.065em;
}
.gal-archive__intro-copy{
    max-width:590px;
    margin:27px 0 0;
    color:#65716a;
    font-family:'Bodoni Moda','Times New Roman',serif;
    font-size:clamp(.92rem,1.25vw,1.12rem);
    line-height:1.72;
}
.gal-archive__stats{
    display:flex;
    align-items:flex-end;
    gap:0;
    padding-bottom:3px;
}
.gal-archive__stat{
    min-width:128px;
    padding:0 0 0 25px;
    border-left:1px solid var(--ga-gold);
}
.gal-archive__stat + .gal-archive__stat{margin-left:30px;}
.gal-archive__stat-number{
    display:block;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(2.4rem,4vw,4rem);
    line-height:.84;
    letter-spacing:-.055em;
}
.gal-archive__stat-label{
    display:block;
    margin-top:11px;
    color:var(--ga-muted);
    font-size:.49rem;
    font-weight:800;
    line-height:1.4;
}
.gal-archive__ornament{
    position:absolute;
    right:-20px;
    top:30px;
    width:220px;
    height:220px;
    opacity:.16;
    pointer-events:none;
    transform:rotate(-16deg);
    background:
        radial-gradient(ellipse 26px 68px at 78% 16%,transparent 57%,rgba(48,170,40,.75) 59% 61%,transparent 63%),
        radial-gradient(ellipse 24px 62px at 55% 39%,transparent 57%,rgba(48,170,40,.65) 59% 61%,transparent 63%),
        radial-gradient(ellipse 22px 56px at 33% 62%,transparent 57%,rgba(48,170,40,.55) 59% 61%,transparent 63%),
        linear-gradient(112deg,transparent 48%,rgba(48,170,40,.65) 49% 50%,transparent 51%);
}

/* --------------------------------------------------------------------------
   Archive controls — FULL WIDTH, edge-to-edge band
   -------------------------------------------------------------------------- */
.gal-archive__controls{
    width:100%;
    margin:0;
    padding:0;
    background:#ffffff;
    border-bottom:1px solid var(--ga-line);
}
.gal-archive__controls-inner{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto;
    padding:0 clamp(24px,4.2vw,64px);
}
.gal-archive__controls-top{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:16px 24px;
    min-height:auto;
    padding:22px 0;
    border-bottom:1px solid var(--ga-line-soft);
}
.gal-archive__section-kicker{
    display:flex;
    align-items:center;
    gap:13px;
    flex:0 0 auto;
    color:var(--ga-forest);
    font-size:.58rem;
    font-weight:800;
    white-space:nowrap;
}
.gal-archive__section-kicker::before{
    content:"01";
    display:grid;
    place-items:center;
    width:25px;
    height:25px;
    border:1px solid var(--ga-gold);
    color:var(--ga-gold);
    font-size:.45rem;
    letter-spacing:.08em;
}
/* -------- Search: fluid width, icon on the left, larger tap target -------- */
.gal-search{
    position:relative;
    flex:1 1 280px;
    max-width:460px;
    margin-left:auto;
    width:auto;
}
.gal-search input{
    width:100%;
    height:50px;
    padding:0 46px 0 46px;
    border:1px solid rgba(48,170,40,.19);
    border-radius:2px;
    outline:none;
    background:rgba(255,255,255,.7);
    color:var(--ga-ink);
    font-family:'Poppins',Arial,sans-serif;
    font-size:clamp(.72rem,1.6vw,.8rem);
    letter-spacing:.01em;
    transition:border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.gal-search input::placeholder{color:#8a938d;opacity:1;}
.gal-search input:focus{
    border-color:var(--ga-forest);
    background:#ffffff;
    box-shadow:0 0 0 3px rgba(202,164,90,.16);
}
.gal-search > i{
    position:absolute;
    left:17px;
    right:auto;
    top:50%;
    transform:translateY(-50%);
    color:var(--ga-forest);
    font-size:.74rem;
    pointer-events:none;
}
.gal-search__clear{
    position:absolute;
    right:14px;
    left:auto;
    top:50%;
    width:26px;
    height:26px;
    display:none;
    place-items:center;
    transform:translateY(-50%);
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(48,170,40,.07);
    color:var(--ga-muted);
    cursor:pointer;
    transition:background .2s ease,color .2s ease;
}
.gal-search__clear:hover{
    background:rgba(48,170,40,.14);
    color:var(--ga-forest);
}
.gal-search__clear.is-visible{display:grid;}

/* Category navigation is deliberately NOT pill-shaped. Chips wrap onto as
   many rows as needed instead of scrolling off-screen horizontally, so
   nothing is ever hidden or cut off at the edge on any screen size. */
.gal-filter-track{
    width:100%;
    min-height:0;
    display:flex;
    flex-wrap:wrap;
    align-items:stretch;
    gap:10px 12px;
    padding:24px 0 6px;
    overflow:visible;
}
.filter-btn{
    position:relative;
    flex:0 0 auto;
    min-width:0;
    min-height:48px;
    display:inline-flex;
    align-items:center;
    gap:11px;
    padding:12px 20px;
    border:1px solid var(--ga-line);
    border-radius:2px;
    background:rgba(255,255,255,.42);
    color:#78827c;
    cursor:pointer;
    font-family:'Poppins',Arial,sans-serif;
    font-size:.55rem;
    line-height:1.25;
    font-weight:700;
    letter-spacing:.12em;
    text-align:left;
    text-transform:uppercase;
    transition:color .3s ease,background .3s ease,border-color .3s ease,transform .25s ease,box-shadow .3s ease;
}
/* single, clean selection indicator: border + fill only */
.filter-btn::before,
.filter-btn::after{
    content:none;
}
.filter-btn:hover{
    color:var(--ga-forest);
    background:#fff;
    border-color:rgba(48,170,40,.32);
    transform:translateY(-2px);
}
.filter-btn.active{
    color:var(--ga-forest);
    background:#fff;
    border-color:var(--ga-gold);
    box-shadow:inset 0 -2px 0 var(--ga-gold);
    transform:none;
}
.filter-btn__index{
    color:var(--ga-gold);
    font-size:.46rem;
    font-weight:800;
    letter-spacing:.08em;
}
.filter-btn__count{
    color:#9aa19c;
    font-size:.48rem;
    letter-spacing:.05em;
    font-weight:600;
}

/* --------------------------------------------------------------------------
   Featured collection — true full-bleed centerpiece
   -------------------------------------------------------------------------- */
.gal-showcase-wrap{
    width:100%;
    margin:0;
    padding:clamp(30px,4vw,56px) 0 clamp(72px,8vw,120px);
}
.gal-showcase{
    position:relative;
    width:100%;
    min-height:clamp(570px,49vw,760px);
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(360px,.76fr) minmax(0,1.72fr);
    background:var(--ga-deep);
    box-shadow:var(--ga-shadow);
    /* Stops the browser's scroll-anchoring feature from re-snapping the
       page to this section when its contents update in the background
       (e.g. every autoplay tick). See the JS-side scroll guard in
       updateSlide() for the second half of this fix. */
    overflow-anchor:none;
}
.gal-showcase__copy{
    position:relative;
    z-index:5;
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(48px,6vw,96px) clamp(30px,5vw,84px);
    color:#fff;
    background:linear-gradient(135deg,#30AA28,#2a9622);
}
.gal-showcase__copy::after{
    content:"";
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    width:1px;
    background:linear-gradient(180deg,transparent,rgba(224,201,143,.42) 24%,rgba(224,201,143,.08) 80%,transparent);
}
.gal-showcase__eyebrow{
    display:flex;
    align-items:center;
    gap:12px;
    color:#e2cb91;
    font-size:.53rem;
    line-height:1;
    font-weight:800;
}
.gal-showcase__eyebrow::before{
    content:"";
    width:37px;
    height:1px;
    background:var(--ga-gold);
}
.gal-showcase__collection-no{
    margin-top:30px;
    color:rgba(242,241,231,.48);
    font-size:.46rem;
    font-weight:700;
}
.gal-showcase__title{
    max-width:620px;
    margin:13px 0 0;
    color:#f7f2e6;
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(2.7rem,4.55vw,5.65rem);
    line-height:.9;
    font-weight:600;
    letter-spacing:-.06em;
}
.gal-showcase__meta-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px 22px;
    margin-top:29px;
}
.gal-showcase__meta{
    color:#d7d5c9;
    font-size:.48rem;
    font-weight:700;
}
.gal-showcase__meta::before{
    content:"";
    display:inline-block;
    width:6px;
    height:6px;
    margin:0 8px 1px 0;
    border:1px solid var(--ga-gold);
}
.gal-showcase__description{
    max-width:500px;
    margin:28px 0 0;
    color:rgba(245,243,232,.72);
    font-family:'Bodoni Moda',Georgia,serif;
    font-size:.86rem;
    line-height:1.75;
}
.gal-showcase__link{
    width:max-content;
    display:inline-flex;
    align-items:center;
    gap:12px;
    margin-top:32px;
    padding:0 0 9px;
    border:0;
    border-bottom:1px solid rgba(224,201,143,.8);
    color:#f0d99d;
    background:transparent;
    text-decoration:none;
    font-family:'Poppins',Arial,sans-serif;
    font-size:.51rem;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
    transition:gap .35s var(--ga-ease),color .2s ease;
}
.gal-showcase__link:hover{gap:19px;color:#fff5d5;}
.gal-showcase__link span{font-size:.95rem;line-height:.5;}

.gal-showcase__visual{
    position:relative;
    min-width:0;
    min-height:100%;
    overflow:hidden;
    background:#091c15;
}
.gal-showcase__visual::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:4;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(4,20,14,.52) 0%,rgba(4,20,14,.04) 19%,transparent 55%,rgba(4,20,14,.13) 100%),
        linear-gradient(180deg,rgba(4,20,14,.08),transparent 35%,rgba(4,20,14,.48) 100%);
}
.gal-showcase__texture{
    position:absolute;
    inset:0;
    z-index:5;
    pointer-events:none;
    opacity:.18;
    background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.13) 0,rgba(255,255,255,.13) 1px,transparent 1px,transparent 58px);
    -webkit-mask-image:linear-gradient(90deg,#000,transparent 85%);
    mask-image:linear-gradient(90deg,#000,transparent 85%);
}
.gal-slide{
    position:absolute;
    inset:0;
    opacity:0;
    visibility:hidden;
    transform:scale(1.025);
    transition:opacity .9s ease,visibility .9s ease,transform 7s var(--ga-ease);
    overflow-anchor:none;
}
.gal-slide.is-active{
    opacity:1;
    visibility:visible;
    transform:scale(1);
}
.gal-slide img,
.gal-slide video{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center center;
}
.gal-showcase__counter{
    position:absolute;
    top:27px;
    right:30px;
    z-index:8;
    color:rgba(255,255,255,.9);
    font-size:.5rem;
    font-weight:800;
    text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.gal-showcase__counter::before{
    content:"FRAME ";
    color:#e1ca8f;
}
.gal-showcase__arrows{
    position:absolute;
    right:30px;
    bottom:112px;
    z-index:9;
    display:flex;
    gap:8px;
}
.gal-showcase__arrow{
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.38);
    border-radius:50%;
    background:rgba(5,26,18,.22);
    color:#fff;
    cursor:pointer;
    backdrop-filter:blur(8px);
    transition:background .25s ease,border-color .25s ease,transform .35s var(--ga-ease);
}
.gal-showcase__arrow:hover{
    background:rgba(255,255,255,.14);
    border-color:#e4cb8e;
    transform:translateY(-3px);
}
.gal-showcase__bottom{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:9;
    min-height:82px;
    display:flex;
    align-items:flex-end;
    gap:18px;
    padding:0 30px 20px;
}
.gal-showcase__play{
    width:33px;
    height:33px;
    flex:0 0 33px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.32);
    border-radius:50%;
    background:rgba(6,27,19,.22);
    color:#fff;
    cursor:pointer;
    font-size:.57rem;
    backdrop-filter:blur(7px);
}
.gal-showcase__progress{
    position:relative;
    flex:1;
    height:1px;
    max-width:330px;
    overflow:hidden;
    background:rgba(255,255,255,.28);
}
.gal-showcase__progress span{
    display:block;
    width:0;
    height:100%;
    background:var(--ga-gold-light);
}
.gal-showcase.is-playing .gal-showcase__progress span{
    animation:galSlideProgress 7s linear forwards;
}
@keyframes galSlideProgress{
    from{width:0}
    to{width:100%}
}
.gal-showcase__pause-label{
    color:rgba(255,255,255,.55);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.45rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.gal-showcase__thumbs{
    position:absolute;
    left:30px;
    bottom:21px;
    z-index:10;
    width:calc(100% - 185px);
    max-width:650px;
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:0 0 2px;
    scrollbar-width:none;
}
.gal-showcase__thumbs::-webkit-scrollbar{display:none;}
.gal-thumb{
    position:relative;
    flex:0 0 78px;
    width:78px;
    height:51px;
    overflow:hidden;
    padding:0;
    border:1px solid rgba(255,255,255,.28);
    background:#0b2118;
    cursor:pointer;
    opacity:.58;
    transition:opacity .3s ease,border-color .3s ease,transform .35s var(--ga-ease);
}
.gal-thumb:hover{opacity:1;transform:translateY(-3px);}
.gal-thumb.is-active{
    opacity:1;
    border-color:#e1c678;
    box-shadow:0 0 0 1px rgba(225,198,120,.2);
}
.gal-thumb img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.gal-thumb__index{
    position:absolute;
    left:5px;
    bottom:4px;
    color:#fff;
    font-size:.39rem;
    line-height:1;
    font-weight:800;
    text-shadow:0 2px 8px rgba(0,0,0,.8);
}

/* --------------------------------------------------------------------------
   Collection index — visual category upgrade
   -------------------------------------------------------------------------- */
.gal-collection-index{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto;
    padding:0 clamp(24px,4.2vw,64px) clamp(75px,8vw,118px);
}
.gal-collection-index__head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:26px;
}
.gal-collection-index__eyebrow{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--ga-forest);
    font-size:.55rem;
    font-weight:800;
}
.gal-collection-index__eyebrow::before{
    content:"02";
    color:var(--ga-gold);
    font-size:.45rem;
}
.gal-collection-index__title{
    margin:8px 0 0;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(2.2rem,4vw,4.1rem);
    line-height:.93;
    letter-spacing:-.05em;
}
.gal-collection-index__note{
    max-width:370px;
    margin:0;
    color:var(--ga-muted);
    font-family:'Bodoni Moda',Georgia,serif;
    font-size:.78rem;
    line-height:1.65;
    text-align:right;
}
.gal-collection-list{
    border-top:1px solid var(--ga-line);
}
.gal-collection-row{
    position:relative;
    min-height:103px;
    display:grid;
    grid-template-columns:72px minmax(0,1fr) auto 220px;
    align-items:center;
    gap:25px;
    padding:15px 18px;
    border-bottom:1px solid var(--ga-line);
    overflow:hidden;
    cursor:pointer;
    transition:background .35s ease,padding .45s var(--ga-ease);
}
.gal-collection-row::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    background:var(--ga-gold);
    transform:scaleY(0);
    transform-origin:center;
    transition:transform .4s var(--ga-ease);
}
.gal-collection-row::after{
    content:"";
    position:absolute;
    right:0;
    top:0;
    bottom:0;
    width:38%;
    opacity:0;
    pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(48,170,40,.06));
    transition:opacity .35s ease;
}
.gal-collection-row:hover,
.gal-collection-row.is-active{
    padding-left:26px;
    background:rgba(255,255,255,.46);
}
.gal-collection-row:hover::before,
.gal-collection-row.is-active::before{transform:scaleY(1);}
.gal-collection-row:hover::after,
.gal-collection-row.is-active::after{opacity:1;}
.gal-collection-index__number{
    color:var(--ga-gold);
    font-size:.5rem;
    font-weight:800;
}
.gal-collection-row__title{
    position:relative;
    z-index:2;
    margin:0;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(1.45rem,2.25vw,2.3rem);
    line-height:1;
    letter-spacing:-.035em;
}
.gal-collection-row__count{
    position:relative;
    z-index:2;
    color:var(--ga-muted);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.48rem;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
    white-space:nowrap;
}
.gal-collection-row__thumb{
    position:relative;
    z-index:2;
    width:220px;
    height:68px;
    overflow:hidden;
    opacity:.66;
    border:1px solid rgba(48,170,40,.12);
    transition:opacity .35s ease,transform .45s var(--ga-ease);
}
.gal-collection-row:hover .gal-collection-row__thumb,
.gal-collection-row.is-active .gal-collection-row__thumb{
    opacity:1;
    transform:scale(1.025);
}
.gal-collection-row__thumb img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.gal-collection-row__go{
    position:absolute;
    right:18px;
    bottom:12px;
    z-index:4;
    color:var(--ga-gold);
    font-size:.8rem;
    opacity:0;
    transform:translateX(-8px);
    transition:opacity .3s ease,transform .35s var(--ga-ease);
}
.gal-collection-row:hover .gal-collection-row__go{opacity:1;transform:translateX(0);}

/* --------------------------------------------------------------------------
   Search band — sits above "All Photographs", below the Collection Index
   -------------------------------------------------------------------------- */
.gal-photo-search{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto clamp(28px,3.4vw,42px);
    padding:0 clamp(24px,4.2vw,64px);
}
.gal-photo-search__inner{
    display:flex;
    align-items:center;
    gap:18px;
    padding:20px 24px;
    background:rgba(255,255,255,.6);
    border:1px solid var(--ga-line);
    border-radius:2px;
}
.gal-photo-search__label{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:11px;
    color:var(--ga-forest);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.55rem;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    white-space:nowrap;
}
.gal-photo-search__label::before{
    content:"";
    width:28px;
    height:1px;
    background:var(--ga-gold);
}
.gal-photo-search .gal-search{
    flex:1 1 auto;
    max-width:none;
    margin-left:0;
}
@media (max-width:720px){
    .gal-photo-search{padding:0 22px;}
    .gal-photo-search__inner{
        flex-direction:column;
        align-items:stretch;
        gap:14px;
        padding:18px;
    }
}
@media (max-width:430px){
    .gal-photo-search{padding:0 18px;}
}

/* --------------------------------------------------------------------------
   All Photographs — uniform image system
   -------------------------------------------------------------------------- */
.gal-photo-archive{
    width:100%;
    margin:0;
    padding:0 clamp(24px,4.2vw,64px) clamp(95px,9vw,135px);
}
.gal-gallery-head{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto clamp(32px,4vw,48px);
    padding:0 0 19px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:25px;
    border-bottom:1px solid var(--ga-line);
}
.gal-gallery-head__left{
    display:flex;
    align-items:flex-end;
    gap:17px;
}
.gal-gallery-head__marker{
    width:42px;
    height:1px;
    margin-bottom:8px;
    background:var(--ga-gold);
}
.gal-gallery-head h2{
    margin:0;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(2.5rem,4.8vw,5.1rem);
    line-height:.88;
    letter-spacing:-.055em;
}
.gal-gallery-head__count{
    color:var(--ga-muted);
    font-size:.49rem;
    font-weight:800;
    white-space:nowrap;
}
.gallery-item{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto clamp(64px,7vw,100px);
}
.gallery-item.is-hidden{display:none;}
.gallery-item__heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:25px;
    margin:0 0 16px;
}
.gallery-item__heading h3{
    margin:0;
    color:var(--ga-forest);
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(1.75rem,3vw,3rem);
    line-height:.95;
    font-weight:600;
    letter-spacing:-.045em;
}
.gallery-item__heading span{
    color:var(--ga-muted);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.48rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.15em;
    text-transform:uppercase;
    white-space:nowrap;
}
.gallery-item__rule{
    width:52px;
    height:1px;
    margin:0 0 24px;
    background:var(--ga-gold);
}

/*
 * IMPORTANT: every photograph is exactly the same visual footprint.
 * No wide/tall/masonry exceptions. The grid is editorial because of
 * spacing and typography, not because images are randomly different sizes.
 */
.gal-photo-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.gallery-photo{
    position:relative;
    width:100%;
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:#dfe5dd;
    cursor:pointer;
    opacity:0;
    transform:translateY(20px);
    transition:opacity .65s ease,transform .65s var(--ga-ease);
}
.gallery-photo.gal-in-view{
    opacity:1;
    transform:translateY(0);
}
.gallery-photo:focus-visible{
    outline:2px solid var(--ga-gold);
    outline-offset:4px;
}
.gallery-photo img,
.gallery-photo video{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    filter:saturate(.93) contrast(1.01);
    transition:transform .75s var(--ga-ease),filter .5s ease;
}
.gallery-photo::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 45%,rgba(5,27,19,.76) 100%);
    opacity:0;
    transition:opacity .4s ease;
}
.gallery-photo:hover img,
.gallery-photo:focus-visible img,
.gallery-photo:hover video,
.gallery-photo:focus-visible video{
    transform:scale(1.045);
    filter:saturate(1.02) contrast(1.02);
}
.gallery-photo:hover::after,
.gallery-photo:focus-visible::after{opacity:1;}
.photo-overlay{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:4;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:15px;
    padding:50px 18px 16px;
    opacity:0;
    transform:translateY(10px);
    transition:opacity .35s ease,transform .4s var(--ga-ease);
}
.gallery-photo:hover .photo-overlay,
.gallery-photo:focus-visible .photo-overlay{
    opacity:1;
    transform:translateY(0);
}
.photo-overlay__title{
    min-width:0;
    overflow:hidden;
    color:#fff;
    font-family:'Poppins',Arial,sans-serif;
    font-size:.57rem;
    line-height:1.4;
    font-weight:600;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.photo-overlay__icon{
    flex:0 0 auto;
    color:#e2c98e;
    font-size:.7rem;
}
.photo-video-badge{
    position:absolute;
    top:13px;
    right:13px;
    z-index:5;
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.55);
    border-radius:50%;
    background:rgba(5,28,19,.45);
    color:#fff;
    backdrop-filter:blur(7px);
    font-size:.61rem;
}
.gal-skeleton{
    position:absolute;
    inset:0;
    z-index:6;
    background:linear-gradient(105deg,#e1e6df 25%,#f3f3ed 50%,#e1e6df 75%);
    background-size:220% 100%;
    animation:galShimmer 1.45s ease-in-out infinite;
}
.gallery-photo:not(.is-loading) .gal-skeleton{display:none;}
.gallery-photo.is-loading img,
.gallery-photo.is-loading video{opacity:0;}
@keyframes galShimmer{
    0%{background-position:220% 0}
    100%{background-position:-220% 0}
}
.gal-no-results{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto;
    padding:80px 20px;
    display:none;
    border-top:1px solid var(--ga-line);
    border-bottom:1px solid var(--ga-line);
    color:var(--ga-muted);
    font-family:'Bodoni Moda',Georgia,serif;
    font-size:1rem;
    text-align:center;
}
.gal-no-results.is-visible{display:block;}

/* --------------------------------------------------------------------------
   Empty archive
   -------------------------------------------------------------------------- */
.gal-empty{
    width:100%;
    max-width:var(--ga-max);
    margin:0 auto;
    padding:110px 20px;
    text-align:center;
}
.gal-empty i{
    display:block;
    margin-bottom:18px;
    color:#b7c1ba;
    font-size:3.5rem;
}
.gal-empty p{
    margin:0;
    color:var(--ga-muted);
    font-family:'Bodoni Moda',Georgia,serif;
}

/* --------------------------------------------------------------------------
   Lightbox — polished but functionality-preserving
   -------------------------------------------------------------------------- */
.gal-lightbox{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:55px 70px;
    background:rgba(5,18,13,.975);
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
}
.gal-lightbox.is-open{
    opacity:1;
    pointer-events:auto;
}
.gal-lightbox__stage{
    position:relative;
    width:min(1120px,88vw);
    height:min(78vh,820px);
    display:flex;
    align-items:center;
    justify-content:center;
}
.gal-lightbox__img,
.gal-lightbox__video{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    display:block;
    border:1px solid rgba(255,255,255,.13);
    box-shadow:0 35px 100px rgba(0,0,0,.52);
    opacity:0;
    transform:scale(.965);
    transition:opacity .35s ease,transform .45s var(--ga-ease);
}
.gal-lightbox.is-open .gal-lightbox__img,
.gal-lightbox.is-open .gal-lightbox__video{
    opacity:1;
    transform:scale(1);
}
.gal-lightbox__caption{
    position:absolute;
    left:0;
    right:0;
    bottom:-38px;
    color:rgba(255,255,255,.7);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.58rem;
    line-height:1.5;
    letter-spacing:.04em;
    text-align:center;
}
.gal-lightbox__close,
.gal-lightbox__nav,
.gal-lightbox__action{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.27);
    border-radius:50%;
    background:rgba(255,255,255,.055);
    color:#fff;
    cursor:pointer;
    transition:background .25s ease,border-color .25s ease,transform .35s var(--ga-ease);
}
.gal-lightbox__close:hover,
.gal-lightbox__nav:hover,
.gal-lightbox__action:hover{
    background:rgba(255,255,255,.12);
    border-color:#e0c47b;
}
.gal-lightbox__close{
    position:absolute;
    top:22px;
    right:25px;
}
.gal-lightbox__nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
}
.gal-lightbox__nav:hover{transform:translateY(-50%) scale(1.05);}
.gal-lightbox__nav--prev{left:23px;}
.gal-lightbox__nav--next{right:23px;}
.gal-lightbox__actions{
    position:absolute;
    top:22px;
    left:25px;
    display:flex;
    gap:8px;
}
.gal-lightbox__action{
    position:static;
    text-decoration:none;
}
.gal-lightbox__counter{
    position:absolute;
    top:31px;
    left:50%;
    transform:translateX(-50%);
    color:rgba(255,255,255,.63);
    font-family:'Poppins',Arial,sans-serif;
    font-size:.53rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.18em;
}
.gal-lightbox__counter::before{
    content:"ARCHIVE ";
    color:#ddc586;
}

/* --------------------------------------------------------------------------
   Back to top
   -------------------------------------------------------------------------- */
.gal-to-top{
    position:fixed;
    right:25px;
    bottom:25px;
    z-index:90;
    width:47px;
    height:47px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.16);
    border-radius:50%;
    background:var(--ga-forest);
    color:#fff;
    box-shadow:0 15px 35px rgba(48,170,40,.30);
    cursor:pointer;
    opacity:0;
    transform:translateY(16px);
    pointer-events:none;
    transition:opacity .3s ease,transform .35s var(--ga-ease),background .25s ease;
}
.gal-to-top.is-visible{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
}
.gal-to-top:hover{
    background:var(--ga-forest-3);
    transform:translateY(-3px);
}

/* --------------------------------------------------------------------------
   Reveal / motion
   -------------------------------------------------------------------------- */
.gal-archive .reveal{
    opacity:0;
    transform:translateY(22px);
    transition:opacity .8s var(--ga-ease),transform .8s var(--ga-ease);
}
.gal-archive .reveal.is-active{
    opacity:1;
    transform:translateY(0);
}

/* --------------------------------------------------------------------------
   Responsive — desktop remains large, mobile remains deliberate
   -------------------------------------------------------------------------- */
@media (max-width:1100px){
    .gal-showcase{
        grid-template-columns:minmax(320px,.82fr) minmax(0,1.42fr);
    }
    .gal-showcase__title{font-size:clamp(2.55rem,4.8vw,4.65rem);}
    .gal-collection-row{
        grid-template-columns:60px minmax(0,1fr) auto 180px;
        gap:18px;
    }
    .gal-collection-row__thumb{width:180px;}
}

@media (max-width:900px){
    .gal-archive__intro{
        grid-template-columns:1fr;
        gap:35px;
    }
    .gal-archive__stats{justify-content:flex-start;}
    .gal-archive__controls-top{
        flex-direction:column;
        align-items:stretch;
        padding:20px 0;
        gap:17px;
    }
    .gal-showcase{
        grid-template-columns:1fr;
        min-height:auto;
    }
    .gal-showcase__copy{
        min-height:370px;
        padding:48px 42px 42px;
    }
    .gal-showcase__copy::after{
        top:auto;
        left:0;
        right:0;
        width:auto;
        height:1px;
        background:linear-gradient(90deg,transparent,rgba(224,201,143,.4),transparent);
    }
    .gal-showcase__visual{min-height:470px;}
    .gal-collection-row{
        grid-template-columns:54px minmax(0,1fr) auto;
    }
    .gal-collection-row__thumb{display:none;}
    .gal-collection-row__go{right:15px;}
}

@media (max-width:720px){
    .gal-stats__inner{
        min-height:80px;
        padding:0 15px;
    }
    .gal-stats__item{
        padding:14px 8px;
        gap:8px;
        flex-direction:column;
    }
    .gal-stats__number{font-size:1.55rem;}
    .gal-stats__label{
        font-size:.42rem;
        letter-spacing:.12em;
        text-align:center;
    }
    .gal-archive__intro{
        padding:58px 22px 48px;
    }
    .gal-archive__title{font-size:clamp(3.6rem,18vw,5.8rem);}
    .gal-archive__stats{gap:0;}
    .gal-archive__stat{min-width:105px;padding-left:17px;}
    .gal-archive__stat + .gal-archive__stat{margin-left:18px;}
    .gal-archive__stat-number{font-size:2.4rem;}
    .gal-archive__ornament{right:-75px;opacity:.1;}
    .gal-archive__controls-inner{padding:0 22px;}
    .gal-filter-track{
        margin-left:0;
        width:100%;
        padding:20px 0 4px;
        gap:8px 10px;
    }
    .filter-btn{
        min-height:44px;
        padding:10px 15px;
        font-size:.5rem;
        gap:8px;
    }
    .gal-showcase-wrap{padding:24px 0 65px;}
    .gal-showcase__copy{min-height:350px;padding:40px 25px 35px;}
    .gal-showcase__title{font-size:clamp(2.5rem,10.5vw,4rem);}
    .gal-showcase__description{font-size:.78rem;}
    .gal-showcase__visual{min-height:370px;}
    .gal-showcase__counter{right:18px;top:18px;}
    .gal-showcase__arrows{right:18px;bottom:87px;}
    .gal-showcase__bottom{padding:0 18px 15px;}
    .gal-showcase__thumbs{
        left:18px;
        bottom:57px;
        width:calc(100% - 36px);
        max-width:none;
    }
    .gal-thumb{flex-basis:67px;width:67px;height:44px;}
    .gal-collection-index{
        padding:0 22px 72px;
    }
    .gal-collection-index__head{
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }
    .gal-collection-index__note{
        max-width:100%;
        text-align:left;
    }
    .gal-collection-row{
        min-height:94px;
        grid-template-columns:43px minmax(0,1fr);
        gap:13px;
        padding:15px 8px;
    }
    .gal-collection-row:hover,
    .gal-collection-row.is-active{padding-left:15px;}
    .gal-collection-row__count{
        grid-column:2;
        margin-top:-7px;
    }
    .gal-collection-row__go{display:none;}
    .gal-photo-archive{padding:0 22px 85px;}
    .gal-gallery-head{
        align-items:flex-start;
        flex-direction:column;
        gap:13px;
        padding-bottom:15px;
    }
    .gal-gallery-head h2{font-size:clamp(2.5rem,12vw,4.2rem);}
    .gallery-item{margin-bottom:64px;}
    .gallery-item__heading{
        align-items:flex-start;
        flex-direction:column;
        gap:9px;
    }
    .gal-photo-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .gallery-photo{aspect-ratio:4 / 3;}
    .photo-overlay{padding:42px 11px 10px;}
    .photo-overlay__title{font-size:.49rem;}
    .gal-lightbox{
        padding:60px 13px 45px;
    }
    .gal-lightbox__stage{
        width:100%;
        height:72vh;
    }
    .gal-lightbox__nav--prev{left:10px;}
    .gal-lightbox__nav--next{right:10px;}
    .gal-lightbox__close{top:15px;right:15px;}
    .gal-lightbox__actions{top:15px;left:15px;}
    .gal-lightbox__counter{top:29px;}
}

@media (max-width:430px){
    .gal-stats__item:last-child{display:none;}
    .gal-stats__inner{grid-template-columns:repeat(2,1fr);}
    .gal-stats__item:nth-child(2){border-right:0;}
    .gal-archive__intro{padding-left:18px;padding-right:18px;}
    .gal-archive__stats{flex-wrap:wrap;}
    .gal-archive__stat{min-width:92px;}
    .gal-archive__stat-number{font-size:2.15rem;}
    .gal-archive__controls-inner{padding:0 18px;}
    .gal-filter-track{
        margin-left:0;
        width:100%;
        padding-left:0;
        gap:8px;
    }
    .filter-btn{
        padding:9px 13px;
        font-size:.48rem;
    }
    .gal-showcase__copy{min-height:335px;padding:36px 20px 30px;}
    .gal-showcase__visual{min-height:315px;}
    .gal-showcase__title{font-size:2.42rem;}
    .gal-showcase__meta-row{gap:9px 14px;margin-top:21px;}
    .gal-showcase__description{margin-top:20px;font-size:.73rem;}
    .gal-showcase__link{margin-top:22px;}
    .gal-collection-index{padding-left:18px;padding-right:18px;}
    .gal-photo-archive{padding-left:18px;padding-right:18px;}
    .gal-photo-grid{gap:6px;}
    .gal-gallery-head__marker{width:30px;}
}

@media (prefers-reduced-motion:reduce){
    .gal-archive *,
    .gal-archive *::before,
    .gal-archive *::after,
    .gal-lightbox,
    .gal-lightbox *{
        animation-duration:.001ms!important;
        animation-iteration-count:1!important;
        transition-duration:.001ms!important;
    }
    .gal-slide{transform:none;}
    .gal-slide.is-active{transform:none;}
}

@media print{
    .gal-archive__controls,
    .gal-showcase__arrows,
    .gal-showcase__play,
    .gal-showcase__thumbs,
    .gal-lightbox,
    .gal-to-top{display:none!important;}
    .gal-showcase{box-shadow:none;}
}

/* ==========================================================================
   FEATURED COLLECTION — REVISION
   White panel with logo-green headings and gold details, a contained
   (not full-bleed) frame, and a dedicated thumbnail strip UNDER the photo
   so the thumbnails no longer cover the picture.
   ========================================================================== */
.gal-showcase{
    --ga-strip:92px;
    width:min(calc(100% - 2 * clamp(24px,4.2vw,64px)), calc(var(--ga-max) - 2 * clamp(24px,4.2vw,64px)));
    margin:0 auto;
    min-height:clamp(520px,44vw,680px);
    grid-template-columns:minmax(340px,.74fr) minmax(0,1.6fr);
    background:#ffffff;
    border:1px solid var(--ga-line);
    box-shadow:var(--ga-shadow-soft);
}
.gal-showcase__copy{
    padding:clamp(36px,4.2vw,68px) clamp(28px,3.6vw,56px);
    color:var(--ga-ink);
    background:#ffffff;
}
.gal-showcase__copy::after{
    background:linear-gradient(180deg,transparent,rgba(202,164,90,.55) 24%,rgba(202,164,90,.15) 80%,transparent);
}
.gal-showcase__eyebrow{color:var(--ga-forest);}
.gal-showcase__collection-no{color:var(--ga-muted);}
.gal-showcase__title{
    max-width:560px;
    color:var(--ga-forest);
    font-size:clamp(2.1rem,3.3vw,3.7rem);
    line-height:1;
    letter-spacing:-.045em;
}
.gal-showcase__meta{color:var(--ga-muted);}
.gal-showcase__description{
    color:#65716a;
    font-size:.9rem;
}
.gal-showcase__description[hidden]{display:none;}
.gal-showcase__link{
    color:var(--ga-forest);
    border-bottom-color:var(--ga-gold);
}
.gal-showcase__link:hover{color:#2a9622;}

.gal-showcase__visual{
    background:#ffffff;
}
.gal-showcase__visual::before{
    inset:0 0 var(--ga-strip) 0;
    background:linear-gradient(180deg,rgba(4,20,14,.06),transparent 40%,rgba(4,20,14,.28) 100%);
}
.gal-showcase__texture{display:none;}
.gal-slide{
    inset:0 0 var(--ga-strip) 0;
    background:#091c15;
}
.gal-showcase__arrows{bottom:calc(var(--ga-strip) + 18px);}

/* thumbnail strip */
.gal-showcase__bottom{
    min-height:var(--ga-strip);
    height:var(--ga-strip);
    align-items:center;
    justify-content:flex-end;
    padding:0 24px;
    background:#ffffff;
    border-top:1px solid var(--ga-line);
}
.gal-showcase__thumbs{
    left:24px;
    bottom:auto;
    top:auto;
    width:calc(100% - 330px);
    max-width:none;
    height:calc(var(--ga-strip) - 28px);
    bottom:14px;
    align-items:center;
}
.gal-thumb{
    flex:0 0 auto;
    width:auto;
    height:100%;
    aspect-ratio:3 / 2;
    border:1px solid var(--ga-line);
    opacity:.7;
}
.gal-thumb.is-active{
    opacity:1;
    border-color:var(--ga-gold);
    box-shadow:0 0 0 1px var(--ga-gold);
}
.gal-showcase__play{
    border-color:var(--ga-line);
    background:#ffffff;
    color:var(--ga-forest);
}
.gal-showcase__pause-label{color:var(--ga-muted);}
.gal-showcase__progress{
    flex:0 0 90px;
    max-width:90px;
    background:var(--ga-line);
}
.gal-showcase__progress span{background:var(--ga-gold);}

@media (max-width:900px){
    .gal-showcase{
        grid-template-columns:1fr;
        min-height:auto;
    }
    .gal-showcase__copy{min-height:0;padding:40px 28px 34px;}
    .gal-showcase__visual{min-height:440px;}
}
@media (max-width:720px){
    .gal-showcase{--ga-strip:118px;}
    .gal-showcase__bottom{
        justify-content:flex-start;
        align-items:flex-end;
        padding:0 18px 14px;
    }
    .gal-showcase__thumbs{
        left:18px;
        width:calc(100% - 36px);
        height:46px;
        bottom:60px;
    }
    .gal-showcase__arrows{right:18px;}
    .gal-showcase__visual{min-height:380px;}
    .gal-showcase__title{font-size:clamp(2rem,9vw,3rem);}
}
@media (max-width:430px){
    .gal-showcase__copy{min-height:0;padding:30px 20px 26px;}
    .gal-showcase__title{font-size:2.1rem;}
}