:root{--c-primary:#0a5e52;--c-primary-dark:#074a40;--c-ink:#1f1f1d;--c-muted:#5b5a52;--c-line:#e6e2da;--font-display:'Playfair Display',Georgia,serif}
/* VCM Gallery – grid, filters, lightbox */
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}
.gallery-filter{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:999px;border:2px solid var(--c-line);background:#fff;color:var(--c-ink);font-weight:500;font-size:.9rem;cursor:pointer;font-family:inherit;transition:border-color .2s,background .2s,color .2s}
.gallery-filter:hover{border-color:var(--c-primary);color:var(--c-primary);text-decoration:none}
.gallery-filter.is-active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.gallery-filter__count{font-size:.75rem;opacity:.75}
.gallery-status{text-align:center;color:var(--c-muted);font-size:.9rem;margin-bottom:1.25rem}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.gallery-item{position:relative;display:block;border-radius:8px;overflow:hidden;aspect-ratio:1;background:#eee9e0;color:#fff}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.05)}
.gallery-item__overlay{position:absolute;inset:auto 0 0 0;padding:2rem .9rem .8rem;background:linear-gradient(180deg,transparent,rgba(20,48,43,.85));display:flex;flex-direction:column;gap:.2rem;opacity:0;transition:opacity .25s}
.gallery-item:hover .gallery-item__overlay,.gallery-item:focus-visible .gallery-item__overlay{opacity:1}
.gallery-item__title{font-weight:600;font-size:.9rem;line-height:1.3}
.gallery-item__tag{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:#d9b48c}
.gallery-item.is-hidden{display:none}
.gallery-more__btn.is-loading{opacity:.6;pointer-events:none}
.gallery-hint{color:var(--c-muted);font-size:.9rem;margin-top:1.5rem}
.gallery-empty{padding:2rem 0;color:var(--c-muted)}
@media(hover:none){.gallery-item__overlay{opacity:1;padding-top:1.2rem}}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:3000;background:rgba(10,20,18,.94);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.lb.is-open{opacity:1;visibility:visible}
.lb__figure{max-width:min(96vw,1400px);max-height:100vh;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.5rem 1rem 1rem}
.lb__img{max-width:100%;max-height:calc(100vh - 8.5rem);object-fit:contain;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.5);user-select:none;-webkit-user-drag:none}
.lb__caption{color:#e8ede9;text-align:center;margin-top:.9rem;max-width:800px;font-size:.95rem}
.lb__caption strong{display:block;font-family:var(--font-display);font-size:1.15rem;color:#fff}
.lb__caption small{display:block;color:#d9b48c;text-transform:uppercase;letter-spacing:1.5px;font-size:.7rem;margin-top:.25rem}
.lb__btn{position:absolute;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.35);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;transition:background .2s,border-color .2s;font-family:inherit}
.lb__btn:hover,.lb__btn:focus-visible{background:rgba(255,255,255,.25);border-color:#fff}
.lb__close{top:1rem;right:1rem}
.lb__prev{left:1rem;top:50%;transform:translateY(-50%)}
.lb__next{right:1rem;top:50%;transform:translateY(-50%)}
.lb__counter{position:absolute;top:1.6rem;left:1.25rem;color:#cfd8d4;font-size:.85rem;letter-spacing:1px}
.lb__spinner{position:absolute;width:40px;height:40px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:lb-spin .8s linear infinite;display:none}
.lb.is-loading .lb__spinner{display:block}
@keyframes lb-spin{to{transform:rotate(360deg)}}
body.lb-open{overflow:hidden}
@media(max-width:640px){.lb__prev,.lb__next{width:42px;height:42px;top:auto;bottom:1rem;transform:none}.lb__prev{left:1rem}.lb__next{right:1rem}.lb__figure{padding-bottom:4.5rem}.lb__img{max-height:calc(100vh - 11rem)}}

@media(max-width:992px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}}
@media(max-width:480px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.gallery-item{border-radius:6px}.gallery-filter{padding:.45rem .85rem;font-size:.85rem}}
.text-center{text-align:center}.mt-3{margin-top:3rem}
