/* Wrapper respects custom width/height and aspect ratio */
.elementor-image-carousel-wrapper{ position:relative; display:block; }
.elementor-image-carousel-wrapper.cpl-has-box .elementor-image-carousel{ height:100%; }
.elementor-image-carousel-wrapper.cpl-has-box .swiper-slide{ height:100%; }
.elementor-image-carousel-wrapper.cpl-has-box .swiper-slide-inner{ height:100%; position:relative; overflow:visible; }

/* Images: default auto height; when box has dimensions/aspect, fill with object-fit */
/*.elementor-image-carousel-wrapper .swiper-slide-image{ display:block; width:100%; height:auto; }*/
/*.elementor-image-carousel-wrapper.cpl-has-box .swiper-slide-image{ height:100%; object-fit: var(--cpl-object-fit, cover); object-position:center; }*/

/* 1. Target the widget container regardless of ID */
.elementor-widget-cpl-image-carousel,
.elementor-widget-cpl-image-carousel .elementor-widget-container,
.elementor-widget-cpl-image-carousel .elementor-image-carousel-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 2. Force Swiper track to take up all available space */
.elementor-widget-cpl-image-carousel .swiper,
.elementor-widget-cpl-image-carousel .swiper-wrapper {
    height: 100%;
    width: 100%;
}

/* 3. Ensure slides and the inner figure stretch fully */
.elementor-widget-cpl-image-carousel .swiper-slide,
.elementor-widget-cpl-image-carousel .swiper-slide-inner,
.elementor-widget-cpl-image-carousel .swiper-slide-inner figure {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    display: block;
}

/* 4. Apply Object Fit to the actual media */
.elementor-widget-cpl-image-carousel .swiper-slide-video,
.elementor-widget-cpl-image-carousel .swiper-slide-image {
    width: 100%;
    height: 100%;
    object-fit: var(--cpl-object-fit, cover);
    object-position: center;
}

/* Overlay tint (inherits radius) */
.cpl-overlay{ position:absolute; inset:0; background-color:rgba(0,0,0,.35); opacity:var(--cpl-overlay-opacity,.35); pointer-events:none; z-index:2; border-radius:inherit; }
.elementor-image-carousel-caption{ position:relative; z-index:3; }
.elementor-swiper-button{ z-index:5; }

/* Zoom effect */
.cpl-zoom-yes .elementor-image-carousel .swiper-slide-inner{ overflow:hidden; }
.cpl-zoom-yes .elementor-image-carousel .swiper-slide-image{ transition:transform .5s ease; will-change:transform; transform:translateZ(0); }
.cpl-zoom-yes .elementor-image-carousel .swiper-slide:hover .swiper-slide-image{ transform:scale(var(--cpl-zoom-scale,1.08)); }
