.dg-gallery-wrapper{ max-width:1200px;margin:auto; }
.dg-filters{ text-align:center;margin-bottom:20px; }
.dg-filter{ padding:10px 20px;margin:5px;cursor:pointer;border:none;background:#333;color:#fff;border-radius:5px;transition:0.3s; }
.dg-filter.active,.dg-filter:hover{ background:#ff6600; }
.dg-gallery-grid{ column-count:4; column-gap:15px; }
@media(max-width:1200px){ .dg-gallery-grid{ column-count:3; } }
@media(max-width:800px){ .dg-gallery-grid{ column-count:2; } }
@media(max-width:500px){ .dg-gallery-grid{ column-count:1; } }
.dg-item{ display:inline-block;margin-bottom:15px;width:100%;transition:transform 0.4s;cursor:pointer; }
.dg-item img{ width:100%; border-radius:8px; display:block; }
.dg-item.hidden{ display:none !important; opacity:0; transform:scale(0.8); }

/* Lightbox */
.dg-lightbox{ position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9); display:flex;justify-content:center;align-items:center; z-index:9999; }
.dg-lightbox img{ max-width:90%; max-height:90%; border-radius:10px; }
.dg-close{ position:absolute; top:20px; right:30px; font-size:50px; color:#fff; cursor:pointer; }
.dg-item { position: relative; overflow: hidden; }
.dg-item img {
    width: 100%;
    border-radius: 8px;
    display: block;
    transition: transform 0.4s, filter 0.4s;
}
.dg-item:hover img {
    transform: scale(1.05);
    filter: grayscale(0%);
}
.dg-item::after {
    content: attr(data-title);
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    font-size: 14px;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s;
}
.dg-item:hover::after { opacity: 1; }

/* Lazy Load Placeholder */
.dg-item img[data-src] { filter: blur(5px); }
.dg-item img.lazy-loaded { filter: blur(0); transition: filter 0.5s; }
