/* 0.24.11: CE Sticky clones the mobile header into a layout spacer.
   Keep its dimensions for sticky positioning without painting a second carousel. */
.elementor-sticky__spacer .elementor-widget-ce-category-carousel-pro {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 0.24.5: stable Swiper geometry + non-destructive 3D and visual refinements. */
.cecc-widget {
    position: relative;
    width: 100%; max-width: 100%; min-width: 0;
    --cecc-visible: 5; --cecc-gap: 16px;
    --cecc-title-image-gap: 8px; --cecc-image-ratio: 1 / 1;
    --cecc-image-hover-scale: 1.05; --cecc-image-hover-intensity: 50;
    --cecc-image-hover-opacity: 1;
    --cecc-overlay-left: 0px; --cecc-overlay-right: 0px;
    --cecc-nav-button-size: 42px; --cecc-nav-space: 8px; --cecc-nav-gutter: 0px;
    --cecc-mobile-scale: .92; --cecc-mobile-opacity: .85;
    --cecc-slide-align-items: flex-start; --cecc-3d-origin-y: center;
}
.cecc-widget > .cecc-swiper {
    position: relative; box-sizing: border-box; min-width: 0;
    width: calc(100% - 2 * var(--cecc-nav-gutter)); max-width: 100%;
    margin-inline: auto; overflow: hidden;
}
.cecc-widget .cecc-wrapper { align-items: var(--cecc-slide-align-items, flex-start); }
.cecc-widget.cecc-equal-height .cecc-wrapper { align-items: stretch; }
.cecc-widget .cecc-slide {
    position: relative; box-sizing: border-box; min-width: 0; height: auto;
    flex-shrink: 0; display: flex; flex-direction: column;
    color: inherit; text-decoration: none; overflow: visible;
    background-clip: padding-box;
}
.cecc-widget .cecc-slide > .cecc-slide-struct {
    position: relative; isolation: isolate;
    display: flex; flex: 1 1 auto; box-sizing: border-box;
    width: 100%; min-width: 0; max-width: 100%; padding: 0 !important;
}
.cecc-widget .cecc-slide > .cecc-slide-struct::before {
    content: ''; position: absolute; inset: 0; z-index: 0;
    border-radius: inherit; pointer-events: none; box-sizing: border-box;
    transition: box-shadow .2s ease;
}
.cecc-widget .cecc-slide-frame {
    position: relative; z-index: 1; isolation: isolate; box-sizing: border-box;
    display: flex; flex: 1 1 auto; flex-direction: column;
    min-width: 0; max-width: 100%; width: auto; height: auto;
    color: inherit; text-decoration: none; overflow: visible;
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.cecc-widget .cecc-card.cecc-title-above,
.cecc-widget .cecc-card.cecc-title-below { row-gap: var(--cecc-title-image-gap); }
.cecc-widget .cecc-image-slot {
    position: relative; display: flex; flex: 0 0 auto;
    align-items: flex-start; justify-content: var(--cecc-image-align, center);
    width: 100%; min-width: 0; box-sizing: border-box;
}
/* This sized block has TWO siblings: the image layer and the overlay title layer. */
.cecc-widget .cecc-media-stack {
    position: relative; isolation: isolate; display: block;
    flex: 0 1 auto; box-sizing: border-box;
    width: 100%; min-width: 0; max-width: 100%;
}
.cecc-widget .cecc-image-wrap {
    position: relative; z-index: 0; isolation: isolate;
    box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%;
    aspect-ratio: var(--cecc-image-ratio); overflow: visible;
    transform-origin: center center;
    transition-property: transform, opacity, border-color, outline-color, box-shadow, background-color, background-image;
    transition-timing-function: ease;
}
.cecc-widget .cecc-image-wrap::after {
    content: ''; position: absolute; inset: 0; z-index: 2;
    border-radius: inherit; pointer-events: none; box-sizing: border-box;
}
.cecc-widget .cecc-image-clip {
    position: relative; z-index: 0; box-sizing: border-box;
    width: 100%; height: 100%; overflow: hidden !important;
    border-radius: inherit;
}
.cecc-widget .cecc-image {
    position: relative; z-index: 0; display: block;
    width: 100%; max-width: 100%; height: 100%;
    object-fit: cover; object-position: center center; transform-origin: center center;
    transition-property: transform, opacity, filter; transition-timing-function: ease;
}
.cecc-widget.cecc-ratio-original .cecc-image-wrap { aspect-ratio: auto; }
.cecc-widget.cecc-ratio-original .cecc-image-clip,
.cecc-widget.cecc-ratio-original .cecc-image { height: auto; }
.cecc-widget .cecc-title-wrap {
    position: relative; z-index: 2; width: 100%; min-width: 0;
    flex: 0 0 auto; box-sizing: border-box; text-align: center;
}
.cecc-widget .cecc-title {
    position: relative; display: block; z-index: 1;
    box-sizing: border-box; max-width: 100%; min-width: 0;
    margin: 0; color: inherit; line-height: 1.25;
    white-space: normal; overflow-wrap: break-word; text-decoration: none;
    transition-property: color, background-color, border-color, box-shadow;
    transition-timing-function: ease;
}
.cecc-widget .cecc-card > .cecc-overlay-title {
    position: absolute;
    left: var(--cecc-overlay-left, 0px);
    right: var(--cecc-overlay-right, 0px);
    bottom: 0;
    z-index: 3; box-sizing: border-box; padding: 0;
    transform: translate(var(--cecc-overlay-x, 0px), var(--cecc-overlay-y, 0px));
    pointer-events: none;
}
.cecc-widget .cecc-overlay-title .cecc-title { pointer-events: auto; }
/* The image's transform cannot escape its parent's z=0 stacking context. */
.cecc-widget .cecc-image-slot { z-index: 0; }
.cecc-widget .cecc-card > .cecc-title-wrap { z-index: 2; }


/* Optional 3D presentation. Swiper keeps ownership of slide geometry and motion;
   only the inner slide structure is transformed, so Standard mode stays intact. */
.cecc-widget.cecc-3d-active > .cecc-swiper {
    perspective-origin: 50% 50%;
}
.cecc-widget.cecc-3d-active .cecc-wrapper,
.cecc-widget.cecc-3d-active .cecc-slide,
.cecc-widget.cecc-3d-active .cecc-slide-struct {
    transform-style: preserve-3d;
}
.cecc-widget.cecc-3d-active .cecc-slide-struct {
    transform-origin: center var(--cecc-3d-origin-y, center);
    backface-visibility: hidden;
    will-change: transform, opacity;
    transition-property: transform, opacity, box-shadow;
    transition-timing-function: ease;
}

.cecc-widget > .cecc-nav {
    position: absolute; top: 50%; z-index: 5;
    display: flex; align-items: center; justify-content: center;
    box-sizing: border-box;
    width: var(--cecc-nav-button-size); height: var(--cecc-nav-button-size);
    min-width: var(--cecc-nav-button-size); min-height: var(--cecc-nav-button-size);
    margin: 0; padding: 0; border: 0; text-align: center; line-height: 1;
    color: #111; background: #fff; cursor: pointer; transform: translateY(-50%);
    transition: color .2s ease, background-color .2s ease, opacity .2s ease;
}
.cecc-widget > .cecc-prev { left: var(--cecc-nav-space); }
.cecc-widget > .cecc-next { right: var(--cecc-nav-space); }
.cecc-widget .cecc-nav[hidden],
.cecc-widget .cecc-nav.swiper-button-lock { display: none !important; }
.cecc-widget .cecc-nav.swiper-button-disabled { opacity: .35; cursor: default; }
.cecc-widget .cecc-nav:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.cecc-widget .cecc-nav-icon {
    position: static; display: inline-flex; flex: 0 0 auto;
    align-items: center; justify-content: center; pointer-events: none;
    margin: 0; padding: 0; border: 0; line-height: 1;
    transform: none; font-size: 28px; text-align: center;
}
.cecc-widget .cecc-nav-icon::before { display: block; line-height: 1; margin: 0; }
/* CE's generic grid pre-init rule must not hide categories before JS is available. */
.elementor-widget-ce-category-carousel-pro .cecc-swiper:not(.swiper-initialized) > .cecc-wrapper {
    display: flex; flex-wrap: nowrap; gap: var(--cecc-gap);
}
.cecc-widget .cecc-swiper:not(.swiper-initialized) .cecc-slide {
    width: calc((100% - (var(--cecc-visible) - 1) * var(--cecc-gap)) / var(--cecc-visible));
}
.cecc-widget .cecc-swiper.swiper-initialized > .cecc-wrapper { display: flex; gap: 0; }
.cecc-empty { padding: 18px; border: 1px dashed #bbb; color: #666; text-align: center; }
@media (max-width: 1024px) { .cecc-widget { --cecc-visible: 4; --cecc-gap: 14px; } }
@media (max-width: 767px) {
    .cecc-widget { --cecc-visible: 1; --cecc-gap: 12px; }
    .cecc-widget.cecc-edge-scale .cecc-slide:not(.swiper-slide-active) > .cecc-slide-struct {
        transform: scale(var(--cecc-mobile-scale)); opacity: var(--cecc-mobile-opacity);
    }
}
@media (prefers-reduced-motion: reduce) {
    .cecc-widget .cecc-image-wrap, .cecc-widget .cecc-image, .cecc-widget .cecc-title,
    .cecc-widget.cecc-3d-active .cecc-slide-struct { transition-duration: 0s !important; }
}


/* v0.24.5 - transform the complete image frame (foreground image, background,
   border, radius and shadow), never the Swiper slide/3D struct. Pointer-only so
   touch navigation remains neutral. */
@media (hover: hover) and (pointer: fine) {
    .cecc-widget .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget .cecc-slide:focus-within .cecc-image-wrap {
        opacity: var(--cecc-image-hover-opacity, 1);
    }
    .cecc-widget.cecc-image-hover-zoom-in .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget.cecc-image-hover-zoom-in .cecc-slide:focus-within .cecc-image-wrap {
        transform: scale(var(--cecc-image-hover-scale, 1.05));
    }
    .cecc-widget.cecc-image-hover-zoom-out .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget.cecc-image-hover-zoom-out .cecc-slide:focus-within .cecc-image-wrap {
        transform: scale(calc(2 - var(--cecc-image-hover-scale, 1.05)));
    }
    .cecc-widget.cecc-image-hover-lift .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget.cecc-image-hover-lift .cecc-slide:focus-within .cecc-image-wrap {
        transform: translateY(calc(var(--cecc-image-hover-intensity, 50) * -0.12px));
    }
    .cecc-widget.cecc-image-hover-rotate-left .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget.cecc-image-hover-rotate-left .cecc-slide:focus-within .cecc-image-wrap {
        transform: rotate(calc(var(--cecc-image-hover-intensity, 50) * -0.12deg));
    }
    .cecc-widget.cecc-image-hover-rotate-right .cecc-slide:hover .cecc-image-wrap,
    .cecc-widget.cecc-image-hover-rotate-right .cecc-slide:focus-within .cecc-image-wrap {
        transform: rotate(calc(var(--cecc-image-hover-intensity, 50) * 0.12deg));
    }
}
