/*
 * Vapetazo — «noir couture»
 * Mismos tokens que la app (docs/vapetazo/DISENO.md): negro, blanco hueso y
 * oro; Playfair Display + Plus Jakarta Sans; un degradado por mundo.
 *
 * Índice
 *  1. Tokens y base          9. Tarjeta de producto y cuadrícula
 *  2. Utilidades             10. Listados
 *  3. Botones, chips          11. Ficha de producto
 *  4. Franja y cabecera       12. WooCommerce: avisos, formularios, tablas
 *  5. Buscador                13. Carrito y pago
 *  6. Paneles laterales       14. Mi cuenta y acceso
 *  7. Barra inferior, FAB     15. Páginas, Elementor, 404
 *  8. Inicio                  16. Pie, animaciones
 */

/* ==========================================================================
   1. Tokens y base
   ========================================================================== */

:root {
	--vz-ink: #0e0e10;
	--vz-ink-2: #1c1a17;
	--vz-gold: #c8a35a;
	--vz-gold-light: #f1dfa8;
	--vz-gold-deep: #9a7a35;
	--vz-gold-soft: #f6eedb;
	--vz-accent: #ff2e63;
	--vz-sale: #e0244a;
	--vz-bg: #f5f3ef;
	--vz-surface: #ffffff;
	--vz-surface-alt: #efece6;
	--vz-line: #e6e2da;
	--vz-text: #2a2a2e;
	--vz-muted: #77736b;
	--vz-faint: #ada89f;
	--vz-on-dark: #f5f3ef;
	--vz-on-dark-muted: #a9a49a;
	--vz-wa: #25d366;
	--vz-ok: #1f9d55;

	--vz-grad-gold: linear-gradient(135deg, #f1dfa8 0%, #c8a35a 52%, #9a7a35 100%);
	--vz-grad-dark: linear-gradient(180deg, #0b0b0d 0%, #1c1a17 100%);
	--vz-grad-accent: linear-gradient(135deg, #ff2e63 0%, #ff7a45 100%);

	--vz-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--vz-sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--vz-r-sm: 12px;
	--vz-r-img: 14px;
	--vz-r-card: 16px;
	--vz-r-lg: 20px;
	--vz-r-hero: 24px;
	--vz-r-xl: 32px;
	--vz-r-pill: 999px;

	--vz-shadow-sm: 0 1px 2px rgba(14, 14, 16, 0.05);
	--vz-shadow: 0 1px 2px rgba(14, 14, 16, 0.04), 0 12px 32px rgba(14, 14, 16, 0.07);
	--vz-shadow-lg: 0 30px 70px rgba(14, 14, 16, 0.22);
	--vz-focus: 0 0 0 4px rgba(200, 163, 90, 0.28);

	--vz-ease: cubic-bezier(0.215, 0.61, 0.355, 1);
	--vz-fast: 150ms;
	--vz-med: 240ms;
	--vz-slow: 320ms;

	--vz-wrap: 1320px;
	--vz-gutter: 16px;
	--vz-adminbar: 0px;
	--vz-bar-h: 56px;
	--vz-sticky-h: 64px;
}

@media (min-width: 768px) {
	:root { --vz-gutter: 24px; }
}

@media (min-width: 1024px) {
	:root {
		--vz-gutter: 32px;
		--vz-bar-h: 76px;
		--vz-sticky-h: 125px;
	}
}

body.admin-bar { --vz-adminbar: 32px; }

@media (max-width: 782px) {
	body.admin-bar { --vz-adminbar: 46px; }
}

@media (max-width: 600px) {
	body.admin-bar { --vz-adminbar: 0px; }
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--vz-sticky-h) + var(--vz-adminbar) + 16px);
}

body {
	margin: 0;
	background: var(--vz-bg);
	color: var(--vz-text);
	font: 400 15px/1.6 var(--vz-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

html.vz-lock,
html.vz-lock body { overflow: hidden; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	color: var(--vz-ink);
	line-height: 1.2;
}

h1, h2 {
	font-family: var(--vz-serif);
	font-weight: 700;
	letter-spacing: -0.01em;
}

h3, h4, h5, h6 {
	font-family: var(--vz-sans);
	font-weight: 700;
}

p { margin: 0 0 1em; }

a {
	color: inherit;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

img, svg, video {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea { font: inherit; color: inherit; }

button { -webkit-tap-highlight-color: transparent; }

:focus-visible {
	outline: 2px solid var(--vz-gold);
	outline-offset: 2px;
}

::selection {
	background: var(--vz-gold-light);
	color: var(--vz-ink);
}

/* ==========================================================================
   2. Utilidades
   ========================================================================== */

.vz-wrap {
	width: 100%;
	max-width: calc(var(--vz-wrap) + 2 * var(--vz-gutter));
	margin-inline: auto;
	padding-inline: var(--vz-gutter);
}

.vz-sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.vz-i {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	vertical-align: middle;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.vz-skip {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 2000;
	padding: 10px 16px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-ink);
	color: #fff;
	font-weight: 600;
	transform: translateY(-200%);
}

.vz-skip:focus { transform: none; }

@media (max-width: 1023px) {
	.vz-hide-mobile { display: none !important; }
}

@media (min-width: 1024px) {
	.vz-hide-desktop { display: none !important; }
}

.vz-overline {
	display: inline-block;
	font: 700 11px/1.3 var(--vz-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vz-muted);
}

.vz-overline--gold { color: var(--vz-gold); }
.vz-overline--light { color: rgba(255, 255, 255, 0.78); }

.vz-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: 700 14px/1.2 var(--vz-sans);
	color: var(--vz-ink);
	padding-bottom: 4px;
	background: linear-gradient(var(--vz-gold), var(--vz-gold)) left bottom / 100% 2px no-repeat;
	white-space: nowrap;
}

.vz-link .vz-i {
	width: 16px;
	height: 16px;
	transition: transform var(--vz-med) var(--vz-ease);
}

.vz-link:hover .vz-i { transform: translateX(3px); }
.vz-link--sm { font-size: 13px; }

/* La «V» coronada en oro (máscara sobre el logotipo, sin márgenes). */
.vz-crown {
	display: block;
	width: 64px;
	aspect-ratio: 429 / 458;
	background: var(--vz-grad-gold);
	-webkit-mask: url(../img/mark.png) center / contain no-repeat;
	mask: url(../img/mark.png) center / contain no-repeat;
}

/* ==========================================================================
   3. Botones, chips, insignias
   ========================================================================== */

.vz-btn,
.button,
button.button,
input.button,
#place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 22px;
	border: 1px solid transparent;
	border-radius: var(--vz-r-pill);
	background: var(--vz-ink);
	color: #fff;
	font: 700 15px/1.1 var(--vz-sans);
	letter-spacing: 0.01em;
	text-align: center;
	white-space: nowrap;
	cursor: pointer;
	transition: background var(--vz-fast), color var(--vz-fast), border-color var(--vz-fast), transform var(--vz-fast) var(--vz-ease), box-shadow var(--vz-fast);
	-webkit-appearance: none;
	appearance: none;
	text-decoration: none;
}

.vz-btn:hover,
.button:hover,
#place_order:hover { background: #000; color: var(--vz-gold-light); }

.vz-btn:active,
.button:active,
#place_order:active { transform: scale(0.97); }

.vz-btn .vz-i { width: 18px; height: 18px; }

.vz-btn--dark { background: var(--vz-ink); color: #fff; }

.vz-btn--gold,
.vz-btn--gold:hover {
	background: var(--vz-grad-gold);
	color: var(--vz-ink);
	box-shadow: 0 10px 24px rgba(200, 163, 90, 0.32);
}

.vz-btn--gold:hover { filter: brightness(1.05); }

.vz-btn--light { background: #fff; color: var(--vz-ink); }
.vz-btn--light:hover { background: var(--vz-gold-light); color: var(--vz-ink); }

.vz-btn--ghost {
	background: transparent;
	color: var(--vz-ink);
	border-color: var(--vz-ink);
}

.vz-btn--ghost:hover { background: var(--vz-ink); color: #fff; }

.vz-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.32);
}

.vz-btn--ghost-light:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
}

.vz-btn--wa,
.vz-btn--wa:hover { background: var(--vz-wa); color: #fff; }

.vz-btn--wa-line {
	background: #fff;
	color: #128c4b;
	border: 1.5px solid var(--vz-wa);
}

.vz-btn--wa-line:hover { background: #eafbf1; color: #0d7a40; }

.vz-btn--sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.vz-btn--lg { min-height: 56px; padding: 0 28px; font-size: 16px; }
.vz-btn--block { width: 100%; }

.vz-icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background var(--vz-fast);
}

.vz-icon-btn:hover { background: rgba(255, 255, 255, 0.1); }
.vz-icon-btn .vz-i { width: 24px; height: 24px; }

.vz-round-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--vz-line);
	border-radius: 50%;
	background: var(--vz-surface);
	color: var(--vz-ink);
	cursor: pointer;
	transition: background var(--vz-fast), color var(--vz-fast), border-color var(--vz-fast), opacity var(--vz-fast);
}

.vz-round-btn:hover { background: var(--vz-ink); color: #fff; border-color: var(--vz-ink); }
.vz-round-btn:disabled { opacity: 0.35; cursor: default; background: var(--vz-surface); color: var(--vz-ink); border-color: var(--vz-line); }
.vz-round-btn .vz-i { width: 20px; height: 20px; }

.vz-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 24px;
	padding: 2px 9px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface-alt);
	color: var(--vz-text);
	font: 700 11.5px/1.2 var(--vz-sans);
	white-space: nowrap;
}

.vz-chip--gold { background: var(--vz-gold-soft); color: var(--vz-gold-deep); }

.vz-chip--line {
	background: transparent;
	border: 1px solid var(--vz-line);
	color: var(--vz-text);
}

.vz-chip--line .amount { font-weight: 800; color: var(--vz-ink); }

.vz-chip--glass {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.18);
	min-height: 30px;
	padding: 4px 12px;
	font-size: 12.5px;
}

.vz-badge {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 9px;
	border-radius: var(--vz-r-pill);
	font: 800 11.5px/1 var(--vz-sans);
	letter-spacing: 0.02em;
}

.vz-badge--sale { background: var(--vz-accent); color: #fff; }
.vz-badge--dark { background: var(--vz-ink); color: var(--vz-gold-light); }

/* ==========================================================================
   4. Franja superior y cabecera
   ========================================================================== */

.vz-topbar {
	background: #0b0b0d;
	color: var(--vz-on-dark-muted);
	font-size: 12px;
	letter-spacing: 0.02em;
}

.vz-topbar__in {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	height: 32px;
}

.vz-topbar__msg {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
}

.vz-topbar__msg b { color: var(--vz-gold); font-weight: 700; }

.vz-topbar__dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--vz-gold);
	flex: none;
}

.vz-topbar__links { display: none; }

@media (min-width: 1024px) {
	.vz-topbar__in { justify-content: space-between; height: 36px; }
	.vz-topbar__links { display: flex; gap: 22px; }
	.vz-topbar__links a { color: var(--vz-on-dark-muted); transition: color var(--vz-fast); }
	.vz-topbar__links a:hover { color: var(--vz-gold-light); }
}

.vz-header {
	position: sticky;
	top: calc(var(--vz-adminbar) - var(--vz-bar-h));
	z-index: 60;
	background: rgba(14, 14, 16, 0.94);
	color: var(--vz-on-dark);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	transition: box-shadow var(--vz-med);
}

.vz-header.is-scrolled { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25); }

@media (min-width: 1024px) {
	.vz-header { top: var(--vz-adminbar); }
}

.vz-header__bar {
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	height: var(--vz-bar-h);
}

.vz-logo {
	display: inline-flex;
	align-items: center;
	justify-self: center;
	padding: 6px 0;
}

.vz-logo__word {
	display: block;
	width: 124px;
	aspect-ratio: 1200 / 370;
	background: #fff;
	-webkit-mask: url(../img/wordmark.png) center / contain no-repeat;
	mask: url(../img/wordmark.png) center / contain no-repeat;
}

.vz-logo--gold .vz-logo__word { background: var(--vz-grad-gold); }
.vz-logo--sm .vz-logo__word { width: 112px; }

.vz-header .vz-header__search-d { display: none; }

.vz-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
}

.vz-account-link { display: none; }

.vz-cart-count {
	position: absolute;
	top: 3px;
	right: 0;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--vz-grad-gold);
	color: var(--vz-ink);
	font: 800 11px/19px var(--vz-sans);
	text-align: center;
	box-shadow: 0 0 0 2px var(--vz-ink);
	pointer-events: none;
}

.vz-cart-count[data-count="0"]:not(.vz-cart-count--inline) { display: none; }

.vz-cart-count--inline {
	position: static;
	display: inline-block;
	vertical-align: middle;
	margin-left: 6px;
	box-shadow: none;
}

.vz-cart-count.is-bump { animation: vz-bump 0.55s var(--vz-ease); }

@keyframes vz-bump {
	0% { transform: scale(1); }
	30% { transform: scale(1.4); }
	60% { transform: scale(0.9); }
	100% { transform: scale(1); }
}

.vz-header__search-m { padding-bottom: 12px; }

.vz-worldnav { display: none; }

@media (min-width: 1024px) {
	.vz-header__bar {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 36px;
	}

	.vz-header__menu { display: none; }
	.vz-logo { justify-self: start; }
	.vz-logo__word { width: 168px; }
	.vz-header .vz-header__search-d { display: flex; max-width: 640px; width: 100%; justify-self: center; }
	.vz-header__search-m { display: none; }

	.vz-account-link {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		padding-right: 10px;
		border-radius: var(--vz-r-pill);
		transition: background var(--vz-fast);
	}

	.vz-account-link:hover { background: rgba(255, 255, 255, 0.08); }
	.vz-account-link .vz-icon-btn:hover { background: transparent; }

	.vz-account-link__txt {
		display: flex;
		flex-direction: column;
		line-height: 1.15;
	}

	.vz-account-link__txt small { color: var(--vz-on-dark-muted); font-size: 11.5px; }
	.vz-account-link__txt b { font-size: 14px; font-weight: 700; }

	.vz-worldnav {
		display: block;
		border-top: 1px solid rgba(255, 255, 255, 0.06);
	}

	.vz-worldnav__in {
		display: flex;
		align-items: center;
		gap: 4px;
		height: 48px;
	}

	.vz-worldnav a,
	.vz-worldnav button {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		height: 34px;
		padding: 0 14px;
		border: 0;
		border-radius: var(--vz-r-pill);
		background: transparent;
		color: var(--vz-on-dark);
		font: 600 14px/1 var(--vz-sans);
		opacity: 0.86;
		cursor: pointer;
		transition: background var(--vz-fast), opacity var(--vz-fast), color var(--vz-fast);
		white-space: nowrap;
	}

	.vz-worldnav a:hover,
	.vz-worldnav button:hover,
	.vz-worldnav .is-current {
		background: rgba(255, 255, 255, 0.09);
		opacity: 1;
	}

	.vz-worldnav .vz-i { width: 18px; height: 18px; }

	.vz-worldnav__all { background: rgba(255, 255, 255, 0.06) !important; }

	.vz-worldnav__dot {
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: linear-gradient(135deg, var(--w2), var(--w3));
		box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.24);
	}

	.vz-worldnav__deals { color: #ff8fab !important; }
	.vz-worldnav__spacer { flex: 1; }
	.vz-worldnav__cta { color: var(--vz-gold) !important; opacity: 1 !important; }
}

/* ==========================================================================
   5. Buscador
   ========================================================================== */

.vz-search {
	position: relative;
	display: flex;
	align-items: center;
	height: 46px;
	border-radius: var(--vz-r-pill);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	transition: background var(--vz-fast), border-color var(--vz-fast), box-shadow var(--vz-fast);
}

.vz-search:focus-within {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--vz-gold);
	box-shadow: var(--vz-focus);
}

.vz-search__icon {
	width: 20px !important;
	height: 20px !important;
	margin-left: 16px;
	color: var(--vz-on-dark-muted);
}

.vz-search__input {
	flex: 1;
	min-width: 0;
	height: 100%;
	padding: 0 12px;
	border: 0;
	outline: 0;
	background: transparent;
	color: #fff;
	font: 500 15px var(--vz-sans);
	-webkit-appearance: none;
	appearance: none;
}

.vz-search__input::placeholder { color: var(--vz-on-dark-muted); opacity: 1; }
.vz-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }

.vz-search__submit {
	display: none;
	height: 36px;
	margin-right: 4px;
	padding: 0 18px;
	border: 0;
	border-radius: var(--vz-r-pill);
	background: var(--vz-grad-gold);
	color: var(--vz-ink);
	font: 700 13px var(--vz-sans);
	cursor: pointer;
}

@media (min-width: 1024px) {
	.vz-search__submit { display: inline-flex; align-items: center; }
}

.vz-search--light {
	background: var(--vz-surface);
	border-color: var(--vz-line);
}

.vz-search--light:focus-within { background: var(--vz-surface); border-color: var(--vz-ink); }
.vz-search--light .vz-search__icon { color: var(--vz-muted); }
.vz-search--light .vz-search__input { color: var(--vz-ink); }
.vz-search--light .vz-search__input::placeholder { color: var(--vz-faint); }
.vz-search--light .vz-search__submit { display: none; }

.vz-search__results {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 10;
	display: none;
	max-height: min(70vh, 520px);
	overflow-y: auto;
	padding: 8px;
	border-radius: var(--vz-r-card);
	background: var(--vz-surface);
	color: var(--vz-text);
	box-shadow: var(--vz-shadow-lg);
}

.vz-search__results.is-open { display: block; animation: vz-pop var(--vz-med) var(--vz-ease); }

@keyframes vz-pop {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

.vz-sr-item {
	display: grid;
	grid-template-columns: 52px 1fr;
	align-items: center;
	gap: 12px;
	padding: 8px;
	border-radius: var(--vz-r-sm);
	transition: background var(--vz-fast);
}

.vz-sr-item:hover,
.vz-sr-item:focus-visible { background: var(--vz-surface-alt); }

.vz-sr-item img,
.vz-sr-ph {
	width: 52px;
	height: 52px;
	padding: 4px;
	object-fit: contain;
	border: 1px solid var(--vz-line);
	border-radius: 10px;
	background: #fff;
	display: block;
}

.vz-sr-item b {
	display: block;
	color: var(--vz-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.vz-sr-item small { color: var(--vz-muted); font-size: 12px; }

.vz-sr-all {
	display: flex;
	justify-content: center;
	padding: 12px;
	margin-top: 4px;
	border-top: 1px solid var(--vz-line);
	color: var(--vz-ink);
	font-weight: 700;
	font-size: 14px;
}

.vz-sr-empty { padding: 16px; text-align: center; color: var(--vz-muted); font-size: 14px; }

/* ==========================================================================
   6. Paneles laterales (menú y carrito)
   ========================================================================== */

.vz-scrim {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgba(8, 8, 10, 0.55);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	opacity: 0;
	transition: opacity var(--vz-slow) var(--vz-ease);
}

.vz-scrim.is-open { opacity: 1; }

.vz-drawer {
	position: fixed;
	top: var(--vz-adminbar);
	bottom: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	width: min(420px, 92vw);
	background: var(--vz-bg);
	visibility: hidden;
	transition: transform var(--vz-slow) var(--vz-ease), visibility 0s linear var(--vz-slow);
	outline: none;
}

.vz-drawer--left { left: 0; transform: translateX(-100%); border-radius: 0 24px 24px 0; overflow: hidden; }
.vz-drawer--right { right: 0; transform: translateX(100%); border-radius: 24px 0 0 24px; overflow: hidden; }

.vz-drawer.is-open {
	transform: none;
	visibility: visible;
	transition: transform var(--vz-slow) var(--vz-ease), visibility 0s;
	box-shadow: var(--vz-shadow-lg);
}

.vz-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 12px 12px 20px;
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark);
}

.vz-drawer__title {
	margin: 0;
	font: 700 20px/1.2 var(--vz-serif);
	color: #fff;
}

.vz-drawer__body {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 18px 20px 24px;
}

.vz-drawer__foot {
	padding: 14px 20px calc(14px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--vz-line);
	background: var(--vz-surface);
}

.vz-dworlds {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 16px 0 8px;
}

.vz-dworld {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 18px;
	min-height: 86px;
	padding: 14px;
	border-radius: var(--vz-r-card);
	background: linear-gradient(135deg, var(--w1, #1c1a17), var(--w2, #2a2622) 60%, var(--w3, #3a342c));
	color: #fff;
	font: 700 15px/1.1 var(--vz-sans);
	overflow: hidden;
}

.vz-dworld .vz-i { width: 26px; height: 26px; opacity: 0.95; }
.vz-dworld--deals { background: var(--vz-grad-accent); }

.vz-dlabel {
	margin: 22px 0 6px;
	font: 700 11px/1.2 var(--vz-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vz-muted);
}

.vz-dcat { border-bottom: 1px solid var(--vz-line); }

.vz-dcat summary,
.vz-dcat--link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 2px;
	color: var(--vz-ink);
	font: 600 15px/1.3 var(--vz-sans);
	list-style: none;
	cursor: pointer;
}

.vz-dcat summary::-webkit-details-marker { display: none; }
.vz-dcat__chev { width: 18px !important; height: 18px !important; color: var(--vz-muted); transition: transform var(--vz-med) var(--vz-ease); }
.vz-dcat[open] .vz-dcat__chev { transform: rotate(180deg); }

.vz-dcat ul {
	margin: 0;
	padding: 0 0 10px;
	list-style: none;
}

.vz-dcat li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 9px 2px 9px 12px;
	color: var(--vz-text);
	font-size: 14.5px;
	border-left: 2px solid var(--vz-line);
}

.vz-dcat li a:hover { color: var(--vz-ink); border-left-color: var(--vz-gold); }
.vz-dcat li small { color: var(--vz-faint); font-weight: 600; font-size: 12px; }

.vz-dlinks a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 2px;
	color: var(--vz-ink);
	font-weight: 500;
	font-size: 15px;
}

.vz-dlinks .vz-i { width: 20px; height: 20px; color: var(--vz-gold-deep); }

/* Carrito lateral (plantilla woocommerce/cart/mini-cart.php) */
#vz-cart .vz-drawer__body { padding-bottom: 0; }

.widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }

.woocommerce-mini-cart {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0 0 12px;
	list-style: none;
}

.vz-mini__item {
	position: relative;
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 14px;
	padding: 12px 12px 12px 12px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-card);
	background: var(--vz-surface);
	font-size: 14px;
	transition: opacity var(--vz-fast);
}

.vz-mini__item.is-busy { opacity: 0.55; pointer-events: none; }

.vz-mini__thumb {
	display: block;
	width: 76px;
	height: 76px;
	padding: 6px;
	border-radius: var(--vz-r-sm);
	background: var(--vz-surface-alt);
	overflow: hidden;
}

.vz-mini__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.vz-mini__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	padding-right: 30px;
}

.vz-mini__name {
	display: -webkit-box;
	overflow: hidden;
	color: var(--vz-ink);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.35;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.vz-mini__meta:empty { display: none; }
.vz-mini__meta dl.variation { display: block; margin: 0; color: var(--vz-muted); font-size: 12px; line-height: 1.4; }
.vz-mini__meta dl.variation dt,
.vz-mini__meta dl.variation dd,
.vz-mini__meta dl.variation p { display: inline; margin: 0; font-weight: 500; }
.vz-mini__meta dl.variation dd::after { content: ""; display: block; }

.vz-mini__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 6px;
}

.vz-mini__qty {
	display: inline-flex;
	align-items: center;
	height: 34px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
}

.vz-mini__qty button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--vz-ink);
	cursor: pointer;
}

.vz-mini__qty button:hover:not(:disabled) { background: var(--vz-surface-alt); }
.vz-mini__qty button:disabled { opacity: 0.3; cursor: default; }
.vz-mini__qty .vz-i { width: 15px; height: 15px; stroke-width: 2.4; }
.vz-mini__qty-n { min-width: 26px; color: var(--vz-ink); font-weight: 800; font-size: 14px; text-align: center; font-variant-numeric: tabular-nums; }
.vz-mini__qty-fixed { color: var(--vz-muted); font-size: 13px; font-weight: 600; }

.vz-mini__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.2;
	text-align: right;
}

.vz-mini__price b { color: var(--vz-ink); font-weight: 800; font-size: 15px; font-variant-numeric: tabular-nums; }
.vz-mini__price small { color: var(--vz-muted); font-size: 11.5px; }
.vz-mini__price small .amount { font-weight: 600; }

.vz-mini__item a.vz-mini__remove {
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: var(--vz-faint);
	transition: background var(--vz-fast), color var(--vz-fast);
}

.vz-mini__item a.vz-mini__remove:hover { background: rgba(224, 36, 74, 0.1); color: var(--vz-sale); }
.vz-mini__remove .vz-i { width: 17px; height: 17px; }

.vz-mini__foot {
	position: sticky;
	bottom: 0;
	margin: auto -20px 0;
	padding: 14px 20px calc(16px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--vz-line);
	background: var(--vz-bg);
}

.woocommerce-mini-cart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0;
	padding: 0 0 12px;
	font-size: 15px;
}

.woocommerce-mini-cart__total strong { color: var(--vz-muted); font-weight: 600; }
.woocommerce-mini-cart__total .amount { color: var(--vz-ink); font: 800 21px var(--vz-sans); }

.woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

.woocommerce-mini-cart__buttons .button { min-height: 50px; padding: 0 12px; font-size: 14.5px; }

.woocommerce-mini-cart__buttons .button { width: 100%; }

.woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: transparent;
	color: var(--vz-ink);
	border-color: var(--vz-ink);
}

.woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--vz-ink); color: #fff; }
.woocommerce-mini-cart__buttons .checkout { background: var(--vz-grad-gold); color: var(--vz-ink); }

.woocommerce-mini-cart__empty-message { display: none; }

.vz-mini-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 12px 0 0;
	color: var(--vz-muted);
	font-size: 12.5px;
}

.vz-mini-note .vz-i { color: var(--vz-gold-deep); width: 16px; height: 16px; }

/* ==========================================================================
   7. Barra inferior (móvil), WhatsApp, aviso flotante, edad
   ========================================================================== */

.vz-tabbar {
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom));
	z-index: 70;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 64px;
	padding: 0 8px;
	border-radius: var(--vz-r-pill);
	background: rgba(14, 14, 16, 0.96);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: 0 18px 40px rgba(14, 14, 16, 0.35);
}

.vz-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 48px;
	height: 48px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--vz-r-pill);
	background: transparent;
	color: rgba(245, 243, 239, 0.78);
	font: 700 14px/1 var(--vz-sans);
	cursor: pointer;
	transition: background var(--vz-med) var(--vz-ease), padding var(--vz-med) var(--vz-ease), color var(--vz-fast);
}

.vz-tab .vz-i { width: 24px; height: 24px; }
.vz-tab__label { display: none; }
.vz-tab__icon { position: relative; display: inline-flex; }
.vz-tab__icon .vz-cart-count { top: -6px; right: -9px; }

.vz-tab.is-active {
	padding: 0 18px 0 14px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.vz-tab.is-active .vz-tab__label { display: inline; }
.vz-tab.is-active .vz-i { color: var(--vz-gold); }

@media (max-width: 1023px) {
	body.vz { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
}

@media (min-width: 1024px) {
	.vz-tabbar { display: none; }
}

.vz-wa-fab {
	position: fixed;
	right: 16px;
	bottom: calc(92px + env(safe-area-inset-bottom));
	z-index: 65;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--vz-wa);
	color: #fff;
	box-shadow: 0 12px 28px rgba(37, 211, 102, 0.38);
	transition: transform var(--vz-slow) var(--vz-ease), opacity var(--vz-med);
}

.vz-wa-fab:hover { transform: translateY(-2px) scale(1.04); }
.vz-wa-fab .vz-i { width: 30px; height: 30px; }
.vz-wa-fab.is-hidden { transform: translateY(160%); opacity: 0; pointer-events: none; }

.vz-wa-fab__tip {
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	padding: 9px 14px;
	border-radius: 14px;
	background: #fff;
	color: var(--vz-ink);
	font: 600 13px/1.2 var(--vz-sans);
	white-space: nowrap;
	box-shadow: var(--vz-shadow);
	opacity: 0;
	transform: translate(8px, -50%);
	transition: opacity var(--vz-med), transform var(--vz-med) var(--vz-ease);
	pointer-events: none;
}

.vz-wa-fab.is-tip .vz-wa-fab__tip { opacity: 1; transform: translate(0, -50%); }

@media (min-width: 1024px) {
	.vz-wa-fab { right: 28px; bottom: 28px; width: 60px; height: 60px; }
}

.vz-toast {
	position: fixed;
	left: 50%;
	bottom: calc(92px + env(safe-area-inset-bottom));
	z-index: 120;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: calc(100vw - 32px);
	padding: 12px 18px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-ink);
	color: #fff;
	font: 600 14px/1.2 var(--vz-sans);
	box-shadow: var(--vz-shadow-lg);
	opacity: 0;
	transform: translate(-50%, 16px);
	transition: opacity var(--vz-med), transform var(--vz-med) var(--vz-ease);
	pointer-events: none;
}

.vz-toast.is-show { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.vz-toast .vz-i { color: var(--vz-gold); width: 20px; height: 20px; }
.vz-toast a { color: var(--vz-gold-light); font-weight: 800; }

@media (min-width: 1024px) {
	.vz-toast { bottom: 32px; }
}

/* Verificación de edad */
.vz-age { display: none; }

html.js:not(.vz-age-ok) .vz-age {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background:
		radial-gradient(900px 520px at 50% -10%, rgba(200, 163, 90, 0.24), transparent 62%),
		radial-gradient(700px 480px at 110% 110%, rgba(124, 58, 237, 0.2), transparent 60%),
		radial-gradient(600px 420px at -10% 100%, rgba(219, 39, 119, 0.14), transparent 60%),
		#0b0b0d;
	overflow-y: auto;
}

html.js:not(.vz-age-ok) body { overflow: hidden; }

.vz-age__panel {
	width: min(460px, 100%);
	text-align: center;
	color: var(--vz-on-dark);
	animation: vz-rise 0.7s var(--vz-ease) both;
}

.vz-age__mark {
	width: 76px;
	margin: 0 auto 22px;
	filter: drop-shadow(0 12px 30px rgba(200, 163, 90, 0.35));
}

.vz-age h2 {
	margin: 12px 0 12px;
	color: #fff;
	font: 800 clamp(30px, 7vw, 42px)/1.08 var(--vz-serif);
}

.vz-age p { margin: 0 0 28px; color: var(--vz-on-dark-muted); font-size: 15.5px; }
.vz-age__actions { display: grid; gap: 10px; }
.vz-age small { display: block; margin-top: 20px; color: var(--vz-faint); font-size: 12.5px; }
.vz-age small a { color: var(--vz-gold); text-decoration: underline; text-underline-offset: 3px; }

@keyframes vz-rise {
	from { opacity: 0; transform: translateY(24px) scale(0.98); }
	to { opacity: 1; transform: none; }
}

/* ==========================================================================
   8. Inicio
   ========================================================================== */

.vz-section { padding: 40px 0 0; }

.vz-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.vz-section__heading {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.vz-section__title {
	margin: 4px 0 0;
	font: 700 clamp(26px, 3.4vw, 40px)/1.08 var(--vz-serif);
	color: var(--vz-ink);
}

.vz-section__title em { font-style: italic; color: var(--vz-gold-deep); }

.vz-section__tag {
	display: block;
	margin-top: 2px;
	font: italic 600 15px/1.3 var(--vz-serif);
	color: var(--vz-muted);
}

.vz-section__tools {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: none;
}

.vz-wbadge {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--w1, #0e0e10), var(--w3, #c8a35a));
	color: #fff;
	box-shadow: 0 8px 20px rgba(14, 14, 16, 0.18);
}

.vz-wbadge .vz-i { width: 24px; height: 24px; }

@media (min-width: 1024px) {
	.vz-section { padding: 72px 0 0; }
	.vz-section__head { margin-bottom: 26px; }
	.vz-wbadge { width: 58px; height: 58px; }
}

/* Franja negra */
.vz-home-top {
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark);
	border-radius: 0 0 28px 28px;
	padding: 4px 0 20px;
	margin-top: -1px;
}

.vz-home-top__intro {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.vz-orbs {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scrollbar-width: none;
	margin: 0 calc(-1 * var(--vz-gutter));
	padding: 12px var(--vz-gutter) 2px;
}

.vz-orbs::-webkit-scrollbar { display: none; }

.vz-orb {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 9px;
	flex: none;
	width: 78px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--vz-on-dark);
	font: 600 13px/1.2 var(--vz-sans);
	cursor: pointer;
}

.vz-orb__c {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--w1), var(--w2) 55%, var(--w3));
	color: #fff;
	outline: 2px solid var(--vz-gold);
	outline-offset: 3px;
	box-shadow: 0 12px 26px rgba(0, 0, 0, 0.38);
	transition: transform var(--vz-med) var(--vz-ease);
}

.vz-orb:active .vz-orb__c { transform: scale(0.94); }
.vz-orb__c .vz-i { width: 30px; height: 30px; }
.vz-orb--deals .vz-orb__c { background: var(--vz-grad-accent); }

.vz-orb--more .vz-orb__c {
	background: transparent;
	outline-color: rgba(255, 255, 255, 0.2);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.vz-orb--more .vz-orb__l { color: var(--vz-on-dark-muted); }

@media (min-width: 1024px) {
	.vz-home-top {
		padding: 56px 0 132px;
		border-radius: 0 0 56px 56px;
		position: relative;
		overflow: hidden;
		isolation: isolate;
	}

	.vz-home-top::before {
		content: "";
		position: absolute;
		inset: -40% -10% auto auto;
		width: 60%;
		aspect-ratio: 1;
		background: radial-gradient(circle, rgba(200, 163, 90, 0.18), transparent 62%);
		z-index: -1;
	}

	.vz-home-top::after {
		content: "";
		position: absolute;
		left: -6%;
		bottom: -30%;
		width: 34%;
		aspect-ratio: 1;
		background: radial-gradient(circle, rgba(124, 58, 237, 0.16), transparent 62%);
		z-index: -1;
	}

	.vz-home-top__intro {
		position: static !important;
		width: auto;
		height: auto;
		overflow: visible;
		clip: auto;
		white-space: normal;
		text-align: center;
		max-width: 860px;
		margin: 0 auto;
	}

	.vz-home-top__title {
		margin: 14px 0 14px;
		color: #fff;
		font: 800 clamp(44px, 5.2vw, 72px)/1.02 var(--vz-serif);
		letter-spacing: -0.02em;
	}

	.vz-home-top__title em {
		font-style: italic;
		font-weight: 700;
		background: var(--vz-grad-gold);
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
		padding-right: 0.06em;
		white-space: nowrap;
	}

	.vz-home-top__lead { margin: 0 auto 26px; color: var(--vz-on-dark-muted); font-size: 18px; max-width: 620px; }

	.vz-home-top__chips {
		display: flex;
		justify-content: center;
		gap: 10px;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.vz-home-top__chips li {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		height: 38px;
		padding: 0 16px;
		border-radius: var(--vz-r-pill);
		background: rgba(255, 255, 255, 0.06);
		border: 1px solid rgba(255, 255, 255, 0.1);
		color: var(--vz-on-dark);
		font-size: 13.5px;
		font-weight: 600;
	}

	.vz-home-top__chips .vz-i { width: 17px; height: 17px; color: var(--vz-gold); }
	.vz-orbs { display: none; }
}

/* Carrusel + tarjetas laterales */
.vz-hero { padding-top: 18px; }

.vz-hero-grid { display: grid; gap: 14px; }

@media (min-width: 1024px) {
	.vz-hero { padding-top: 0; }

	.vz-hero-grid {
		position: relative;
		z-index: 2;
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		gap: 20px;
		margin-top: -104px;
	}
}

.vz-carousel { position: relative; min-width: 0; }

.vz-carousel__track {
	position: relative;
	display: flex;
	gap: var(--vz-gutter);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	margin: 0 calc(-1 * var(--vz-gutter));
	padding: 0 var(--vz-gutter);
	scroll-padding: 0 var(--vz-gutter);
}

.vz-carousel__track::-webkit-scrollbar { display: none; }

.vz-hero__slide {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	align-items: center;
	flex: 0 0 88%;
	min-height: 236px;
	padding: 22px 18px 22px 22px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	color: #fff;
	background: linear-gradient(135deg, var(--w1), var(--w2) 55%, var(--w3));
	scroll-snap-align: start;
}

.vz-hero__slide::before {
	content: "";
	position: absolute;
	right: -22%;
	top: -40%;
	width: 75%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.3), transparent 62%);
	z-index: -1;
}

.vz-hero__slide::after {
	content: "";
	position: absolute;
	left: -4%;
	bottom: -22%;
	width: 42%;
	aspect-ratio: 429 / 458;
	background: rgba(255, 255, 255, 0.07);
	-webkit-mask: url(../img/mark.png) center / contain no-repeat;
	mask: url(../img/mark.png) center / contain no-repeat;
	z-index: -1;
}

.vz-hero__copy { position: relative; z-index: 3; min-width: 0; }

.vz-hero__title {
	margin: 8px 0 8px;
	color: #fff;
	font: 800 clamp(25px, 6.6vw, 62px)/1.02 var(--vz-serif);
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.vz-hero__title em {
	font-style: italic;
	font-weight: 700;
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: 0.06em;
}

.vz-hero__sub {
	margin: 0 0 16px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 12.5px;
	font-weight: 500;
}

.vz-hero__cta { min-height: 40px; padding: 0 16px; font-size: 13.5px; }

.vz-hero__art {
	position: relative;
	align-self: stretch;
	min-height: 170px;
}

.vz-hero__card {
	position: absolute;
	right: 0;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 320px);
	aspect-ratio: 1;
	margin: 0;
	padding: 9%;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
	transform: translateY(-50%) rotate(-4deg);
	transition: transform 0.7s var(--vz-ease);
}

.vz-hero__card img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.vz-hero__card--back { display: none; }

.vz-hero__price {
	position: absolute;
	left: 2%;
	bottom: 2%;
	z-index: 2;
	display: none;
	flex-direction: column;
	gap: 2px;
	max-width: 70%;
	padding: 10px 14px;
	border-radius: 16px;
	background: rgba(14, 14, 16, 0.86);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	color: #fff;
	font: 800 18px/1.1 var(--vz-sans);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
	transform: rotate(-3deg);
}

.vz-hero__price small {
	color: var(--vz-gold-light);
	font: 600 11.5px/1.25 var(--vz-sans);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.vz-hero__price del { color: var(--vz-on-dark-muted); font-size: 12px; font-weight: 600; margin-right: 4px; }
.vz-hero__price ins { text-decoration: none; }

.vz-hero__icon {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.34);
}

.vz-hero__icon .vz-i { width: 60%; height: 60%; stroke-width: 1.2; }

.vz-hero__link { position: absolute; inset: 0; z-index: 2; }

@media (hover: hover) {
	.vz-hero__slide:hover .vz-hero__card { transform: translateY(-53%) rotate(-2deg) scale(1.02); }
}

.vz-carousel__bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 14px;
}

.vz-carousel__nav { display: none; }

.vz-dots { display: flex; align-items: center; gap: 6px; }

.vz-dot {
	position: relative;
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: rgba(14, 14, 16, 0.18);
	overflow: hidden;
	cursor: pointer;
	transition: width var(--vz-med) var(--vz-ease);
}

.vz-dot.is-active { width: 30px; }

.vz-dot i {
	position: absolute;
	inset: 0;
	background: var(--vz-ink);
	transform: scaleX(0);
	transform-origin: left;
}

.vz-dot.is-active i { animation: vz-progress var(--vz-autoplay, 6500ms) linear forwards; }
.vz-carousel.is-paused .vz-dot.is-active i { animation-play-state: paused; }
.vz-carousel.is-static .vz-dot.is-active i { animation: none; transform: none; }

@keyframes vz-progress {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@media (min-width: 640px) {
	.vz-hero__slide { flex-basis: 80%; min-height: 300px; padding: 30px; }
	.vz-hero__sub { font-size: 14px; }
	.vz-hero__price { display: flex; }
}

@media (min-width: 1024px) {
	.vz-carousel__track { margin: 0; padding: 0; scroll-padding: 0; border-radius: var(--vz-r-hero); }

	.vz-hero__slide {
		flex-basis: 100%;
		min-height: 470px;
		padding: 48px 40px 48px 56px;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		box-shadow: var(--vz-shadow-lg);
	}

	.vz-hero__sub { font-size: 16px; margin-bottom: 26px; }
	.vz-hero__cta { min-height: 52px; padding: 0 26px; font-size: 15px; }
	.vz-hero__card { width: min(78%, 340px); right: 8%; }

	.vz-hero__card--back {
		display: flex;
		width: min(50%, 210px);
		right: 58%;
		top: 30%;
		transform: translateY(-50%) rotate(9deg);
		box-shadow: 0 24px 50px rgba(0, 0, 0, 0.25);
	}

	.vz-hero__price { left: 6%; bottom: 8%; }

	.vz-carousel__bar { justify-content: space-between; margin-top: 16px; }
	.vz-carousel__nav { display: flex; gap: 8px; }
}

.vz-hero-side {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 640px) {
	.vz-hero-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.vz-hero-side {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: repeat(2, minmax(0, 1fr));
		gap: 20px;
		padding-bottom: 58px;
	}
}

.vz-promo {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 196px;
	padding: 24px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	color: #fff;
	transition: transform var(--vz-med) var(--vz-ease), box-shadow var(--vz-med);
}

.vz-promo:hover { transform: translateY(-3px); box-shadow: var(--vz-shadow-lg); }

.vz-promo--volume { background: var(--vz-grad-dark); }

.vz-promo--volume::after {
	content: "";
	position: absolute;
	right: -30%;
	top: -50%;
	width: 80%;
	aspect-ratio: 1;
	background: radial-gradient(circle, rgba(200, 163, 90, 0.22), transparent 62%);
	z-index: -1;
}

.vz-promo--deals { background: var(--vz-grad-accent); }
.vz-promo--gold { background: var(--vz-grad-gold); color: var(--vz-ink); }
.vz-promo--gold .vz-promo__title { color: var(--vz-ink); }

.vz-promo__title {
	margin: 8px 0 6px;
	color: #fff;
	font: 700 clamp(24px, 2.2vw, 30px)/1.08 var(--vz-serif);
	max-width: 15ch;
}

.vz-promo--volume .vz-promo__title em {
	font-style: italic;
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.vz-promo--deals .vz-promo__title em { font-style: italic; color: #fff3c4; }
.vz-promo__text { margin: 0; color: rgba(255, 255, 255, 0.78); font-size: 13.5px; max-width: 24ch; }

/* Que el texto no pise las barras ni la foto. */
.vz-promo--volume .vz-promo__title,
.vz-promo--volume .vz-promo__text,
.vz-promo--deals .vz-promo__title,
.vz-promo--deals .vz-promo__text { max-width: calc(100% - 130px); }

.vz-bars {
	position: absolute;
	right: 22px;
	bottom: 22px;
	display: flex;
	align-items: flex-end;
	gap: 8px;
	height: 92px;
}

.vz-bars > span {
	position: relative;
	display: block;
	width: 32px;
	height: var(--h);
	border-radius: 10px 10px 6px 6px;
	background: var(--vz-grad-gold);
	transform-origin: bottom;
}

.vz-bars i {
	position: absolute;
	left: 50%;
	top: -20px;
	transform: translateX(-50%);
	color: #fff;
	font: 800 11.5px/1 var(--vz-sans);
	font-style: normal;
	white-space: nowrap;
}

html.js .vz-promo--volume .vz-bars > span { transform: scaleY(0.12); transition: transform 1s var(--vz-ease); transition-delay: calc(0.25s + var(--i, 0) * 0.14s); }
html.js .vz-promo--volume.is-in .vz-bars > span { transform: none; }

.vz-promo__art {
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 112px;
	aspect-ratio: 1;
	padding: 10px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
	transform: rotate(6deg);
	transition: transform var(--vz-slow) var(--vz-ease);
}

.vz-promo__art img { width: 100%; height: 100%; object-fit: contain; display: block; }
.vz-promo:hover .vz-promo__art { transform: rotate(2deg) scale(1.04); }

.vz-promo__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-top: auto;
	border-radius: 50%;
	background: #fff;
	color: var(--vz-ink);
}

.vz-promo--gold .vz-promo__go { background: var(--vz-ink); color: var(--vz-gold-light); }
.vz-promo__go .vz-i { width: 18px; height: 18px; }

/* Mundos */
.vz-worlds {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (min-width: 1024px) {
	.vz-worlds { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 20px; }
}

.vz-world {
	position: relative;
	display: flex;
	flex-direction: column;
	aspect-ratio: 4 / 5;
	padding: 16px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	color: #fff;
	background: linear-gradient(160deg, var(--w1), var(--w2) 58%, var(--w3));
	transition: transform var(--vz-slow) var(--vz-ease), box-shadow var(--vz-slow);
}

.vz-world::after {
	content: "";
	position: absolute;
	inset: 50% 0 0;
	background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.42));
	z-index: -1;
}

.vz-world:hover { transform: translateY(-4px); box-shadow: 0 26px 54px rgba(14, 14, 16, 0.24); }

.vz-world__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.vz-world__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.2);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.vz-world__icon .vz-i { width: 22px; height: 22px; }

.vz-world__count {
	padding: 6px 10px;
	border-radius: var(--vz-r-pill);
	background: rgba(0, 0, 0, 0.22);
	font: 700 10.5px/1 var(--vz-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.vz-world__art {
	position: absolute;
	left: 50%;
	top: 47%;
	width: 60%;
	aspect-ratio: 1;
	padding: 9%;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 24px 44px rgba(0, 0, 0, 0.3);
	transform: translate(-50%, -50%) rotate(-5deg);
	transition: transform 0.6s var(--vz-ease);
	z-index: -2;
}

.vz-world__art img { width: 100%; height: 100%; object-fit: contain; display: block; }
.vz-world:hover .vz-world__art { transform: translate(-50%, -54%) rotate(-2deg) scale(1.05); }

.vz-world__glyph {
	position: absolute;
	inset: 18% 0 30%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.3);
	z-index: -2;
}

.vz-world__glyph .vz-i { width: 46%; height: 100%; stroke-width: 1.2; }

.vz-world__txt {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}

.vz-world__label {
	font: 700 clamp(22px, 2.6vw, 34px)/1.05 var(--vz-serif);
	color: #fff;
}

.vz-world__tagline {
	font: italic 600 13.5px/1.3 var(--vz-serif);
	color: rgba(255, 255, 255, 0.86);
}

@media (max-width: 1023px) {
	.vz-world__art { width: 54%; top: 43%; }

	/* Número impar de mundos: el último ocupa toda la fila, en apaisado. */
	.vz-worlds > .vz-world:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		aspect-ratio: 16 / 9;
	}

	.vz-worlds > .vz-world:last-child:nth-child(odd) .vz-world__art {
		left: auto;
		right: 7%;
		top: 52%;
		width: 40%;
		transform: translateY(-50%) rotate(-5deg);
	}

	.vz-worlds > .vz-world:last-child:nth-child(odd) .vz-world__txt { max-width: 52%; }
	.vz-worlds > .vz-world:last-child:nth-child(odd) .vz-world__count { margin-right: auto; margin-left: 10px; }
	.vz-worlds > .vz-world:last-child:nth-child(odd) .vz-world__top { justify-content: flex-start; }
}

.vz-world__go {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #fff;
	color: var(--vz-ink);
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity var(--vz-med), transform var(--vz-med) var(--vz-ease);
}

.vz-world__go .vz-i { width: 18px; height: 18px; }

@media (min-width: 1024px) {
	.vz-world { padding: 22px; aspect-ratio: 3 / 4; }
	.vz-world__go { display: flex; }
	.vz-world:hover .vz-world__go { opacity: 1; transform: none; }
	.vz-world__tagline { font-size: 16px; }
}

.vz-more-cats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin-top: 18px;
}

.vz-more-cats__label {
	font: 700 11px/1.2 var(--vz-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vz-muted);
}

/* Carruseles de productos */
.vz-rail__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 46%;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	margin: 0 calc(-1 * var(--vz-gutter));
	padding: 4px var(--vz-gutter) 10px;
	scroll-padding: 0 var(--vz-gutter);
}

.vz-rail__track::-webkit-scrollbar { display: none; }
.vz-rail__track > * { scroll-snap-align: start; }
.vz-rail__nav { display: none; }

@media (min-width: 768px) {
	.vz-rail__track { grid-auto-columns: 31%; gap: 16px; }
}

@media (min-width: 1024px) {
	.vz-rail__track {
		grid-auto-columns: calc((100% - 4 * 20px) / 5);
		gap: 20px;
		margin: 0;
		padding: 4px 0 10px;
		scroll-padding: 0;
	}

	.vz-rail__nav { display: flex; gap: 8px; }
}

/* Marcas */
.vz-brands {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scrollbar-width: none;
	margin: 0 calc(-1 * var(--vz-gutter));
	padding: 4px var(--vz-gutter) 8px;
}

.vz-brands::-webkit-scrollbar { display: none; }

.vz-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	flex: none;
	width: 104px;
	text-align: center;
}

.vz-brand__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
	overflow: hidden;
	box-shadow: var(--vz-shadow-sm);
	transition: transform var(--vz-med) var(--vz-ease), border-color var(--vz-med), box-shadow var(--vz-med);
}

.vz-brand__logo img { width: 78%; height: 78%; object-fit: contain; }
.vz-brand__logo b { font: 800 22px var(--vz-serif); color: var(--vz-ink); }
.vz-brand__name { font-size: 13px; font-weight: 600; color: var(--vz-text); }
.vz-brand:hover .vz-brand__logo { transform: translateY(-3px); border-color: var(--vz-gold); box-shadow: var(--vz-shadow); }

@media (min-width: 1024px) {
	.vz-brands { flex-wrap: wrap; margin: 0; padding: 4px 0 8px; gap: 22px; }
	.vz-brand { width: 128px; }
	.vz-brand__logo { width: 120px; height: 120px; }
}

/* Cómo comprar */
.vz-steps-grid {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.vz-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.vz-steps-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
}

.vz-step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px;
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
}

.vz-step__n {
	display: block;
	margin-bottom: 8px;
	font: 800 46px/1 var(--vz-serif);
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.vz-step h3 { margin: 0; font-size: 17px; }
.vz-step p { margin: 0 0 6px; color: var(--vz-muted); font-size: 14px; line-height: 1.55; }
.vz-step .vz-link { margin-top: auto; align-self: flex-start; }

/* Ayuda */
.vz-help {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (min-width: 1024px) {
	.vz-help { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
}

.vz-help__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px;
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
	transition: transform var(--vz-med) var(--vz-ease), border-color var(--vz-med), box-shadow var(--vz-med);
}

.vz-help__item:hover { transform: translateY(-3px); border-color: var(--vz-ink); box-shadow: var(--vz-shadow); }

.vz-help__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 4px;
	border-radius: 50%;
	background: var(--vz-ink);
	color: var(--vz-gold-light);
}

.vz-help__icon .vz-i { width: 22px; height: 22px; }
.vz-help__item--wa .vz-help__icon { background: var(--vz-wa); color: #fff; }
.vz-help__item b { color: var(--vz-ink); font-size: 15px; line-height: 1.3; }
.vz-help__item small { color: var(--vz-muted); font-size: 13px; }

/* Invitación final */
.vz-section--cta { padding-bottom: 8px; }

.vz-cta {
	position: relative;
	display: grid;
	gap: 22px;
	padding: 32px 22px;
	border-radius: 28px;
	overflow: hidden;
	isolation: isolate;
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark);
}

.vz-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(241, 223, 168, 0.75), rgba(200, 163, 90, 0.08) 42%, rgba(200, 163, 90, 0.55));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

.vz-cta h2 {
	margin: 10px 0 10px;
	color: #fff;
	font: 800 clamp(28px, 4vw, 48px)/1.06 var(--vz-serif);
}

.vz-cta h2 em {
	font-style: italic;
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: 0.06em;
}

.vz-cta p { margin: 0; color: var(--vz-on-dark-muted); max-width: 540px; }
.vz-cta__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.vz-cta__mark {
	position: absolute;
	right: -30px;
	bottom: -60px;
	width: 220px;
	opacity: 0.1;
	z-index: -1;
	pointer-events: none;
}

@media (min-width: 1024px) {
	.vz-cta {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		align-items: center;
		padding: 60px 64px;
	}

	.vz-cta__actions { justify-content: flex-end; }
	.vz-cta__mark { width: 300px; right: 3%; bottom: -110px; }
}

/* ==========================================================================
   9. Tarjeta de producto y cuadrícula
   ========================================================================== */

.vz-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vz-card__frame { position: relative; }

.vz-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: var(--vz-r-card);
	background: var(--vz-surface-alt);
	overflow: hidden;
}

.vz-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 9%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform 0.6s var(--vz-ease), opacity 0.4s var(--vz-ease);
}

.vz-card__img--alt { opacity: 0; }

@media (hover: hover) {
	.vz-card:hover .vz-card__img { transform: scale(1.05); }
	.vz-card:hover .has-alt .vz-card__img:not(.vz-card__img--alt) { opacity: 0; }
	.vz-card:hover .has-alt .vz-card__img--alt { opacity: 1; }
}

.vz-card__badge { position: absolute; top: 10px; left: 10px; z-index: 2; }

.vz-card__add {
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--vz-ink);
	color: #fff;
	box-shadow: 0 8px 20px rgba(14, 14, 16, 0.25);
	transition: transform var(--vz-fast) var(--vz-ease), background var(--vz-fast), color var(--vz-fast);
}

.vz-card__add:hover { background: var(--vz-gold); color: var(--vz-ink); transform: scale(1.07); }
.vz-card__add:active { transform: scale(0.92); }
.vz-card__add .vz-i { width: 20px; height: 20px; stroke-width: 2.2; }
.vz-card__add-check { display: none; }
.vz-card__add.loading { pointer-events: none; opacity: 0.85; }
.vz-card__add.loading .vz-card__add-plus { animation: vz-spin 0.9s linear infinite; }
.vz-card__add.added { background: var(--vz-ok); color: #fff; }
.vz-card__add.added .vz-card__add-plus { display: none; }
.vz-card__add.added .vz-card__add-check { display: block; }
.vz-card .added_to_cart { display: none !important; }

@keyframes vz-spin {
	to { transform: rotate(360deg); }
}

.vz-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	padding: 12px 2px 0;
}

.vz-card__world {
	font: 700 10.5px/1.2 var(--vz-sans);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--vz-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.vz-card__title {
	display: -webkit-box;
	margin: 0;
	min-height: 2.7em;
	overflow: hidden;
	color: var(--vz-ink);
	font: 600 14.5px/1.35 var(--vz-sans);
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.vz-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.vz-card__price {
	margin-top: 2px;
	color: var(--vz-ink);
	font: 800 17px/1.2 var(--vz-sans);
	font-variant-numeric: tabular-nums;
}

.vz-card__price del { margin-right: 6px; color: var(--vz-faint); font-size: 13px; font-weight: 600; }
.vz-card__price ins { color: var(--vz-sale); text-decoration: none; }
.vz-card__price .cpb2b-hidden-price { font-size: 12.5px; font-weight: 600; color: var(--vz-gold-deep); }
.vz-card__price .cpb2b-hidden-price a { position: relative; z-index: 2; text-decoration: underline; }

.vz-card__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }

ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 18px; }
}

@media (min-width: 1024px) {
	ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 22px; }
}

@media (min-width: 1440px) {
	.vz-archive ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ==========================================================================
   10. Listados
   ========================================================================== */

.vz-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0 0 12px;
	color: var(--vz-muted);
	font-size: 13px;
}

.vz-breadcrumb a { color: inherit; transition: color var(--vz-fast); }
.vz-breadcrumb a:hover { color: var(--vz-ink); }
.vz-breadcrumb__sep { opacity: 0.5; }

.vz-archive-hero { padding-top: 16px; }

.vz-archive-hero__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	min-height: 196px;
	padding: 22px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	color: #fff;
	background: linear-gradient(135deg, var(--w1, #0b0b0d), var(--w2, #1c1a17) 60%, var(--w3, #2b2620));
}

.vz-archive-hero--deals .vz-archive-hero__card { background: var(--vz-grad-accent); }

.vz-archive-hero__card::before {
	content: "";
	position: absolute;
	right: -18%;
	top: -60%;
	width: 70%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.22), transparent 62%);
	z-index: -1;
}

.vz-archive-hero--dark .vz-archive-hero__card::before { background: radial-gradient(circle, rgba(200, 163, 90, 0.22), transparent 62%); }
.vz-archive-hero__card .vz-breadcrumb { color: rgba(255, 255, 255, 0.7); margin-bottom: auto; padding-bottom: 18px; }
.vz-archive-hero__card .vz-breadcrumb a:hover { color: #fff; }

.vz-archive-hero__title {
	margin: 6px 0 8px;
	color: #fff;
	font: 800 clamp(32px, 5.4vw, 60px)/1.03 var(--vz-serif);
	letter-spacing: -0.015em;
	max-width: 18ch;
}

.vz-archive-hero__desc {
	max-width: 620px;
	margin: 0 0 14px;
	color: rgba(255, 255, 255, 0.84);
	font-size: 14.5px;
}

.vz-archive-hero__icon {
	position: absolute;
	right: -18px;
	bottom: -26px;
	color: rgba(255, 255, 255, 0.12);
	z-index: -1;
}

.vz-archive-hero__icon .vz-i { width: 170px; height: 170px; stroke-width: 1.1; }

@media (min-width: 1024px) {
	.vz-archive-hero { padding-top: 28px; }
	.vz-archive-hero__card { min-height: 290px; padding: 36px 56px 44px; }
	.vz-archive-hero__icon { right: 40px; bottom: -40px; }
	.vz-archive-hero__icon .vz-i { width: 300px; height: 300px; }
}

.vz-pills {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	margin: 0 calc(-1 * var(--vz-gutter));
	padding: 16px var(--vz-gutter) 4px;
}

.vz-pills::-webkit-scrollbar { display: none; }
.vz-pills--inline { margin: 0; padding: 0; flex-wrap: wrap; overflow: visible; }
.vz-pills--center { justify-content: center; flex-wrap: wrap; margin: 0 0 28px; padding: 0; overflow: visible; }

@media (min-width: 1024px) {
	.vz-pills { flex-wrap: wrap; overflow: visible; margin: 0; padding: 20px 0 0; }
}

.vz-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: none;
	height: 40px;
	padding: 0 16px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
	color: var(--vz-ink);
	font: 600 14px/1 var(--vz-sans);
	white-space: nowrap;
	transition: border-color var(--vz-fast), background var(--vz-fast), color var(--vz-fast);
}

.vz-pill:hover { border-color: var(--vz-ink); }
.vz-pill small { color: var(--vz-faint); font-weight: 700; font-size: 12px; }
.vz-pill.is-active { background: var(--vz-ink); border-color: var(--vz-ink); color: #fff; }
.vz-pill.is-active small { color: var(--vz-gold-light); }

.vz-pill__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--w1, var(--vz-ink)), var(--w3, var(--vz-gold)));
}

.vz-pill__img { width: 26px; height: 26px; margin-left: -8px; border-radius: 50%; object-fit: cover; background: #fff; }

.vz-archive { padding-top: 6px; }

.vz-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 20px 0 20px;
}

.woocommerce-result-count { margin: 0; color: var(--vz-muted); font-size: 14px; }
.woocommerce-ordering { margin: 0; }

.woocommerce-ordering select {
	width: auto;
	height: 42px;
	padding: 0 40px 0 18px;
	border-radius: var(--vz-r-pill);
	font-weight: 600;
	font-size: 14px;
}

.woocommerce-pagination { margin-top: 44px; }

.woocommerce-pagination ul.page-numbers,
.nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span,
.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
	color: var(--vz-ink);
	font-weight: 700;
	transition: border-color var(--vz-fast);
}

.woocommerce-pagination .page-numbers a:hover,
.nav-links a.page-numbers:hover { border-color: var(--vz-ink); }

.woocommerce-pagination .page-numbers span.current,
.nav-links .page-numbers.current { background: var(--vz-ink); color: #fff; border-color: var(--vz-ink); }

.woocommerce-pagination .vz-i,
.nav-links .vz-i { width: 18px; height: 18px; }

.vz-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 520px;
	margin: 24px auto;
	padding: 40px 24px;
	text-align: center;
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
	border: 1px solid var(--vz-line);
}

.vz-empty__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: var(--vz-gold-soft);
	color: var(--vz-gold-deep);
}

.vz-empty__icon .vz-i { width: 32px; height: 32px; }
.vz-empty__title { margin: 0 0 8px; font: 700 26px/1.15 var(--vz-serif); }
.vz-empty__text { margin: 0 0 22px; color: var(--vz-muted); }
.vz-empty--compact { margin: 12px 0; padding: 28px 18px; border: 0; background: transparent; }
.vz-empty--compact .vz-empty__title { font-size: 22px; }

/* ==========================================================================
   11. Ficha de producto
   ========================================================================== */

.vz-pdp { padding-top: 16px; }

@media (max-width: 1023px) {
	/* En la ficha, las migas en una sola línea (el nombre del producto es largo). */
	.vz-pdp > .vz-breadcrumb {
		display: block;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	.vz-pdp > .vz-breadcrumb .vz-breadcrumb__sep { margin: 0 6px; }
}

.vz-pdp div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 22px;
	align-items: start;
}

.vz-pdp div.product > :not(.woocommerce-product-gallery):not(.summary) { grid-column: 1 / -1; }

@media (min-width: 1024px) {
	.vz-pdp { padding-top: 24px; }
	.vz-pdp div.product { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 32px 60px; }

	.vz-pdp div.product > .woocommerce-product-gallery {
		position: sticky;
		top: calc(var(--vz-sticky-h) + var(--vz-adminbar) + 20px);
	}
}

/* Galería */
.woocommerce-product-gallery {
	position: relative;
	margin: 0;
	min-width: 0;
}

.woocommerce-product-gallery__wrapper { margin: 0; padding: 0; }

.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface-alt);
	overflow: hidden;
}

.woocommerce-product-gallery__image {
	position: relative;
	overflow: hidden;
	background: var(--vz-surface-alt);
}

.woocommerce-product-gallery__image a { display: block; }

.woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	padding: 6%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.woocommerce-product-gallery__image img.zoomImg {
	padding: 0;
	aspect-ratio: auto;
	background: #fff;
	mix-blend-mode: normal;
}

.flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 12px 0 0;
	padding: 0 0 4px;
	overflow-x: auto;
	scrollbar-width: none;
	list-style: none;
}

.flex-control-thumbs::-webkit-scrollbar { display: none; }
.flex-control-thumbs li { flex: 0 0 74px; }

.flex-control-thumbs img {
	display: block;
	width: 74px;
	height: 74px;
	padding: 6px;
	object-fit: contain;
	border: 1.5px solid var(--vz-line);
	border-radius: var(--vz-r-img);
	background: #fff;
	opacity: 0.6;
	cursor: pointer;
	transition: opacity var(--vz-fast), border-color var(--vz-fast);
}

.flex-control-thumbs img:hover,
.flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--vz-ink); }

.woocommerce-product-gallery__trigger {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: var(--vz-shadow);
	font-size: 0;
	color: transparent;
	cursor: pointer;
}

.woocommerce-product-gallery__trigger > * { display: none; }

.woocommerce-product-gallery__trigger::before {
	content: "";
	width: 20px;
	height: 20px;
	background: var(--vz-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Resumen */
.vz-pdp .summary { min-width: 0; }

.vz-pdp__world {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--vz-muted);
	font: 700 11.5px/1.2 var(--vz-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.vz-pdp__world:hover { color: var(--vz-ink); }

.vz-pdp__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--w1, var(--vz-ink)), var(--w3, var(--vz-gold)));
}

.vz-pdp .product_title {
	margin: 10px 0 14px;
	color: var(--vz-ink);
	font: 700 clamp(28px, 3.4vw, 44px)/1.1 var(--vz-serif);
	letter-spacing: -0.01em;
}

.vz-pdp .summary > .price {
	margin: 0 0 8px;
	color: var(--vz-ink);
	font: 800 clamp(28px, 3vw, 36px)/1.1 var(--vz-sans);
	font-variant-numeric: tabular-nums;
}

.vz-pdp .summary > .price del { margin-right: 8px; color: var(--vz-faint); font-size: 0.55em; font-weight: 600; }
.vz-pdp .summary > .price ins { color: var(--vz-sale); text-decoration: none; }

.vz-pdp__pricenote {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 18px;
}

.vz-pdp__note {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--vz-muted);
	font-size: 13px;
	font-weight: 500;
}

.vz-pdp__note .vz-i { width: 16px; height: 16px; color: var(--vz-gold-deep); }

.woocommerce-product-details__short-description {
	margin: 0 0 20px;
	color: var(--vz-text);
	font-size: 15px;
	line-height: 1.7;
}

.woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

.stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	color: var(--vz-ok);
	font: 700 13.5px/1.2 var(--vz-sans);
}

.stock::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 4px rgba(31, 157, 85, 0.15);
}

.stock.out-of-stock { color: var(--vz-sale); }

.vz-pdp form.cart,
.vz-pdp .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0 0 20px;
}

.vz-pdp form.cart .vz-tiers,
.vz-pdp form.cart .cpb2b-tier-table,
.vz-pdp form.cart .cpb2b-info-table { flex: 0 0 100%; }

.vz-pdp form.cart .single_add_to_cart_button { flex: 1 1 170px; min-height: 56px; font-size: 15.5px; }
.vz-pdp form.cart .vz-buy-now { flex: 1 1 160px; min-height: 56px; font-size: 15.5px; }

/* Escala de precios (tabla del plugin convertida en tarjetas) */
.vz-tiers { margin: 2px 0 6px; }

.vz-tiers__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 12px;
	margin: 0 0 10px;
}

.vz-tiers__head b { font: 700 15px var(--vz-sans); color: var(--vz-ink); }
.vz-tiers__head small { color: var(--vz-muted); font-size: 12.5px; }

table.cpb2b-tier-table {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	background: transparent;
	font-size: 14px;
}

.cpb2b-tier-table thead { display: none; }

.cpb2b-tier-table tbody {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(98px, 1fr));
	gap: 8px;
}

.cpb2b-tier-table tr {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 12px 14px;
	border: 1.5px solid transparent;
	border-radius: var(--vz-r-img);
	background: var(--vz-surface-alt);
	cursor: pointer;
	transition: background var(--vz-fast), border-color var(--vz-fast), transform var(--vz-fast) var(--vz-ease);
}

.cpb2b-tier-table tr:hover { border-color: var(--vz-gold); }
.cpb2b-tier-table tr:active { transform: scale(0.97); }

.cpb2b-tier-table td {
	display: block;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

.cpb2b-tier-table td:first-child { color: var(--vz-muted); font: 600 12.5px/1.2 var(--vz-sans); }

.cpb2b-tier-table td:last-child {
	color: var(--vz-ink);
	font: 800 17px/1.2 var(--vz-sans);
	font-variant-numeric: tabular-nums;
}

.cpb2b-tier-table tbody tr.cpb2b-tier-active { background: var(--vz-ink); border-color: var(--vz-ink); }
.cpb2b-tier-table tbody tr.cpb2b-tier-active td:first-child { color: var(--vz-on-dark-muted); }
.cpb2b-tier-table tbody tr.cpb2b-tier-active td:last-child { color: var(--vz-gold-light); }

.vz-tiers__nudge {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 10px 0 0;
	padding: 10px 14px;
	border-radius: var(--vz-r-sm);
	background: var(--vz-gold-soft);
	color: var(--vz-gold-deep);
	font-size: 13.5px;
	font-weight: 500;
}

.vz-tiers__nudge b { color: var(--vz-ink); font-weight: 800; }
.vz-tiers__nudge.is-best { background: #e7f6ec; color: #1f7a45; }
.vz-tiers__nudge .vz-i { width: 18px; height: 18px; }

table.cpb2b-info-table {
	width: 100%;
	margin: 6px 0 0;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-img);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--vz-surface);
	font-size: 13.5px;
}

.cpb2b-info-table th,
.cpb2b-info-table td { padding: 10px 14px; border-bottom: 1px solid var(--vz-line); text-align: left; }
.cpb2b-info-table tr:last-child th,
.cpb2b-info-table tr:last-child td { border-bottom: 0; }
.cpb2b-info-table th { width: 42%; color: var(--vz-muted); font-weight: 600; }

/* Cantidad */
.quantity {
	display: inline-flex;
	align-items: center;
	height: 56px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
	overflow: hidden;
}

.quantity:has(input[type="hidden"]) { display: none; }

.quantity input.qty {
	width: 58px;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--vz-ink);
	font: 800 16px var(--vz-sans);
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.quantity input.qty:focus { box-shadow: none; }

.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.vz-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--vz-ink);
	cursor: pointer;
	transition: background var(--vz-fast);
}

.vz-qty-btn:hover { background: var(--vz-surface-alt); }
.vz-qty-btn:disabled { opacity: 0.3; cursor: default; background: transparent; }
.vz-qty-btn .vz-i { width: 18px; height: 18px; stroke-width: 2.2; }

/* WhatsApp y accesos */
.vz-pdp__ask { margin: 0 0 18px; }
.vz-pdp__ask .vz-btn { width: 100%; min-height: 52px; }

.vz-pdp__info {
	margin: 0 0 20px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	overflow: hidden;
}

.vz-pdp__info > a,
.vz-pdp__info > div {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--vz-line);
	transition: background var(--vz-fast);
}

.vz-pdp__info > :last-child { border-bottom: 0; }
.vz-pdp__info > a:hover { background: var(--vz-bg); }

.vz-pdp__info-i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: var(--vz-r-sm);
	background: var(--vz-gold-soft);
	color: var(--vz-gold-deep);
}

.vz-pdp__info-i .vz-i { width: 20px; height: 20px; }
.vz-pdp__info b { display: block; color: var(--vz-ink); font-size: 14px; }
.vz-pdp__info small { color: var(--vz-muted); font-size: 12.5px; }
.vz-pdp__info-go { width: 18px !important; height: 18px !important; color: var(--vz-faint); }

.product_meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 16px;
	border-top: 1px solid var(--vz-line);
	color: var(--vz-muted);
	font-size: 13px;
}

.product_meta a { color: var(--vz-ink); font-weight: 600; }

/* Variaciones nativas (si la interfaz del plugin no se monta) */
.vz-pdp table.variations {
	width: 100%;
	margin: 0 0 12px;
	border: 0;
	border-collapse: collapse;
}

.vz-pdp table.variations th,
.vz-pdp table.variations td { display: block; padding: 0 0 8px; text-align: left; border: 0; }
.vz-pdp table.variations label { margin: 0; }
.vz-pdp .reset_variations { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--vz-muted); text-decoration: underline; }
.vz-pdp .single_variation_wrap { flex: 0 0 100%; }
.woocommerce-variation-price .price { font: 800 22px var(--vz-sans); color: var(--vz-ink); }

/* Pestañas */
.woocommerce-tabs { margin-top: 30px; }

.woocommerce-tabs ul.tabs {
	display: flex;
	gap: 8px;
	margin: 0 0 16px;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	list-style: none;
}

.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }

.woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 20px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
	color: var(--vz-ink);
	font: 600 14px/1 var(--vz-sans);
	white-space: nowrap;
	transition: background var(--vz-fast), border-color var(--vz-fast), color var(--vz-fast);
}

.woocommerce-tabs ul.tabs li.active a { background: var(--vz-ink); border-color: var(--vz-ink); color: #fff; }

.woocommerce-Tabs-panel {
	padding: 24px 20px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
	line-height: 1.75;
}

.woocommerce-Tabs-panel > :first-child { margin-top: 0; }
.woocommerce-Tabs-panel > :last-child { margin-bottom: 0; }
.woocommerce-Tabs-panel img { border-radius: var(--vz-r-img); }

@media (min-width: 1024px) {
	.woocommerce-tabs { margin-top: 56px; }
	.woocommerce-Tabs-panel { padding: 36px 44px; }
}

table.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }

.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
	padding: 12px 0;
	border-bottom: 1px solid var(--vz-line);
	text-align: left;
	vertical-align: top;
}

.woocommerce-product-attributes th { width: 34%; color: var(--vz-muted); font-weight: 600; }
.woocommerce-product-attributes td p { margin: 0; }

section.related,
section.upsells,
.cross-sells { margin-top: 40px; }

section.related > h2,
section.upsells > h2,
.cross-sells > h2 {
	margin: 0 0 18px;
	font: 700 clamp(24px, 3vw, 36px)/1.1 var(--vz-serif);
}

@media (max-width: 1023px) {
	section.related ul.products,
	section.upsells ul.products,
	.cross-sells ul.products {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 46%;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin: 0 calc(-1 * var(--vz-gutter));
		padding: 0 var(--vz-gutter) 8px;
	}

	section.related ul.products > li,
	section.upsells ul.products > li,
	.cross-sells ul.products > li { scroll-snap-align: start; }

	section.related ul.products::-webkit-scrollbar,
	section.upsells ul.products::-webkit-scrollbar,
	.cross-sells ul.products::-webkit-scrollbar { display: none; }
}

@media (min-width: 1024px) {
	section.related ul.products,
	section.upsells ul.products,
	.cross-sells ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Barra fija de compra (móvil) */
.vz-buybar {
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom));
	z-index: 72;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 8px 8px 20px;
	border-radius: var(--vz-r-pill);
	background: rgba(14, 14, 16, 0.96);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	color: #fff;
	box-shadow: 0 18px 40px rgba(14, 14, 16, 0.35);
	transform: translateY(160%);
	transition: transform var(--vz-slow) var(--vz-ease);
}

.vz-buybar.is-visible { transform: none; }

.vz-buybar__price {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	font: 800 18px/1.1 var(--vz-sans);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.vz-buybar__price del { display: none; }
.vz-buybar__price ins { color: #fff; text-decoration: none; }

.vz-buybar__wa {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--vz-wa);
	color: #fff;
}

.vz-buybar__wa .vz-i { width: 26px; height: 26px; }
.vz-buybar .vz-btn { flex: none; min-height: 48px; }

@media (max-width: 1023px) {
	body.single-product .vz-tabbar,
	body.single-product .vz-wa-fab { display: none; }
}

@media (min-width: 1024px) {
	.vz-buybar { display: none; }
}

/* Botón «Volver atrás» (fragmento de WPCode del sitio) */
body.single-product .vz-pdp .vapetazo-back-wrap {
	max-width: none;
	margin: 0 0 14px;
	padding: 0;
}

body.single-product .vz-pdp .vapetazo-back-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 38px;
	padding: 0 16px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface);
	color: var(--vz-ink) !important;
	font: 600 13.5px/1 var(--vz-sans);
	box-shadow: none;
	transition: border-color var(--vz-fast), background var(--vz-fast);
}

body.single-product .vz-pdp .vapetazo-back-btn:hover {
	border-color: var(--vz-ink);
	background: var(--vz-surface);
	color: var(--vz-ink) !important;
	transform: none;
}

@media (min-width: 1024px) {
	body.single-product .vz-pdp .vapetazo-back-wrap { display: none; }
}

/* Entrega estimada (escuba-checkout-pro) */
.vz-pdp .es-edd-bar,
.woocommerce .es-edd-bar {
	display: flex !important;
	align-items: center;
	gap: 10px;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 0 4px !important;
	padding: 11px 14px !important;
	border: 0 !important;
	border-radius: var(--vz-r-sm) !important;
	background: var(--vz-gold-soft) !important;
	color: var(--vz-gold-deep) !important;
	font: 600 13.5px/1.35 var(--vz-sans) !important;
	box-shadow: none !important;
}

.vz-pdp .es-edd-bar::before,
.woocommerce .es-edd-bar::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Interfaz de variaciones del plugin (cp-b2b) con los colores de Vapetazo */
.cp-av-root { font-family: var(--vz-sans); color: var(--vz-text); margin: 0 0 18px; }
.cp-av-panel { border-color: var(--vz-line); border-radius: var(--vz-r-lg); box-shadow: none; }
.cp-av-section { border-bottom-color: var(--vz-line); }
.cp-av-title h3,
.cp-av-row-head h3 { font: 700 15px var(--vz-sans); color: var(--vz-ink); }
.cp-av-ladder .item { background: var(--vz-surface-alt); border-color: transparent; border-radius: var(--vz-r-img); }
.cp-av-ladder .item .range { color: var(--vz-muted); }
.cp-av-ladder .item .price,
.cp-av-row-tier-item .tier-price { color: var(--vz-ink); font-weight: 800; }
.cp-av-ladder .item.active { background: var(--vz-ink); border-color: var(--vz-ink); box-shadow: none; }
.cp-av-ladder .item.active .range { color: var(--vz-on-dark-muted); }
.cp-av-ladder .item.active .price { color: var(--vz-gold-light); }
.cp-av-row-head a { color: var(--vz-gold-deep); }
.double-bordered-box.enabled.selected { outline-color: var(--vz-ink); }
.cp-av-actions { border-top-color: var(--vz-line); }
.cp-av-actions .btn { border-color: var(--vz-ink); color: var(--vz-ink); font-family: var(--vz-sans); }
.cp-av-actions .btn.primary { background: var(--vz-ink); color: #fff; }
.cp-av-actions .btn.primary:hover { background: #000; border-color: #000; color: var(--vz-gold-light); }
.cp-av-actions .btn:hover:not(.primary) { background: var(--vz-gold-soft); }
.cp-av-overlay { background: rgba(8, 8, 10, 0.6); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.cp-av-modal { border-radius: var(--vz-r-hero); }
.cp-av-modal-title { font: 700 22px var(--vz-serif); color: var(--vz-ink); }
.cp-av-row-tier-item { background: var(--vz-surface-alt); border-color: transparent; }
.ui-number-picker { border-color: var(--vz-line); }
.ui-number-picker .number-picker-button { background: var(--vz-surface-alt); }

/* ==========================================================================
   12. WooCommerce: avisos, formularios, tablas
   ========================================================================== */

.woocommerce-notices-wrapper:empty { display: none; }

/* WooCommerce enfoca los avisos para los lectores de pantalla: sin aro visible. */
.woocommerce-notices-wrapper:focus,
.woocommerce-notices-wrapper:focus-visible,
.woocommerce-NoticeGroup:focus,
[role="alert"]:focus,
[role="alert"]:focus-visible { outline: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 0 0 18px;
	padding: 14px 18px 14px 52px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-card);
	background: var(--vz-surface);
	color: var(--vz-text);
	font-size: 14.5px;
	line-height: 1.5;
	list-style: none;
	box-shadow: var(--vz-shadow-sm);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	border-radius: 50%;
	background: var(--vz-ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.woocommerce-info::before {
	background: var(--vz-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F1DFA8' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7h.01'/%3E%3C/svg%3E") center / 15px no-repeat;
}

.woocommerce-error::before {
	background: var(--vz-sale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 17h.01'/%3E%3C/svg%3E") center / 15px no-repeat;
}

.woocommerce-error { flex-direction: column; align-items: flex-start; border-color: rgba(224, 36, 74, 0.25); }
.woocommerce-error li { margin: 0; }
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) { color: var(--vz-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	min-height: 38px;
	margin-left: auto;
	padding: 0 16px;
	font-size: 13px;
}

label {
	display: block;
	margin-bottom: 6px;
	color: var(--vz-ink);
	font: 600 13.5px/1.4 var(--vz-sans);
}

.input-text,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="url"],
input[type="date"],
input[type="search"]:not(.vz-search__input),
select,
textarea {
	width: 100%;
	height: 50px;
	padding: 0 16px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-sm);
	background: var(--vz-surface);
	color: var(--vz-ink);
	font: 500 15px var(--vz-sans);
	transition: border-color var(--vz-fast), box-shadow var(--vz-fast);
	-webkit-appearance: none;
	appearance: none;
}

textarea { height: auto; min-height: 120px; padding: 12px 16px; line-height: 1.5; resize: vertical; }

.input-text:focus,
input:focus,
select:focus,
textarea:focus { outline: none; border-color: var(--vz-ink); box-shadow: var(--vz-focus); }

select {
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0E10' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px;
}

input[type="checkbox"],
input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 0 8px 0 0;
	accent-color: var(--vz-ink);
	vertical-align: -3px;
}

.form-row { margin: 0 0 16px; padding: 0; }
.form-row .required { color: var(--vz-sale); text-decoration: none; border: 0; }
.form-row .optional { color: var(--vz-faint); font-weight: 500; }
.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; font-weight: 500; cursor: pointer; }
.woocommerce-invalid input.input-text,
.woocommerce-invalid select { border-color: var(--vz-sale); }
.woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; border-radius: 10px; font-size: 13px; font-weight: 600; }
.woocommerce-password-strength.strong { background: #e7f6ec; color: #1f7a45; }
.woocommerce-password-strength.good { background: var(--vz-gold-soft); color: var(--vz-gold-deep); }
.woocommerce-password-strength.short,
.woocommerce-password-strength.bad { background: #fde8ec; color: var(--vz-sale); }
.woocommerce-password-hint { display: block; margin-top: 6px; color: var(--vz-muted); font-size: 12.5px; }

.password-input { position: relative; display: block; }

.show-password-input {
	position: absolute;
	right: 8px;
	top: 50%;
	width: 36px;
	height: 36px;
	margin-top: -18px;
	border: 0;
	border-radius: 50%;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2377736B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
	cursor: pointer;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 14px;
}

.woocommerce-billing-fields__field-wrapper > *,
.woocommerce-shipping-fields__field-wrapper > *,
.woocommerce-address-fields__field-wrapper > *,
.woocommerce-additional-fields__field-wrapper > * { grid-column: 1 / -1; }

.woocommerce-billing-fields__field-wrapper > .form-row-first,
.woocommerce-shipping-fields__field-wrapper > .form-row-first,
.woocommerce-address-fields__field-wrapper > .form-row-first { grid-column: 1; }

.woocommerce-billing-fields__field-wrapper > .form-row-last,
.woocommerce-shipping-fields__field-wrapper > .form-row-last,
.woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 2; }

@media (max-width: 479px) {
	.woocommerce-billing-fields__field-wrapper > .form-row-first,
	.woocommerce-billing-fields__field-wrapper > .form-row-last,
	.woocommerce-shipping-fields__field-wrapper > .form-row-first,
	.woocommerce-shipping-fields__field-wrapper > .form-row-last,
	.woocommerce-address-fields__field-wrapper > .form-row-first,
	.woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; }
}

/* Select2 / SelectWoo */
.select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: 50px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-sm);
	background: var(--vz-surface);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 42px 0 16px;
	color: var(--vz-ink);
	font-weight: 500;
	line-height: 48px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: 10px; height: 48px; }

.select2-container--open .select2-selection--single,
.select2-container--focus .select2-selection--single { border-color: var(--vz-ink); box-shadow: var(--vz-focus); }

.select2-dropdown {
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-sm);
	overflow: hidden;
	box-shadow: var(--vz-shadow);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--vz-ink); color: #fff; }

.select2-search--dropdown .select2-search__field { height: 42px; border-radius: 10px; }

/* Tablas */
table.shop_table {
	width: 100%;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--vz-surface);
	overflow: hidden;
	font-size: 14.5px;
}

.shop_table th,
.shop_table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--vz-line);
	text-align: left;
	vertical-align: middle;
}

.shop_table thead th {
	background: var(--vz-surface-alt);
	color: var(--vz-muted);
	font: 700 11.5px/1.2 var(--vz-sans);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.shop_table tbody tr:last-child > *,
.shop_table tfoot tr:last-child > * { border-bottom: 0; }
.shop_table .amount { font-weight: 700; color: var(--vz-ink); font-variant-numeric: tabular-nums; }
.shop_table .woocommerce-Price-amount bdi { white-space: nowrap; }

/* ==========================================================================
   13. Carrito y pago
   ========================================================================== */

.vz-wc-page { padding-bottom: 8px; }

.vz-page-head--compact { padding: 22px 0 18px; }
.vz-page-head--compact .vz-page-head__title { font-size: clamp(30px, 4vw, 44px); margin: 4px 0 0; }

.vz-steps {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	color: var(--vz-muted);
	font: 600 13px/1.2 var(--vz-sans);
}

.vz-steps li { display: inline-flex; align-items: center; gap: 8px; }

.vz-steps li + li::before {
	content: "";
	width: 22px;
	height: 1px;
	background: var(--vz-line);
}

.vz-steps b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--vz-surface-alt);
	color: var(--vz-muted);
	font-size: 12px;
}

.vz-steps .vz-i { width: 14px; height: 14px; stroke-width: 2.6; }

@media (max-width: 479px) {
	.vz-steps { gap: 6px; font-size: 12px; }
	.vz-steps li { gap: 6px; }
	.vz-steps li + li::before { width: 10px; }
	.vz-steps b { width: 22px; height: 22px; font-size: 11px; }
}
.vz-steps .is-current { color: var(--vz-ink); }
.vz-steps .is-current b,
.vz-steps .is-done b { background: var(--vz-ink); color: var(--vz-gold-light); }

.woocommerce-cart .vz-wc-page .woocommerce { display: grid; gap: 22px; }

@media (min-width: 1024px) {
	.woocommerce-cart .vz-wc-page .woocommerce {
		grid-template-columns: minmax(0, 1fr) 380px;
		align-items: start;
		gap: 32px;
	}

	.woocommerce-cart .vz-wc-page .woocommerce > .woocommerce-notices-wrapper,
	.woocommerce-cart .vz-wc-page .woocommerce > .cross-sells,
	.woocommerce-cart .vz-wc-page .woocommerce > .vz-empty,
	.woocommerce-cart .vz-wc-page .woocommerce > .return-to-shop { grid-column: 1 / -1; }

	.woocommerce-cart .cart-collaterals { position: sticky; top: calc(var(--vz-sticky-h) + var(--vz-adminbar) + 20px); }
}

.woocommerce-cart .return-to-shop { display: none; }

/* Miniaturas: azulejo blanco con borde (las fotos suelen traer fondo blanco). */
table.cart img {
	display: block;
	width: 84px;
	height: 84px;
	padding: 6px;
	object-fit: contain;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-img);
	background: #fff;
}

table.cart .product-name a { color: var(--vz-ink); font-weight: 600; }
table.cart .product-name dl.variation { margin: 6px 0 0; color: var(--vz-muted); font-size: 13px; }
table.cart .product-name dl.variation dt,
table.cart .product-name dl.variation dd,
table.cart .product-name dl.variation p { display: inline; margin: 0; }
table.cart .product-thumbnail { width: 110px; }
table.cart .product-remove { width: 48px; }
table.cart .quantity { height: 44px; }
table.cart .vz-qty-btn { width: 38px; }
table.cart .quantity input.qty { width: 48px; font-size: 15px; }

table.cart a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--vz-surface-alt);
	color: var(--vz-muted);
	font-size: 20px;
	line-height: 1;
	transition: background var(--vz-fast), color var(--vz-fast);
}

table.cart a.remove:hover { background: rgba(224, 36, 74, 0.12); color: var(--vz-sale); }
table.cart td.actions { background: var(--vz-bg); }
table.cart td.actions .coupon { float: left; display: flex; gap: 8px; }
table.cart td.actions .coupon label { display: none; }
table.cart td.actions #coupon_code { width: 190px; height: 44px; }
table.cart td.actions .button { min-height: 44px; font-size: 14px; }
table.cart td.actions > .button { float: right; }

table.cart td.actions .button[name="apply_coupon"],
table.cart td.actions .button[name="update_cart"] {
	background: transparent;
	color: var(--vz-ink);
	border-color: var(--vz-ink);
}

table.cart td.actions .button:disabled { opacity: 0.4; cursor: default; }

/* «Actualizar carrito»: el carrito se guarda solo al cambiar una cantidad
   (vapetazo.js pulsa este botón por dentro), así que con JS no se enseña. Se
   oculta sin quitarlo del formulario: WooCommerce lo necesita para enviar. */
html.js table.cart td.actions .button[name="update_cart"] { display: none; }

.vz-nudge {
	display: flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	margin: 8px 0 0;
	padding: 6px 10px;
	border-radius: 10px;
	background: var(--vz-gold-soft);
	color: var(--vz-gold-deep);
	font-size: 12.5px;
	line-height: 1.3;
}

.vz-nudge b { color: var(--vz-ink); }
.vz-nudge .vz-i { width: 15px; height: 15px; }

@media (max-width: 767px) {
	table.cart,
	table.woocommerce-orders-table { border-radius: var(--vz-r-lg); }
	table.cart thead,
	table.woocommerce-orders-table thead { display: none; }

	table.cart tbody tr.cart_item {
		position: relative;
		display: block;
		min-height: 118px;
		padding: 14px 14px 14px 110px;
		border-bottom: 1px solid var(--vz-line);
	}

	table.cart tbody tr.cart_item td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 4px 0;
		border: 0;
		text-align: right;
	}

	table.cart tbody tr.cart_item td::before {
		content: attr(data-title);
		margin-right: 12px;
		color: var(--vz-muted);
		font-size: 13px;
		font-weight: 600;
		text-align: left;
	}

	table.cart td.product-thumbnail { position: absolute !important; left: 14px; top: 14px; width: auto; padding: 0 !important; }
	table.cart td.product-thumbnail img { width: 82px; height: 82px; }
	table.cart td.product-remove { position: absolute !important; right: 10px; top: 10px; width: auto; padding: 0 !important; }
	table.cart td.product-name { display: block !important; padding-right: 40px !important; text-align: left !important; }
	table.cart td.product-thumbnail::before,
	table.cart td.product-remove::before,
	table.cart td.product-name::before { display: none; }

	table.cart td.actions { display: block; padding: 14px; }
	table.cart td.actions .coupon { float: none; margin-bottom: 10px; }
	table.cart td.actions #coupon_code { flex: 1; width: auto; }
	table.cart td.actions > .button { float: none; width: 100%; }

	table.woocommerce-orders-table tbody tr {
		display: block;
		padding: 12px 16px;
		border-bottom: 1px solid var(--vz-line);
	}

	table.woocommerce-orders-table tbody td,
	table.woocommerce-orders-table tbody th {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		padding: 5px 0;
		border: 0;
		text-align: right;
	}

	table.woocommerce-orders-table tbody td::before,
	table.woocommerce-orders-table tbody th::before {
		content: attr(data-title);
		color: var(--vz-muted);
		font-weight: 600;
		text-align: left;
	}
}

.cart_totals {
	padding: 22px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
	box-shadow: var(--vz-shadow);
}

.cart_totals h2 { margin: 0 0 10px; font: 700 24px var(--vz-serif); }

.cart_totals table.shop_table,
.woocommerce-checkout-review-order-table {
	border: 0;
	border-radius: 0;
	background: transparent;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	background: transparent;
}

.cart_totals table.shop_table th,
.woocommerce-checkout-review-order-table tfoot th {
	color: var(--vz-muted);
	font: 600 14px/1.3 var(--vz-sans);
	letter-spacing: 0;
	text-transform: none;
}

.cart_totals table.shop_table td,
.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.cart_totals .order-total th,
.cart_totals .order-total td,
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td { color: var(--vz-ink); font-size: 16px; border-bottom: 0; }
.order-total .amount { font: 800 24px var(--vz-sans) !important; }
.cart_totals .woocommerce-shipping-destination,
.cart_totals .woocommerce-shipping-calculator { font-size: 13px; color: var(--vz-muted); }
ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: right; }
ul#shipping_method li { margin-bottom: 4px; }

.wc-proceed-to-checkout { padding-top: 10px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 58px; font-size: 16px; background: var(--vz-ink); }

/* Pago: el checkout (Escuba Checkout Pro) tiene su propia hoja,
   assets/css/checkout.css, que solo se carga en esa área (inc/checkout.php). */

html body.woocommerce-checkout,
html body .woocommerce-checkout { font-family: var(--vz-sans); }

/* «Mis direcciones» de escuba-checkout-pro (variables `--esc-c-*`). */
html body {
	--esc-c-text: #0e0e10;
	--esc-c-muted: #77736b;
	--esc-c-soft: #ada89f;
	--esc-c-border: #e6e2da;
	--esc-c-border-soft: #efece6;
	--esc-c-bg-soft: #f5f3ef;
	--esc-c-primary: #0e0e10;
	--esc-c-primary-h: #000000;
	--esc-c-primary-d: #0e0e10;
}

html body .escuba-myaddr-hero {
	background: var(--vz-grad-dark) !important;
	border-radius: var(--vz-r-hero) !important;
	box-shadow: none !important;
}

html body .escuba-myaddr-hero__icon { background: rgba(200, 163, 90, 0.18) !important; color: var(--vz-gold) !important; }
html body .escuba-myaddr-hero__sub { color: var(--vz-on-dark-muted) !important; }

html body .escuba-section-head__icon--billing,
html body .escuba-section-head__icon--shipping,
html body .escuba-badge--principal {
	background: var(--vz-gold-soft) !important;
	color: var(--vz-gold-deep) !important;
	border-color: transparent !important;
}

html body .escuba-btn { border-radius: var(--vz-r-pill) !important; }

html body .escuba-btn--primary {
	background: var(--vz-ink) !important;
	color: #fff !important;
	box-shadow: none !important;
}

html body .escuba-btn--primary:hover { background: #000 !important; color: var(--vz-gold-light) !important; }
html body .escuba-btn--outline { color: var(--vz-ink) !important; border-color: var(--vz-ink) !important; }
html body .escuba-btn--outline:hover { background: var(--vz-ink) !important; color: #fff !important; }
html body .es-amz-crumb-back { color: var(--vz-gold-deep) !important; }

/* Miniatura de cada producto en el detalle del pedido (gracias y Mi cuenta → Pedidos). */
.vz-co-line {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	vertical-align: middle;
}

.vz-co-line__thumb {
	display: grid;
	flex: none;
	place-items: center;
	width: 52px;
	height: 52px;
	overflow: hidden;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-img);
	background: #fff;
}

.vz-co-line__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.vz-co-line__name { min-width: 0; }

/* Vuelta al checkout tras «Recargar billetera». */
.vz-wallet-return__link { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Pedido recibido y detalle de pedido */
.woocommerce-order { display: grid; gap: 20px; }

.woocommerce-thankyou-order-received {
	margin: 0;
	padding: 22px 22px 22px 64px;
	position: relative;
	border-radius: var(--vz-r-hero);
	background: var(--vz-grad-dark);
	color: #fff;
	font: 700 clamp(20px, 3vw, 26px)/1.3 var(--vz-serif);
}

.woocommerce-thankyou-order-received::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 50%;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	border-radius: 50%;
	background: var(--vz-grad-gold) center / 16px no-repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0E10' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"), var(--vz-grad-gold);
}

ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin: 0;
	padding: 20px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	list-style: none;
}

ul.woocommerce-order-overview li { color: var(--vz-muted); font-size: 11.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; color: var(--vz-ink); font-size: 15px; letter-spacing: 0; text-transform: none; }

.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2,
.woocommerce-order-downloads__title { margin: 12px 0 12px; font: 700 24px var(--vz-serif); }

address {
	padding: 18px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-card);
	background: var(--vz-surface);
	font-style: normal;
	line-height: 1.7;
}

.woocommerce-columns--addresses { display: grid; gap: 16px; }

@media (min-width: 768px) {
	.woocommerce-columns--addresses,
	.woocommerce-Addresses { grid-template-columns: 1fr 1fr; }
}

mark.order-number,
mark.order-date,
mark.order-status { background: transparent; color: var(--vz-ink); font-weight: 700; }

/* ==========================================================================
   14. Mi cuenta y acceso
   ========================================================================== */

.vz-acct-hero {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin: 18px 0 22px;
	padding: 22px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark);
}

.vz-acct-hero::after {
	content: "";
	position: absolute;
	right: -40px;
	bottom: -60px;
	width: 220px;
	aspect-ratio: 429 / 458;
	background: rgba(200, 163, 90, 0.12);
	-webkit-mask: url(../img/mark.png) center / contain no-repeat;
	mask: url(../img/mark.png) center / contain no-repeat;
	z-index: -1;
}

.vz-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--vz-grad-gold);
	color: var(--vz-ink);
	font: 800 24px var(--vz-serif);
	box-shadow: 0 0 0 4px rgba(200, 163, 90, 0.18);
}

.vz-acct-hero__txt { flex: 1; min-width: 180px; }
.vz-acct-hero h1 { margin: 4px 0 2px; color: #fff; font: 700 clamp(26px, 4vw, 38px)/1.1 var(--vz-serif); }
.vz-acct-hero p { margin: 0; color: var(--vz-on-dark-muted); font-size: 14px; word-break: break-all; }
.vz-acct-hero__side { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }

.vz-level {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 16px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-grad-gold);
	color: var(--vz-ink);
	font: 800 14px var(--vz-sans);
}

.vz-level .vz-i { width: 18px; height: 18px; }

@media (min-width: 1024px) {
	.vz-acct-hero { padding: 30px 36px; margin: 28px 0 28px; }
	.vz-avatar { width: 76px; height: 76px; font-size: 30px; }
}

.woocommerce-account.logged-in .vz-wc-page .woocommerce { display: grid; gap: 20px; }

@media (min-width: 1024px) {
	.woocommerce-account.logged-in .vz-wc-page .woocommerce {
		grid-template-columns: 264px minmax(0, 1fr);
		align-items: start;
		gap: 32px;
	}
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 8px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	overflow-x: auto;
	scrollbar-width: none;
	list-style: none;
}

.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }

.woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 44px;
	padding: 0 14px;
	border-radius: var(--vz-r-img);
	color: var(--vz-text);
	font: 600 14px/1 var(--vz-sans);
	white-space: nowrap;
	transition: background var(--vz-fast), color var(--vz-fast);
}

.woocommerce-MyAccount-navigation a .vz-i { width: 19px; height: 19px; color: var(--vz-muted); }
.woocommerce-MyAccount-navigation a:hover { background: var(--vz-surface-alt); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--vz-ink); color: #fff; }
.woocommerce-MyAccount-navigation .is-active a .vz-i { color: var(--vz-gold); }
.woocommerce-MyAccount-navigation-link--customer-logout a,
.woocommerce-MyAccount-navigation-link--customer-logout a .vz-i { color: var(--vz-sale); }

@media (min-width: 1024px) {
	.woocommerce-MyAccount-navigation ul { flex-direction: column; overflow: visible; }
	.woocommerce-MyAccount-navigation { position: sticky; top: calc(var(--vz-sticky-h) + var(--vz-adminbar) + 20px); }
}

.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content > h2,
.woocommerce-MyAccount-content > h3 { font: 700 26px var(--vz-serif); }

.woocommerce-MyAccount-content form:not(.cart):not(.woocommerce-cart-form) {
	padding: 22px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
}

.woocommerce-MyAccount-content fieldset {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-card);
}

.woocommerce-MyAccount-content legend { padding: 0 8px; font: 700 15px var(--vz-sans); color: var(--vz-ink); }

.woocommerce-Addresses { display: grid; gap: 16px; }

.woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 { margin: 0; font: 700 20px var(--vz-serif); }
.woocommerce-Address-title .edit { color: var(--vz-gold-deep); font-weight: 700; font-size: 14px; }

.woocommerce-orders-table .button,
.woocommerce-MyAccount-content .woocommerce-button {
	min-height: 36px;
	padding: 0 14px;
	font-size: 13px;
	margin: 2px;
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { color: var(--vz-ink); font-weight: 800; }

/* Escritorio de la cuenta */
.vz-dash__tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (min-width: 768px) {
	.vz-dash__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}

.vz-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	transition: transform var(--vz-med) var(--vz-ease), border-color var(--vz-med), box-shadow var(--vz-med);
}

.vz-tile:hover { transform: translateY(-2px); border-color: var(--vz-ink); box-shadow: var(--vz-shadow); }

.vz-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 6px;
	border-radius: var(--vz-r-img);
	background: var(--vz-gold-soft);
	color: var(--vz-gold-deep);
}

.vz-tile__icon .vz-i { width: 22px; height: 22px; }
.vz-tile b { color: var(--vz-ink); font-size: 15px; line-height: 1.3; }
.vz-tile small { color: var(--vz-muted); font-size: 13px; line-height: 1.4; }

.vz-dash__recent { margin-top: 26px; }

.vz-dash__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.vz-dash__head h2 { margin: 0; font: 700 24px var(--vz-serif); }

.vz-order-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
	padding: 14px 16px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-card);
	background: var(--vz-surface);
	transition: border-color var(--vz-fast);
}

.vz-order-row:hover { border-color: var(--vz-ink); }
.vz-order-row__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vz-order-row__main b { color: var(--vz-ink); }
.vz-order-row__main small { color: var(--vz-muted); font-size: 12.5px; }
.vz-order-row__side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.vz-order-row__side b { color: var(--vz-ink); font-weight: 800; }

.vz-status {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 10px;
	border-radius: var(--vz-r-pill);
	background: var(--vz-surface-alt);
	color: var(--vz-text);
	font: 700 11.5px/1 var(--vz-sans);
	white-space: nowrap;
}

.vz-status--completed { background: #e7f6ec; color: #1f7a45; }
.vz-status--processing { background: var(--vz-gold-soft); color: var(--vz-gold-deep); }
.vz-status--cancelled,
.vz-status--failed,
.vz-status--refunded { background: #fde8ec; color: var(--vz-sale); }
.vz-status--pending,
.vz-status--on-hold { background: #eef0f4; color: #4b5563; }

/* Acceso */
.vz-auth { display: grid; gap: 16px; margin: 6px 0 12px; }

@media (min-width: 1024px) {
	.vz-auth { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
}

.vz-auth__card {
	padding: 28px 22px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
}

.vz-auth__title { margin: 8px 0 6px; font: 700 34px/1.1 var(--vz-serif); }
.vz-auth__lead { margin: 0 0 22px; color: var(--vz-muted); }

.vz-auth__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.vz-auth__lost { color: var(--vz-gold-deep); font-weight: 700; font-size: 14px; }

.vz-auth__aside {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 28px 22px;
	border-radius: var(--vz-r-hero);
	overflow: hidden;
	isolation: isolate;
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark);
}

.vz-auth__aside::after {
	content: "";
	position: absolute;
	right: -30%;
	top: -40%;
	width: 80%;
	aspect-ratio: 1;
	background: radial-gradient(circle, rgba(200, 163, 90, 0.2), transparent 62%);
	z-index: -1;
}

.vz-auth__mark { width: 52px; margin-bottom: 20px; }

/* Avisos del fragmento «mensaje_llamativo_login_mayorista» (estilos en línea). */
.vz-auth .woocommerce-form-login > div[style*="#ffcc00"] {
	margin: 0 0 20px !important;
	padding: 12px 14px !important;
	border: 0 !important;
	border-radius: var(--vz-r-sm) !important;
	background: var(--vz-gold-soft) !important;
	color: var(--vz-gold-deep) !important;
	font-weight: 500 !important;
	font-size: 13.5px;
	line-height: 1.5;
	text-align: left !important;
}

.vz-auth .woocommerce-form-login > div[style*="#f2f2f2"] {
	margin: 18px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--vz-muted) !important;
	font-weight: 500 !important;
	font-size: 14px;
	text-align: center !important;
}

.vz-auth .woocommerce-form-login > div[style] a {
	color: var(--vz-ink) !important;
	font-weight: 700;
	text-decoration: underline !important;
	text-decoration-color: var(--vz-gold) !important;
	text-underline-offset: 3px;
}

.vz-auth__aside h2 {
	margin: 8px 0 16px;
	color: #fff;
	font: 700 clamp(28px, 3.4vw, 38px)/1.1 var(--vz-serif);
}

.vz-auth__aside h2 em {
	font-style: italic;
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: 0.06em;
}

.vz-checks { display: grid; gap: 12px; margin: 0 0 18px; padding: 0; list-style: none; }

.vz-checks li {
	display: grid;
	grid-template-columns: 26px 1fr;
	gap: 10px;
	align-items: start;
	color: var(--vz-on-dark);
	font-size: 14.5px;
	line-height: 1.5;
}

.vz-checks .vz-i {
	width: 26px;
	height: 26px;
	padding: 5px;
	border-radius: 50%;
	background: rgba(200, 163, 90, 0.16);
	color: var(--vz-gold);
	stroke-width: 2.6;
}

.vz-auth__fine { margin: 0 0 20px; color: var(--vz-on-dark-muted); font-size: 13px; }
.vz-auth__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }

@media (min-width: 1024px) {
	.vz-auth__card,
	.vz-auth__aside { padding: 40px; }
}

.woocommerce-ResetPassword,
.woocommerce-form-login.login:not(.vz-auth .woocommerce-form-login) {
	max-width: 520px;
	padding: 26px 22px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
}

/* Estado mayorista (cp-b2b) con los colores de Vapetazo */
.cpb2b-status { border-color: var(--vz-line); border-radius: var(--vz-r-hero); box-shadow: var(--vz-shadow); background: var(--vz-surface); }
.cpb2b-status__title { font-family: var(--vz-serif); color: var(--vz-ink); }
.cpb2b-status__chip { background: var(--vz-grad-gold); color: var(--vz-ink); box-shadow: 0 8px 18px rgba(200, 163, 90, 0.32); }
.cpb2b-status__chip--locked { background: var(--vz-ink); color: var(--vz-gold-light); box-shadow: none; }
.cpb2b-status__bar { background: var(--vz-surface-alt); }
.cpb2b-status__bar-fill { background: var(--vz-grad-gold); box-shadow: none; }
.cpb2b-status__card { background: var(--vz-surface-alt); border-color: var(--vz-line); }
.cpb2b-status__card--active { border-color: var(--vz-gold); box-shadow: 0 12px 30px rgba(200, 163, 90, 0.28); }
.cpb2b-status__card-badge { background: var(--vz-gold-soft); color: var(--vz-gold-deep); }

@media (prefers-color-scheme: dark) {
	.cpb2b-status { background: var(--vz-surface); border-color: var(--vz-line); }
	.cpb2b-status__card { background: var(--vz-surface-alt); border-color: var(--vz-line); }
	.cpb2b-status__meta strong { color: var(--vz-ink); }
}

/* ==========================================================================
   15. Páginas, Elementor, entradas, 404
   ========================================================================== */

.vz-page-head { padding: 28px 0 10px; }

.vz-page-head__title {
	margin: 6px 0 0;
	color: var(--vz-ink);
	font: 800 clamp(32px, 5vw, 58px)/1.05 var(--vz-serif);
	letter-spacing: -0.015em;
}

.vz-page-head__rule {
	display: block;
	width: 56px;
	height: 3px;
	margin-top: 16px;
	border-radius: 3px;
	background: var(--vz-grad-gold);
}

@media (min-width: 1024px) {
	.vz-page-head { padding: 48px 0 16px; }
}

.vz-prose {
	max-width: 920px;
	margin: 16px 0 24px;
	padding: 24px 20px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
	font-size: 15.5px;
	line-height: 1.8;
}

@media (min-width: 1024px) {
	.vz-prose { padding: 48px 56px; }
}

.vz-prose > :first-child { margin-top: 0; }
.vz-prose > :last-child { margin-bottom: 0; }
.vz-prose h2 { margin: 1.6em 0 0.5em; font-size: clamp(24px, 2.6vw, 30px); }
.vz-prose h3 { margin: 1.4em 0 0.4em; font-size: 18px; }
.vz-prose a { color: var(--vz-ink); text-decoration: underline; text-decoration-color: var(--vz-gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.vz-prose ul,
.vz-prose ol { padding-left: 1.3em; }
.vz-prose li { margin-bottom: 0.4em; }
.vz-prose blockquote { margin: 1.4em 0; padding-left: 18px; border-left: 3px solid var(--vz-gold); font-family: var(--vz-serif); font-style: italic; font-size: 1.1em; }
.vz-prose img { border-radius: var(--vz-r-img); }
.vz-prose table { width: 100%; border-collapse: collapse; }
.vz-prose th,
.vz-prose td { padding: 10px 12px; border-bottom: 1px solid var(--vz-line); text-align: left; }
.vz-prose__cover { margin: 0 0 24px; }
.vz-prose__cover img { width: 100%; border-radius: var(--vz-r-lg); }

/* Páginas de Elementor convertidas (inc/elementor-compat.php) */
.vz-prose--wide { max-width: none; }
.vz-prose--el h2:first-child { margin-top: 0; }
.vz-prose--el h2 + h2 { margin-top: 0.4em; font-size: clamp(20px, 2vw, 24px); color: var(--vz-muted); }
.vz-prose blockquote cite { display: block; margin-top: 8px; color: var(--vz-gold-deep); font-style: normal; font-family: var(--vz-sans); font-weight: 700; font-size: 14px; }

.vz-prose-list {
	display: grid;
	gap: 8px;
	margin: 0 0 1.4em;
	padding: 0 !important;
	list-style: none;
}

.vz-prose-list li {
	position: relative;
	margin: 0;
	padding: 12px 16px 12px 44px;
	border-radius: var(--vz-r-sm);
	background: var(--vz-bg);
}

.vz-prose-list li::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border-radius: 50%;
	background: var(--vz-grad-gold);
}

.vz-prose-list a { text-decoration: none !important; font-weight: 700; }
.vz-prose-cta { margin: 1.4em 0; }
.vz-prose-cta .vz-btn { text-decoration: none !important; color: #fff !important; }
.vz-prose-figure { margin: 1.4em 0; }
.vz-prose-figure img { width: 100%; height: auto; border-radius: var(--vz-r-lg); }
.vz-prose hr { margin: 2em 0; border: 0; border-top: 1px solid var(--vz-line); }

.vz-prose-table {
	margin: 1.2em 0 1.6em;
	overflow-x: auto;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
}

.vz-prose-table table { margin: 0; min-width: 480px; }
.vz-prose-table th { background: var(--vz-ink); color: var(--vz-gold-light); font-weight: 700; }
.vz-prose-table tr:last-child td { border-bottom: 0; }
.vz-prose-table td:last-child { font-weight: 700; color: var(--vz-ink); white-space: nowrap; }

.vz-shortcode-page { padding-top: 8px; }

/* Mapa de envíos (fragmento de WPCode del sitio) con la paleta de Vapetazo */
.vz-prose .cp-real-map-app {
	margin: 2em 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: var(--vz-sans) !important;
}

.vz-prose .cp-real-map-app *:not(svg):not(svg *) { font-family: var(--vz-sans) !important; }

.vz-prose .cp-real-header h1,
.vz-prose .cp-real-header h2,
.vz-prose .cp-real-header h3,
.vz-prose .cp-real-info h1,
.vz-prose .cp-real-info h2,
.vz-prose .cp-real-info h3 {
	font-family: var(--vz-serif) !important;
	color: var(--vz-ink) !important;
	text-transform: none !important;
	letter-spacing: -0.01em !important;
	font-weight: 700 !important;
}

.vz-prose .cp-real-brand {
	background: var(--vz-grad-gold) !important;
	color: var(--vz-ink) !important;
	box-shadow: none !important;
}

.vz-prose .cp-real-map-card,
.vz-prose .cp-real-info {
	border-color: var(--vz-line) !important;
	border-radius: var(--vz-r-lg) !important;
	box-shadow: none !important;
}

.vz-prose .cp-real-stat { border-color: var(--vz-line) !important; border-radius: var(--vz-r-card) !important; box-shadow: none !important; }
.vz-prose .cp-real-stat-icon { background: var(--vz-ink) !important; color: var(--vz-gold-light) !important; }
.vz-prose .cp-real-stat strong,
.vz-prose .cp-real-stat b { color: var(--vz-ink) !important; }

.vz-prose .cp-real-notice {
	border-radius: var(--vz-r-sm) !important;
	background: var(--vz-gold-soft) !important;
	border-color: var(--vz-gold) !important;
	color: var(--vz-text) !important;
}

/* Contacto */
.vz-contact {
	display: grid;
	gap: 12px;
	max-width: 920px;
	margin: 16px 0 4px;
}

@media (min-width: 768px) {
	.vz-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.vz-contact__card {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-lg);
	background: var(--vz-surface);
	transition: border-color var(--vz-fast), transform var(--vz-med) var(--vz-ease), box-shadow var(--vz-med);
}

.vz-contact__card:hover { border-color: var(--vz-ink); transform: translateY(-2px); box-shadow: var(--vz-shadow); }

.vz-contact__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--vz-ink);
	color: var(--vz-gold-light);
}

.vz-contact__icon .vz-i { width: 22px; height: 22px; }
.vz-contact__card--wa .vz-contact__icon { background: var(--vz-wa); color: #fff; }
.vz-contact__card small { display: block; color: var(--vz-muted); font-size: 12px; font-weight: 600; }
.vz-contact__card b { display: block; color: var(--vz-ink); font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vz-contact__go { width: 18px !important; height: 18px !important; color: var(--vz-faint); }

/* Textos legales que traen sus propios estilos en línea */
html body.page .vz-prose .vapetazo-privacy,
html body.page .vz-prose .vapetazo-privacy * {
	color: var(--vz-text) !important;
	-webkit-text-fill-color: currentColor !important;
}

html body.page .vz-prose .vapetazo-privacy {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

html body.page .vz-prose .vapetazo-privacy h1,
html body.page .vz-prose .vapetazo-privacy h2,
html body.page .vz-prose .vapetazo-privacy h3 { color: var(--vz-ink) !important; }

/* Elementor: las páginas hechas con el maquetador usan los colores y fuentes del tema */
html body[class*="elementor-kit-"] {
	--e-global-color-primary: #0e0e10;
	--e-global-color-secondary: #c8a35a;
	--e-global-color-text: #2a2a2e;
	--e-global-color-accent: #c8a35a;
	--e-global-typography-primary-font-family: "Playfair Display";
	--e-global-typography-secondary-font-family: "Plus Jakarta Sans";
	--e-global-typography-text-font-family: "Plus Jakarta Sans";
	--e-global-typography-accent-font-family: "Plus Jakarta Sans";
}

.vz-elementor { padding: 8px 0 24px; }
.vz-elementor .elementor-widget-text-editor { line-height: 1.75; }

/* Entradas */
.vz-posts { display: grid; gap: 16px; margin: 16px 0 24px; }

@media (min-width: 768px) {
	.vz-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.vz-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}

.vz-post {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--vz-line);
	border-radius: var(--vz-r-hero);
	background: var(--vz-surface);
	overflow: hidden;
}

.vz-post__img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.vz-post__body { padding: 20px; }
.vz-post__title { margin: 6px 0 8px; font: 700 22px/1.2 var(--vz-serif); }
.vz-post__body p { color: var(--vz-muted); font-size: 14px; }

/* 404 */
.vz-404 { max-width: 720px; margin: 0 auto; padding: 48px 0 24px; text-align: center; }

.vz-404__code {
	margin: 0;
	font: 800 clamp(110px, 22vw, 220px)/0.9 var(--vz-serif);
	background: var(--vz-grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	letter-spacing: -0.04em;
}

.vz-404__title { margin: 12px 0 10px; font: 700 clamp(28px, 4vw, 42px)/1.1 var(--vz-serif); }
.vz-404__text { margin: 0 auto 24px; max-width: 520px; color: var(--vz-muted); }
.vz-404__search { max-width: 520px; margin: 0 auto 20px; }
.vz-404 .vz-pills--center { margin: 0 0 28px; padding: 0; }

/* ==========================================================================
   16. Pie y animaciones
   ========================================================================== */

.vz-footer {
	margin-top: 56px;
	padding: 48px 0 28px;
	border-radius: 32px 32px 0 0;
	background: var(--vz-grad-dark);
	color: var(--vz-on-dark-muted);
}

@media (min-width: 1024px) {
	.vz-footer { margin-top: 88px; padding: 72px 0 32px; border-radius: 56px 56px 0 0; }
}

.vz-footer__top { display: grid; gap: 34px; }

@media (min-width: 1024px) {
	.vz-footer__top { grid-template-columns: minmax(0, 1.3fr) minmax(0, 2fr); gap: 64px; }
}

.vz-footer__brand .vz-logo { justify-self: start; padding: 0; }
.vz-footer__brand .vz-logo__word { width: 210px; }
.vz-footer__brand p { max-width: 380px; margin: 18px 0 20px; font-size: 14.5px; line-height: 1.65; }

.vz-footer__cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px 20px;
}

@media (min-width: 768px) {
	.vz-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.vz-footer h3 {
	margin: 0 0 14px;
	color: #fff;
	font: 700 11.5px/1.2 var(--vz-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.vz-footer ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }

.vz-footer ul a {
	color: var(--vz-on-dark);
	font-size: 14.5px;
	opacity: 0.78;
	transition: opacity var(--vz-fast), color var(--vz-fast);
}

.vz-footer ul a:hover { color: var(--vz-gold-light); opacity: 1; }

.vz-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 13px;
}

.vz-footer__bottom p { margin: 0; }
.vz-footer__bottom a:hover { color: var(--vz-gold-light); }
.vz-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }

.vz-18 { display: inline-flex; align-items: center; gap: 8px; }

.vz-18 b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1.5px solid var(--vz-gold);
	border-radius: 50%;
	color: var(--vz-gold);
	font: 800 10.5px/1 var(--vz-sans);
}

/* Entradas al hacer scroll (solo con JS) */
html.js [data-vz-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.7s var(--vz-ease), transform 0.7s var(--vz-ease), box-shadow var(--vz-slow);
	transition-delay: calc(var(--i, 0) * 70ms);
}

html.js [data-vz-reveal].is-in { opacity: 1; transform: none; }
html.js .vz-world[data-vz-reveal].is-in:hover { transform: translateY(-4px); transition-delay: 0s; }
html.js .vz-promo[data-vz-reveal].is-in:hover { transform: translateY(-3px); transition-delay: 0s; }
html.js .vz-help__item[data-vz-reveal].is-in:hover { transform: translateY(-3px); transition-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	html.js [data-vz-reveal] { opacity: 1; transform: none; }
}

@media print {
	.vz-topbar,
	.vz-header,
	.vz-tabbar,
	.vz-wa-fab,
	.vz-buybar,
	.vz-footer,
	.vz-age { display: none !important; }
}

/* Dentro de la app (WebView de pago y de billetera, vptz_in_app()): la app
   pone su barra y sus accesos, y ya pidió la edad. */
body.vz-in-app .vz-topbar,
body.vz-in-app .vz-header,
body.vz-in-app .vz-tabbar,
body.vz-in-app .vz-wa-fab,
body.vz-in-app .vz-footer,
body.vz-in-app .vz-age { display: none !important; }

body.vz-in-app { padding-bottom: 0; }
body.vz-in-app .vz-wc-page--checkout .vz-page-head { padding-top: 14px; }
body.vz-in-app .vz-wc-page--checkout .vz-page-head__title { display: none; }
