/* Vitacomoda Gaming Home — solo front page (body.vc-gaming-home) */
:root {
	--vc-gh-blue: #0445af;
	--vc-gh-gold: #ffc532;
	--vc-gh-cyan: #04b8d8;
	--vc-gh-orange: #ff7a1a;
	--vc-gh-purple: #7b3cff;
	--vc-gh-ink: #070b1a;
	--vc-gh-glow: 0 0 24px rgba(255, 197, 50, 0.45), 0 0 60px rgba(4, 69, 175, 0.35);
}

body.vc-gaming-home {
	background: #070b1a !important;
	color: #f4f7ff;
}

/* Elimina bande/spazi bianchi Astra sopra la hero */
body.vc-gaming-home #page,
body.vc-gaming-home .site,
body.vc-gaming-home .site-content,
body.vc-gaming-home #content,
body.vc-gaming-home .ast-container,
body.vc-gaming-home .entry-content,
body.vc-gaming-home article.page,
body.vc-gaming-home .ast-plain-container,
body.vc-gaming-home .ast-separate-container .ast-article-single,
body.vc-gaming-home .ast-separate-container .ast-article-post {
	background: transparent !important;
	background-color: transparent !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.vc-gaming-home .site-content,
body.vc-gaming-home #content,
body.vc-gaming-home .content-area,
body.vc-gaming-home .ast-article-single,
body.vc-gaming-home article.page,
body.vc-gaming-home .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

body.vc-gaming-home .entry-header,
body.vc-gaming-home .page-header,
body.vc-gaming-home .ast-archive-description,
body.vc-gaming-home .ast-breadcrumbs-wrapper,
body.vc-gaming-home .ast-single-post .entry-header {
	display: none !important;
}

body.vc-gaming-home .site-content > .ast-container,
body.vc-gaming-home #content > .ast-container {
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Header immersivo: niente fascia bianca (solo elementi header, non tutti gli .ast-container) */
body.vc-gaming-home #masthead,
body.vc-gaming-home #ast-desktop-header,
body.vc-gaming-home #ast-mobile-header,
body.vc-gaming-home .site-header,
body.vc-gaming-home .ast-main-header-wrap,
body.vc-gaming-home .main-header-bar-wrap,
body.vc-gaming-home .main-header-bar,
body.vc-gaming-home .ast-primary-header-bar,
body.vc-gaming-home .ast-above-header-bar,
body.vc-gaming-home .ast-above-header-wrap,
body.vc-gaming-home .ast-below-header-bar,
body.vc-gaming-home .ast-below-header-wrap,
body.vc-gaming-home .site-primary-header-wrap,
body.vc-gaming-home .site-below-header-wrap,
body.vc-gaming-home .ast-mobile-header-wrap,
body.vc-gaming-home header .ast-builder-grid-row-container-inner,
body.vc-gaming-home header .ast-builder-grid-row {
	background: #070b1a !important;
	background-color: #070b1a !important;
	background-image: none !important;
	border-bottom-color: rgba(255, 255, 255, 0.08) !important;
	box-shadow: none !important;
}

body.vc-gaming-home .ast-header-search,
body.vc-gaming-home .ast-search-menu-icon,
body.vc-gaming-home .dgwt-wcas-search-wrapp,
body.vc-gaming-home .site-header-below-section-left,
body.vc-gaming-home .site-header-below-section-right,
body.vc-gaming-home .site-header-below-section-center,
body.vc-gaming-home .site-header-primary-section-left,
body.vc-gaming-home .site-header-primary-section-right {
	background: transparent !important;
	background-color: transparent !important;
}

body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item > .menu-link,
body.vc-gaming-home .main-header-menu > .menu-item > .menu-link,
body.vc-gaming-home .ast-builder-menu .menu-link,
body.vc-gaming-home .ast-header-account-text,
body.vc-gaming-home .site-title a,
body.vc-gaming-home .site-description {
	color: #ffffff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
	transition: color 0.25s ease, text-shadow 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

body.vc-gaming-home .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input,
body.vc-gaming-home .search-field {
	background: #0c1228 !important;
	color: #f5f8ff !important;
	border: 1px solid rgba(255, 197, 50, 0.75) !important;
	box-shadow: 0 0 10px rgba(255, 197, 50, 0.28) !important;
	outline: none !important;
}

/* Pulsanti account */
body.vc-gaming-home .vc-header-user,
body.vc-gaming-home .vc-header-user a,
body.vc-gaming-home .vc-header-user a:visited {
	color: #ffffff !important;
	opacity: 1 !important;
}

body.vc-gaming-home .vc-header-user a {
	border: 1px solid rgba(255, 197, 50, 0.75) !important;
	border-radius: 999px !important;
	padding: 6px 14px !important;
	background: #000 !important;
}

body.vc-gaming-home .vc-header-user a:hover {
	color: #ffc532 !important;
	border-color: #ffc532 !important;
	box-shadow: 0 0 16px rgba(255, 197, 50, 0.35);
}

/* Carrello: un solo bordo oro (evita doppio outline Astra + custom) */
body.vc-gaming-home .ast-site-header-cart .ast-cart-menu-wrap,
body.vc-gaming-home .ast-site-header-cart .cart-container,
body.vc-gaming-home .ast-site-header-cart a.cart-container {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
body.vc-gaming-home .ast-site-header-cart .ast-addon-cart-wrap {
	background: #000 !important;
	background-color: #000 !important;
	color: #fff !important;
	border: 1px solid rgba(255, 197, 50, 0.75) !important;
	border-radius: 14px !important;
	box-shadow: 0 0 10px rgba(255, 197, 50, 0.28) !important;
}

body.vc-gaming-home .ast-site-header-cart .ast-icon,
body.vc-gaming-home .ast-site-header-cart .ast-icon svg,
body.vc-gaming-home .ast-site-header-cart .ast-icon svg *,
body.vc-gaming-home .ast-site-header-cart a.cart-container .ast-icon,
body.vc-gaming-home .ast-site-header-cart a.cart-container svg,
body.vc-gaming-home .ast-site-header-cart a.cart-container svg path,
body.vc-gaming-home .ast-site-header-cart .ahfb-svg-iconset,
body.vc-gaming-home .ast-site-header-cart .ahfb-svg-iconset svg,
body.vc-gaming-home .ast-site-header-cart .ahfb-svg-iconset svg path {
	color: #ffffff !important;
	fill: #ffffff !important;
	stroke: #ffffff !important;
}

body.vc-gaming-home .ast-site-header-cart .count {
	background: #ffc532 !important;
	color: #111111 !important;
	font-weight: 800 !important;
}

/* Desktop menu hover gaming */
@media (min-width: 922px) {
	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
		position: relative;
		border-radius: 999px;
		padding-left: 0.85em !important;
		padding-right: 0.85em !important;
	}

	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item > .menu-link:hover,
	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item.focus > .menu-link,
	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item.current-menu-item > .menu-link {
		color: #ffc532 !important;
		background: linear-gradient(180deg, rgba(255, 197, 50, 0.16), rgba(255, 122, 26, 0.08)) !important;
		text-shadow: 0 0 12px rgba(255, 197, 50, 0.75), 0 0 24px rgba(4, 184, 216, 0.35);
		box-shadow: 0 0 0 1px rgba(255, 197, 50, 0.35), 0 0 18px rgba(255, 197, 50, 0.22);
	}

	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item > .menu-link::after {
		content: "";
		position: absolute;
		left: 18%;
		right: 18%;
		bottom: 0.2em;
		height: 2px;
		border-radius: 2px;
		background: linear-gradient(90deg, transparent, #ffc532, #04b8d8, transparent);
		opacity: 0;
		transform: scaleX(0.4);
		transition: opacity 0.25s ease, transform 0.25s ease;
		pointer-events: none;
	}

	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item > .menu-link:hover::after,
	body.vc-gaming-home #ast-desktop-header .main-header-menu > .menu-item.current-menu-item > .menu-link::after {
		opacity: 1;
		transform: scaleX(1);
	}
}

body.vc-gaming-home.admin-bar .vc-gh-hero {
	margin-top: 0;
}

body.vc-gaming-home .vc-gh {
	position: relative;
	/* niente isolation: evita box nero con blend */
	overflow: visible;
	font-family: "Segoe UI", "Trebuchet MS", "Avenir Next", sans-serif;
	color: #f5f8ff;
	margin: 0 auto;
	padding: 0;
	width: 100%;
	max-width: none;
}

/* ===== HERO (sfondo supermercato + palla sopra l'edificio) ===== */
.vc-gh-hero {
	position: relative;
	min-height: auto;
	padding: 0 0 clamp(1.25rem, 3vw, 2.25rem);
	background: #070b1a;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	box-sizing: border-box;
}

/*
 * Stage full-bleed: lo sfondo webp (supermercato) è cover.
 * La palla fluttua sulla mappa, sopra il tetto dell'edificio.
 */
.vc-gh-hero-stage {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 100%;
	--vc-gh-stage-orb: min(754px, 68vw);
	/* Stage sempre ≥ diametro sfera + margine: evita clip e collisione col copy (+10% altezza area sfondo). */
	min-height: max(572px, calc((var(--vc-gh-stage-orb) + clamp(2rem, 5vh, 3.5rem)) * 1.1));
	height: auto;
	margin: 0 auto;
	/* overflow-x:clip + overflow-y:visible → su WebKit diventa clip su entrambi: taglia la sfera */
	overflow: visible;
	/* Sky su .vc-gh-hero-sky (zoom 1.3); qui solo fallback scuro. */
	background: #070b1a;
	box-sizing: border-box;
}

/* Stesso sfondo supermercato, zoom +30% (mobile + desktop). Clip solo sul layer sky. */
.vc-gh-hero-sky {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.vc-gh-hero-sky::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(4, 10, 28, 0.1) 0%, rgba(4, 10, 28, 0.06) 40%, rgba(4, 10, 28, 0.28) 72%, rgba(7, 11, 26, 0.7) 100%),
		var(--vc-gh-sky) center 42% / cover no-repeat;
	transform: scale(1.5);
	transform-origin: center 42%;
	will-change: transform;
}

.vc-gh-particles {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	opacity: 0.35;
	mix-blend-mode: screen;
}

.vc-gh-bloom {
	position: absolute;
	left: 50%;
	top: 28%;
	width: min(68vw, 680px);
	height: min(68vw, 680px);
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background:
		radial-gradient(circle, rgba(255, 197, 50, 0.22) 0%, rgba(4, 184, 216, 0.08) 35%, transparent 68%);
	filter: blur(28px);
	pointer-events: none;
	z-index: 1;
	animation: vcGhBloomPulse 4.5s ease-in-out infinite;
}

@keyframes vcGhBloomPulse {
	0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
	50% { opacity: 0.85; transform: translate(-50%, -50%) scale(1.05); }
}

.vc-gh-copy {
	position: relative;
	z-index: 3;
	max-width: 40rem;
	width: calc(100% - 2rem);
	text-align: center;
	margin: clamp(2rem, 5vw, 3.25rem) auto 0;
	padding: clamp(0.35rem, 1.5vw, 0.75rem) clamp(0.75rem, 3vw, 2rem) 0;
	box-sizing: border-box;
}

.vc-gh-orb-section {
	position: absolute;
	left: 50%;
	/* Desktop: più in alto e centrata sullo stage */
	top: 1.5%;
	transform: translateX(-50%);
	width: min(68vw, 754px);
	display: flex;
	justify-content: center;
	align-items: flex-start;
	margin: 0;
	z-index: 3;
	pointer-events: none;
}

.vc-gh-orb-section .vc-gh-orb {
	pointer-events: auto;
}

.vc-gh-title {
	margin: 0 0 1rem;
	font-size: clamp(2.1rem, 5.2vw, 3.8rem);
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: #fff;
	text-shadow: 0 8px 40px rgba(0, 0, 0, 0.45);
}

.vc-gh-title span {
	background: linear-gradient(105deg, #ffb347 0%, #ff7a1a 45%, #ffc532 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.vc-gh-lead {
	margin: 0 auto 1.75rem;
	font-size: clamp(1rem, 1.5vw, 1.15rem);
	line-height: 1.55;
	color: rgba(236, 242, 255, 0.88);
	max-width: 38ch;
}

.vc-gh-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.85rem 1.25rem;
}

.vc-gh-btn {
	appearance: none;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 48px;
	padding: 0.85rem 1.45rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

.vc-gh-btn:hover {
	transform: translateY(-2px);
	filter: brightness(1.06);
}

.vc-gh-btn-primary {
	color: #fff;
	background: linear-gradient(115deg, #6b2cff 0%, #a14bff 40%, #ff7a1a 100%);
	box-shadow: 0 10px 30px rgba(107, 44, 255, 0.45), 0 0 24px rgba(255, 122, 26, 0.3);
}

.vc-gh-btn-ghost {
	color: #fff;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(8px);
}

.vc-gh-btn-outline {
	color: #fff;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.7);
	box-shadow: 0 0 24px rgba(123, 60, 255, 0.35);
}

.vc-gh-play-icon {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 2px solid var(--vc-gh-gold);
	box-shadow: 0 0 14px rgba(255, 197, 50, 0.55);
	position: relative;
}

.vc-gh-play-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 53%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent var(--vc-gh-gold);
}

/* ===== ORB ===== */
.vc-gh-orb.main-circle-custom {
	--ben-center-scale: 1;
	--vc-gh-tilt-x: 0deg;
	--vc-gh-tilt-y: 0deg;
	/* Desktop: +30% vs 580/52vw */
	--vc-gh-orb-size: min(754px, 68vw);
	width: var(--vc-gh-orb-size) !important;
	height: var(--vc-gh-orb-size) !important;
	/* Il CSS aggiuntivo del Customizer impone max-height:90vw: renderebbe il box ovale. */
	aspect-ratio: 1 / 1 !important;
	max-width: none !important;
	max-height: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	border-radius: 0 !important;
	position: relative;
	border: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	animation: vitacomodaMainOrbFloat 3.2s ease-in-out infinite;
	will-change: transform;
	overflow: visible !important;
	transform-style: preserve-3d;
}

.vc-gh-orb.vc-gh-orb-pulse {
	filter: brightness(1.12) saturate(1.15);
}

.vc-gh-orb.main-circle-custom::before,
.vc-gh-orb.main-circle-custom::after {
	display: none !important;
	content: none !important;
	background: none !important;
}

.vc-gh-orb-art {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center center;
	pointer-events: none;
	background: transparent !important;
	mix-blend-mode: normal;
	/* Clip alone bianco: closest-side = raggio al bordo del box (non alla diagonale) */
	-webkit-mask-image: radial-gradient(
		circle closest-side at 50% 50%,
		#000 0%,
		#000 96.4%,
		transparent 98.6%
	);
	mask-image: radial-gradient(
		circle closest-side at 50% 50%,
		#000 0%,
		#000 96.4%,
		transparent 98.6%
	);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.35));
	user-select: none;
	z-index: 1;
}

/*
 * Hitmap sul punto di convergenza degli spicchi disegnati (50,22% / 51,47%).
 */
.vc-gh-orb-interactive {
	position: absolute;
	left: 50.22%;
	top: 51.47%;
	width: 74%;
	height: 74%;
	aspect-ratio: 1 / 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	z-index: 3;
	pointer-events: auto;
}

.vc-gh-hitmap {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 3;
	overflow: visible;
}

.vc-gh-hitmap a.segment-custom {
	position: static !important;
	inset: auto !important;
	clip-path: none !important;
	transform: none !important;
	filter: none !important;
	display: inline !important;
	width: auto !important;
	height: auto !important;
	opacity: 1 !important;
	/* Safari/Chrome disegnano un rettangolo tratteggiato sul box dell'<a>
	   SVG (non sullo spicchio): spegniamo focus e tap highlight. */
	outline: none !important;
	outline-offset: 0 !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
	touch-action: manipulation;
}

.vc-gh-hitmap a.segment-custom:focus,
.vc-gh-hitmap a.segment-custom:focus-visible,
.vc-gh-hitmap a.segment-custom:active,
.vc-gh-hitmap a.segment-custom:hover {
	outline: none !important;
	box-shadow: none !important;
}

.vc-gh-seg-hit {
	/* iOS/WebKit ignora i tap su fill con alpha ≈ 0: serve un minimo di opacità
	   e pointer-events esplicito, altrimenti gli spicchi non aprono le pagine. */
	fill: #ffffff;
	fill-opacity: 0.02;
	stroke: transparent;
	pointer-events: all;
	transition: fill-opacity 0.25s ease, filter 0.25s ease;
	cursor: pointer;
	outline: none !important;
	-webkit-tap-highlight-color: transparent;
}

.vc-gh-seg:hover .vc-gh-seg-hit,
.vc-gh-seg:focus-visible .vc-gh-seg-hit {
	fill: #ffffff;
	fill-opacity: 0.14;
	filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.55));
}

.vc-gh-seg:focus,
.vc-gh-seg:focus-visible,
.vc-gh-seg:active {
	outline: none !important;
}

/* Baratto non pronto: visibile ma non cliccabile */
.vc-gh-seg-disabled {
	pointer-events: none;
	cursor: default;
}

.vc-gh-seg-disabled .vc-gh-seg-hit {
	fill: #000000;
	fill-opacity: 0.28;
	cursor: default;
	pointer-events: none;
}

.vc-gh-label-baratto {
	opacity: 0.72;
}

.vc-gh-label-baratto::after {
	content: " · PRESTO";
	font-size: 0.72em;
	letter-spacing: 0.06em;
	opacity: 0.9;
}

.vc-gh-seg-label {
	opacity: 0;
	pointer-events: none;
}

.vc-gh-seg-label-inner {
	display: none;
}

/*
 * Un solo file: palla-home-de.webp (cristallo + divisori).
 * Spin click: finestra circolare sulla STESSA webp (niente hub PNG).
 */
body.vc-gaming-home .vc-gh-orb .center-circle-custom,
body.vc-gaming-home .vc-gh-orb-center,
body.vc-gaming-home .vc-gh-orb-center-img {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	background: none !important;
	background-image: none !important;
}

/* Hub cristallo ≈ 50.2%/50.2%, diametro ≈ 26.2% su palla-home-de.webp */
body.vc-gaming-home .vc-gh-orb-hub {
	position: absolute;
	left: 50.2%;
	top: 50.2%;
	width: 26.2%;
	height: 26.2%;
	aspect-ratio: 1 / 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 0;
	padding: 0;
	margin: 0;
	background: transparent;
	cursor: pointer;
	z-index: 7;
	pointer-events: auto;
	-webkit-tap-highlight-color: transparent;
	appearance: none;
	min-width: 44px;
	min-height: 44px;
}

body.vc-gaming-home .vc-gh-orb-hub:focus,
body.vc-gaming-home .vc-gh-orb-hub:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px rgba(255, 197, 50, 0.55);
}

body.vc-gaming-home .vc-gh-orb-spin {
	position: absolute;
	left: 50.2%;
	top: 50.2%;
	width: 26.2%;
	height: 26.2%;
	aspect-ratio: 1 / 1;
	transform: translate(-50%, -50%);
	transform-origin: center center;
	border-radius: 50%;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	z-index: 6;
	background-image: var(--vc-gh-orb-spin-img);
	background-repeat: no-repeat;
	/* Mappa l'intera palla nella finestra: mostra solo il centro. */
	background-size: 381.7% 381.7%;
	background-position: 50.2% 50.2%;
	will-change: transform, opacity;
}

.main-circle-custom.ben-rotating {
	animation: none !important;
}

body.vc-gaming-home .main-circle-custom.ben-rotating .vc-gh-orb-art {
	animation: none !important;
}

body.vc-gaming-home .main-circle-custom.ben-rotating .vc-gh-orb-spin {
	opacity: 1;
	animation: vitacomodaMainCenterSpinCCW 0.85s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Spin solo su selezione categoria (.ben-rotating). Mai al load/back in home. */
body.vc-gaming-home .main-circle-custom.vc-gh-orb-loading .vc-gh-orb-spin {
	opacity: 0;
	animation: none !important;
}

.circle-section-custom.ben-segment-busy {
	pointer-events: none;
}

@keyframes vitacomodaMainOrbFloat {
	0%, 100% {
		transform: translateY(0) rotateX(var(--vc-gh-tilt-x)) rotateY(var(--vc-gh-tilt-y));
	}
	50% {
		transform: translateY(-14px) rotateX(var(--vc-gh-tilt-x)) rotateY(var(--vc-gh-tilt-y));
	}
}

/* Overlay labels — più grandi per leggibilità */
.vc-gh-labels {
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
}

.vc-gh-label {
	position: absolute;
	transform: translate(-50%, -50%);
	max-width: min(42%, 11.5rem);
	width: max-content;
	padding: 0.35rem 0.55rem;
	border-radius: 10px;
	font-size: clamp(0.78rem, 2.05vw, 1.2rem);
	font-weight: 900;
	letter-spacing: 0.03em;
	line-height: 1.12;
	text-align: center;
	text-transform: uppercase;
	color: #fff;
	text-shadow:
		0 2px 4px rgba(0, 0, 0, 0.95),
		0 0 14px rgba(0, 0, 0, 0.75),
		0 0 2px #000;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.28));
	backdrop-filter: blur(3px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.vc-gh-label-supermercato {
	color: #fff;
}
.vc-gh-label-servizi { color: #fff; }
.vc-gh-label-benessere { color: #fff; }
.vc-gh-label-baratto { color: #fff; }
.vc-gh-label-comics { color: #fff; }

@media (max-width: 640px) {
	.vc-gh-hero {
		overflow: visible;
		padding-bottom: 1rem;
	}

	.vc-gh-hero-stage {
		--vc-gh-stage-orb: min(86vw, 360px);
		/* Altezza esplicita = sfera intera visibile (+10% area sfondo, zoom invariato) */
		min-height: calc((var(--vc-gh-stage-orb) + 1.25rem) * 1.1);
		height: calc((var(--vc-gh-stage-orb) + 1.25rem) * 1.1);
		background: #070b1a;
		overflow: visible;
		contain: layout style;
	}

	.vc-gh-hero-sky::before {
		background:
			linear-gradient(180deg, rgba(4, 10, 28, 0.1) 0%, rgba(4, 10, 28, 0.06) 40%, rgba(4, 10, 28, 0.28) 72%, rgba(7, 11, 26, 0.7) 100%),
			var(--vc-gh-sky-m, var(--vc-gh-sky)) center 32% / cover no-repeat;
		transform: scale(1.5);
		transform-origin: center 32%;
	}

	.vc-gh-orb-section {
		top: 0.5rem;
		left: 50%;
		width: var(--vc-gh-stage-orb);
		max-width: var(--vc-gh-stage-orb);
		transform: translateX(-50%);
		overflow: visible;
	}

	.vc-gh-orb.main-circle-custom {
		--vc-gh-orb-size: min(86vw, 360px);
		width: var(--vc-gh-orb-size) !important;
		height: var(--vc-gh-orb-size) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		/* Meno lavoro GPU su mobile: niente float continuo */
		animation: none;
		will-change: auto;
	}

	.vc-gh-orb-art {
		filter: none !important;
		content-visibility: auto;
	}

	.vc-gh-orb-spin {
		background-image: var(--vc-gh-orb-spin-img-m, var(--vc-gh-orb-spin-img));
	}

	.vc-gh-bloom {
		display: none;
	}

	.vc-gh-particles {
		display: none !important;
	}

	.vc-gh-floaters {
		display: none !important;
	}

	.vc-gh-orb-interactive {
		left: 50.22%;
		top: 51.47%;
		width: 78%;
		height: 78%;
		aspect-ratio: 1 / 1;
	}

	.vc-gh-copy {
		margin-top: clamp(1.25rem, 4vw, 2rem);
	}

	.vc-gh-label {
		max-width: min(50%, 8.2rem);
		font-size: clamp(0.66rem, 3.6vw, 0.92rem);
		padding: 0.26rem 0.38rem;
	}
}

@keyframes vitacomodaMainCenterSpinCCW {
	from { transform: translate(-50%, -50%) scale(var(--ben-center-scale, 1)) rotate(0deg); }
	to { transform: translate(-50%, -50%) scale(var(--ben-center-scale, 1)) rotate(-360deg); }
}

@keyframes vitacomodaMainCenterSpinLoading {
	from { transform: translate(-50%, -50%) rotate(0deg); }
	to { transform: translate(-50%, -50%) rotate(-360deg); }
}

/* Decorative floaters */
.vc-gh-floaters {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}

.vc-gh-floater {
	position: absolute;
	border-radius: 50%;
	filter: blur(0.2px);
	opacity: 0.75;
	animation: vcGhFloater 7s ease-in-out infinite;
}

.vc-gh-floater-a {
	width: 18px;
	height: 18px;
	top: 12%;
	left: 8%;
	background: radial-gradient(circle, #fff 0%, #ffc532 40%, transparent 70%);
	box-shadow: 0 0 20px #ffc532;
}

.vc-gh-floater-b {
	width: 12px;
	height: 12px;
	top: 22%;
	right: 6%;
	background: radial-gradient(circle, #fff 0%, #04b8d8 45%, transparent 70%);
	box-shadow: 0 0 18px #04b8d8;
	animation-delay: -2s;
}

.vc-gh-floater-c {
	width: 10px;
	height: 10px;
	bottom: 18%;
	left: 14%;
	background: radial-gradient(circle, #fff 0%, #7b3cff 45%, transparent 70%);
	box-shadow: 0 0 16px #7b3cff;
	animation-delay: -4s;
}

@keyframes vcGhFloater {
	0%, 100% { transform: translateY(0) scale(1); opacity: 0.55; }
	50% { transform: translateY(-14px) scale(1.15); opacity: 1; }
}

/* ===== TRUST ===== */
.vc-gh-trust {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem 1rem;
	width: min(980px, calc(100% - 2rem));
	max-width: 980px;
	margin: 1rem auto 0;
	padding: 1rem 1.25rem;
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(10, 16, 40, 0.82), rgba(8, 12, 30, 0.92));
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(14px);
	box-sizing: border-box;
}

.vc-gh-trust-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 0.55rem 0.35rem;
	font-size: 0.92rem;
	font-weight: 600;
	color: rgba(245, 248, 255, 0.92);
	text-align: left;
}

.vc-gh-trust-ico {
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	display: grid;
	place-items: center;
	color: var(--vc-gh-gold);
	filter: drop-shadow(0 0 10px rgba(255, 197, 50, 0.55));
}

.vc-gh-trust-ico svg {
	width: 22px;
	height: 22px;
}

/* ===== WHY ===== */
.vc-gh-why {
	position: relative;
	padding: clamp(3rem, 7vw, 5rem) clamp(1rem, 4vw, 2.5rem) 2rem;
	background:
		radial-gradient(ellipse at 50% 0%, rgba(75, 40, 160, 0.28), transparent 55%),
		linear-gradient(180deg, #070b1a 0%, #0b1230 100%);
}

.vc-gh-section-title {
	margin: 0 auto 0.65rem;
	text-align: center;
	font-size: clamp(1.7rem, 3.5vw, 2.5rem);
	font-weight: 800;
	color: #fff;
}

.vc-gh-section-title span {
	color: var(--vc-gh-gold);
}

.vc-gh-section-lead {
	margin: 0 auto 2.25rem;
	text-align: center;
	max-width: 40rem;
	color: rgba(230, 236, 255, 0.75);
}

.vc-gh-why-grid {
	display: grid;
	/* 2×2: le quattro card restano leggibili su desktop e tablet */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem;
	width: min(980px, 100%);
	margin: 0 auto;
}

.vc-gh-why-card {
	position: relative;
	padding: 1.15rem 1rem 1.35rem;
	border-radius: 22px;
	background: linear-gradient(165deg, rgba(22, 28, 58, 0.92), rgba(10, 14, 34, 0.95));
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.vc-gh-why-card:hover {
	transform: translateY(-6px);
	border-color: rgba(255, 197, 50, 0.35);
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.4), 0 0 30px rgba(123, 60, 255, 0.2);
}

.vc-gh-why-art {
	height: auto;
	aspect-ratio: 1 / 1;
	max-height: 200px;
	margin: 0 auto 0.85rem;
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: radial-gradient(circle at 50% 60%, rgba(40, 50, 90, 0.55), rgba(8, 12, 28, 0.2));
}

.vc-gh-why-art img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 200px;
	object-fit: contain;
	object-position: center;
	filter: saturate(1.08) contrast(1.04);
}

.vc-gh-why-card h3 {
	margin: 0 0 0.45rem;
	font-size: 1.1rem;
	color: #fff;
}

.vc-gh-why-card p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.45;
	color: rgba(230, 236, 255, 0.75);
}

/* ===== CTA ===== */
.vc-gh-cta-banner {
	padding: 1.5rem clamp(1rem, 4vw, 2.5rem) 3rem;
	background: linear-gradient(180deg, #0b1230 0%, #070b1a 100%);
}

.vc-gh-cta-inner {
	width: min(1100px, 100%);
	margin: 0 auto;
	padding: 1.6rem 1.75rem;
	border-radius: 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	background:
		radial-gradient(ellipse at 20% 50%, rgba(123, 60, 255, 0.45), transparent 55%),
		radial-gradient(ellipse at 85% 40%, rgba(255, 122, 26, 0.25), transparent 50%),
		linear-gradient(110deg, #2a1760, #1a0f40 55%, #2a1458);
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 0 50px rgba(123, 60, 255, 0.28), 0 24px 50px rgba(0, 0, 0, 0.35);
}

.vc-gh-cta-inner h2 {
	margin: 0 0 0.35rem;
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	color: #fff;
}

.vc-gh-cta-inner h2 span {
	color: var(--vc-gh-orange);
}

.vc-gh-cta-inner p {
	margin: 0;
	color: rgba(235, 240, 255, 0.8);
}

/* ===== VIDEO MODAL ===== */
.vc-gh-video-modal {
	border: 0;
	padding: 0;
	max-width: min(920px, 94vw);
	background: #000;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.65);
}

.vc-gh-video-modal::backdrop {
	background: rgba(3, 6, 18, 0.82);
	backdrop-filter: blur(6px);
}

.vc-gh-video {
	display: block;
	width: 100%;
	/* height:auto annulla l'altezza suggerita dagli attributi width/height del tag:
	   il box segue le proporzioni del video (16:9 dal poster prima dei metadati). */
	height: auto;
	max-height: 80dvh;
	background: #000;
}

.vc-gh-video-close-wrap {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 2;
	margin: 0;
}

.vc-gh-video-modal {
	position: relative;
}

/* Gli stili pulsante del tema (arancio, padding orizzontale) deformavano la
   croce di chiusura: qui si riporta a un cerchio scuro sopra al video. */
.vc-gh-video-modal .vc-gh-video-close,
.vc-gh-video-modal .vc-gh-video-close:hover,
.vc-gh-video-modal .vc-gh-video-close:focus,
.vc-gh-video-modal .vc-gh-video-close:focus-visible {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	height: 40px !important;
	min-width: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	cursor: pointer;
	font-size: 0 !important;
	line-height: 1 !important;
	color: #fff !important;
	background: rgba(6, 10, 26, 0.72) !important;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2) !important;
	transition: background 0.2s ease;
}

.vc-gh-video-modal .vc-gh-video-close:hover {
	background: rgba(4, 184, 216, 0.85) !important;
}

/* ===== Restyle sezioni prodotti / recensioni sotto ===== */
body.vc-gaming-home .home-hero-container,
body.vc-gaming-home .hero-video-custom-bozza,
body.vc-gaming-home .home-page-custom,
body.vc-gaming-home .vc-bozza-features {
	display: none !important;
}

body.vc-gaming-home .vc-home-products-section {
	background: #070b1a !important;
	padding: 2.5rem 1rem 1.5rem !important;
	color: #fff;
}

body.vc-gaming-home .vc-home-products-title {
	color: #fff !important;
}

body.vc-gaming-home .vc-home-products-sep {
	border-color: rgba(255, 197, 50, 0.35) !important;
	background: rgba(255, 197, 50, 0.35) !important;
}

body.vc-gaming-home .sezione-recensioni-fix {
	background: #0a1028 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
	margin-top: 0 !important;
}

body.vc-gaming-home .sezione-recensioni-fix h2 {
	color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
	.vc-gh-orb.main-circle-custom,
	.vc-gh-orb.main-circle-custom.vc-gh-orb-loading .vc-gh-orb-spin,
	.vc-gh-bloom,
	.vc-gh-floater,
	.vc-gh-why-card {
		animation: none !important;
		transition: none !important;
	}
}

/* ===== RESPONSIVE ===== */
@media (max-width: 980px) {
	.vc-gh-trust {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 1rem;
	}

	.vc-gh-cta-inner {
		flex-direction: column;
		text-align: center;
	}
}

@media (max-width: 640px) {
	.vc-gh-hero {
		padding-top: 0.75rem;
		padding-bottom: 1.25rem;
	}

	.vc-gh-trust {
		grid-template-columns: 1fr;
	}

	.vc-gh-why-grid {
		gap: 0.75rem;
	}

	.vc-gh-why-card {
		padding: 0.9rem 0.75rem 1.1rem;
		border-radius: 16px;
	}

	.vc-gh-trust-item {
		justify-content: flex-start;
	}
}

/*
 * L'artwork della sfera contiene già le etichette dei settori: l'overlay
 * HTML resterebbe duplicato (testo baked + box CSS) → nascosto.
 */
.vc-gh-labels {
	display: none !important;
}

/* Hub: unica regola di posizione sopra (50% / 50%). */

/* ============================================================
   NEXUS — lembo di terra sotto la sfera + fasci energetici
   Blocco autonomo: nessuna regola della sfera viene ridefinita.
   Tutte le misure derivano da --vc-nexus-box, che replica la
   formula di dimensione del box sfera senza modificarla.
   ============================================================ */

@property --vc-nexus-spin {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}

/* Nexus/isola disattivati: resta solo la palla sopra il supermercato. */
.vc-gh-nexus {
	display: none !important;
}

.vc-gh-nexus-island {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 clamp(8px, 2vw, 22px) clamp(14px, 3vw, 34px) rgba(0, 0, 0, 0.55));
}

.vc-gh-nexus-fx {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* --- luce ambientale che il fascio riversa sul pianoro --- */
.vc-gh-nexus-fx::after {
	content: "";
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.4);
	height: calc(var(--vc-nexus-box) * 0.075);
	transform: translate(-50%, -50%);
	background: radial-gradient(
		ellipse at center,
		rgba(190, 245, 255, 0.5) 0%,
		rgba(4, 184, 216, 0.28) 34%,
		rgba(4, 184, 216, 0.08) 62%,
		transparent 78%
	);
	mix-blend-mode: screen;
	filter: blur(6px);
	animation: vcNexusBreathe 5.2s ease-in-out infinite;
}

/* --- scia conica che spazza il portale (angolo interpolato con @property) --- */
.vc-gh-nexus-fx::before {
	content: "";
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.31);
	height: calc(var(--vc-nexus-box) * 0.31);
	transform: translate(-50%, -50%) scaleY(0.124);
	border-radius: 50%;
	background: conic-gradient(
		from var(--vc-nexus-spin),
		transparent 0deg,
		rgba(143, 233, 255, 0.4) 16deg,
		transparent 44deg,
		transparent 172deg,
		rgba(143, 233, 255, 0.26) 190deg,
		transparent 222deg,
		transparent 360deg
	);
	-webkit-mask-image: radial-gradient(circle at center, transparent 24%, #000 46%, #000 76%, transparent 92%);
	mask-image: radial-gradient(circle at center, transparent 24%, #000 46%, #000 76%, transparent 92%);
	mix-blend-mode: screen;
	animation: vcNexusSweep 7.5s linear infinite;
	will-change: --vc-nexus-spin;
}

/* --- alone di contatto --- */
.vc-gh-nexus-halo {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.24);
	height: calc(var(--vc-nexus-box) * 0.048);
	transform: translate(-50%, -50%);
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.85) 0%, rgba(155, 238, 255, 0.55) 28%, rgba(4, 184, 216, 0.2) 58%, transparent 76%);
	mix-blend-mode: screen;
	filter: blur(3px);
	animation: vcNexusPulse 2.6s ease-in-out infinite;
}

/* --- anelli sul pianoro --- */
.vc-gh-nexus-rings {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.362);
	height: calc(var(--vc-nexus-box) * 0.0491);
	transform: translate(-50%, -50%);
	overflow: visible;
	mix-blend-mode: screen;
	fill: none;
}

.vc-gh-nexus-rings-static ellipse {
	animation: vcNexusRingBreathe 4.4s ease-in-out infinite;
	animation-delay: calc(var(--vc-nexus-i) * -0.7s);
}

.vc-gh-nexus-ripple {
	fill: none;
	stroke: rgba(198, 246, 255, 0.95);
	stroke-width: 1.8;
	transform-box: view-box;
	transform-origin: 50% 50%;
	animation: vcNexusRipple 3.9s cubic-bezier(0.25, 0.6, 0.3, 1) infinite;
	animation-delay: calc(var(--vc-nexus-i) * -1.3s);
}

/* --- cono di luce volumetrico --- */
.vc-gh-nexus-cone {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.09);
	height: calc(var(--vc-nexus-beam-h) * 1.16);
	transform: translate(-50%, -100%);
	background: linear-gradient(
		to bottom,
		rgba(160, 236, 255, 0.06) 0%,
		rgba(190, 245, 255, 0.3) 55%,
		rgba(235, 253, 255, 0.55) 100%
	);
	clip-path: polygon(0% 0%, 100% 0%, 58% 100%, 42% 100%);
	mix-blend-mode: screen;
	filter: blur(5px);
	animation: vcNexusBreathe 4.1s ease-in-out infinite;
}

/* --- nucleo del fascio --- */
.vc-gh-nexus-beam {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.018);
	height: var(--vc-nexus-beam-h);
	transform: translate(-50%, -100%);
	background: linear-gradient(
		to bottom,
		rgba(190, 245, 255, 0.35) 0%,
		rgba(234, 252, 255, 0.9) 42%,
		#ffffff 100%
	);
	clip-path: polygon(16% 0%, 84% 0%, 60% 100%, 40% 100%);
	mix-blend-mode: screen;
	filter: blur(0.6px);
	overflow: hidden;
	animation: vcNexusFlicker 3.3s ease-in-out infinite;
}

/* --- impulsi che scorrono lungo il fascio verso la terra --- */
.vc-gh-nexus-flow {
	position: absolute;
	left: -20%;
	top: -200%;
	width: 140%;
	height: 300%;
	background: repeating-linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0) 14%,
		rgba(255, 255, 255, 0.75) 17%,
		rgba(255, 255, 255, 0) 21%,
		rgba(255, 255, 255, 0) 33%
	);
	animation: vcNexusFlow 1.45s linear infinite;
	will-change: transform;
}

/* --- ventaglio di raggi che risale dal punto d'impatto --- */
.vc-gh-nexus-rays {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.36);
	height: calc(var(--vc-nexus-box) * 0.2412);
	transform: translate(-50%, -98.5%);
	overflow: visible;
	mix-blend-mode: screen;
}

.vc-gh-nexus-rays-g {
	transform-box: view-box;
	transform-origin: 50% 98.5%;
	animation: vcNexusFanBreathe 5.7s ease-in-out infinite;
}

.vc-gh-nexus-ray {
	opacity: 0.35;
	animation: vcNexusRayGlow var(--vc-nexus-dur, 2.4s) ease-in-out infinite;
	animation-delay: var(--vc-nexus-delay, 0s);
}

/* --- hotspot e bagliore a croce --- */
.vc-gh-nexus-core {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.062);
	height: calc(var(--vc-nexus-box) * 0.062);
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle at center, #ffffff 0%, rgba(234, 252, 255, 0.9) 22%, rgba(4, 184, 216, 0.45) 52%, transparent 74%);
	mix-blend-mode: screen;
	animation: vcNexusPulse 2.05s ease-in-out infinite;
}

.vc-gh-nexus-flare {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.26);
	height: calc(var(--vc-nexus-box) * 0.26);
	transform: translate(-50%, -50%);
	background:
		linear-gradient(to right, transparent 0%, rgba(190, 245, 255, 0.55) 42%, #ffffff 50%, rgba(190, 245, 255, 0.55) 58%, transparent 100%) center / 100% 1.5px no-repeat,
		linear-gradient(to bottom, transparent 0%, rgba(190, 245, 255, 0.3) 40%, #ffffff 50%, rgba(190, 245, 255, 0.3) 60%, transparent 100%) center / 1.5px 62% no-repeat;
	mix-blend-mode: screen;
	animation: vcNexusFlare 3.7s ease-in-out infinite;
}

/* --- particelle --- */
.vc-gh-nexus-motes {
	position: absolute;
	left: var(--vc-nexus-cx);
	top: var(--vc-nexus-cy);
	width: calc(var(--vc-nexus-box) * 0.46);
	height: calc(var(--vc-nexus-box) * 0.23);
	transform: translate(-50%, -74%);
	mix-blend-mode: screen;
	opacity: 0.9;
}

@keyframes vcNexusSweep {
	to { --vc-nexus-spin: 360deg; }
}

@keyframes vcNexusBreathe {
	0%, 100% { opacity: 0.78; }
	50% { opacity: 1; }
}

@keyframes vcNexusPulse {
	0%, 100% { opacity: 0.72; transform: translate(-50%, -50%) scale(0.94); }
	50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

@keyframes vcNexusFlicker {
	0%, 100% { opacity: 0.85; transform: translate(-50%, -100%) scaleX(0.94); }
	38% { opacity: 1; transform: translate(-50%, -100%) scaleX(1.08); }
	64% { opacity: 0.9; transform: translate(-50%, -100%) scaleX(0.98); }
}

@keyframes vcNexusFlow {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(0, 33.333%, 0); }
}

@keyframes vcNexusRayGlow {
	0%, 100% { opacity: 0.34; }
	50% { opacity: 1; }
}

@keyframes vcNexusFanBreathe {
	0%, 100% { transform: scale(0.97, 0.94); }
	50% { transform: scale(1.03, 1.06); }
}

@keyframes vcNexusRingBreathe {
	0%, 100% { opacity: 0.45; }
	50% { opacity: 1; }
}

@keyframes vcNexusRipple {
	0% { transform: scale(0.18); opacity: 0; }
	12% { opacity: 0.9; }
	100% { transform: scale(1.06); opacity: 0; }
}

@keyframes vcNexusFlare {
	0%, 100% { opacity: 0.45; transform: translate(-50%, -50%) scale(0.92) rotate(0deg); }
	50% { opacity: 0.95; transform: translate(-50%, -50%) scale(1.08) rotate(6deg); }
}

/* Distorsione organica del cono: filtro statico, solo l'opacita anima */
@media (min-width: 900px) {
	.vc-gh-nexus-cone {
		filter: url(#vcNexusTurb) blur(5px);
	}
}

@media (max-width: 640px) {
	/* segue il box sfera allargato: proporzioni identiche al desktop */
	.vc-gh-nexus {
		--vc-nexus-box: 118vw;
		width: calc(var(--vc-nexus-box) * 0.86);
		margin-top: calc(var(--vc-nexus-box) * -0.119);
	}

	/* meno geometria da comporre sui dispositivi piu lenti */
	.vc-gh-nexus-ray:nth-child(2n) {
		display: none;
	}

	.vc-gh-nexus-cone,
	.vc-gh-nexus-halo {
		filter: blur(3px);
	}

	/* alle dimensioni ridotte la luce va rinforzata per restare leggibile */
	.vc-gh-nexus-beam {
		width: calc(var(--vc-nexus-box) * 0.026);
	}

	.vc-gh-nexus-core {
		width: calc(var(--vc-nexus-box) * 0.075);
		height: calc(var(--vc-nexus-box) * 0.075);
	}

	.vc-gh-nexus-halo {
		width: calc(var(--vc-nexus-box) * 0.3);
		height: calc(var(--vc-nexus-box) * 0.06);
	}

	.vc-gh-nexus-cone {
		width: calc(var(--vc-nexus-box) * 0.12);
	}
}

@media (prefers-reduced-motion: reduce) {
	.vc-gh-nexus-fx::before,
	.vc-gh-nexus-fx::after,
	.vc-gh-nexus-halo,
	.vc-gh-nexus-cone,
	.vc-gh-nexus-beam,
	.vc-gh-nexus-flow,
	.vc-gh-nexus-core,
	.vc-gh-nexus-flare,
	.vc-gh-nexus-ray,
	.vc-gh-nexus-rays-g,
	.vc-gh-nexus-rings-static ellipse {
		animation: none !important;
	}

	.vc-gh-nexus-ripple {
		display: none;
	}

	.vc-gh-nexus-motes {
		display: none;
	}
}

/* ============================================================
   CATALOGO CATEGORIE E RECENSIONI
   La griglia categorie ora è resa dentro lo shortcode, subito
   sotto il richiamo «Entra nel mondo Vitacomoda».
   ============================================================ */

body.vc-gaming-home .vc-gh-products {
	/* dentro la hero il fondo è già quello del sito: nessuna fascia in più */
	background: transparent !important;
	padding: 0.5rem 1rem 2rem !important;
}

body.vc-gaming-home .vc-gh-products-inner {
	max-width: 1200px;
	margin: 0 auto;
}

body.vc-gaming-home .vc-gh-products .vc-category-grid {
	margin-top: 1.75rem;
}

/* Promo brand carousel — sotto "I NOSTRI PRODOTTI", allineato alla griglia (1200px). */
body.vc-gaming-home .vc-gh-promo-carousel {
	position: relative;
	width: 100%;
	margin: 1.1rem 0 0.35rem;
	--vc-promo-radius: 18px;
	--vc-promo-fade: 0.66s; /* +20% rispetto a 0.55s */
}

body.vc-gaming-home .vc-gh-promo-viewport {
	position: relative;
	overflow: hidden;
	border-radius: var(--vc-promo-radius);
	background: #070b14;
	box-shadow: 0 10px 36px rgba(0, 0, 0, 0.35);
	/* Banner .webp ~2:1 — evita crop laterale del ratio troppo panoramico */
	aspect-ratio: 2 / 1;
}

/* Sweep neon al cambio slide (non altera layout delle slide). */
body.vc-gaming-home .vc-gh-promo-viewport::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: -30%;
	width: 45%;
	z-index: 4;
	pointer-events: none;
	opacity: 0;
	background: linear-gradient(
		105deg,
		transparent 0%,
		rgba(4, 184, 216, 0.2) 40%,
		rgba(255, 255, 255, 0.45) 50%,
		rgba(255, 197, 50, 0.28) 60%,
		transparent 100%
	);
	transform: translateX(0) skewX(-16deg);
}

body.vc-gaming-home .vc-gh-promo-carousel.is-wiping .vc-gh-promo-viewport::after {
	animation: vc-gh-promo-sweep var(--vc-promo-fade) ease-out 1;
}

@keyframes vc-gh-promo-sweep {
	0% {
		opacity: 0;
		transform: translateX(-20%) skewX(-16deg);
	}
	25% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: translateX(280%) skewX(-16deg);
	}
}

body.vc-gaming-home .vc-gh-promo-track {
	position: relative;
	width: 100%;
	height: 100%;
}

body.vc-gaming-home .vc-gh-promo-slide {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: block;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--vc-promo-fade) ease, visibility var(--vc-promo-fade) ease;
	z-index: 0;
	text-decoration: none;
	color: inherit;
	cursor: default;
}

body.vc-gaming-home .vc-gh-promo-slide.is-link {
	cursor: pointer;
}

body.vc-gaming-home .vc-gh-promo-slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

body.vc-gaming-home .vc-gh-promo-img {
	display: block;
	width: 100%;
	height: 100%;
	/* Co-brand ~2:1: cover evita bande laterali su viewport 2:1. */
	object-fit: cover;
	object-position: center center;
	border: 0;
}

/* Frecce desktop (nascoste su mobile: lì resta lo swipe) */
body.vc-gaming-home .vc-gh-promo-nav {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	border: 1px solid rgba(255, 197, 50, 0.55);
	background: rgba(8, 14, 32, 0.72);
	color: #ffc532;
	box-shadow: 0 0 14px rgba(255, 197, 50, 0.22);
	cursor: pointer;
	padding: 0;
	backdrop-filter: blur(4px);
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

body.vc-gaming-home .vc-gh-promo-nav:hover,
body.vc-gaming-home .vc-gh-promo-nav:focus-visible {
	background: rgba(255, 197, 50, 0.16);
	border-color: #ffc532;
	color: #fff;
	outline: none;
}

body.vc-gaming-home .vc-gh-promo-nav--prev {
	left: 10px;
}

body.vc-gaming-home .vc-gh-promo-nav--next {
	right: 10px;
}

@media (min-width: 769px) {
	body.vc-gaming-home .vc-gh-promo-carousel {
		position: relative;
	}

	body.vc-gaming-home .vc-gh-promo-nav {
		display: inline-flex;
	}
}

body.vc-gaming-home .vc-gh-promo-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin-top: 0.65rem;
}

body.vc-gaming-home .vc-gh-promo-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.28);
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s ease, width 0.25s ease;
}

body.vc-gaming-home .vc-gh-promo-dot.is-active {
	width: 22px;
	background: #ffc532;
	transform: none;
	box-shadow: 0 0 8px rgba(255, 197, 50, 0.4);
}

body.vc-gaming-home .vc-gh-promo-dot:focus-visible {
	outline: 2px solid #ffc532;
	outline-offset: 3px;
}

@media (max-width: 768px) {
	/* Full-bleed + scroll orizzontale dito (desktop resta fade carousel). */
	body.vc-gaming-home .vc-gh-promo-carousel {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		margin-top: 0.85rem;
		margin-bottom: 0.15rem;
		--vc-promo-radius: 0;
	}

	body.vc-gaming-home .vc-gh-promo-viewport {
		border-radius: 0;
		aspect-ratio: auto;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		scroll-padding: 0;
		scrollbar-width: none;
		touch-action: pan-x;
	}

	body.vc-gaming-home .vc-gh-promo-viewport::-webkit-scrollbar {
		display: none;
	}

	body.vc-gaming-home .vc-gh-promo-viewport::after {
		display: none !important;
		content: none !important;
		animation: none !important;
	}

	body.vc-gaming-home .vc-gh-promo-track {
		display: flex;
		width: max-content;
		height: auto;
		min-height: 0;
	}

	/* Una slide = 100vw: uno swipe → un banner (no salto 1→3). */
	body.vc-gaming-home .vc-gh-promo-slide {
		position: relative;
		flex: 0 0 100vw;
		width: 100vw;
		max-width: 100vw;
		box-sizing: border-box;
		height: auto;
		/* Co-brand .webp ~2:1 — full-bleed, uno swipe = un banner. */
		aspect-ratio: 2 / 1;
		padding: 0;
		background: #070b14;
		opacity: 1 !important;
		visibility: visible !important;
		transition: none !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		z-index: 1;
	}

	body.vc-gaming-home .vc-gh-promo-img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: center center !important;
	}

	/* fill_mobile: già full-bleed (padding 0 sopra); resta per compatibilità markup. */
	body.vc-gaming-home .vc-gh-promo-slide.is-fill-mobile {
		padding: 0;
	}

	body.vc-gaming-home .vc-gh-promo-slide.is-fill-mobile .vc-gh-promo-img {
		object-fit: cover !important;
		object-position: center center !important;
	}

	body.vc-gaming-home .vc-gh-promo-dots {
		margin-top: 0.55rem;
	}
}

/* Due colonne su mobile: cartoline più basse e titoli proporzionati. */
@media (max-width: 768px) {
	body.vc-gaming-home .vc-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}

	body.vc-gaming-home .vc-category-card {
		height: 148px !important;
		border-radius: 16px;
	}

	body.vc-gaming-home .vc-category-info {
		bottom: 10px;
		left: 10px;
		right: 10px;
	}

	body.vc-gaming-home .vc-category-info h3 {
		font-size: 13px;
		line-height: 1.15;
		text-shadow: 0 2px 8px rgba(0, 0, 0, 0.65);
	}

	body.vc-gaming-home .vc-gh-products {
		padding: 0.25rem 0.75rem 1.5rem !important;
	}

	body.vc-gaming-home .vc-home-products-title {
		font-size: 24px !important;
	}
}

/* Recensioni: altezza fissa uguale per tutte, testo troncato all'occorrenza. */
body.vc-gaming-home .review-card {
	height: 236px;
	min-height: 0;
	overflow: hidden;
}

body.vc-gaming-home .review-text {
	flex: 1 1 auto;
	overflow: hidden;
}

body.vc-gaming-home .review-text p {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
}

body.vc-gaming-home .review-product {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 768px) {
	body.vc-gaming-home .home-random-reviews-grid {
		gap: 12px;
	}

	body.vc-gaming-home .review-card {
		width: calc(50% - 6px) !important;
		height: 210px;
		padding: 14px;
	}

	body.vc-gaming-home .review-author {
		font-size: 14px;
	}

	body.vc-gaming-home .review-stars {
		font-size: 12px;
		margin-bottom: 6px;
	}

	body.vc-gaming-home .review-text p {
		font-size: 12.5px;
		line-height: 1.35;
		-webkit-line-clamp: 6;
	}

	body.vc-gaming-home .review-product {
		font-size: 11px;
		margin-top: 6px;
	}
}

