.gallery-page,
.gallery-detail-page{
    padding:12px 0 56px;
}
.gallery-intro{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin:0 0 24px;
}
.gallery-intro h2{margin:0 0 6px;color:var(--primary);font-size:2rem;}
.gallery-intro p{margin:0;color:#63717c;}
.gallery-summary{white-space:nowrap;color:#63717c;font-size:.95rem;}
.gallery-summary strong{color:var(--secondary);}
.gallery-year-filter,.gallery-category-filter{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:16px;}
.gallery-filter-chip,.gallery-category-filter a,.gallery-older-years summary{
    display:inline-flex;align-items:center;justify-content:center;gap:7px;
    min-height:38px;padding:8px 15px;border:1px solid #d9e0e5;border-radius:999px;
    background:#fff;color:#34434f;text-decoration:none;font-weight:700;font-size:.92rem;
    cursor:pointer;transition:.2s ease;
}
.gallery-filter-chip:hover,.gallery-category-filter a:hover,.gallery-older-years summary:hover,
.gallery-filter-chip.is-active,.gallery-category-filter a.is-active{
    background:var(--secondary);border-color:var(--secondary);color:#fff;
}
.gallery-older-years{position:relative;}
.gallery-older-years summary{list-style:none;}
.gallery-older-years summary::-webkit-details-marker{display:none;}
.gallery-older-years[open] summary i{transform:rotate(180deg);}
.gallery-older-menu{
    position:absolute;top:46px;left:0;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(68px,1fr));
    gap:6px;width:270px;padding:12px;background:#fff;border:1px solid #e0e4e7;border-radius:14px;
    box-shadow:0 14px 34px rgba(0,0,0,.14);
}
.gallery-older-menu a{padding:8px;border-radius:8px;color:#34434f;text-align:center;text-decoration:none;font-weight:700;}
.gallery-older-menu a:hover,.gallery-older-menu a.is-active{background:#eef7ef;color:var(--secondary);}
.gallery-category-filter{margin-top:3px;margin-bottom:27px;}
.gallery-category-filter a{font-weight:600;background:transparent;}
.gallery-current-filter{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;padding:9px 13px;border-radius:10px;background:#eef7ef;color:#2c6e35;font-weight:700;}
.gallery-album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.gallery-album-card{overflow:hidden;background:#fff;border-radius:16px;box-shadow:0 8px 28px rgba(0,0,0,.08);transition:transform .22s ease,box-shadow .22s ease;}
.gallery-album-card:hover{transform:translateY(-4px);box-shadow:0 15px 38px rgba(0,0,0,.12);}
.gallery-album-cover{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#edf1f3;}
.gallery-album-cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease;}
.gallery-album-card:hover .gallery-album-cover img{transform:scale(1.035);}
.gallery-album-placeholder{height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#95a3ad;}
.gallery-photo-count{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(18,30,37,.78);color:#fff;font-weight:700;font-size:.86rem;backdrop-filter:blur(4px);}
.gallery-album-body{padding:18px 20px 20px;border-left:4px solid var(--secondary);}
.gallery-category-label{display:inline-block;margin-bottom:7px;color:var(--secondary);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.gallery-album-body h3{margin:0 0 10px;font-size:1.18rem;line-height:1.3;}
.gallery-album-body h3 a{color:#263842;text-decoration:none;}
.gallery-album-body h3 a:hover{color:var(--primary);}
.gallery-album-meta{display:flex;align-items:center;gap:7px;color:#697882;font-size:.9rem;}
.gallery-empty{padding:45px 25px;text-align:center;background:#fff;border-left:4px solid var(--secondary);}
.gallery-empty>i{font-size:2.5rem;color:var(--secondary);}
.gallery-empty h2{margin:12px 0 5px;}

.gallery-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:24px;padding:24px 26px;background:#fff;border-left:4px solid var(--secondary);border-radius:14px;box-shadow:0 7px 24px rgba(0,0,0,.06);}
.gallery-detail-heading p{max-width:900px;margin:12px 0 0;color:#566874;line-height:1.65;}
.gallery-detail-meta{display:flex;flex-wrap:wrap;gap:16px;color:#5d6e79;font-size:.92rem;}
.gallery-detail-meta span{display:inline-flex;align-items:center;gap:7px;}
.gallery-detail-meta i{color:var(--secondary);}
.gallery-back-button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 14px;border-radius:10px;background:#f2f5f6;color:#34434f;text-decoration:none;font-weight:700;}
.gallery-back-button:hover{background:#e8f3e9;color:var(--secondary);}
.gallery-photo-grid{columns:4 230px;column-gap:12px;}
.gallery-photo{display:block;margin:0 0 12px;break-inside:avoid;overflow:hidden;border-radius:12px;background:#edf1f3;box-shadow:0 3px 12px rgba(0,0,0,.06);}
.gallery-photo img{display:block;width:100%;height:auto;transition:transform .35s ease,filter .35s ease;}
.gallery-photo:hover img{transform:scale(1.025);filter:brightness(.92);}

.gallery-lightbox[hidden]{display:none;}
.gallery-lightbox{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:rgba(7,12,15,.94);padding:30px 70px;color:#fff;}
.gallery-lightbox figure{margin:0;max-width:min(92vw,1500px);max-height:90vh;text-align:center;}
.gallery-lightbox figure img{display:block;max-width:100%;max-height:82vh;margin:auto;object-fit:contain;box-shadow:0 15px 50px rgba(0,0,0,.45);}
.gallery-lightbox figcaption{min-height:24px;margin-top:10px;color:#e4e9ec;}
.gallery-lightbox-close,.gallery-lightbox-prev,.gallery-lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;border-radius:999px;display:grid;place-items:center;}
.gallery-lightbox-close{right:22px;top:20px;width:46px;height:46px;font-size:1.35rem;}
.gallery-lightbox-prev,.gallery-lightbox-next{top:50%;width:48px;height:48px;margin-top:-24px;font-size:1.35rem;}
.gallery-lightbox-prev{left:18px}.gallery-lightbox-next{right:18px}
.gallery-lightbox-counter{position:absolute;left:24px;top:25px;color:#d7dee2;font-weight:700;}
body.gallery-lightbox-open{overflow:hidden;}

.hero-gallery a{position:relative;}
.hero-gallery a.gallery-hero-fading img{opacity:.25;transform:scale(1.02);}
.hero-gallery img{transition:opacity .55s ease,transform .55s ease;}

@media(max-width:1050px){.gallery-album-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.gallery-photo-grid{columns:3 210px;}}
@media(max-width:720px){
    .gallery-intro,.gallery-detail-heading{display:block;}.gallery-summary{margin-top:10px;}.gallery-album-grid{grid-template-columns:1fr;gap:18px;}
    .gallery-year-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;}.gallery-year-filter>*{flex:0 0 auto;}
    .gallery-older-menu{position:fixed;left:18px;right:18px;top:auto;width:auto;grid-template-columns:repeat(4,1fr);}
    .gallery-detail-heading{padding:20px;}.gallery-back-button{margin-top:18px;}.gallery-photo-grid{columns:2 150px;column-gap:8px;}.gallery-photo{margin-bottom:8px;border-radius:9px;}
    .gallery-lightbox{padding:55px 10px 38px;}.gallery-lightbox-prev{left:8px}.gallery-lightbox-next{right:8px}.gallery-lightbox-prev,.gallery-lightbox-next{background:rgba(0,0,0,.4);}
}

/* MOBILE FIX – lightbox */
@media (max-width:720px){
.gallery-lightbox{display:flex;align-items:center;justify-content:center;padding:54px 8px 42px;overflow:hidden}.gallery-lightbox figure{display:flex;width:100%;height:calc(100dvh - 96px);max-width:100%;max-height:none;margin:0;flex-direction:column;align-items:center;justify-content:center}.gallery-lightbox figure img{width:auto;height:auto;max-width:calc(100vw - 16px);max-height:calc(100dvh - 130px);margin:0 auto;object-fit:contain}.gallery-lightbox figcaption{flex:0 0 auto;max-width:calc(100vw - 30px);margin-top:8px;text-align:center}.gallery-lightbox-close{top:8px;right:8px}.gallery-lightbox-counter{top:15px;left:12px}.gallery-lightbox-prev,.gallery-lightbox-next{top:50%;width:42px;height:42px;margin-top:-21px;z-index:2}.gallery-lightbox-prev{left:6px}.gallery-lightbox-next{right:6px}
}
