.mgs-gallery{
	--mgs-cols:3;
	--mgs-tablet-cols:2;
	--mgs-mobile-cols:1;
	--mgs-gap:30px;
	--mgs-image-height:400px;
	position:relative;
	width:100%;
	box-sizing:border-box;
}
.mgs-gallery *{box-sizing:border-box}
.mgs-track{display:grid;grid-template-columns:repeat(var(--mgs-cols),minmax(0,1fr));gap:var(--mgs-gap)}
.mgs-card{min-width:0;position:relative}
.mgs-card-link{display:block;position:relative;color:#fff;text-decoration:none;overflow:hidden;border:0;background:#111;min-height:var(--mgs-image-height);height:var(--mgs-image-height);cursor:pointer}
.mgs-media{position:relative;width:100%;height:100%;overflow:hidden;background:#222}
.mgs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.65,.25,1),filter .7s ease;display:block}
.mgs-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.28) 35%,rgba(0,0,0,.72) 100%);opacity:.95;transition:opacity .45s ease}
.mgs-content{position:absolute;left:16%;right:13%;top:50%;transform:translateY(-50%);z-index:4;text-align:left;color:#fff}
.mgs-category{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;margin-bottom:10px;opacity:.85}
.mgs-content h3{margin:0 0 14px;font-size:20px;line-height:1.18;font-weight:700;color:#fff}
.mgs-description{font-size:14px;line-height:1.45;color:#fff;max-width:95%}
.mgs-frame{position:absolute;z-index:5;display:block;pointer-events:none;opacity:.95}
.mgs-frame-tl{top:9%;left:9%;width:17%;height:16%;border-top:1px solid rgba(255,255,255,.95);border-left:1px solid rgba(255,255,255,.95)}
.mgs-frame-br{right:9%;bottom:9%;width:17%;height:16%;border-right:1px solid rgba(255,255,255,.95);border-bottom:1px solid rgba(255,255,255,.95)}
.mgs-open-icon{position:absolute;right:12%;top:10%;z-index:6;width:34px;height:34px;border:1px solid rgba(255,255,255,.75);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:#fff;opacity:0;transform:scale(.8);transition:.35s ease}
.mgs-card-hover-zoom:hover .mgs-media img{transform:scale(1.08)}
.mgs-card-hover-zoom:hover .mgs-overlay{opacity:.96}
.mgs-card-hover-overlay:hover .mgs-overlay{opacity:1}
.mgs-card-hover-lift{transition:transform .35s ease,box-shadow .35s ease}
.mgs-card-hover-lift:hover{transform:translateY(-8px);box-shadow:0 18px 35px rgba(0,0,0,.16)}
.mgs-card-hover-lift:hover .mgs-media img{transform:scale(1.03)}
.mgs-card-hover-none .mgs-media img,.mgs-card-hover-none .mgs-overlay{transition:none}
.mgs-card:hover .mgs-open-icon{opacity:1;transform:scale(1)}
.mgs-layout-carousel{overflow:visible}
.mgs-layout-carousel .mgs-track{display:flex;gap:var(--mgs-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.mgs-layout-carousel .mgs-track::-webkit-scrollbar{display:none}
.mgs-layout-carousel .mgs-card{flex:0 0 calc((100% - (var(--mgs-cols) - 1)*var(--mgs-gap))/var(--mgs-cols));scroll-snap-align:start}
.mgs-arrow{position:absolute;z-index:20;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--mgs-arrow-color,#ef3340);box-shadow:0 5px 18px rgba(0,0,0,.14);font-size:25px;line-height:44px;padding:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.mgs-arrow:hover{transform:translateY(-50%) scale(1.06);box-shadow:0 8px 25px rgba(0,0,0,.2)}
.mgs-prev{left:10px}.mgs-next{right:10px}
.mgs-dots{display:flex;justify-content:center;gap:7px;margin-top:18px}
.mgs-dot{width:7px;height:7px;border:0;border-radius:50%;background:#bbb;padding:0;cursor:pointer}
.mgs-dot.is-active{background:#111;transform:scale(1.2)}
.mgs-lightbox-backdrop{position:fixed;z-index:999999;inset:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
.mgs-lightbox-backdrop.is-open{opacity:1;visibility:visible}
.mgs-lightbox-backdrop img{max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.mgs-lightbox-close{position:absolute;right:22px;top:16px;color:#fff;background:none;border:0;font-size:40px;line-height:1;cursor:pointer}
.mgs-lightbox-caption{position:absolute;left:30px;right:30px;bottom:18px;text-align:center;color:#fff;font-size:15px}
body.mgs-no-scroll{overflow:hidden}
@media(max-width:1024px){
	.mgs-track{grid-template-columns:repeat(var(--mgs-tablet-cols),minmax(0,1fr))}
	.mgs-layout-carousel .mgs-card{flex-basis:calc((100% - (var(--mgs-tablet-cols) - 1)*var(--mgs-gap))/var(--mgs-tablet-cols))}
}
@media(max-width:767px){
	.mgs-track{grid-template-columns:repeat(var(--mgs-mobile-cols),minmax(0,1fr))}
	.mgs-layout-carousel .mgs-card{flex-basis:100%}
	.mgs-arrow{width:38px;height:38px;line-height:38px;font-size:21px}
	.mgs-prev{left:8px}.mgs-next{right:8px}
	.mgs-content{left:14%;right:11%}
	.mgs-content h3{font-size:18px}
	.mgs-description{font-size:13px}
	.mgs-lightbox-backdrop{padding:20px}
}
