.ib-elementor-gallery { display:grid; grid-template-columns:repeat(var(--ib-gallery-columns),minmax(0,1fr)); gap:10px; }
.ib-elementor-gallery-item { display:block; overflow:hidden; }
.ib-elementor-gallery.ib-show-first-image .ib-elementor-gallery-item:not(:first-child) { display:none; }
.ib-elementor-gallery-item img { display:block; width:100%; height:100%; aspect-ratio:1/1; object-fit:cover; transition:filter .25s ease; }
.ib-elementor-gallery-item img:hover { filter:brightness(1.08); }
.ib-elementor-gallery-item { position:relative; }
.ib-elementor-gallery-overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:18px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.78)); opacity:0; transition:opacity .25s ease; pointer-events:none; }
.ib-elementor-gallery-item:hover .ib-elementor-gallery-overlay, .ib-elementor-gallery-item:focus .ib-elementor-gallery-overlay { opacity:1; }
.ib-elementor-gallery-overlay strong { font-size:16px; line-height:1.2; }
.ib-elementor-gallery-overlay span { margin-top:5px; font-size:14px; line-height:1.25; }
.ib-elementor-image-carousel { position:relative; display:flex; align-items:center; gap:10px; width:100%; }
.ib-ec-viewport { overflow:hidden; flex:1; }
.ib-ec-track { display:flex; transition:transform .35s ease; }
.ib-ec-item { flex:0 0 calc(100% / var(--ib-carousel-columns)); padding:5px; box-sizing:border-box; }
.ib-ec-item img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.ib-ec-prev,.ib-ec-next { border:0; background:transparent; color:#f3aa2e; font-size:40px; line-height:1; cursor:pointer; }
@media(max-width:767px){.ib-elementor-gallery{grid-template-columns:repeat(var(--ib-gallery-columns-mobile),minmax(0,1fr));}.ib-elementor-image-carousel{--ib-carousel-columns:1!important;}}
