/* =========================================================
 * Base compartida
 * ======================================================= */
.svp-carousel,
.svp-carousel *,
.svp-hero,
.svp-hero * {
	box-sizing: border-box;
}

.svp-carousel {
	--svp-gap: 18px;
	--svp-pad-y: 20px;
	--svp-basis-current: var(--svp-basis-desktop);
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	isolation: isolate;
}

/* Extend the visible rail to the viewport while keeping its end cards on the content edges. */
.svp-carousel.svp-carousel--bleed {
	width: calc(100% + var(--svp-bleed-left, 0px) + var(--svp-bleed-right, 0px));
	max-width: none;
	margin-left: calc(-1 * var(--svp-bleed-left, 0px));
	margin-right: calc(-1 * var(--svp-bleed-right, 0px));
}

.svp-carousel.svp-carousel--bleed .svp-carousel__track,
.svp-carousel.svp-carousel--bleed ul.products.svp-carousel__track {
	padding-left: var(--svp-bleed-left, 20px) !important;
	padding-right: var(--svp-bleed-right, 20px) !important;
	scroll-padding-left: var(--svp-bleed-left, 20px);
	scroll-padding-right: var(--svp-bleed-right, 20px);
}

.svp-carousel__viewport {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.svp-carousel .woocommerce,
.svp-carousel .woocommerce ul.products {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.svp-carousel__track,
.svp-carousel ul.products {
	display: flex !important;
	flex-flow: row nowrap !important;
	align-items: stretch;
	gap: var(--svp-gap) !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin: 0 !important;
	padding: max(28px, var(--svp-pad-y)) 20px !important;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scroll-padding-inline:20px;
	scrollbar-width: none;
}
.svp-carousel ul.products.svp-carousel__track{padding:30px 20px!important;scroll-padding-inline:20px}

.svp-carousel__track::-webkit-scrollbar,
.svp-carousel ul.products::-webkit-scrollbar {
	display: none;
}

.svp-carousel ul.products::before,
.svp-carousel ul.products::after {
	display: none !important;
	content: none !important;
}

.svp-carousel__track > *,
.svp-carousel ul.products > li.product {
	float: none !important;
	clear: none !important;
	flex: 0 0 var(--svp-basis-current) !important;
	width: var(--svp-basis-current) !important;
	max-width: var(--svp-basis-current) !important;
	min-width: 0 !important;
	margin: 0 !important;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.svp-carousel__arrow,
.svp-hero__arrow {
	-webkit-appearance: none;
	appearance: none;
	position: absolute;
	top: 50%;
	z-index: 10;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	min-width: 38px;
	min-height: 38px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 50%;
	background: rgba(255, 255, 255, .96);
	color: var(--ast-global-color-1, #575757);
	box-shadow: 0 3px 12px rgba(0, 0, 0, .16);
	font: inherit;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .18s ease, color .18s ease, opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}

.svp-carousel__arrow:hover,
.svp-carousel__arrow:focus-visible,
.svp-hero__arrow:hover,
.svp-hero__arrow:focus-visible {
	background: #fff;
	color: var(--ast-global-color-0, #492cdd);
	box-shadow: 0 5px 16px rgba(0, 0, 0, .22);
	transform: translateY(-50%) scale(1.04);
}

.svp-carousel__arrow:focus-visible,
.svp-hero__arrow:focus-visible {
	outline: 2px solid var(--ast-global-color-0, #492cdd);
	outline-offset: 2px;
}

.svp-carousel__arrow svg,
.svp-hero__arrow svg {
	display: block;
	width: 36px;
	height: 36px;
	fill: currentColor;
	pointer-events: none;
}

.svp-carousel__arrow--prev,
.svp-hero__arrow--prev {
	left: 6px;
}

.svp-carousel__arrow--next,
.svp-hero__arrow--next {
	right: 6px;
}

.svp-carousel.is-static .svp-carousel__arrow,
.svp-carousel[data-arrows="0"] .svp-carousel__arrow {
	display: none;
}

.svp-carousel--mini .svp-carousel__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 14px;
	margin: 0 10px 4px;
}

.svp-carousel--mini .svp-carousel__dot {
	width: 7px;
	height: 7px;
	min-width: 7px;
	min-height: 7px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ast-global-color-1);
	opacity: .28;
	cursor: pointer;
}

.svp-carousel--mini .svp-carousel__dot.is-active {
	width: 18px;
	min-width: 18px;
	border-radius: 999px;
	opacity: .85;
}

.svp-carousel--mini .svp-carousel__dot:focus-visible {
	outline: 2px solid var(--ast-global-color-0, #492cdd);
	outline-offset: 2px;
}

.svp-carousel--mini.is-static .svp-carousel__dots:empty { display: none; }

/* =========================================================
 * Categorías nativas de WooCommerce
 * ======================================================= */
.svp-carousel--categories li.product-category a {
	display: block;
}

.svp-carousel--categories li.product-category img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.svp-carousel--categories li.product-category .woocommerce-loop-category__title {
	margin-bottom: 0;
}

/* =========================================================
 * Mini categorías / mini productos
 * ======================================================= */
.svp-mini-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	height: 100%;
	padding: 12px 4px;
	color: inherit;
	text-align: center;
	text-decoration: none !important;
	background: var(--ast-global-color-8);
	border: 1px solid var(--ast-code-block-background);
	border-radius: 10px;
	transition: transform .2s ease, box-shadow .2s ease;
}
a.svp-mini-card:hover {transform: translateY(-2px);box-shadow: 0 6px 10px rgba(0,0,0,.12)}

.svp-mini-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	max-width: 100%;
	padding: 5px;
	border-radius: 10px;
	background: var(--ast-global-color-8);
	overflow: hidden;
}

.svp-mini-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	object-fit: cover;
	border-radius: 10px;
}

.svp-mini-card__title {
	display: -webkit-box;
	max-width: 100%;
	margin: 0;
	overflow: hidden;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.svp-mini-card__count {
	font-size: 11px;
	font-weight: 500;
	opacity: .7;
}

/* =========================================================
 * Productos nativos de WooCommerce
 * ======================================================= */
.svp-carousel--products ul.products > li.product {
	display: flex;
	flex-direction: column;
}

/* =========================================================
 * Hero slider
 * Reglas reforzadas para evitar conflictos con Astra/Gutenberg.
 * ======================================================= */
.svp-hero {
	--svp-hero-height-current: var(--svp-hero-height-desktop, 560px);
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: #111;
	isolation: isolate;
}

.svp-hero--full {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

@media (min-width: 922px) {
	.svp-hero--full {
		--svp-hero-height-current: max(740px, var(--svp-hero-height-desktop, 560px));
	}
	.svp-hero--full .svp-hero__track > .svp-hero__slide {
		padding-inline: max(96px, calc((100vw - 1280px) / 2)) !important;
	}
	.svp-hero--full .svp-hero__content {
		width: min(100%, max(760px, var(--svp-content-width, 650px)));
	}
	.woocommerce-js .svp-hero--full button.svp-hero__arrow--prev {
		left: max(24px, calc((100vw - 1450px) / 2)) !important;
	}
	.woocommerce-js .svp-hero--full button.svp-hero__arrow--next {
		right: max(24px, calc((100vw - 1450px) / 2)) !important;
	}
}

@supports (width: 100dvw) {
	.svp-hero--full {
		width: 100dvw !important;
		max-width: 100dvw !important;
		margin-right: calc(50% - 50dvw) !important;
		margin-left: calc(50% - 50dvw) !important;
	}
}

.svp-hero__track {
	position: relative !important;
	display: flex !important;
	flex-flow: row nowrap !important;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.svp-hero__track::-webkit-scrollbar {
	display: none;
}

.svp-hero__track > .svp-hero__slide {
	position: relative !important;
	isolation: isolate;
	display: flex !important;
	flex: 0 0 100% !important;
	align-items: var(--svp-v-align, center) !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 100% !important;
	min-height: var(--svp-hero-height-current) !important;
	margin: 0 !important;
	padding: clamp(24px, 5vw, 80px) !important;
	border: 0 !important;
	background: #111 !important;
	color: var(--svp-text-color, #fff);
	overflow: hidden !important;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.svp-hero__media,
.svp-hero__media img {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.svp-hero__media {
	z-index: -3;
	overflow: hidden !important;
}

.svp-hero__media img {
	object-fit: var(--svp-image-fit, cover) !important;
	object-position: var(--svp-bg-position, center center) !important;
}

.svp-hero__overlay {
	position: absolute !important;
	z-index: -2;
	inset: 0 !important;
	background: rgba(0, 0, 0, var(--svp-overlay, .35));
	pointer-events: none;
}

.svp-hero--full .svp-hero__overlay {
	background: linear-gradient(90deg, rgb(0 0 0 / 66%), rgb(0 0 0 / 22%) 70%, rgb(0 0 0 / 8%));
}
.svp-hero--full .svp-hero__slide[data-align="right"] .svp-hero__overlay {
	background: linear-gradient(270deg, rgb(0 0 0 / 66%), rgb(0 0 0 / 22%) 70%, rgb(0 0 0 / 8%));
}
.svp-hero__slide[data-align="left"] .svp-hero__content{align-content:center}

@media (prefers-reduced-motion: no-preference) {
	.svp-hero--full .svp-hero__media img {
		transform: translateX(2%) scale(1.08);
		filter: brightness(.28);
		transition: transform 5s cubic-bezier(.2,.65,.2,1), filter 2s ease !important;
	}
	.svp-hero--full .svp-hero__slide.is-active .svp-hero__media img {
		transform: translateX(0) scale(1);
		filter: brightness(1);
		transition-duration: 5s, .8s !important;
	}
	.svp-hero--full .svp-hero__content {
		opacity: .72;
		transform: translateY(16px);
		transition: opacity .65s ease, transform .8s ease;
	}
	.svp-hero--full .svp-hero__slide.is-active .svp-hero__content {
		opacity: 1;
		transform: translateY(0);
	}
}

.svp-hero__content {
	position: relative;
	z-index: 1;
	width: min(100%, var(--svp-content-width, 650px));
	max-width: 100%;
	margin: 0;
	text-align: var(--svp-text-align, left);
}

.svp-hero__eyebrow {
	margin: 0 0 10px;
	font-size: clamp(12px, 1.2vw, 16px);
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.svp-hero__title {
	margin: 0;
	color: inherit;
	font-size: clamp(34px, 5vw, 72px);
	font-weight: 800;
	line-height: 1.02;
}

.svp-hero__text {
	margin-top: 18px;
	font-size: clamp(16px, 1.7vw, 22px);
	line-height: 1.45;
}

.svp-hero__text > :first-child {
	margin-top: 0;
}

.svp-hero__text > :last-child {
	margin-bottom: 0;
}

.svp-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 45px;
	margin-top: 24px;
	padding: 12px 22px;
	border: 2px solid transparent;
	border-radius: 4px;
	background: var(--ast-global-color-0, #5b32ff);
	color: #fff !important;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
	transition: filter .2s ease, transform .2s ease;
}

.svp-hero__button:hover,
.svp-hero__button:focus-visible {
	filter: brightness(1.08);
	transform: translateY(-1px);
}

.svp-hero__button--outline {
	border-color: currentColor;
	background: transparent;
	color: inherit !important;
}

/* Reset específico: Astra aplica estilos globales a todos los botones. */
.svp-hero .svp-hero__arrow,
.svp-hero .svp-hero__dot {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	font: inherit !important;
	line-height: 1 !important;
	cursor: pointer;
}

.svp-hero .svp-hero__arrow {
	position: absolute !important;
	top: 50% !important;
	z-index: 8 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 38px !important;
	height: 38px !important;
	padding: 0 !important;
	border: 1px solid rgba(0, 0, 0, .09) !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .96) !important;
	color: var(--ast-global-color-1, #575757) !important;
	box-shadow: 0 3px 12px rgba(0, 0, 0, .16) !important;
	transform: translateY(-50%) !important;
}

.svp-hero .svp-hero__arrow:hover,
.svp-hero .svp-hero__arrow:focus-visible {
	background: #fff !important;
	color: var(--ast-global-color-0, #492cdd) !important;
	box-shadow: 0 5px 16px rgba(0, 0, 0, .22) !important;
	transform: translateY(-50%) scale(1.05) !important;
}

.svp-hero .svp-hero__arrow svg {
	display: block !important;
	width: 36px !important;
	height: 36px !important;
	fill: currentColor !important;
}

.svp-hero .svp-hero__arrow--prev {
	left: 6px !important;
}

.svp-hero .svp-hero__arrow--next {
	right: 6px !important;
}

.svp-hero__dots {
	position: absolute !important;
	z-index: 9 !important;
	right: 50% !important;
	bottom: 20px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateX(50%) !important;
}

.svp-hero .svp-hero__dot {
	position:relative!important;
	display: block !important;
	width: 82px !important;
	height: 6px !important;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, .5) !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .28) !important;
	box-shadow: none !important;
	overflow:hidden!important;
}

.svp-hero .svp-hero__dot::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left center}
.svp-hero .svp-hero__dot.is-active::after{transform:scaleX(1)}
.svp-hero.is-autoplay-running .svp-hero__dot.is-active::after{animation:svp-hero-progress var(--svp-autoplay-duration,5000ms) linear forwards;animation-delay:calc(-1 * var(--svp-autoplay-elapsed,0ms))}
@keyframes svp-hero-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.svp-hero .svp-hero__dot::after{animation:none!important}}

.svp-hero[data-arrows="0"] .svp-hero__arrow,
.svp-hero[data-dots="0"] .svp-hero__dots,
.svp-hero.is-static .svp-hero__arrow,
.svp-hero.is-static .svp-hero__dots {
	display: none !important;
}

/* =========================================================
 * Responsive
 * ======================================================= */
@media (max-width: 921px) {
	.svp-carousel {
		--svp-basis-current: var(--svp-basis-tablet);
	}

	.svp-mini-card__media {
		width: 64px;
		height: 64px;
	}

	.svp-mini-card__title {
		font-size: 12px;
	}

	.svp-hero {
		--svp-hero-height-current: var(--svp-hero-height-tablet, 440px);
	}

	.svp-hero__track > .svp-hero__slide {
		padding: 42px !important;
	}
}

@media (max-width: 767px) {
	.svp-carousel {
		--svp-basis-current: var(--svp-basis-mobile);
	}

	.svp-carousel__arrow,
	.svp-hero .svp-hero__arrow {
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		min-height: 32px !important;
	}

	.svp-carousel__arrow svg,
	.svp-hero .svp-hero__arrow svg {
		width: 30px !important;
		height: 30px !important;
	}

	.svp-mini-card {
		gap: 6px;
	}

	.svp-mini-card__media {
		width: 54px;
		height: 54px;
	}

	.svp-mini-card__title {
		font-size: 11px;
	}

	.svp-hero {
		--svp-hero-height-current: var(--svp-hero-height-mobile, 360px);
	}

	.svp-hero__track > .svp-hero__slide {
		padding: 28px 22px 50px !important;
	}

	.svp-hero__title {
		font-size: clamp(30px, 11vw, 48px);
	}

	.svp-hero__text {
		margin-top: 14px;
		font-size: 16px;
	}

	.svp-hero__button {
		min-height: 45px;
		margin-top: 20px;
		padding: 10px 18px;
	}


	.svp-carousel__arrow--prev,
	.svp-hero .svp-hero__arrow--prev {
		left: 4px !important;
	}

	.svp-carousel__arrow--next,
	.svp-hero .svp-hero__arrow--next {
		right: 4px !important;
	}

	.svp-hero__dots {
		bottom: 14px !important;
	}
}


/* =========================================================
 * Flechas unificadas: alta especificidad para ganar a Astra
 * y a reglas globales de WooCommerce con !important.
 * ======================================================= */
.woocommerce-js button.svp-carousel__arrow,
.woocommerce-js button.svp-hero__arrow {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: absolute !important;
	top: 50% !important;
	z-index: 10 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 50px !important;
	min-width: 50px !important;
	height: 50px !important;
	min-height: 50px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 50px !important;
	background: #d2d2d7a3 !important;
	border: 0 !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	cursor: pointer !important;
	overflow: hidden !important;
	transform: translateY(-50%) !important;
	transition: background-color .2s ease, opacity .2s ease !important;
}

.woocommerce-js button.svp-carousel__arrow:hover,
.woocommerce-js button.svp-carousel__arrow:focus-visible,
.woocommerce-js button.svp-hero__arrow:hover,
.woocommerce-js button.svp-hero__arrow:focus-visible {
	color: #000000a3 !important;
	background: #dfdfe2b2 !important;
	border: 0 !important;
	box-shadow: none !important;
	transform: translateY(-50%) !important;
}

.woocommerce-js button.svp-carousel__arrow:focus-visible,
.woocommerce-js button.svp-hero__arrow:focus-visible {
	outline: 2px solid var(--ast-global-color-0, #492cdd) !important;
	outline-offset: 2px !important;
}

.woocommerce-js button.svp-carousel__arrow svg,
.woocommerce-js button.svp-hero__arrow svg {
	display: block !important;
	width: 36px !important;
	height: 36px !important;
	margin: 0 !important;
	fill: #000000a3 !important;
	color: #000000a3 !important;
	pointer-events: none !important;
}

.woocommerce-js button.svp-carousel__arrow--prev,
.woocommerce-js button.svp-hero__arrow--prev {
	left: 6px !important;
}

.woocommerce-js button.svp-carousel__arrow--next,
.woocommerce-js button.svp-hero__arrow--next {
	right: 6px !important;
}

.woocommerce-js button.svp-carousel__arrow.is-edge-hidden,
.woocommerce-js button.svp-hero__arrow.is-edge-hidden,
.woocommerce-js button.svp-carousel__arrow:disabled,
.woocommerce-js button.svp-hero__arrow:disabled,
.woocommerce-js .svp-carousel.is-static button.svp-carousel__arrow,
.woocommerce-js .svp-carousel[data-arrows="0"] button.svp-carousel__arrow,
.woocommerce-js .svp-hero.is-static button.svp-hero__arrow,
.woocommerce-js .svp-hero[data-arrows="0"] button.svp-hero__arrow {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.svp-carousel__track,
	.svp-carousel ul.products,
	.svp-hero__track {
		scroll-behavior: auto;
	}

	.svp-mini-card__media,
	.svp-carousel__arrow,
	.svp-hero__arrow,
	.svp-hero__button,
	.svp-hero__dot {
		transition: none;
	}
}

@media(max-width:544px){.svp-hero .svp-hero__dot{width:58px!important}}

/* A static hero does not advertise or initialize carousel interactions. */
.svp-hero--static .svp-hero__track{overflow:hidden!important;scroll-snap-type:none;scroll-behavior:auto}
.svp-hero--static .svp-hero__slide{scroll-snap-align:none}
.svp-hero--static .svp-hero__button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;margin-inline-end:.75rem}
@media(max-width:767px){body.home .svp-hero--static .svp-hero__slide{min-height:var(--svp-hero-height-current)!important;height:auto!important;overflow:visible!important;padding-block:2rem!important}body.home .svp-hero--static .svp-hero__content{max-width:100%}body.home .svp-hero--static .svp-hero__button{margin-top:.75rem!important}}
body.home .svp-hero--static .svp-hero__button--outline{background:transparent!important;background-image:none!important;color:#fff!important;border:1px solid #c9a5ee!important;box-shadow:none!important}
body.home .svp-hero--static .svp-hero__button--outline:hover,body.home .svp-hero--static .svp-hero__button--outline:focus-visible{background:#291a3f!important;color:#fff!important;outline:2px solid #c9a5ee;outline-offset:3px}
