/* Carruseles Epic: ld_carousel / ld_testimonial_carousel (estructura .carousel-items > .swiper > .swiper-wrapper > .carousel-item). */
.carousel-container { position: relative; }
.carousel-container .carousel-items { position: relative; }
.carousel-container .flickity-viewport.swiper { width: 100%; overflow: hidden; margin: 0; padding: 0; }
.carousel-container .flickity-slider.swiper-wrapper { display: flex; align-items: flex-start; }
.carousel-container .carousel-item.swiper-slide {
	display: flex;
	flex-direction: column;
	justify-content: center;
	flex: 0 0 auto;
	height: auto;
	box-sizing: border-box;
}
.carousel-container .carousel-item-inner,
.carousel-container .carousel-item-content { position: relative; width: 100%; }
.carousel-container .carousel-item-content > p:only-child { width: 100%; margin-bottom: 0; }
.carousel-container .carousel-item-content img { max-width: 100%; height: auto; vertical-align: middle; }
.carousel-container .carousel-item-content img.aligncenter { display: block; margin-inline: auto; }

/* Galería: la imagen llena el alto definido en "Alto de items". */
/* Galería: imagen a su tamaño natural (sin estirar), limitada al ancho del item. */
.carousel-type-gallery .carousel-item-content { display: flex; height: 100%; }
.carousel-type-gallery .carousel-item-content img { max-width: 100%; height: auto; }


/* Flechas */
.carousel-nav-btn {
	position: absolute; top: 50%; z-index: 3;
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	background: #fff; color: #17181a; cursor: pointer;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
	transform: translateY(-50%);
	transition: background-color .3s, color .3s;
}
.carousel-nav-btn:hover { background: var(--color-primary, #6AFFC0); }
.carousel-nav-prev { left: 0; }
.carousel-nav-next { right: 0; }
.carousel-nav-btn.swiper-button-disabled { opacity: .35; cursor: default; }

/* Puntos */
.carousel-dots { position: relative; text-align: center; --epic-dot-c: rgba(51, 51, 51, .25); --epic-dot-a: #333; }
.carousel-dots-style4 .carousel-dots { --epic-dot-c: rgba(23, 24, 26, .2); --epic-dot-a: #17181a; }
.carousel-dots .flickity-page-dots {
	position: static; width: 100%; padding: 0; margin: 1.5em 0 0; list-style: none; line-height: 1;
	display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
}
.carousel-dots .flickity-page-dots .dot {
	display: inline-block; width: 10px; height: 10px; margin: 0 8px;
	border-radius: 5em; background-color: var(--epic-dot-c);
	cursor: pointer; transition: all .3s;
}
.carousel-dots .flickity-page-dots .dot.is-selected { background-color: var(--epic-dot-a); }
.carousel-dots-sm .flickity-page-dots .dot { width: 6px; height: 6px; margin: 0 5px; }
.carousel-dots-lg .flickity-page-dots .dot { width: 14px; height: 14px; }
.carousel-dots-style2 .flickity-page-dots .dot { background: transparent; box-shadow: inset 0 0 0 2px rgba(51, 51, 51, .35); }
.carousel-dots-style2 .flickity-page-dots .dot.is-selected { box-shadow: inset 0 0 0 5px #333; background: transparent; }
.carousel-dots-style3 .flickity-page-dots .dot { width: 20px; height: 3px; border-radius: 2px; }
/* Estilo 4: punto pequeño, el activo se alarga en píldora. */
.carousel-dots-style4 .flickity-page-dots .dot { width: 6px; height: 6px; margin: 0 5px; position: relative; }
.carousel-dots-style4 .flickity-page-dots .dot::before { content: ""; position: absolute; inset: -6px; }
.carousel-dots-style4 .flickity-page-dots .dot.is-selected { width: 15px; }
.carousel-dots-style4.carousel-dots-lg .flickity-page-dots .dot.is-selected { width: 25px; }

/* Puntos de tablet/móvil (estilo 4), ocultos en escritorio. */
.carousel-dots-mobile { display: none; width: 100%; --epic-dot-c: rgba(23, 24, 26, .2); --epic-dot-a: #17181a; }
.carousel-dots-mobile .flickity-page-dots {
	display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
	width: 100%; padding: 0; margin: var(--epic-dots-m-gap, 1.5em) 0 0; list-style: none; line-height: 1;
}
.carousel-dots-mobile-left .carousel-dots-mobile .flickity-page-dots { justify-content: flex-start; }
.carousel-dots-mobile-right .carousel-dots-mobile .flickity-page-dots { justify-content: flex-end; }
.carousel-dots-mobile .flickity-page-dots .dot {
	display: inline-block; position: relative; width: 6px; height: 6px; margin: 0 6px;
	border-radius: 5em; cursor: pointer; transition: all .3s;
	background-color: var(--epic-dots-m-color, var(--epic-dot-c));
}
.carousel-dots-mobile .flickity-page-dots .dot:first-child { margin-inline-start: 0; }
.carousel-dots-mobile .flickity-page-dots .dot::before { content: ""; position: absolute; inset: -6px; }
.carousel-dots-mobile .flickity-page-dots .dot.is-selected { width: 15px; background-color: var(--epic-dots-m-active, var(--epic-dot-a)); }
@media (max-width: 1024px) {
	.carousel-dots-desktop { display: none; }
	.carousel-dots-mobile { display: block; }
}
@media (max-width: 767px) {
	.carousel-container { max-width: 100vw; }
}
.elementor-editor-active .elementor-widget-ld_carousel > .elementor-widget-container,
.elementor-editor-active .elementor-widget-ld_testimonial_carousel > .elementor-widget-container { overflow: hidden; }

/* Lados desvanecidos */
.carousel-items.lqd-fade-sides .flickity-viewport {
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 15%, #000 85%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0%, #000 15%, #000 85%, transparent 100%);
}
/* Marquesina */
.flickity-viewport.is-marquee .swiper-wrapper { will-change: transform; transition: none; }
.flickity-viewport.is-marquee .carousel-item { flex-shrink: 0; }
.carousel-dots-mobile .flickity-page-dots:empty { display: none; }
