.dsd-gallery{display:grid;grid-template-columns:repeat(var(--dsd-cols),minmax(0,1fr));gap:var(--dsd-gap);width:100%}.dsd-gallery.is-masonry{display:block;columns:var(--dsd-cols);column-gap:var(--dsd-gap)}.dsd-gallery__item{position:relative;margin:0;overflow:hidden;border-radius:var(--dsd-radius);background:#eee}.is-masonry .dsd-gallery__item{break-inside:avoid;margin:0 0 var(--dsd-gap)}.dsd-gallery__item a{display:block;color:inherit}.dsd-gallery__image{display:block;width:100%;height:auto;border-radius:inherit;transition:transform .35s ease,opacity .35s ease,filter .35s ease,box-shadow .35s ease}.is-grid .dsd-gallery__image[style*="aspect-ratio"]{height:auto;aspect-ratio:inherit}.dsd-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;color:var(--dsd-caption-color);background:var(--dsd-caption-bg);font-size:14px;line-height:1.4}.dsd-hover-zoom .dsd-gallery__item:hover img{transform:scale(1.045)}.dsd-hover-fade .dsd-gallery__item:hover img{opacity:.78}.dsd-hover-lift .dsd-gallery__item:hover img{transform:translateY(-4px);filter:drop-shadow(0 8px 12px rgba(0,0,0,.22))}.dsd-gallery-empty{padding:48px;text-align:center;border:1px dashed #b5bdc9;background:#f8fafc;color:#64748b}.dsd-lightbox{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.92);opacity:0;transition:opacity .2s}.dsd-lightbox.is-open{opacity:1}.dsd-lightbox img{max-width:92vw;max-height:90vh;object-fit:contain}.dsd-lightbox button{position:absolute;border:0;background:transparent;color:#fff;font-size:42px;cursor:pointer}.dsd-lightbox__close{top:18px;right:26px}.dsd-lightbox__prev{left:22px}.dsd-lightbox__next{right:22px}@media(max-width:1024px){.dsd-gallery{grid-template-columns:repeat(var(--dsd-cols-tablet),minmax(0,1fr));gap:var(--dsd-gap-tablet)}.dsd-gallery.is-masonry{columns:var(--dsd-cols-tablet);column-gap:var(--dsd-gap-tablet)}.is-masonry .dsd-gallery__item{margin-bottom:var(--dsd-gap-tablet)}}@media(max-width:767px){.dsd-gallery{grid-template-columns:repeat(var(--dsd-cols-phone),minmax(0,1fr));gap:var(--dsd-gap-phone)}.dsd-gallery.is-masonry{columns:var(--dsd-cols-phone);column-gap:var(--dsd-gap-phone)}.is-masonry .dsd-gallery__item{margin-bottom:var(--dsd-gap-phone)}}

