.im-carousel.swiper-vertical {
	height: var(--im-carousel-min-height, 480px);
}

.im-carousel.swiper-cube {
	overflow: visible;
}

.im-carousel.swiper {
	--imca-nav: var(--wp--preset--color--primary, currentColor);
	--imca-nav-bg: color-mix(in srgb, var(--wp--preset--color--base, #fff) 82%, transparent);
	position: relative;
	width: 100%;
	overflow: hidden;
}

/*
 * Ancho completo / 100% width:
 * Garantiza que el carrusel ocupe el 100% sin exceder el ancho del viewport
 * ni generar barras de desplazamiento horizontal (overflow-x), independientemente del tema.
 */
.wp-block-im-carousel {
	box-sizing: border-box;
}

.wp-block-im-carousel.alignfull,
.wp-block-im-carousel.im-carousel--full-viewport {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box;
}

.im-carousel .swiper-slide.im-carousel-slide,
.im-carousel-slide {
	position: relative;
	display: flex;
	box-sizing: border-box;
	min-height: var(--im-carousel-min-height, 480px);
	width: 100%;
	background-repeat: no-repeat;
	background-color: var(--wp--preset--color--contrast, #111);
}

.im-carousel-slide.is-fit-contain {
	background-color: var(--wp--preset--color--base, #000);
}

.im-carousel-slide__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-color: var(--imca-overlay-color, #000);
	opacity: var(--imca-overlay-opacity, 0.4);
}

.im-carousel-slide__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: var(--im-carousel-min-height, 480px);
	padding: clamp(1rem, 4vw, 3rem);
	box-sizing: border-box;
}

.im-carousel-slide.is-position-top-left .im-carousel-slide__content {
	align-items: flex-start;
	justify-content: flex-start;
	text-align: left;
}
.im-carousel-slide.is-position-top-center .im-carousel-slide__content {
	align-items: center;
	justify-content: flex-start;
	text-align: center;
}
.im-carousel-slide.is-position-top-right .im-carousel-slide__content {
	align-items: flex-end;
	justify-content: flex-start;
	text-align: right;
}
.im-carousel-slide.is-position-middle-left .im-carousel-slide__content {
	align-items: flex-start;
	justify-content: center;
	text-align: left;
}
.im-carousel-slide.is-position-center .im-carousel-slide__content {
	align-items: center;
	justify-content: center;
	text-align: center;
}
.im-carousel-slide.is-position-middle-right .im-carousel-slide__content {
	align-items: flex-end;
	justify-content: center;
	text-align: right;
}
.im-carousel-slide.is-position-bottom-left .im-carousel-slide__content {
	align-items: flex-start;
	justify-content: flex-end;
	text-align: left;
}
.im-carousel-slide.is-position-bottom-center .im-carousel-slide__content {
	align-items: center;
	justify-content: flex-end;
	text-align: center;
}
.im-carousel-slide.is-position-bottom-right .im-carousel-slide__content {
	align-items: flex-end;
	justify-content: flex-end;
	text-align: right;
}

.im-carousel .swiper-button-next,
.im-carousel .swiper-button-prev {
	color: var(--imca-nav);
	background: var(--imca-nav-bg);
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	margin-top: 0;
	top: 50%;
	transform: translateY(-50%);
}

.im-carousel .swiper-button-next::after,
.im-carousel .swiper-button-prev::after {
	font-size: 1rem;
	font-weight: 700;
}

.im-carousel .swiper-pagination-bullet-active,
.im-carousel .swiper-pagination-progressbar-fill {
	background: var(--imca-nav);
}

.im-carousel .swiper-pagination-fraction {
	color: var(--wp--preset--color--base, #fff);
}

@media (prefers-reduced-motion: reduce) {
	.im-carousel .swiper-wrapper {
		transition-duration: 0ms !important;
	}
}
