/* Carrusel de productos. Especificidad baja: los controles de Elementor ({{WRAPPER}}) siempre ganan. */

.wzpy-products {
	--wzpy-pv-cur: var(--wzpy-pv);
	--wzpy-gap-cur: var(--wzpy-gap);
	position: relative;
}

@media (max-width: 1024px) {
	.wzpy-products {
		--wzpy-pv-cur: var(--wzpy-pv-t);
		--wzpy-gap-cur: var(--wzpy-gap-t);
	}
}

@media (max-width: 767px) {
	.wzpy-products {
		--wzpy-pv-cur: var(--wzpy-pv-m);
		--wzpy-gap-cur: var(--wzpy-gap-m);
	}
}

.wzpy-products__viewport {
	position: relative;
}

/* Antes de que Swiper inicialice: mismo layout para evitar saltos. */
.wzpy-products__swiper:not(.swiper-initialized) .swiper-wrapper {
	gap: var(--wzpy-gap-cur);
}

.wzpy-products__swiper:not(.swiper-initialized) .swiper-slide {
	flex-shrink: 0;
	width: calc((100% - (var(--wzpy-pv-cur) - 1) * var(--wzpy-gap-cur)) / var(--wzpy-pv-cur));
}

.wzpy-products .swiper-slide {
	height: auto;
}

/* Estilo Tarjetas: aire para que no se corte el borde/sombra dentro del swiper. */
.wzpy-products--cards .wzpy-products__swiper {
	padding: 4px 2px;
}

/* ---------- Flechas ---------- */

.wzpy-products .wzpy-products__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	min-height: 36px; /* min-height: el tema fuerza "button { height: inherit !important }" */
	margin: 0;
	padding: 0;
	border: 1px solid #e5e5e5;
	border-radius: 50%;
	background: #fff;
	color: #333;
	font-size: 14px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
	cursor: pointer;
	transform: translateY(-50%);
	transition: all .2s;
}

.wzpy-products__arrow svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.wzpy-products .wzpy-products__arrow:hover {
	border-color: #ff6500;
	background: #ff6500;
	color: #fff;
}

.wzpy-products__arrow--prev { left: 8px; }
.wzpy-products__arrow--next { right: 8px; }

.wzpy-products--arrows-outside .wzpy-products__viewport {
	padding: 0 48px;
}

.wzpy-products--arrows-outside .wzpy-products__arrow--prev { left: 0; }
.wzpy-products--arrows-outside .wzpy-products__arrow--next { right: 0; }

.wzpy-products__arrow.swiper-button-disabled {
	opacity: .35;
	cursor: default;
}

.wzpy-products__arrow.swiper-button-lock {
	display: none;
}

@media (max-width: 767px) {
	.wzpy-products--arrows-hide-mobile-yes .wzpy-products__arrow {
		display: none;
	}

	.wzpy-products--arrows-hide-mobile-yes .wzpy-products__viewport {
		padding: 0;
	}
}

/* ---------- Paginación ---------- */

.wzpy-products .wzpy-products__pagination {
	--wzpy-pag-color: #d0d0d0;
	--wzpy-pag-active: #ff6500;
	--swiper-pagination-color: var(--wzpy-pag-active);
	position: relative;
	inset: auto;
	margin-top: 16px;
	color: #666;
	font-size: 14px;
	text-align: center;
}

.wzpy-products__pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0 4px;
	background: var(--wzpy-pag-color);
	opacity: 1;
}

.wzpy-products__pagination .swiper-pagination-bullet-active {
	background: var(--wzpy-pag-active);
}

.wzpy-products .wzpy-products__pagination--progressbar {
	width: 100%;
	height: 4px;
	overflow: hidden;
	border-radius: 4px;
	background: var(--wzpy-pag-color);
}

.wzpy-products__empty {
	margin: 0;
	padding: 20px;
	color: #777;
	text-align: center;
}
