/* MARCZINKA Gallery 1.1.0 - independent from Elementor Core */
.mzg-gallery { position:relative; display:grid; grid-template-columns:repeat(var(--mzg-columns,3),minmax(0,1fr)); gap:var(--mzg-gap,12px); width:100%; min-width:0; }
.mzg-gallery .mzg-gallery-item { min-width:0; min-height:0; margin:0; overflow:hidden; }
.mzg-gallery .mzg-gallery-image { display:block; line-height:0; border-radius:var(--mzg-radius,12px); overflow:hidden; }
.mzg-gallery img { display:block; width:100%; height:auto; aspect-ratio:var(--mzg-ratio,4 / 3); object-fit:var(--mzg-fit,cover); border-radius:var(--mzg-radius,12px); transition:transform .25s ease,opacity .25s ease; }
.mzg-gallery.mzg-hover-zoom figure:hover img { transform:scale(1.045); }
.mzg-gallery.mzg-hover-fade figure:hover img { opacity:.78; }
.mzg-gallery figcaption { padding:8px 2px; font-size:.85em; line-height:1.4; overflow-wrap:anywhere; }
.mzg-gallery-placeholder,.wue3-gallery-placeholder { display:grid; place-items:center; min-height:170px; border:1px dashed #cbd5e1; border-radius:12px; background:#f8fafc; color:#64748b; font-weight:600; }
/* Masonry uses native CSS columns; no positioning library is needed. */
.mzg-gallery.mzg-layout-masonry { display:block; columns:var(--mzg-columns,3); column-gap:var(--mzg-gap,12px); }
.mzg-layout-masonry .mzg-gallery-item { break-inside:avoid; display:block; margin-bottom:var(--mzg-gap,12px); }
.mzg-gallery.mzg-layout-masonry img { aspect-ratio:auto; height:auto; }
/* Mosaic alternates a large leading image with the remaining tiles. */
.mzg-layout-mosaic .mzg-gallery-item:first-child:not(:last-child) { grid-column:span 2; grid-row:span 2; }
.mzg-layout-mosaic .mzg-gallery-item:first-child img { height:100%; }
/* Native scroll-snap slider; buttons and swipe both work. */
.mzg-gallery.mzg-layout-slider { display:block; }
.mzg-gallery-track { display:flex; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; gap:var(--mzg-gap,12px); scrollbar-width:thin; }
.mzg-gallery-track>.mzg-gallery-item { flex:0 0 100%; scroll-snap-align:start; }
.mzg-gallery-track img { max-height:75vh; }
.mzg-slider-nav { pointer-events:none; position:absolute; inset:0; display:flex; justify-content:space-between; align-items:center; padding:0 10px; }
.mzg-slider-nav button { pointer-events:auto; cursor:pointer; border:0; width:38px; height:38px; border-radius:100%; background:rgba(0,0,0,.65); color:#fff; font-size:26px; line-height:1; }
.mzg-slider-nav button:focus-visible,.mzg-lightbox button:focus-visible { outline:3px solid #8bcaff; outline-offset:3px; }
@media(max-width:1024px) {
 .mzg-gallery:not(.mzg-layout-slider):not(.mzg-layout-masonry){grid-template-columns:repeat(var(--mzg-tablet,2),minmax(0,1fr));}
 .mzg-layout-masonry{columns:var(--mzg-tablet,2)!important;}
}
@media(max-width:767px) {
 .mzg-gallery:not(.mzg-layout-slider):not(.mzg-layout-masonry){grid-template-columns:repeat(var(--mzg-mobile,1),minmax(0,1fr));}
 .mzg-layout-masonry{columns:var(--mzg-mobile,1)!important;}
 .mzg-gallery.mzg-layout-mosaic .mzg-gallery-item:first-child {grid-column:auto;grid-row:auto;}
}
.mzg-lightbox {position:fixed;inset:0;z-index:2147480000;background:rgba(8,12,21,.94);display:grid;grid-template-columns:minmax(40px,1fr) minmax(0,1100px) minmax(40px,1fr);grid-template-rows:1fr;align-items:center;justify-items:center;padding:24px;color:#fff;box-sizing:border-box;}
.mzg-lightbox[hidden]{display:none!important;}
.mzg-lightbox figure {grid-column:2;grid-row:1;margin:0;max-width:100%;max-height:calc(100vh - 80px);text-align:center;min-width:0;}
.mzg-lightbox img {display:block;max-height:calc(100vh - 130px);max-width:100%;width:auto;height:auto;object-fit:contain;margin:auto;}
.mzg-lightbox figcaption {margin-top:10px;font-size:14px;color:#fff;}
.mzg-lightbox button {border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:100%;width:44px;height:44px;font-size:25px;cursor:pointer;}
.mzg-lightbox .mzg-close {position:absolute;top:15px;right:15px;z-index:1;}
.mzg-lightbox .mzg-prev {grid-column:1;grid-row:1;}
.mzg-lightbox .mzg-next {grid-column:3;grid-row:1;}
@media(max-width:600px){.mzg-lightbox{padding:45px 5px 20px;grid-template-columns:38px minmax(0,1fr) 38px;}.mzg-lightbox figure{max-height:calc(100vh - 115px);}}
@media(prefers-reduced-motion:reduce){.mzg-gallery img{transition:none;}.mzg-gallery-track{scroll-behavior:auto;}}
