/**
 * Slider module.
 *
 * Divi remains responsible for each slide's visual design. These rules only
 * establish the carousel viewport and keep each Divi Group full-height.
 */

.tmc-slider {
	--tmc-slider-nav-gap: 40px;
	--tmc-slider-pagination-gap: 30px;
	--tmc-slider-nav-size: var( --swiper-navigation-size, 44px );
	/* Swiper's default arrow button is 27px wide at its 44px default size. */
	--tmc-slider-nav-control-width: 27px;
	--tmc-slider-nav-frame-gap: 12px;
	--tmc-slider-pagination-size: var( --swiper-pagination-bullet-size, 8px );
}

.tmc-slider.tmc-slider--ready {
	position: relative;
	overflow: hidden;
}

/* Reserve layout space only when the corresponding optional control exists. */
.tmc-slider.tmc-slider--ready:has( .swiper-button-prev ) {
	padding-top: calc( var( --tmc-slider-nav-size ) + var( --tmc-slider-nav-frame-gap ) );
}

.tmc-slider.tmc-slider--ready:has( .swiper-pagination ) {
	padding-bottom: calc( var( --tmc-slider-pagination-gap ) + var( --tmc-slider-pagination-size ) );
}

/*
 * Let flip's 3D rotation extend slightly outside the viewport, but clip it
 * after a finite allowance so neighbouring slides are not exposed. Override
 * --tmc-slider-flip-space on an individual slider when more room is needed.
 */
.tmc-slider.tmc-slider--flip.tmc-slider--ready {
	overflow: visible;
	clip-path: inset( calc( 0px - var( --tmc-slider-flip-space, 100px ) ) );
}

.tmc-slider .swiper-wrapper {
	align-items: stretch;
}

.tmc-slider .swiper-slide {
	height: auto;
}

.tmc-slider .swiper-slide.et_pb_group {
	width: auto;
}

/*
 * Swiper creates these as direct children of each slider. Keep them outside
 * the slide viewport so they work the same way in every effect and on every
 * slider instance.
 */
.tmc-slider .swiper-button-prev,
.tmc-slider .swiper-button-next {
	top: 0;
	bottom: auto;
	left: auto;
	margin-top: 0;
	background: none;
	border: none;
	color: #999;
}

.tmc-slider .swiper-button-prev:hover,
.tmc-slider .swiper-button-next:hover{
	color:#000;
}

.tmc-slider .swiper-button-next {
	right: 0;
}

.tmc-slider .swiper-button-prev {
	right: calc( var( --tmc-slider-nav-control-width ) + var( --tmc-slider-nav-gap ) );
}

.tmc-slider .swiper-pagination {
	top: auto;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	block-size: var( --tmc-slider-pagination-size );
	line-height: 0;
}

.tmc-slider .swiper-pagination-bullet {
	vertical-align: top;
}

/* Required for Swiper's no-delay, marquee-style continuous mode. */
.tmc-slider.tmc-slider--continuous .swiper-wrapper {
	transition-timing-function: linear !important;
}

@media (prefers-reduced-motion: reduce) {
	.tmc-slider.tmc-slider--continuous .swiper-wrapper {
		transition-timing-function: ease;
	}
}
