/* Image Text Slider Layout Styles */

.image-text-slider-container {
    position: relative;
    width: 100%;
    overflow: visible !important;
    margin-bottom: 4rem;
    isolation: isolate;
    /* contain: layout style; */
    /* Removed to ensure overflow works */
    contain: none size !important;
    display: block;
    clear: both;
    z-index: 1;
}

/* Clearfix */
.image-text-slider-container::after {
    content: "";
    display: table;
    clear: both;
    height: 0;
    visibility: hidden;
}

/* Prevent container overlap */
.image-text-slider-container::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    z-index: 5;
    background: transparent;
    pointer-events: none;
}

.image-text-slider-container.height-full {
    height: 70vh;
}

/* Spacer */
/* Spacer */
/* Spacer */
.image-text-slider-container .slider-bottom-spacer {
    position: relative;
    display: block;
    width: 100%;
    height: 11rem;
    /* approx 176px - Ensures minimum 3rem space below divider */
    z-index: 1;
    margin-top: 0;
    clear: both;
    pointer-events: none;
    transition: height 0.3s ease-out;
}

/* Hide spacer for single slide as requested by user */
.image-text-slider-container.image-text-slider-single-slide .slider-bottom-spacer {
    /* display: none !important; */
    height: 5rem !important;
    margin: 0 !important;
}

/* Exception: Show spacer if tilted divider is present to prevent overlap */
.image-text-slider-container.image-text-slider-single-slide.has-tilted-divider-yes .slider-bottom-spacer {
    display: block !important;
    height: 11rem !important;
    margin-top: 0 !important;
}

/* Elementor Section/Column spacing */
.elementor-section:not(.elementor-inner-section)+.elementor-section:not(.elementor-inner-section),
.elementor-column+.elementor-column,
.image-text-slider-container+* {
    position: relative;
    z-index: 0;
}

/* Swiper Base */
.image-text-slider-container .swiper {
    width: 100%;
    overflow: visible !important;
    will-change: transform;
    position: relative;
}

.image-text-slider-container .swiper-wrapper {
    overflow: visible !important;
}

.image-text-slider-container .swiper-slide {
    width: 100%;
    height: 100%;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    will-change: transform, opacity;
    overflow: visible !important;
}

/* Simplified Single Slide DOM Support */
.image-text-slider-container .image-text-slider-single-slide-container {
    width: 100%;
    overflow: visible !important;
    position: relative;
    display: block;
}

.image-text-slider-container .image-text-slide {
    width: 100%;
    height: 100%;
    opacity: 1;
    visibility: visible;
    position: relative;
    overflow: visible !important;
}

.image-text-slider-container .slide-content-container {
    position: relative;
    width: 40%;
    pointer-events: auto;
    margin-top: 0;
}

.image-text-slider-container .slide-image {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: visible !important;
}

.image-text-slider-container .slide-image picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Overlay Image */
.image-text-slider-container .slide-image .overlay-image {
    position: absolute !important;
    left: 75% !important;
    bottom: 24% !important;
    z-index: 10 !important;
    max-width: 10% !important;
    display: block !important;
    pointer-events: none;
    visibility: visible !important;
    opacity: 1 !important;
}

.image-text-slider-container .slide-image .overlay-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    max-width: 100% !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Absolute Overlay Image */
.image-text-slider-container .slide-image .absolute-overlay-image {
    position: absolute !important;
    z-index: 15 !important;
    /* Higher than divider (z-index: 5) */
    width: 30%;
    height: auto;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    max-height: none !important;
    pointer-events: none;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    mask: none !important;
    -webkit-mask: none !important;
}

.image-text-slider-container .slide-image .absolute-overlay-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    max-width: 100% !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Position classes for absolute overlay */
.image-text-slider-container .slide-image .absolute-overlay-image.position-top-left {
    top: 0;
    left: 0;
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-top-center {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-top-right {
    top: 0;
    right: 0;
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-middle-left {
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-middle-center {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-middle-right {
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-bottom-left {
    bottom: 0;
    left: 0;
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-bottom-center {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.image-text-slider-container .slide-image .absolute-overlay-image.position-bottom-right {
    bottom: 0;
    right: 0;
}

/* Slide Visibility Logic (Frontend) */
body:not(.elementor-editor-active) .image-text-slider-container .swiper-slide:not(.swiper-slide-active):not(.swiper-slide-next):not(.swiper-slide-prev) {
    opacity: 0;
    visibility: hidden;
}

/* Ensure first slide is visible before initialization */
body:not(.elementor-editor-active) .image-text-slider-container:not(.swiper-initialized) .swiper-slide:first-child,
body:not(.elementor-editor-active) .image-text-slider-container:not(.swiper-initialized) .swiper-wrapper .swiper-slide:first-child {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

.image-text-slider-container .swiper-slide-active,
.image-text-slider-container .swiper-slide-next,
.image-text-slider-container .swiper-slide-prev {
    opacity: 1;
    visibility: visible;
}

/* Tilted Divider - Moved to slide level for correct stacking context */
/* Tilted Divider - Swiper Slides (Multi-slide) */
.has-tilted-divider-yes .swiper-slide::after {
    content: "";
    position: absolute;
    z-index: 5;
    background-color: #ffffff;
    width: 100%;
    height: 10rem;
    transform: skewY(-3deg) !important;
    transform-origin: bottom center;
    top: 85% !important;
    left: 0;
    opacity: 1;
    pointer-events: none !important;
    will-change: transform;
    transition: transform 0.3s ease, opacity 0.3s ease;
    overflow: visible;
}

/* Tilted Divider - Single/Image Text Slide */
.has-tilted-divider-yes .image-text-slide::after {
    content: "";
    position: absolute;
    z-index: 5;
    background-color: #ffffff;
    width: 100%;
    height: 10rem;
    transform: skewY(-3deg) !important;
    transform-origin: bottom center;
    top: 80% !important;
    left: 0;
    opacity: 1;
    pointer-events: none !important;
    will-change: transform;
    transition: transform 0.3s ease, opacity 0.3s ease;
    overflow: visible;
}

.divider-flipped-yes .swiper-slide::after {
    transform: skewY(12deg);
}

.divider-flipped-yes .image-text-slide::after {
    transform: skewY(12deg);
}

.content-position-left.has-tilted-divider-yes .swiper-slide::after {
    transform-origin: bottom left;
    left: 0;
}

.content-position-left.has-tilted-divider-yes .image-text-slide::after {
    transform-origin: bottom left;
    left: 0;
}

.content-position-center.has-tilted-divider-yes .swiper-slide::after {
    transform-origin: bottom center;
    left: 0;
}

.content-position-center.has-tilted-divider-yes .image-text-slide::after {
    transform-origin: bottom center;
    left: 0;
}

.content-position-right.has-tilted-divider-yes .swiper-slide::after {
    transform-origin: bottom right;
    right: 0;
    left: auto;
}

.content-position-right.has-tilted-divider-yes .image-text-slide::after {
    transform-origin: bottom right;
    right: 0;
    left: auto;
}

.divider-flipped-yes.content-position-left .swiper-slide::after {
    transform-origin: bottom right;
}

.divider-flipped-yes.content-position-left .image-text-slide::after {
    transform-origin: bottom right;
}

.divider-flipped-yes.content-position-center .swiper-slide::after {
    transform-origin: bottom center;
}

.divider-flipped-yes.content-position-center .image-text-slide::after {
    transform-origin: bottom center;
}

.divider-flipped-yes.content-position-right .swiper-slide::after {
    transform-origin: bottom right;
}

.divider-flipped-yes.content-position-right .image-text-slide::after {
    transform-origin: bottom right;
}

/* Overlay Extension Logic */
.overlay-overflow-yes .absolute-overlay-image {
    z-index: 20 !important;
}

.overlay-overflow-yes .absolute-overlay-image.position-bottom-left,
.overlay-overflow-yes .absolute-overlay-image.position-bottom-center,
.overlay-overflow-yes .absolute-overlay-image.position-bottom-right {
    bottom: -10%;
    transform-origin: bottom center;
}

.overlay-overflow-yes .absolute-overlay-image.position-bottom-center {
    transform: translateX(-50%) translateY(10%);
}

.overlay-overflow-yes.has-tilted-divider-yes .swiper-slide::after {
    pointer-events: none;
    z-index: 5;
}

.overlay-overflow-yes.has-tilted-divider-yes .swiper,
.overlay-overflow-yes.has-tilted-divider-yes .swiper-slide {
    overflow: visible !important;
}

.image-text-slider-container.has-extended-overlays {
    padding-bottom: 10%;
}

.absolute-overlay-image.extend-beyond.position-bottom-left,
.absolute-overlay-image.extend-beyond.position-bottom-center,
.absolute-overlay-image.extend-beyond.position-bottom-right {
    bottom: -10% !important;
}

.absolute-overlay-image.extend-beyond.position-bottom-center {
    transform: translateX(-50%) translateY(10%) !important;
}

.absolute-overlay-image.extend-beyond.position-top-left {
    top: -10% !important;
    left: -10% !important;
}

.absolute-overlay-image.extend-beyond.position-top-right {
    top: -10% !important;
    right: -10% !important;
}

.absolute-overlay-image.extend-beyond.position-bottom-left {
    bottom: -10% !important;
    left: -10% !important;
}

.absolute-overlay-image.extend-beyond.position-bottom-right {
    bottom: -10% !important;
    right: -10% !important;
}

/* Hardware Acceleration & 3D Fixes */
.image-text-slider-container .swiper,
.image-text-slider-container .swiper-slide,
.image-text-slider-container .swiper-content-slider,
.image-text-slider-container .swiper-content-slider .swiper-slide {
    transform: translateZ(0);
    backface-visibility: hidden;
    perspective: 1000;
}