/*
 * The Swiftie Vault — Widgets Elementor
 * Port fiel del sitio Next.js: mismos tokens, tipografía, animaciones y
 * componentes. Todo vive bajo :is(.sv-w,#sv-x) para no chocar con el tema.
 * Animación: solo transform y opacity; respeta prefers-reduced-motion.
 */

/*
 * Especificidad: los selectores usan :is(.sv-w,#sv-x). Es el mismo elemento (.sv-w),
 * pero con el peso de un ID, para que ningún tema (Elessi, Astra, Hello…) pise los
 * estilos de los widgets. #sv-x no existe en el HTML; solo aporta especificidad.
 */

/* ------------------------------------------------------------------
   Tokens (HANDOFF §4)
   ------------------------------------------------------------------ */
:root {
	--sv-ivory: #fbf7f0;
	--sv-sand: #f3ebdd;
	--sv-paper: #ffffff;
	--sv-ink: #1e1a14;
	--sv-muted: #5f564a;
	--sv-gold: #b8860b;
	--sv-gold-deep: #8a6508;
	--sv-gold-soft: #f1e3b8;
	--sv-gold-ink: #7a5a07;
	--sv-line: #e6dcc8;
	--sv-line-strong: #cdbfa5;
	--sv-glow-gold: #f6e7b9;
	--sv-glow-lilac: #efe3f5;
	--sv-gold-mid: #e9cf85;
	--sv-gold-warm: #d4aa48;
	--sv-ivory-dim: #e9e0cf;
	--sv-tile: #eadfc8;
	--sv-board: #d9c9a6;
	--sv-blush: #f3a9be;
	--sv-seed: #e0b44c;

	--sv-font-display: 'Fraunces', 'Iowan Old Style', Georgia, serif;
	--sv-font-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--sv-r-card: 28px;
	--sv-r-card-lg: 36px;
	--sv-r-panel: 40px;

	--sv-shadow-warm-sm: 0 10px 24px rgba(138, 101, 8, 0.12);
	--sv-shadow-warm: 0 18px 40px rgba(138, 101, 8, 0.15);
	--sv-shadow-warm-lg: 0 30px 60px rgba(138, 101, 8, 0.22);
	--sv-shadow-ink: 0 14px 30px rgba(30, 26, 20, 0.12);
	--sv-shadow-panel: 0 24px 60px rgba(138, 101, 8, 0.1);

	--sv-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--sv-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ------------------------------------------------------------------
   Base y blindaje frente al tema
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) {
	font-family: var(--sv-font-sans);
	color: var(--sv-ink);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
:is(.sv-w,#sv-x) *,
:is(.sv-w,#sv-x) *::before,
:is(.sv-w,#sv-x) *::after {
	box-sizing: border-box;
}
:is(.sv-w,#sv-x) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) {
	margin: 0;
}
:is(.sv-w,#sv-x) :where(ul, ol) {
	list-style: none;
	padding: 0;
}
/* El tema no impone su tipografía dentro de los widgets: el texto hereda de .sv-w
   (las clases propias, p. ej. títulos en Fraunces, siguen mandando). */
:is(.sv-w,#sv-x) :where(p, li, a, span, dt, dd, label, small, strong, b, em, output, input, textarea, button, h1, h2, h3, h4, blockquote) {
	font-family: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}
:is(.sv-w,#sv-x) :where(p, li, dt, dd, span, a, label, output) {
	font-size: inherit;
	line-height: inherit;
}
:is(.sv-w,#sv-x) :where(img, svg, video) {
	display: block;
	max-width: 100%;
}
:is(.sv-w,#sv-x) a,
:is(.sv-w,#sv-x) a:hover,
:is(.sv-w,#sv-x) a:focus {
	color: inherit;
	text-decoration: none;
}
/* Estados: el tema no debe pintar fondos/colores propios al pasar el mouse.
   Cada componente define --sv-bbg / --sv-bfg (también en sus :hover). */
:is(.sv-w,#sv-x) button:hover,
:is(.sv-w,#sv-x) button:focus,
:is(.sv-w,#sv-x) [type='button']:hover,
:is(.sv-w,#sv-x) [type='button']:focus,
:is(.sv-w,#sv-x) [type='submit']:hover,
:is(.sv-w,#sv-x) [type='submit']:focus {
	background-color: var(--sv-bbg, transparent);
	color: var(--sv-bfg, inherit);
	text-decoration: none;
	box-shadow: none;
}
:is(.sv-w,#sv-x) button,
:is(.sv-w,#sv-x) [type='button'],
:is(.sv-w,#sv-x) [type='submit'] {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--sv-bbg, transparent);
	color: var(--sv-bfg, inherit);
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	letter-spacing: inherit;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	line-height: inherit;
	white-space: normal;
	/* Temas como Elessi fuerzan height:42px, inline-flex centrado y bordes en todo <button> */
	display: inline-block;
	height: auto;
	min-height: 0;
	width: auto;
	align-items: normal;
	justify-content: normal;
	vertical-align: middle;
	text-align: inherit;
	float: none;
}
:is(.sv-w,#sv-x) :focus-visible {
	outline: 3px solid var(--sv-gold);
	outline-offset: 3px;
	border-radius: 6px;
}
:is(.sv-w,#sv-x) ::selection {
	background: var(--sv-gold-soft);
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) em {
	font-style: italic;
}
.sv-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.sv-icon {
	flex: none;
}
.sv-gold {
	color: var(--sv-gold);
}

/* Sección y contenedor */
:is(.sv-w,#sv-x).sv-section {
	position: relative;
	width: 100%;
	background-color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-shell {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 20px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-shell {
		padding-inline: 40px;
	}
}
:is(.sv-w,#sv-x).sv-bg-sand {
	background-color: var(--sv-sand);
}
:is(.sv-w,#sv-x).sv-glow-tr {
	background-image: radial-gradient(900px 520px at 88% 8%, var(--sv-glow-gold) 0%, transparent 62%), radial-gradient(700px 420px at 0% 100%, var(--sv-glow-lilac) 0%, transparent 60%);
}
:is(.sv-w,#sv-x).sv-glow-tl {
	background-image: radial-gradient(800px 420px at 12% 0%, var(--sv-glow-gold) 0%, transparent 62%), radial-gradient(600px 400px at 100% 100%, var(--sv-glow-lilac) 0%, transparent 60%);
}
:is(.sv-w,#sv-x).sv-glow-tc {
	background-image: radial-gradient(800px 420px at 50% 0%, var(--sv-glow-gold) 0%, transparent 62%), radial-gradient(600px 400px at 100% 100%, var(--sv-glow-lilac) 0%, transparent 60%);
}

/* ------------------------------------------------------------------
   Tipografía
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-h-hero,
:is(.sv-w,#sv-x) .sv-h-page,
:is(.sv-w,#sv-x) .sv-h-page-sm,
:is(.sv-w,#sv-x) .sv-h-section,
:is(.sv-w,#sv-x) .sv-h-sub,
:is(.sv-w,#sv-x) .sv-h-card {
	font-family: var(--sv-font-display);
	font-weight: 600;
	color: var(--sv-ink);
	text-transform: none;
}
:is(.sv-w,#sv-x) .sv-h-hero {
	font-size: var(--sv-title-size, clamp(3.1rem, 6.4vw, 5.75rem));
	line-height: 0.98;
	letter-spacing: -0.03em;
}
:is(.sv-w,#sv-x) .sv-h-page {
	font-size: var(--sv-title-size, clamp(2.75rem, 5.6vw, 5rem));
	line-height: 1;
	letter-spacing: -0.03em;
}
:is(.sv-w,#sv-x) .sv-h-page-sm {
	font-size: var(--sv-title-size, clamp(2.6rem, 5vw, 4.5rem));
	line-height: 1;
	letter-spacing: -0.03em;
}
:is(.sv-w,#sv-x) .sv-h-section {
	font-size: var(--sv-title-size, clamp(2.2rem, 4.2vw, 3.6rem));
	line-height: 1.05;
	letter-spacing: -0.02em;
}
:is(.sv-w,#sv-x) .sv-h-sub {
	font-size: var(--sv-title-size, clamp(2.1rem, 3.6vw, 3rem));
	line-height: 1.05;
	letter-spacing: -0.02em;
}
:is(.sv-w,#sv-x) .sv-h-card {
	font-size: var(--sv-title-size, clamp(1.5rem, 2.2vw, 2rem));
	line-height: 1.1;
	letter-spacing: -0.01em;
}
:is(.sv-w,#sv-x) .sv-accent {
	font-family: var(--sv-font-display);
	font-style: italic;
	font-weight: 600;
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-theme-dark .sv-heading__title,
:is(.sv-w,#sv-x).sv-theme-dark .sv-heading__title {
	color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-theme-dark .sv-accent,
:is(.sv-w,#sv-x).sv-theme-dark .sv-accent {
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-theme-dark .sv-heading__lead,
:is(.sv-w,#sv-x).sv-theme-dark .sv-heading__lead {
	color: var(--sv-ivory-dim);
}

/* Encabezado */
:is(.sv-w,#sv-x) .sv-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}
:is(.sv-w,#sv-x) .sv-heading__lead {
	font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
	line-height: 1.6;
	color: var(--sv-muted);
	max-width: 640px;
}
:is(.sv-w,#sv-x) .sv-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: inherit;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--sv-gold-soft);
	color: var(--sv-gold-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.2;
}
:is(.sv-w,#sv-x) .sv-eyebrow .sv-icon {
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-badge {
	display: inline-flex;
	align-self: flex-start;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--sv-gold-soft);
	color: var(--sv-gold-ink);
	font-size: 13px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
:is(.sv-w,#sv-x) .sv-pills li {
	border: 1px solid var(--sv-line);
	background: var(--sv-sand);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 600;
}
:is(.sv-w,#sv-x).sv-stars,
:is(.sv-w,#sv-x) .sv-stars {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	font-size: 15px;
	font-weight: 600;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x).sv-stars--stacked,
:is(.sv-w,#sv-x) .sv-stars--stacked {
	flex-direction: column;
}
:is(.sv-w,#sv-x) .sv-stars li {
	display: flex;
	align-items: center;
	gap: 8px;
}
:is(.sv-w,#sv-x) .sv-stars .sv-icon {
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* ------------------------------------------------------------------
   Revelado por líneas y entradas
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-line-mask {
	display: block;
	overflow: hidden;
	padding: 0 0.12em 0.08em;
	margin: 0 -0.12em -0.08em;
}
:is(.sv-w,#sv-x) .sv-line {
	display: block;
	animation: sv-line-up 700ms var(--sv-ease) both;
	animation-delay: calc(var(--i, 0) * 80ms + var(--d, 0ms));
}
@keyframes sv-line-up {
	from {
		transform: translateY(105%);
	}
	to {
		transform: translateY(0);
	}
}
:is(.sv-w,#sv-x) .sv-line-view {
	display: block;
	opacity: 0;
	transform: translateY(105%);
	transition:
		opacity 700ms var(--sv-ease),
		transform 700ms var(--sv-ease);
	transition-delay: calc(var(--i, 0) * 80ms + var(--d, 0ms));
}
:is(.sv-w,#sv-x) [data-inview='true'] .sv-line-view,
:is(.sv-w,#sv-x)[data-inview='true'] .sv-line-view {
	opacity: 1;
	transform: none;
}
:is(.sv-w,#sv-x) .sv-rise-in,
:is(.sv-w,#sv-x).sv-rise-in {
	animation: sv-rise 700ms var(--sv-ease) both;
	animation-delay: var(--d, 0ms);
}
@keyframes sv-rise {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
:is(.sv-w,#sv-x) [data-reveal],
:is(.sv-w,#sv-x)[data-reveal],
:is(.sv-w,#sv-x) [data-reveal-group] > [data-reveal-item] {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 700ms var(--sv-ease),
		transform 700ms var(--sv-ease);
	transition-delay: var(--delay, 0ms);
}
:is(.sv-w,#sv-x) [data-reveal][data-inview='true'],
:is(.sv-w,#sv-x)[data-reveal][data-inview='true'],
:is(.sv-w,#sv-x) [data-reveal-group][data-inview='true'] > [data-reveal-item] {
	opacity: 1;
	transform: none;
}
/* En el editor de Elementor todo se ve sin esperar el scroll */
.elementor-editor-active :is(.sv-w,#sv-x) [data-reveal],
.elementor-editor-active :is(.sv-w,#sv-x)[data-reveal],
.elementor-editor-active :is(.sv-w,#sv-x) [data-reveal-item],
.elementor-editor-active :is(.sv-w,#sv-x) .sv-line-view {
	opacity: 1;
	transform: none;
}

/* Bucles suaves */
:is(.sv-w,#sv-x) .sv-anim-float {
	animation: sv-float 5s ease-in-out infinite;
}
:is(.sv-w,#sv-x) .sv-anim-float-slow {
	animation: sv-float 6s ease-in-out infinite;
}
:is(.sv-w,#sv-x) .sv-anim-levitate {
	animation: sv-levitate 7s ease-in-out infinite;
}
:is(.sv-w,#sv-x) .sv-anim-breathe {
	animation: sv-breathe 6s ease-in-out infinite;
}
@keyframes sv-float {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-8px);
	}
}
@keyframes sv-levitate {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
}
@keyframes sv-breathe {
	0%,
	100% {
		transform: scale(0.94);
		opacity: 0.55;
	}
	50% {
		transform: scale(1.06);
		opacity: 0.9;
	}
}
@keyframes sv-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@keyframes sv-pop {
	from {
		opacity: 0;
		transform: scale(0.92);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* ------------------------------------------------------------------
   Botones: imán (hasta 8 px), brillo dorado que cruza, presión
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-magnetic {
	display: inline-flex;
	max-width: 100%;
	width: var(--sv-btn-w, auto);
	transition: transform 380ms var(--sv-spring);
	will-change: transform;
}
:is(.sv-w,#sv-x) .sv-btn {
	--sv-bbg: var(--sv-ink);
	--sv-bfg: var(--sv-ivory);
	position: relative;
	display: inline-flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border: 1.5px solid var(--sv-bbd, var(--sv-bbg));
	border-radius: 999px;
	background-color: var(--sv-bbg);
	color: var(--sv-bfg);
	font-family: var(--sv-font-sans);
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	text-align: center;
	user-select: none;
	transition:
		background-color 300ms ease,
		color 300ms ease,
		box-shadow 300ms ease,
		transform 300ms ease;
}
:is(.sv-w,#sv-x) .sv-btn:active {
	transform: scale(0.97);
}
:is(.sv-w,#sv-x) .sv-btn--sm {
	min-height: 46px;
	padding: 0 20px;
	font-size: 15px;
}
:is(.sv-w,#sv-x) .sv-btn--lg {
	min-height: 58px;
	padding: 0 30px;
	font-size: 17px;
}
:is(.sv-w,#sv-x) .sv-btn--block {
	width: 100%;
}
:is(.sv-w,#sv-x) .sv-btn--ink:hover {
	box-shadow: var(--sv-shadow-ink);
}
:is(.sv-w,#sv-x) .sv-btn--gold {
	--sv-bbg: var(--sv-gold);
	--sv-bfg: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-btn--gold:hover {
	box-shadow: var(--sv-shadow-warm);
}
:is(.sv-w,#sv-x) .sv-btn--ghost {
	--sv-bbg: transparent;
	--sv-bfg: var(--sv-ink);
	--sv-bbd: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-btn--ghost:hover,
:is(.sv-w,#sv-x) .sv-btn--ghost:focus-visible {
	--sv-bbg: var(--sv-ink);
	--sv-bfg: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-btn--ghost-light {
	--sv-bbg: transparent;
	--sv-bfg: var(--sv-ivory);
	--sv-bbd: rgba(251, 247, 240, 0.7);
}
:is(.sv-w,#sv-x) .sv-btn--ghost-light:hover {
	--sv-bbg: var(--sv-ivory);
	--sv-bfg: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-btn-shine {
	overflow: hidden;
	isolation: isolate;
}
:is(.sv-w,#sv-x) .sv-btn-shine::after {
	content: '';
	position: absolute;
	inset: -2px;
	z-index: -1;
	background: linear-gradient(105deg, transparent 30%, rgba(255, 244, 214, 0.55) 48%, rgba(255, 255, 255, 0.15) 54%, transparent 66%);
	transform: translateX(-120%);
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-btn-shine:hover::after {
	transition: transform 750ms var(--sv-ease);
	transform: translateX(120%);
}
:is(.sv-w,#sv-x) .sv-btn__icon {
	transition: transform 300ms var(--sv-ease);
}
:is(.sv-w,#sv-x) .sv-btn-shine:hover .sv-btn__icon {
	transform: translateX(4px);
}
:is(.sv-w,#sv-x).sv-btn-row,
:is(.sv-w,#sv-x) .sv-btn-row {
	display: flex;
}

/* ------------------------------------------------------------------
   Pulseras de la amistad
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-bracelet-wrap {
	position: relative;
	display: flex;
	justify-content: center;
	width: 100%;
}
:is(.sv-w,#sv-x) .sv-bracelet-cord {
	position: absolute;
	inset-inline: 0;
	top: 50%;
	height: 2px;
	margin-top: -1px;
	background: var(--sv-gold);
	opacity: 0.75;
	transform: scaleX(0);
	transform-origin: left center;
}
:is(.sv-w,#sv-x) [data-inview='true'] > .sv-bracelet-cord {
	transform: scaleX(1);
	transition: transform 900ms var(--sv-ease);
}
:is(.sv-w,#sv-x) .sv-bracelet {
	position: relative;
	display: flex;
	align-items: center;
	--bead: min(var(--bead-sm), calc((100vw - var(--inset, 24px)) / var(--u-sm)));
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-bracelet {
		--bead: min(var(--bead-lg), calc((min(100vw, 1440px) - var(--inset, 24px) - 16px) / var(--u-lg)));
	}
}
:is(.sv-w,#sv-x) .sv-bd {
	--s: calc(var(--bead) * var(--w, 1));
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--s);
	height: var(--s);
	border-radius: 50%;
	background: var(--c);
	color: var(--sv-ink);
	font-family: var(--sv-font-display);
	font-weight: 600;
	font-size: calc(var(--s) * 0.43);
	line-height: 1;
	box-shadow:
		inset 0 -4px 8px rgba(0, 0, 0, 0.12),
		inset 0 3px 6px rgba(255, 255, 255, 0.45);
	opacity: 0;
	translate: 0 -34px;
	transition:
		transform 380ms var(--sv-spring),
		background-color 400ms ease,
		color 400ms ease;
}
:is(.sv-w,#sv-x) .sv-bd-cube {
	border-radius: 24%;
}
:is(.sv-w,#sv-x) .sv-bd-dark {
	color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-bd-seed {
	--w: 0.3;
	background: var(--sv-seed);
	box-shadow:
		inset 0 -2px 3px rgba(0, 0, 0, 0.18),
		inset 0 1px 2px rgba(255, 255, 255, 0.5);
}
:is(.sv-w,#sv-x) .sv-bd-shape {
	background: none;
	box-shadow: none;
	border-radius: 0;
	color: var(--c);
}
:is(.sv-w,#sv-x) .sv-bd-shape > svg {
	width: 100%;
	height: 100%;
	overflow: visible;
	filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.2));
}
@media (max-width: 639.98px) {
	:is(.sv-w,#sv-x) .sv-bd-hs {
		display: none;
	}
}
:is(.sv-w,#sv-x) [data-inview='true'] .sv-bd {
	animation: sv-bead-drop 620ms var(--sv-spring) both;
	animation-delay: calc(var(--i, 0) * 35ms + 120ms);
}
@keyframes sv-bead-drop {
	0% {
		opacity: 0;
		translate: 0 -34px;
	}
	40% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		translate: 0 0;
	}
}
@media (hover: hover) and (pointer: fine) {
	:is(.sv-w,#sv-x) .sv-bd:hover {
		transform: translateY(calc(var(--bead) * -0.22));
	}
	:is(.sv-w,#sv-x) .sv-bd:hover + .sv-bd {
		transform: translate(calc(var(--bead) * 0.07), calc(var(--bead) * -0.09));
	}
	:is(.sv-w,#sv-x) .sv-bd:hover + .sv-bd + .sv-bd {
		transform: translate(calc(var(--bead) * 0.03), calc(var(--bead) * -0.03));
	}
	:is(.sv-w,#sv-x) .sv-bd:has(+ .sv-bd:hover) {
		transform: translate(calc(var(--bead) * -0.07), calc(var(--bead) * -0.09));
	}
	:is(.sv-w,#sv-x) .sv-bd:has(+ .sv-bd + .sv-bd:hover) {
		transform: translate(calc(var(--bead) * -0.03), calc(var(--bead) * -0.03));
	}
}
.elementor-editor-active :is(.sv-w,#sv-x) .sv-bd {
	opacity: 1;
	translate: none;
}
.elementor-editor-active :is(.sv-w,#sv-x) .sv-bracelet-cord {
	transform: none;
}
:is(.sv-w,#sv-x).sv-bracelet-block {
	padding: 48px 0 32px;
	overflow: hidden;
}
:is(.sv-w,#sv-x) .sv-footer__bracelet {
	padding: 48px 0 32px;
	overflow: hidden;
	background: var(--sv-ivory);
}

/* ------------------------------------------------------------------
   Tarjetas + inclinación 3D
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-tilt-persp {
	height: 100%;
	perspective: 1200px;
}
:is(.sv-w,#sv-x) .sv-tilt {
	position: relative;
	height: 100%;
	border-radius: var(--sv-r-card-lg);
	transform-style: preserve-3d;
	transition:
		transform 500ms ease-out,
		box-shadow 500ms ease;
}
:is(.sv-w,#sv-x) .sv-tilt:hover {
	box-shadow: var(--sv-shadow-warm-lg);
}
:is(.sv-w,#sv-x) .sv-tilt__glare-clip {
	position: absolute;
	inset: 0;
	overflow: hidden;
	border-radius: inherit;
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-tilt__glare {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 500ms ease;
	background: radial-gradient(420px circle at 50% 50%, rgba(255, 250, 235, 0.55), rgba(255, 250, 235, 0) 60%);
}
:is(.sv-w,#sv-x) .sv-card {
	display: flex;
	flex-direction: column;
	gap: 18px;
	height: 100%;
	padding: 28px;
	border: 1px solid var(--sv-line);
	border-radius: var(--sv-r-card-lg);
	background: var(--sv-paper);
}
:is(.sv-w,#sv-x) .sv-card__arch {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 230px;
	width: 100%;
	max-width: 300px;
	margin: 0 auto;
	border-radius: 150px 150px 28px 28px;
	overflow: hidden;
}
:is(.sv-w,#sv-x) .sv-card__art {
	width: 170px;
	height: 170px;
	margin-bottom: 24px;
}
:is(.sv-w,#sv-x) .sv-card__media img {
	width: 100%;
	border-radius: 20px;
}
:is(.sv-w,#sv-x) .sv-card__number {
	font-family: var(--sv-font-display);
	font-weight: 600;
	font-size: 48px;
	line-height: 1;
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-card__title {
	font-family: var(--sv-font-display);
	font-weight: 600;
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	line-height: 1.1;
}
:is(.sv-w,#sv-x) .sv-card__text {
	font-size: 16px;
	line-height: 1.65;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-card__cta {
	margin-top: auto;
}
:is(.sv-w,#sv-x) .sv-art {
	display: block;
}
:is(.sv-w,#sv-x) .sv-era-art {
	transition: color 0.5s ease;
}

/* Bloque ilustración */
:is(.sv-w,#sv-x).sv-art-block {
	display: flex;
	justify-content: center;
}
:is(.sv-w,#sv-x) .sv-art-block__frame {
	width: 158px;
	aspect-ratio: 1;
}
:is(.sv-w,#sv-x) .sv-art-block__frame .sv-art {
	width: 100%;
	height: 100%;
}
:is(.sv-w,#sv-x) .sv-art-block__frame--patch {
	padding: 5%;
	border-radius: 13%;
	background: var(--sv-ivory);
	box-shadow: 0 12px 24px rgba(30, 26, 20, 0.18);
}
:is(.sv-w,#sv-x) .sv-art-block__frame--arch {
	padding: 12% 10% 0;
	border-radius: 50% 50% 14% 14%;
	aspect-ratio: 0.82;
}

/* Arco */
:is(.sv-w,#sv-x).sv-arch-block,
:is(.sv-w,#sv-x) .sv-arch-block {
	display: flex;
	justify-content: center;
}
:is(.sv-w,#sv-x) .sv-arch {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 230px;
	height: 300px;
	border-radius: 115px 115px 28px 28px;
	background: linear-gradient(165deg, var(--sv-arch-a, var(--sv-glow-gold)), var(--sv-gold-soft), var(--sv-arch-b, var(--sv-ivory)));
	overflow: hidden;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-arch {
		width: 300px;
		height: 420px;
		border-radius: 220px 220px 32px 32px;
	}
}
:is(.sv-w,#sv-x) .sv-arch--contain {
	overflow: visible;
}
:is(.sv-w,#sv-x) .sv-arch__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
:is(.sv-w,#sv-x) .sv-arch__img--contain {
	height: 80%;
	width: auto;
	object-fit: contain;
}
:is(.sv-w,#sv-x) .sv-arch__img--cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:is(.sv-w,#sv-x) .sv-arch__ph {
	font-weight: 700;
	font-size: 13px;
	text-align: center;
	padding: 10px;
}

/* ------------------------------------------------------------------
   Header
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-header-wrap {
	position: relative;
	z-index: 50;
}
:is(.sv-w,#sv-x).sv-header-wrap--sticky {
	position: sticky;
	top: 0;
}
.admin-bar :is(.sv-w,#sv-x).sv-header-wrap--sticky {
	top: var(--wp-admin--admin-bar--height, 32px);
}
:is(.sv-w,#sv-x) .sv-skip {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 60;
	padding: 12px 20px;
	border-radius: 999px;
	background: var(--sv-ink);
	color: var(--sv-ivory);
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-skip:focus {
	top: 16px;
	color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-header {
	border-bottom: 1px solid var(--sv-line);
	background-color: rgba(251, 247, 240, 0.85);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	transition: box-shadow 300ms ease;
}
:is(.sv-w,#sv-x).is-scrolled .sv-header {
	box-shadow: 0 8px 30px rgba(138, 101, 8, 0.08);
}
:is(.sv-w,#sv-x) .sv-header__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 12px;
	padding-bottom: 12px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-header__row {
		padding-top: 14px;
		padding-bottom: 14px;
	}
}
:is(.sv-w,#sv-x) .sv-header__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 999px;
}
:is(.sv-w,#sv-x) .sv-header__name {
	white-space: nowrap;
	font-family: var(--sv-font-display);
	font-weight: 600;
	font-size: 19px;
	letter-spacing: -0.01em;
	color: var(--sv-ink);
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-header__name {
		font-size: 21px;
	}
}
:is(.sv-w,#sv-x) .sv-nav {
	display: none;
	align-items: center;
	gap: 32px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-nav {
		display: flex;
	}
}
:is(.sv-w,#sv-x) .sv-nav a {
	position: relative;
	padding: 6px 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--sv-muted);
	transition: color 200ms ease;
}
:is(.sv-w,#sv-x) .sv-nav a:hover,
:is(.sv-w,#sv-x) .sv-nav a[aria-current='page'] {
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-nav__bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	border-radius: 2px;
	background: var(--sv-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 300ms ease-out;
}
:is(.sv-w,#sv-x) .sv-nav a:hover .sv-nav__bar,
:is(.sv-w,#sv-x) .sv-nav a[aria-current='page'] .sv-nav__bar {
	transform: scaleX(1);
}
:is(.sv-w,#sv-x) .sv-header__actions {
	display: flex;
	align-items: center;
	gap: 8px;
}
:is(.sv-w,#sv-x) .sv-header__cta {
	display: none;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-header__cta {
		display: block;
	}
}
:is(.sv-w,#sv-x) .sv-header__toggle {
	--sv-bbg: var(--sv-paper);
	--sv-bfg: var(--sv-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1.5px solid var(--sv-line);
	border-radius: 999px;
}
:is(.sv-w,#sv-x) .sv-header__toggle:hover,
:is(.sv-w,#sv-x) .sv-header__toggle:focus {
	border: 1.5px solid var(--sv-line);
	border-radius: 999px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-header__toggle {
		display: none;
	}
}
:is(.sv-w,#sv-x) .sv-header__toggle .sv-ico-close,
:is(.sv-w,#sv-x) .sv-header__toggle[aria-expanded='true'] .sv-ico-open {
	display: none;
}
:is(.sv-w,#sv-x) .sv-header__toggle[aria-expanded='true'] .sv-ico-close {
	display: block;
}
:is(.sv-w,#sv-x) .sv-mmenu {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	top: var(--sv-header-h, 73px);
	z-index: 40;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	background: var(--sv-ivory);
	animation: sv-fade 300ms ease both;
}
:is(.sv-w,#sv-x) .sv-mmenu[hidden] {
	display: none;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-mmenu {
		display: none;
	}
}
:is(.sv-w,#sv-x) .sv-mmenu__glow {
	position: absolute;
	right: -96px;
	top: -96px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: var(--sv-glow-gold);
	opacity: 0.7;
	filter: blur(64px);
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-mmenu__nav {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 4px;
	padding-top: 32px;
}
:is(.sv-w,#sv-x) .sv-mmenu__link {
	display: flex;
	min-height: 56px;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--sv-line);
	padding: 12px 0;
	font-family: var(--sv-font-display);
	font-size: 34px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-mmenu__link[aria-current='page'] {
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-mmenu__link span {
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-mmenu__cta {
	position: relative;
	padding-top: 32px;
	padding-bottom: 40px;
}
:is(.sv-w,#sv-x) .sv-mmenu__cta .sv-magnetic {
	width: 100%;
}
.sv-anchor {
	display: block;
	height: 0;
	outline: none;
}

/* ------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x) .sv-footer {
	border-top: 1px solid var(--sv-line);
	background: var(--sv-sand);
	padding: 56px 0 40px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-footer {
		padding-top: 72px;
	}
}
:is(.sv-w,#sv-x) .sv-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr 1fr;
		gap: 48px;
	}
}
:is(.sv-w,#sv-x) .sv-footer__brand {
	grid-column: span 2;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-footer__brand {
		grid-column: span 1;
	}
}
:is(.sv-w,#sv-x) .sv-footer__brand img {
	align-self: flex-start;
	width: auto;
	max-width: none;
}
:is(.sv-w,#sv-x) .sv-footer__phrase {
	max-width: 280px;
	font-family: var(--sv-font-display);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.15;
}
:is(.sv-w,#sv-x) .sv-footer__col {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-footer__col {
		gap: 12px;
	}
}
:is(.sv-w,#sv-x) .sv-footer__col h2 {
	margin-bottom: 4px;
	font-family: var(--sv-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-footer__col a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	font-size: 15px;
	font-weight: 500;
	color: var(--sv-muted);
	transition: color 200ms ease;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-footer__col a {
		min-height: 0;
	}
}
:is(.sv-w,#sv-x) .sv-footer__col a:hover,
:is(.sv-w,#sv-x) .sv-footer__legal a:hover {
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid var(--sv-line);
	font-size: 14px;
	color: var(--sv-muted);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-footer__legal {
		flex-direction: row;
		justify-content: space-between;
	}
}
:is(.sv-w,#sv-x) .sv-footer__legal div {
	display: flex;
	gap: 24px;
}
:is(.sv-w,#sv-x) .sv-footer__legal a {
	color: var(--sv-muted);
}

/* ------------------------------------------------------------------
   Hero con video
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-hero {
	overflow: hidden;
	padding: 40px 0 48px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-hero {
		padding: 84px 0 70px;
	}
}
:is(.sv-w,#sv-x) .sv-hero__grid {
	display: grid;
	align-items: center;
	gap: 40px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-hero__grid {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		gap: 56px;
	}
}
:is(.sv-w,#sv-x) .sv-hero__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-hero__copy {
		gap: 30px;
	}
}
:is(.sv-w,#sv-x) .sv-heading--hero {
	gap: 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-heading--hero {
		gap: 30px;
	}
}
:is(.sv-w,#sv-x) .sv-heading--hero .sv-heading__lead {
	max-width: 520px;
}
:is(.sv-w,#sv-x) .sv-hero__copy .sv-stars {
	padding-top: 8px;
}

/* Video vertical */
:is(.sv-w,#sv-x) .sv-video {
	position: relative;
	display: flex;
	justify-content: center;
	width: fit-content;
	margin: 0 auto;
	padding: 24px 32px 16px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video {
		padding: 0;
	}
}
:is(.sv-w,#sv-x) .sv-video__halo {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 520px;
	height: 520px;
	margin: -260px 0 0 -260px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(225, 180, 76, 0.45) 0%, rgba(225, 180, 76, 0) 62%);
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-video__mover {
	position: relative;
	will-change: transform;
}
:is(.sv-w,#sv-x) .sv-video__block {
	position: absolute;
	inset: 26px -18px -6px 34px;
	transform: rotate(4deg);
	border-radius: 36px;
	background: linear-gradient(165deg, var(--sv-glow-gold), var(--sv-gold-mid), var(--sv-gold-warm));
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video__block {
		inset: 36px -30px 0 60px;
		border-radius: 48px;
	}
}
:is(.sv-w,#sv-x) .sv-video__frame {
	position: relative;
	width: 240px;
	height: 426px;
	overflow: hidden;
	border: 3px solid var(--sv-gold);
	border-radius: 30px;
	box-shadow: var(--sv-shadow-warm-lg);
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video__frame {
		width: 340px;
		height: 604px;
		border-radius: 40px;
	}
}
:is(.sv-w,#sv-x) .sv-video__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	max-width: none;
}
:is(.sv-w,#sv-x) .sv-video__open {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: inherit;
}
:is(.sv-w,#sv-x) .sv-video__open:focus-visible {
	outline-offset: -6px;
}
:is(.sv-w,#sv-x) .sv-video__play {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: rgba(251, 247, 240, 0.95);
	color: var(--sv-ink);
	box-shadow: 0 14px 30px rgba(30, 26, 20, 0.3);
	transition: transform 300ms ease;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video__play {
		width: 84px;
		height: 84px;
	}
}
:is(.sv-w,#sv-x) .sv-video__open:hover .sv-video__play {
	transform: scale(1.05);
}
:is(.sv-w,#sv-x) .sv-video.is-playing .sv-video__play[data-sv-video-play] {
	display: none;
}
:is(.sv-w,#sv-x) .sv-video__marker {
	margin-top: 24px;
	padding: 0 20px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-video__marker span {
	font-weight: 500;
	opacity: 0.85;
}
:is(.sv-w,#sv-x) .sv-video__badge {
	position: absolute;
	left: 16px;
	top: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(251, 247, 240, 0.92);
	color: var(--sv-ink);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-video__badge .sv-icon {
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-video__bar {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	display: flex;
	align-items: center;
	gap: 12px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video__badge {
		left: 18px;
		top: 18px;
	}
	:is(.sv-w,#sv-x) .sv-video__bar {
		left: 18px;
		right: 18px;
		bottom: 18px;
	}
}
:is(.sv-w,#sv-x) .sv-video__track {
	flex: 1;
	height: 4px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(251, 247, 240, 0.35);
	pointer-events: none;
}
:is(.sv-w,#sv-x) .sv-video__progress {
	width: 100%;
	height: 100%;
	border-radius: 999px;
	background: var(--sv-gold);
	transform-origin: left;
}
:is(.sv-w,#sv-x) .sv-video__sound {
	--sv-bbg: rgba(251, 247, 240, 0.92);
	--sv-bfg: var(--sv-ink);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	transition: transform 200ms ease;
}
:is(.sv-w,#sv-x) .sv-video__sound:hover {
	transform: scale(1.05);
	border-radius: 50%;
}
:is(.sv-w,#sv-x) .sv-video__ico-sound,
:is(.sv-w,#sv-x) .sv-video.is-unmuted .sv-video__ico-mute {
	display: none;
}
:is(.sv-w,#sv-x) .sv-video.is-unmuted .sv-video__ico-sound {
	display: block;
}
:is(.sv-w,#sv-x) .sv-video__float {
	position: absolute;
	pointer-events: none;
	will-change: transform;
}
:is(.sv-w,#sv-x) .sv-video__float--1 {
	left: -4px;
	bottom: 64px;
}
:is(.sv-w,#sv-x) .sv-video__float--2 {
	right: -4px;
	top: 96px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-video__float--1 {
		left: -30px;
		bottom: 90px;
	}
	:is(.sv-w,#sv-x) .sv-video__float--2 {
		right: -24px;
		top: 110px;
	}
}
:is(.sv-w,#sv-x) .sv-float-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid var(--sv-line);
	border-radius: 20px;
	background: var(--sv-paper);
	box-shadow: var(--sv-shadow-ink);
	font-size: 14px;
	font-weight: 700;
	color: var(--sv-ink);
	white-space: nowrap;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-float-card {
		padding: 14px 18px;
	}
}
:is(.sv-w,#sv-x) .sv-dots {
	display: flex;
}
:is(.sv-w,#sv-x) .sv-dots i {
	display: block;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	transition: background-color 500ms ease;
}
:is(.sv-w,#sv-x) .sv-dots i + i {
	margin-left: -8px;
}
:is(.sv-w,#sv-x) .sv-dots--sm i {
	width: 14px;
	height: 14px;
}
:is(.sv-w,#sv-x) .sv-dots--sm i + i {
	margin-left: -6px;
}

/* Modal del video (se inserta en <body>) */
:is(.sv-modal,#sv-x) {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(30, 26, 20, 0.85);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	animation: sv-fade 300ms ease both;
	font-family: var(--sv-font-sans);
}
.sv-modal__panel {
	position: relative;
	aspect-ratio: 9 / 16;
	height: min(86vh, calc((100vw - 32px) * 16 / 9));
	overflow: hidden;
	border: 3px solid var(--sv-gold);
	border-radius: 28px;
	box-shadow: var(--sv-shadow-warm-lg);
	animation: sv-pop 420ms var(--sv-spring) both;
}
.sv-modal__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.sv-modal__ph {
	display: flex;
	height: 100%;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 24px;
	padding: 24px;
	text-align: center;
	color: var(--sv-ivory);
	font-size: 14px;
	font-weight: 700;
}
.sv-modal__ph .sv-video__play {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: rgba(251, 247, 240, 0.95);
	color: var(--sv-ink);
}
:is(.sv-modal,#sv-x) .sv-modal__close,
:is(.sv-modal,#sv-x) .sv-modal__close:hover,
:is(.sv-modal,#sv-x) .sv-modal__close:focus {
	position: absolute;
	right: 12px;
	top: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(251, 247, 240, 0.95);
	color: var(--sv-ink);
	cursor: pointer;
}
:is(.sv-modal,#sv-x) .sv-modal__close:focus-visible {
	outline: 3px solid var(--sv-gold);
	outline-offset: 3px;
}

/* ------------------------------------------------------------------
   Punto de partida
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-start {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-start {
		padding: 110px 0 100px;
	}
}
:is(.sv-w,#sv-x).sv-start .sv-heading {
	max-width: 720px;
}
:is(.sv-w,#sv-x) .sv-start__cards {
	display: grid;
	gap: 24px;
	margin-top: 48px;
}
@media (min-width: 768px) {
	:is(.sv-w,#sv-x) .sv-start__cards {
		grid-template-columns: 1fr 1fr;
	}
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-start__cards {
		gap: 28px;
		margin-top: 56px;
	}
}
:is(.sv-w,#sv-x) .sv-start__card {
	gap: 24px;
	padding: 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-start__card {
		padding: 32px;
	}
}
:is(.sv-w,#sv-x) .sv-start__arch {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 100%;
	max-width: 300px;
	height: 230px;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 150px 150px 28px 28px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-start__arch {
		height: 270px;
	}
}
:is(.sv-w,#sv-x) .sv-start__art {
	width: 170px;
	height: 170px;
	margin-bottom: 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-start__art {
		width: 200px;
		height: 200px;
	}
}
:is(.sv-w,#sv-x) .sv-start__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
:is(.sv-w,#sv-x) .sv-start__cta {
	margin-top: auto;
}
:is(.sv-w,#sv-x) .sv-steps {
	display: grid;
	gap: 12px;
	margin-top: 40px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-steps {
		grid-template-columns: 1fr 1fr;
	}
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-steps {
		grid-template-columns: repeat(5, 1fr);
		margin-top: 48px;
	}
}
:is(.sv-w,#sv-x) .sv-steps li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 20px 8px 8px;
	border: 1px solid var(--sv-line);
	border-radius: 999px;
	background: var(--sv-paper);
	font-size: 15px;
	font-weight: 600;
}
:is(.sv-w,#sv-x) .sv-steps__n {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--sv-gold-soft);
	color: var(--sv-gold-ink);
	font-weight: 700;
}

/* ------------------------------------------------------------------
   Sorteos
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-raffles {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-raffles {
		padding: 100px 0;
	}
}
:is(.sv-w,#sv-x).sv-raffles .sv-heading {
	max-width: 640px;
}
:is(.sv-w,#sv-x) .sv-raffles__grid {
	display: grid;
	gap: 24px;
	margin-top: 48px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-raffles__grid {
		grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
		gap: 28px;
		margin-top: 56px;
	}
}
:is(.sv-w,#sv-x) .sv-raffles__active {
	display: grid;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--sv-line);
	border-radius: var(--sv-r-card-lg);
	background: var(--sv-paper);
}
@media (min-width: 768px) {
	:is(.sv-w,#sv-x) .sv-raffles__active {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}
}
:is(.sv-w,#sv-x) .sv-raffles__visual {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 320px;
	background: linear-gradient(165deg, var(--sv-glow-gold), var(--sv-gold-mid), var(--sv-gold-warm));
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-raffles__visual {
		min-height: 380px;
	}
}
:is(.sv-w,#sv-x) .sv-raffles__badge {
	position: absolute;
	left: 20px;
	top: 20px;
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--sv-ink);
	color: var(--sv-ivory);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
:is(.sv-w,#sv-x) .sv-raffles__badge--soft {
	position: static;
	align-self: flex-start;
	background: var(--sv-ivory);
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-raffles__ph,
:is(.sv-w,#sv-x) .sv-raffles__photo {
	width: 200px;
	height: 260px;
	border: 3px solid var(--sv-gold);
	border-radius: 100px 100px 18px 18px;
	background: var(--sv-ivory);
	object-fit: cover;
}
:is(.sv-w,#sv-x) .sv-raffles__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	text-align: center;
	font-family: var(--sv-font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-raffles__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	padding: 28px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-raffles__info {
		padding: 40px;
	}
}
:is(.sv-w,#sv-x) .sv-raffles__title {
	font-family: var(--sv-font-display);
	font-size: clamp(1.9rem, 2.8vw, 2.4rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}
:is(.sv-w,#sv-x) .sv-raffles__close {
	font-size: 15px;
	font-weight: 600;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-raffles__rules {
	font-size: 16px;
	line-height: 1.6;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-raffles__next {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	padding: 28px;
	border: 1.5px dashed var(--sv-gold);
	border-radius: var(--sv-r-card-lg);
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-raffles__next {
		padding: 40px;
	}
}
:is(.sv-w,#sv-x) .sv-raffles__next-top {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* ------------------------------------------------------------------
   Juego 2048
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-game {
	padding: 80px 0 40px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-game {
		padding: 110px 0 60px;
	}
}
:is(.sv-w,#sv-x) .sv-game__panel {
	display: grid;
	align-items: center;
	gap: 40px;
	padding: 28px;
	border-radius: 44px;
	background: linear-gradient(135deg, var(--sv-glow-gold), var(--sv-gold-soft) 55%, var(--sv-glow-lilac));
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-game__panel {
		padding: 40px;
	}
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-game__panel {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
		gap: 64px;
		padding: 64px;
	}
}
:is(.sv-w,#sv-x) .sv-game__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
:is(.sv-w,#sv-x) .sv-heading--game {
	gap: 24px;
}
:is(.sv-w,#sv-x) .sv-heading--game .sv-eyebrow {
	background: rgba(251, 247, 240, 0.7);
}
:is(.sv-w,#sv-x) .sv-heading--game .sv-heading__title {
	--sv-title-size: clamp(2.6rem, 5vw, 4rem);
}
:is(.sv-w,#sv-x) .sv-heading--game .sv-heading__lead {
	font-size: 19px;
	color: var(--sv-ink);
	max-width: 480px;
}
:is(.sv-w,#sv-x) .sv-game__board {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	padding: 12px;
	border-radius: 28px;
	background: var(--sv-board);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-game__board {
		gap: 12px;
		padding: 16px;
	}
}
:is(.sv-w,#sv-x) .sv-tile {
	display: flex;
	aspect-ratio: 1;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: var(--sv-tile);
	font-family: var(--sv-font-display);
	font-size: clamp(1.2rem, 2.4vw, 1.9rem);
	font-weight: 600;
	opacity: 0;
	transform: scale(0.6);
}
:is(.sv-w,#sv-x) [data-inview='true'] > .sv-tile {
	animation: sv-pop-tile 520ms var(--sv-spring) both;
	animation-delay: calc(var(--i, 0) * 40ms);
}
@keyframes sv-pop-tile {
	from {
		opacity: 0;
		transform: scale(0.6);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
:is(.sv-w,#sv-x) .sv-tile--live {
	transition: transform 300ms var(--sv-spring);
}
:is(.sv-w,#sv-x) [data-inview='true'] > .sv-tile--live:hover {
	animation: none;
	opacity: 1;
	transform: scale(1.06) rotate(-2deg);
}
.elementor-editor-active :is(.sv-w,#sv-x) .sv-tile {
	opacity: 1;
	transform: none;
}

/* ------------------------------------------------------------------
   Texto con botón / Cierre oscuro
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-textbtn {
	padding: 24px 0 80px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-textbtn {
		padding: 40px 0 100px;
	}
}
:is(.sv-w,#sv-x) .sv-textbtn__grid {
	display: grid;
	align-items: center;
	gap: 32px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-textbtn__grid {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
		gap: 56px;
	}
	:is(.sv-w,#sv-x) .sv-textbtn__cta {
		display: flex;
		justify-content: flex-end;
	}
}
:is(.sv-w,#sv-x) .sv-textbtn .sv-heading {
	gap: 22px;
}
:is(.sv-w,#sv-x) .sv-textbtn .sv-heading__lead {
	max-width: 560px;
}
:is(.sv-w,#sv-x).sv-closing {
	padding: 0 0 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-closing {
		padding-bottom: 30px;
	}
}
:is(.sv-w,#sv-x) .sv-closing__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	overflow: hidden;
	padding: 56px 20px;
	border-radius: 44px;
	background: var(--sv-ink);
	text-align: center;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-closing__panel {
		padding: 56px 48px;
	}
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-closing__panel {
		padding: 72px 48px;
	}
}
:is(.sv-w,#sv-x) .sv-heading--center {
	align-items: center;
	text-align: center;
}

/* ------------------------------------------------------------------
   Hero de página
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-page-hero {
	overflow: hidden;
	padding: 40px 0 32px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-page-hero {
		padding: 64px 0 36px;
	}
}
:is(.sv-w,#sv-x).sv-page-hero--media {
	padding-bottom: 56px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-page-hero--media {
		padding: 96px 0 80px;
	}
}
:is(.sv-w,#sv-x) .sv-page-hero__grid {
	display: grid;
	align-items: center;
	gap: 40px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-page-hero--media .sv-page-hero__grid {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
		gap: 48px;
	}
}
:is(.sv-w,#sv-x) .sv-page-hero__copy {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
:is(.sv-w,#sv-x).sv-page-hero--media .sv-heading {
	gap: 28px;
}
:is(.sv-w,#sv-x).sv-page-hero--center .sv-page-hero__copy,
:is(.sv-w,#sv-x).sv-page-hero--center .sv-heading {
	align-items: center;
	text-align: center;
	margin-inline: auto;
}
:is(.sv-w,#sv-x).sv-page-hero--center {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-page-hero--center {
		padding: 112px 0;
		min-height: 56vh;
		display: flex;
		align-items: center;
	}
}
:is(.sv-w,#sv-x) .sv-page-hero__media {
	display: flex;
	justify-content: center;
}

/* ------------------------------------------------------------------
   Tarjetas numeradas / Equipo / Valores
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-ncards {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-ncards {
		padding: 90px 0;
	}
}
:is(.sv-w,#sv-x).sv-ncards .sv-heading {
	gap: 18px;
	max-width: 700px;
}
:is(.sv-w,#sv-x) .sv-ncards__grid {
	display: grid;
	gap: 20px;
	margin-top: 40px;
}
@media (min-width: 768px) {
	:is(.sv-w,#sv-x) .sv-ncards__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
:is(.sv-w,#sv-x) .sv-ncard {
	gap: 12px;
	border-radius: var(--sv-r-card);
}
:is(.sv-w,#sv-x).sv-ncards--big .sv-ncard {
	gap: 14px;
	padding: 32px;
}
:is(.sv-w,#sv-x) .sv-ncard__circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--sv-gold-soft);
	color: var(--sv-gold-ink);
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-ncard__big {
	font-family: var(--sv-font-display);
	font-size: 48px;
	font-weight: 600;
	line-height: 1;
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-ncard__title {
	font-family: var(--sv-font-display);
	font-size: 24px;
	font-weight: 600;
}
:is(.sv-w,#sv-x).sv-ncards--big .sv-ncard__title {
	font-size: 26px;
}
:is(.sv-w,#sv-x) .sv-ncard__text {
	font-size: 15px;
	line-height: 1.6;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x).sv-ncards--big .sv-ncard__text {
	font-size: 16px;
	line-height: 1.65;
}
:is(.sv-w,#sv-x).sv-team {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-team {
		padding: 90px 0;
	}
}
:is(.sv-w,#sv-x) .sv-team__grid {
	display: grid;
	gap: 24px;
	margin-top: 40px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-team__grid {
		grid-template-columns: 1fr 1fr;
	}
}
:is(.sv-w,#sv-x) .sv-team__card {
	display: flex;
	flex-direction: column;
	gap: 24px;
	height: 100%;
	padding: 24px;
	border: 1px solid var(--sv-line);
	border-radius: 32px;
	background: var(--sv-paper);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-team__card {
		flex-direction: row;
		align-items: flex-start;
		padding: 28px;
	}
}
:is(.sv-w,#sv-x) .sv-team__photo {
	flex: none;
	width: 150px;
	height: 190px;
	border-radius: 75px 75px 16px 16px;
	object-fit: cover;
}
:is(.sv-w,#sv-x) .sv-team__photo--ph {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-team__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
:is(.sv-w,#sv-x) .sv-team__name {
	font-family: var(--sv-font-display);
	font-size: 32px;
	font-weight: 600;
}
:is(.sv-w,#sv-x) .sv-team__text {
	font-size: 16px;
	line-height: 1.65;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-team__closing {
	max-width: 760px;
	margin-top: 40px;
	font-size: 19px;
	line-height: 1.7;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x).sv-values {
	padding: 80px 0;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-values {
		padding: 100px 0;
	}
}
:is(.sv-w,#sv-x) .sv-values__grid {
	display: grid;
	align-items: start;
	gap: 48px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-values__grid {
		grid-template-columns: 1fr 1fr;
		gap: 72px;
	}
}
:is(.sv-w,#sv-x) .sv-values .sv-heading {
	gap: 24px;
}
:is(.sv-w,#sv-x) .sv-values .sv-heading__lead {
	font-size: 19px;
	line-height: 1.7;
}
:is(.sv-w,#sv-x) .sv-values__list {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
:is(.sv-w,#sv-x) .sv-values__list li {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 20px;
	border-top: 2px solid var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-values__list h3 {
	font-family: var(--sv-font-display);
	font-size: 26px;
	font-weight: 600;
}
:is(.sv-w,#sv-x) .sv-values__list p {
	font-size: 16px;
	line-height: 1.6;
	color: var(--sv-muted);
}

/* ------------------------------------------------------------------
   Contacto: tarjeta WhatsApp + formulario
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-wacard {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 36px;
	height: 100%;
	padding: 28px;
	border-radius: var(--sv-r-card-lg);
	background: var(--sv-ink);
	color: var(--sv-ivory);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x).sv-wacard {
		padding: 48px;
	}
}
:is(.sv-w,#sv-x) .sv-wacard__top {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
:is(.sv-w,#sv-x) .sv-wacard__label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-gold);
}
:is(.sv-w,#sv-x) .sv-wacard__title {
	font-family: var(--sv-font-display);
	font-size: clamp(2.4rem, 4vw, 3.5rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--sv-ivory);
}
:is(.sv-w,#sv-x) .sv-wacard__text {
	font-size: 17px;
	line-height: 1.6;
	color: var(--sv-ivory-dim);
}
:is(.sv-w,#sv-x) .sv-wacard__bottom {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
:is(.sv-w,#sv-x) .sv-wacard__num {
	font-family: var(--sv-font-display);
	font-size: clamp(1.75rem, 3vw, 2.1rem);
	font-weight: 600;
}
:is(.sv-w,#sv-x).sv-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
	height: 100%;
	padding: 24px;
	border: 1px solid var(--sv-line);
	border-radius: var(--sv-r-card-lg);
	background: var(--sv-paper);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x).sv-form {
		padding: 44px;
	}
}
:is(.sv-w,#sv-x) .sv-form__title {
	font-family: var(--sv-font-display);
	font-size: clamp(1.75rem, 2.6vw, 2rem);
	font-weight: 600;
}
:is(.sv-w,#sv-x) .sv-form__row {
	display: grid;
	gap: 16px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-form__row {
		grid-template-columns: 1fr 1fr;
	}
}
:is(.sv-w,#sv-x) .sv-form__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
:is(.sv-w,#sv-x) .sv-form__field label {
	font-size: 14px;
	font-weight: 700;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-form__field input,
:is(.sv-w,#sv-x) .sv-form__field textarea {
	width: 100%;
	padding: 16px 18px;
	border: 1.5px solid var(--sv-line);
	border-radius: 16px;
	background: var(--sv-paper);
	font-family: var(--sv-font-sans);
	font-size: 16px;
	color: var(--sv-ink);
	box-shadow: none;
	transition: border-color 200ms ease;
	height: auto;
	min-height: 0;
	margin: 0;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
}
:is(.sv-w,#sv-x) .sv-form__field textarea {
	min-height: 140px;
	resize: vertical;
}
:is(.sv-w,#sv-x) .sv-form__field input:hover,
:is(.sv-w,#sv-x) .sv-form__field textarea:hover {
	border-color: var(--sv-line-strong);
}
:is(.sv-w,#sv-x) .sv-form__field input:focus,
:is(.sv-w,#sv-x) .sv-form__field textarea:focus {
	border-color: var(--sv-focus, var(--sv-gold));
	outline: none;
}
:is(.sv-w,#sv-x) .sv-form__field input:focus-visible,
:is(.sv-w,#sv-x) .sv-form__field textarea:focus-visible {
	outline: 3px solid var(--sv-focus, var(--sv-gold));
	outline-offset: 2px;
}
:is(.sv-w,#sv-x) .sv-form__field ::placeholder {
	color: rgba(95, 86, 74, 0.7);
}
:is(.sv-w,#sv-x) .sv-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
:is(.sv-w,#sv-x) .sv-form__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}
:is(.sv-w,#sv-x) .sv-form__status {
	font-size: 15px;
	font-weight: 600;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-form [aria-invalid='true'] {
	border-color: #a3262f;
}

/* Texto enriquecido */
:is(.sv-w,#sv-x).sv-richtext {
	padding: 0 0 96px;
}
:is(.sv-w,#sv-x) .sv-prose {
	max-width: 860px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-prose > * + * {
	margin-top: 16px;
}
:is(.sv-w,#sv-x) .sv-prose h2,
:is(.sv-w,#sv-x) .sv-prose h3 {
	font-family: var(--sv-font-display);
	color: var(--sv-ink);
	font-weight: 600;
}
:is(.sv-w,#sv-x) .sv-prose a {
	color: var(--sv-gold-deep);
	text-decoration: underline;
}
:is(.sv-w,#sv-x) .sv-prose .sv-pending {
	padding: 16px 20px;
	border: 1.5px dashed var(--sv-gold);
	border-radius: 16px;
	background: var(--sv-paper);
	font-weight: 600;
	color: var(--sv-gold-deep);
}

/* ------------------------------------------------------------------
   Configurador de camisetas
   ------------------------------------------------------------------ */
:is(.sv-w,#sv-x).sv-cfg {
	padding: 20px 0 80px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x).sv-cfg {
		padding-bottom: 90px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__grid {
	display: grid;
	align-items: start;
	gap: 24px;
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-cfg__grid {
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
		gap: 36px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__bg {
	position: absolute;
	inset: 0;
}
:is(.sv-w,#sv-x) .sv-cfg__bg span {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 500ms ease-in-out;
}
:is(.sv-w,#sv-x) .sv-cfg__bg span.is-on {
	opacity: 1;
}
/* Escenario de escritorio (fijo) */
:is(.sv-w,#sv-x) .sv-cfg__stage {
	position: sticky;
	top: calc(104px + var(--wp-admin--admin-bar--height, 0px));
	display: none;
	min-height: 660px;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	border: 1px solid var(--sv-line);
	border-radius: var(--sv-r-panel);
	background: var(--sv-ivory);
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-cfg__stage {
		display: flex;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__chips {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 22px 24px 0;
}
:is(.sv-w,#sv-x) .sv-chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 6px 16px rgba(30, 26, 20, 0.06);
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}
:is(.sv-w,#sv-x) .sv-chip--sm {
	gap: 6px;
	padding: 6px 10px;
	font-size: 12px;
	box-shadow: none;
}
:is(.sv-w,#sv-x) .sv-cfg__tee {
	position: relative;
}
:is(.sv-w,#sv-x) .sv-cfg__tee--lg {
	width: 84%;
	max-width: 480px;
	margin: 0 auto;
}
:is(.sv-w,#sv-x) .sv-cfg__tee--sm {
	flex: none;
	width: 104px;
}
:is(.sv-w,#sv-x) .sv-cfg__tee-in {
	position: relative;
}
:is(.sv-w,#sv-x) .sv-cfg__tee-svg {
	display: block;
	width: 100%;
	filter: drop-shadow(0 26px 30px rgba(30, 26, 20, 0.28));
	transition: color 400ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__patch {
	position: absolute;
	left: 50%;
	top: 31%;
	width: 34%;
	aspect-ratio: 1;
	transform: translateX(-50%);
	padding: 5%;
	border-radius: 13%;
	background: var(--sv-ivory);
	box-shadow: 0 12px 24px rgba(30, 26, 20, 0.18);
}
:is(.sv-w,#sv-x) .sv-cfg__patch-art {
	position: absolute;
	inset: 5%;
	opacity: 0;
	transform: scale(0.82);
	transition:
		opacity 200ms ease-out,
		transform 200ms ease-out;
}
:is(.sv-w,#sv-x) .sv-cfg__patch-art.is-on {
	opacity: 1;
	transform: none;
	transition-delay: 180ms;
}
:is(.sv-w,#sv-x) .sv-cfg__patch-art svg {
	width: 100%;
	height: 100%;
}
:is(.sv-w,#sv-x) .sv-cfg__foot {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 0 24px 24px;
}
:is(.sv-w,#sv-x) .sv-cfg__bracelet {
	width: 100%;
}
:is(.sv-w,#sv-x) .sv-cfg__caption {
	font-size: 15px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__note {
	font-size: 12px;
	color: var(--sv-muted);
	text-align: center;
}
/* Vista previa compacta (móvil, fija arriba) */
:is(.sv-w,#sv-x) .sv-cfg__compact {
	position: sticky;
	top: calc(var(--sv-header-h, 73px) + var(--wp-admin--admin-bar--height, 0px));
	z-index: 30;
	margin-inline: -20px;
	overflow: hidden;
	border-bottom: 1px solid var(--sv-line);
	background: var(--sv-ivory);
	box-shadow: 0 10px 24px rgba(138, 101, 8, 0.1);
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-cfg__compact {
		display: none;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__compact-row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px 8px;
}
:is(.sv-w,#sv-x) .sv-cfg__compact-info {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
:is(.sv-w,#sv-x) .sv-cfg__caption--sm {
	padding-left: 4px;
	font-size: 13px;
}
:is(.sv-w,#sv-x) .sv-cfg__compact-foot {
	position: relative;
	padding: 0 20px 8px;
}
:is(.sv-w,#sv-x) .sv-cfg__note--sm {
	margin-top: 4px;
	font-size: 11px;
}
/* Panel */
:is(.sv-w,#sv-x) .sv-cfg__panel {
	display: flex;
	min-height: 620px;
	flex-direction: column;
	gap: 28px;
	padding: 20px;
	border: 1px solid var(--sv-line);
	border-radius: 32px;
	background: var(--sv-paper);
	box-shadow: var(--sv-shadow-panel);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__panel {
		padding: 32px;
	}
}
@media (min-width: 1024px) {
	:is(.sv-w,#sv-x) .sv-cfg__panel {
		min-height: 660px;
		gap: 32px;
		padding: 40px;
		border-radius: var(--sv-r-panel);
	}
}
:is(.sv-w,#sv-x) .sv-cfg__progress {
	display: flex;
	gap: 8px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__progress {
		gap: 10px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__progress li {
	flex: 1;
}
:is(.sv-w,#sv-x) .sv-cfg__seg {
	display: flex;
	width: 100%;
	flex-direction: column;
	gap: 8px;
	padding: 8px 0 4px;
	border-radius: 6px;
	text-align: left;
}
:is(.sv-w,#sv-x) .sv-cfg__seg-track {
	position: relative;
	display: block;
	width: 100%;
	height: 6px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--sv-line);
}
:is(.sv-w,#sv-x) .sv-cfg__seg-fill {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: var(--sv-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 450ms var(--sv-ease);
}
:is(.sv-w,#sv-x) .sv-cfg__seg-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--sv-muted);
	transition: color 200ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__seg:hover .sv-cfg__seg-label,
:is(.sv-w,#sv-x) .sv-cfg__seg[aria-current='step'] .sv-cfg__seg-label {
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-cfg__seg-n {
	display: none;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__seg-label {
		font-size: 12px;
		letter-spacing: 0.06em;
	}
	:is(.sv-w,#sv-x) .sv-cfg__seg-n {
		display: inline;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__steps {
	position: relative;
	flex: 1;
}
:is(.sv-w,#sv-x) .sv-cfg__step {
	display: flex;
	flex-direction: column;
	gap: 28px;
}
:is(.sv-w,#sv-x) .sv-cfg__step[hidden] {
	display: none;
}
:is(.sv-w,#sv-x) .sv-cfg__step.is-entering {
	animation: sv-step-in 350ms var(--sv-ease) both;
}
:is(.sv-w,#sv-x) .sv-cfg__step.is-leaving {
	animation: sv-step-out 200ms ease-in both;
}
@keyframes sv-step-in {
	from {
		opacity: 0;
		transform: translateX(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
@keyframes sv-step-out {
	from {
		opacity: 1;
		transform: none;
	}
	to {
		opacity: 0;
		transform: translateX(-24px);
	}
}
:is(.sv-w,#sv-x) .sv-cfg__head {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
:is(.sv-w,#sv-x) .sv-cfg__count {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-gold-deep);
}
:is(.sv-w,#sv-x) .sv-cfg__title {
	font-family: var(--sv-font-display);
	font-size: clamp(1.85rem, 3vw, 2.5rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--sv-ink);
	outline: none;
}
:is(.sv-w,#sv-x) .sv-cfg__sub {
	font-size: 16px;
	line-height: 1.6;
	color: var(--sv-muted);
}
/* Tarjetas de opción (radios) */
:is(.sv-w,#sv-x) .sv-radio {
	--sv-bbg: var(--sv-sand);
	--sv-bfg: var(--sv-ink);
	position: relative;
	border: 2px solid transparent;
	text-align: left;
	transition:
		background-color 300ms ease,
		border-color 300ms ease,
		box-shadow 300ms ease,
		transform 300ms ease;
}
:is(.sv-w,#sv-x) .sv-radio:hover,
:is(.sv-w,#sv-x) .sv-radio:focus {
	border: 2px solid var(--sv-line-strong);
}
:is(.sv-w,#sv-x) .sv-radio:hover {
	--sv-bbg: rgba(255, 255, 255, 0.7);
	transform: translateY(-2px);
}
:is(.sv-w,#sv-x) .sv-radio:active {
	transform: scale(0.97);
}
:is(.sv-w,#sv-x) .sv-radio[aria-checked='true'],
:is(.sv-w,#sv-x) .sv-radio[aria-checked='true']:hover,
:is(.sv-w,#sv-x) .sv-radio[aria-checked='true']:focus {
	--sv-bbg: var(--sv-paper);
	border: 2px solid var(--sv-ink);
	box-shadow: 0 14px 30px rgba(30, 26, 20, 0.13);
	transform: none;
}
:is(.sv-w,#sv-x) .sv-radio__check {
	position: absolute;
	right: 10px;
	top: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--sv-gold);
	color: var(--sv-ink);
	opacity: 0;
	transform: scale(0.5);
	transition:
		opacity 300ms ease,
		transform 300ms ease;
}
:is(.sv-w,#sv-x) .sv-radio__check svg {
	stroke-width: 3;
}
:is(.sv-w,#sv-x) .sv-radio[aria-checked='true'] .sv-radio__check {
	opacity: 1;
	transform: none;
}
:is(.sv-w,#sv-x) .sv-cfg__grid2 {
	display: grid;
	gap: 16px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__grid2 {
		grid-template-columns: 1fr 1fr;
	}
}
:is(.sv-w,#sv-x) .sv-radio--type {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: 20px;
	border-radius: var(--sv-r-card);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-radio--type {
		padding: 22px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__type-art {
	width: 120px;
	height: 120px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__type-art {
		width: 150px;
		height: 150px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__type-title {
	font-family: var(--sv-font-display);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.1;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__type-title {
		font-size: 28px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__type-text {
	font-size: 15px;
	line-height: 1.55;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__styles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
:is(.sv-w,#sv-x) .sv-cfg__styles[hidden] {
	display: none;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__styles {
		gap: 14px;
	}
}
@media (min-width: 768px) {
	:is(.sv-w,#sv-x) .sv-cfg__styles--foto {
		grid-template-columns: repeat(3, 1fr);
	}
}
:is(.sv-w,#sv-x) .sv-radio--style {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 14px 10px 16px;
	border-radius: 22px;
	text-align: center;
}
:is(.sv-w,#sv-x) .sv-cfg__style-art {
	width: 84px;
	height: 84px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__style-art {
		width: 96px;
		height: 96px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__style-name {
	font-size: 15px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__style-line {
	font-size: 13px;
	line-height: 1.4;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__notice {
	padding: 16px 18px;
	border-radius: 18px;
	background: var(--sv-gold-soft);
	font-size: 14px;
	line-height: 1.55;
	color: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-cfg__eras {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__eras {
		grid-template-columns: repeat(3, 1fr);
	}
}
:is(.sv-w,#sv-x) .sv-radio--era {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 12px 14px;
	border-radius: 18px;
	font-size: 15px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__era-bar {
	display: block;
	width: 100%;
	height: 34px;
	border-radius: 10px;
}
:is(.sv-w,#sv-x) .sv-cfg__colors {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px 6px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__colors {
		grid-template-columns: repeat(6, 1fr);
	}
}
:is(.sv-w,#sv-x) .sv-radio--color,
:is(.sv-w,#sv-x) .sv-radio--color:hover,
:is(.sv-w,#sv-x) .sv-radio--color:focus,
:is(.sv-w,#sv-x) .sv-radio--color[aria-checked='true'],
:is(.sv-w,#sv-x) .sv-radio--color[aria-checked='true']:hover,
:is(.sv-w,#sv-x) .sv-radio--color[aria-checked='true']:focus {
	--sv-bbg: transparent;
	--sv-bfg: var(--sv-muted);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 6px;
	border: 0;
	border-radius: 16px;
	box-shadow: none;
	transform: none;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}
:is(.sv-w,#sv-x) .sv-radio--color[aria-checked='true'] {
	--sv-bfg: var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-cfg__swatch {
	display: block;
	width: 48px;
	height: 48px;
	border: 1px solid var(--sv-line-strong);
	border-radius: 50%;
	transition:
		box-shadow 300ms ease,
		transform 300ms ease;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__swatch {
		width: 56px;
		height: 56px;
	}
}
:is(.sv-w,#sv-x) .sv-radio--color:hover .sv-cfg__swatch {
	transform: scale(1.05);
}
:is(.sv-w,#sv-x) .sv-radio--color[aria-checked='true'] .sv-cfg__swatch {
	border-color: var(--sv-ink);
	box-shadow:
		0 0 0 3px var(--sv-ivory),
		0 0 0 5px var(--sv-ink);
}
:is(.sv-w,#sv-x) .sv-radio--color .sv-radio__check {
	display: none;
}
:is(.sv-w,#sv-x) .sv-cfg__sizes-wrap {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
:is(.sv-w,#sv-x) .sv-cfg__sizes {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__sizes {
		gap: 10px;
	}
}
:is(.sv-w,#sv-x) .sv-radio--size,
:is(.sv-w,#sv-x) .sv-radio--size:hover,
:is(.sv-w,#sv-x) .sv-radio--size:focus {
	--sv-bbg: var(--sv-paper);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 14px 4px;
	border: 1.5px solid var(--sv-line);
	border-radius: 16px;
	text-align: center;
	transform: none;
	box-shadow: none;
}
:is(.sv-w,#sv-x) .sv-radio--size[aria-checked='true'],
:is(.sv-w,#sv-x) .sv-radio--size[aria-checked='true']:hover,
:is(.sv-w,#sv-x) .sv-radio--size[aria-checked='true']:focus {
	--sv-bbg: var(--sv-ink);
	--sv-bfg: var(--sv-ivory);
	border: 1.5px solid var(--sv-ink);
	box-shadow: none;
}
:is(.sv-w,#sv-x) .sv-cfg__size-code {
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
}
:is(.sv-w,#sv-x) .sv-cfg__size-dims {
	font-size: 11px;
	opacity: 0.8;
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__size-dims {
		font-size: 12px;
	}
}
:is(.sv-w,#sv-x) .sv-radio--size .sv-radio__check {
	display: none;
}
:is(.sv-w,#sv-x) .sv-cfg__size-note {
	margin-top: -6px;
	font-size: 13px;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__qty {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 15px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__stepper {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 4px;
	border: 1.5px solid var(--sv-line);
	border-radius: 999px;
	background: var(--sv-paper);
}
:is(.sv-w,#sv-x) .sv-cfg__stepper button {
	--sv-bbg: var(--sv-sand);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	transition:
		background-color 200ms ease,
		transform 150ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__stepper button:hover,
:is(.sv-w,#sv-x) .sv-cfg__stepper button:focus {
	--sv-bbg: var(--sv-gold-soft);
	border-radius: 50%;
}
:is(.sv-w,#sv-x) .sv-cfg__stepper button:active {
	transform: scale(0.95);
}
:is(.sv-w,#sv-x) .sv-cfg__stepper button:disabled {
	opacity: 0.4;
	cursor: default;
}
:is(.sv-w,#sv-x) .sv-cfg__stepper output {
	min-width: 34px;
	text-align: center;
	font-size: 17px;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__summary {
	padding: 22px 20px;
	border-radius: 24px;
	background: var(--sv-sand);
}
@media (min-width: 640px) {
	:is(.sv-w,#sv-x) .sv-cfg__summary {
		padding: 22px 24px;
	}
}
:is(.sv-w,#sv-x) .sv-cfg__summary > p {
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__summary dl > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--sv-line);
	font-size: 15px;
}
:is(.sv-w,#sv-x) .sv-cfg__summary dl > div:last-child {
	border-bottom: 0;
}
:is(.sv-w,#sv-x) .sv-cfg__summary dt {
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__summary dd {
	margin: 0;
	text-align: right;
	font-weight: 700;
}
:is(.sv-w,#sv-x) .sv-cfg__send,
:is(.sv-w,#sv-x) .sv-cfg__send:hover,
:is(.sv-w,#sv-x) .sv-cfg__send:focus {
	position: relative;
	display: inline-flex;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 30px;
	border-radius: 999px;
	background: var(--sv-gold);
	color: var(--sv-ink);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	box-shadow: 0 14px 28px rgba(184, 134, 11, 0.35);
	transition: transform 200ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__send:active {
	transform: scale(0.97);
}
:is(.sv-w,#sv-x) .sv-cfg__send-note {
	margin-top: -12px;
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
	color: var(--sv-muted);
}
:is(.sv-w,#sv-x) .sv-cfg__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
:is(.sv-w,#sv-x) .sv-cfg__nav-back {
	min-width: 120px;
}
:is(.sv-w,#sv-x) .sv-cfg__back,
:is(.sv-w,#sv-x) .sv-cfg__back:focus {
	--sv-bbg: transparent;
	--sv-bfg: var(--sv-ink);
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	gap: 8px;
	padding: 0 22px;
	border: 1.5px solid var(--sv-ink);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	transition:
		background-color 200ms ease,
		color 200ms ease,
		transform 150ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__back:hover {
	--sv-bbg: var(--sv-ink);
	--sv-bfg: var(--sv-ivory);
	border: 1.5px solid var(--sv-ink);
	border-radius: 999px;
	padding: 0 22px;
}
:is(.sv-w,#sv-x) .sv-cfg__back[hidden] {
	display: none;
}
:is(.sv-w,#sv-x) .sv-cfg__next,
:is(.sv-w,#sv-x) .sv-cfg__next:hover,
:is(.sv-w,#sv-x) .sv-cfg__next:focus {
	--sv-bbg: var(--sv-ink);
	--sv-bfg: var(--sv-ivory);
	position: relative;
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	gap: 10px;
	padding: 0 28px;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 700;
	transition:
		box-shadow 300ms ease,
		transform 150ms ease;
}
:is(.sv-w,#sv-x) .sv-cfg__next:hover {
	box-shadow: var(--sv-shadow-ink);
}
:is(.sv-w,#sv-x) .sv-cfg__next:active,
:is(.sv-w,#sv-x) .sv-cfg__back:active {
	transform: scale(0.97);
}
:is(.sv-w,#sv-x) .sv-cfg__next[hidden] {
	display: none;
}

/* Ráfaga de estrellas (se inserta en <body>) */
.sv-burst {
	position: fixed;
	inset: 0;
	z-index: 100001;
	pointer-events: none;
}
.sv-burst span {
	position: absolute;
	color: #b8860b;
	animation: sv-burst 600ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes sv-burst {
	0% {
		opacity: 1;
		transform: translate(0, 0) scale(0.3) rotate(0);
	}
	50% {
		opacity: 1;
		transform: translate(calc(var(--x) * 0.6), calc(var(--y) * 0.6)) scale(1.1) rotate(45deg);
	}
	100% {
		opacity: 0;
		transform: translate(var(--x), var(--y)) scale(0.6) rotate(90deg);
	}
}

/* Halo del cursor */
.sv-cursor-halo {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1;
	width: 400px;
	height: 400px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(184, 134, 11, 0.1) 0%, rgba(184, 134, 11, 0) 65%);
	pointer-events: none;
	transform: translate3d(-400px, -400px, 0);
	will-change: transform;
}

/* Lenis */
html.lenis,
html.lenis body {
	height: auto;
}
.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
	overflow: clip;
}

/* ------------------------------------------------------------------
   Movimiento reducido: todo aparece con un fundido simple
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	:is(.sv-w,#sv-x) .sv-line,
	:is(.sv-w,#sv-x) .sv-rise-in,
	:is(.sv-w,#sv-x).sv-rise-in {
		animation-name: sv-fade;
		animation-duration: 400ms;
	}
	:is(.sv-w,#sv-x) [data-reveal],
	:is(.sv-w,#sv-x)[data-reveal],
	:is(.sv-w,#sv-x) [data-reveal-group] > [data-reveal-item],
	:is(.sv-w,#sv-x) .sv-line-view {
		transform: none !important;
		transition: opacity 400ms ease !important;
	}
	:is(.sv-w,#sv-x) .sv-loop {
		animation: none !important;
	}
	:is(.sv-w,#sv-x) .sv-btn-shine::after {
		display: none;
	}
	:is(.sv-w,#sv-x) .sv-magnetic {
		transition: none;
	}
	:is(.sv-w,#sv-x) .sv-bd {
		translate: none;
		transition: none;
	}
	:is(.sv-w,#sv-x) [data-inview='true'] .sv-bd {
		animation: sv-fade 400ms ease both;
	}
	:is(.sv-w,#sv-x) .sv-bracelet-cord {
		transform: none;
	}
	:is(.sv-w,#sv-x) .sv-tile {
		transform: none;
	}
	:is(.sv-w,#sv-x) [data-inview='true'] > .sv-tile {
		animation: sv-fade 400ms ease both;
	}
	:is(.sv-w,#sv-x) .sv-cfg__step.is-entering,
	:is(.sv-w,#sv-x) .sv-cfg__step.is-leaving {
		animation-name: sv-fade;
	}
	:is(.sv-w,#sv-x) .sv-cfg__patch-art {
		transform: none;
	}
	:is(.sv-modal,#sv-x),
	.sv-modal__panel {
		animation: sv-fade 300ms ease both;
	}
}

/* Columnas de Contacto: la tarjeta y el formulario ocupan todo el alto */
.elementor-widget-sv_whatsapp_card,
.elementor-widget-sv_contact_form {
	flex-grow: 1;
}
.elementor-widget-sv_whatsapp_card > .elementor-widget-container,
.elementor-widget-sv_contact_form > .elementor-widget-container {
	height: 100%;
}