/*! VegasX — Single slot (bonuses-style hero + spotlight) */

.vx-slot-single-page .vx-ed-hero {
	margin-bottom: clamp(24px, 3.5vw, 36px);
	max-width: 780px;
}

.vx-slot-single-page .vx-ed-hero__desc {
	max-width: 620px;
	margin-top: clamp(14px, 2vw, 18px);
}

.vx-slot-single-page .vx-ed-hero__eyebrow {
	margin-bottom: clamp(12px, 1.8vw, 16px);
}

.vx-slot-single__toolbar {
	margin-bottom: clamp(24px, 3.5vw, 32px);
}

/* —— Game spotlight card —— */
.vx-slot-spotlight {
	display: grid;
	grid-template-columns: clamp(140px, 22vw, 220px) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 32px);
	align-items: start;
	margin-bottom: clamp(28px, 4vw, 40px);
	padding: clamp(20px, 3vw, 28px);
	border-radius: calc(var(--vx-radius-lg) + 2px);
	border: 1px solid rgba(255, 255, 255, .1);
	background:
		linear-gradient(165deg, rgba(255, 255, 255, .05) 0%, transparent 55%),
		rgba(10, 13, 30, .88);
	box-shadow: 0 20px 48px rgba(0, 0, 0, .32);
}

.vx-slot-spotlight__art {
	position: relative;
	width: 100%;
}

.vx-slot-spotlight__frame {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 18px;
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
}

.vx-slot-spotlight__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vx-slot-spotlight__fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 12px;
	font-family: var(--vx-font-head);
	font-size: .9rem;
	font-weight: 800;
	text-align: center;
	color: #ff9fd0;
}

.vx-slot-spotlight__rtp {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 9px;
	border-radius: 999px;
	font-family: var(--vx-font-head);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .04em;
	color: #041018;
	background: linear-gradient(120deg, #8ef5c8, #00e5ff);
}

.vx-slot-spotlight__studio {
	margin: 0 0 12px;
	font-size: .92rem;
	color: rgba(233, 236, 255, .55);
}

.vx-slot-spotlight__studio a {
	color: var(--vx-c-secondary);
	text-decoration: none;
	font-weight: 600;
}

.vx-slot-spotlight__studio a:hover {
	color: #9ef5ff;
}

.vx-slot-spotlight__rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin-bottom: clamp(16px, 2.5vw, 22px);
	color: var(--vx-c-gold);
	font-family: var(--vx-font-head);
}

.vx-slot-spotlight__rating strong {
	font-size: 1.2rem;
	font-weight: 900;
}

.vx-slot-spotlight__rating span {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(233, 236, 255, .45);
}

.vx-slot-spotlight__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
	gap: 14px 18px;
	margin: 0 0 clamp(18px, 2.5vw, 24px);
	padding: 0;
}

.vx-slot-spotlight__stat dt {
	margin: 0;
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(233, 236, 255, .42);
}

.vx-slot-spotlight__stat dd {
	margin: 6px 0 0;
	font-family: var(--vx-font-head);
	font-size: clamp(1rem, 2vw, 1.12rem);
	font-weight: 800;
	line-height: 1.1;
	color: #fff;
}

.vx-slot-spotlight__stat--rtp dd {
	color: var(--vx-c-secondary);
}

.vx-slot-spotlight__stat--vol-low dd {
	color: var(--vx-c-secondary);
}

.vx-slot-spotlight__stat--vol-medium dd {
	color: #ffd88a;
}

.vx-slot-spotlight__stat--vol-high dd {
	color: #ff9fd0;
}

.vx-slot-spotlight__stat--max dd {
	color: #ff9fd0;
}

.vx-slot-spotlight__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* —— Content panels —— */
.vx-main--slot {
	display: grid;
	gap: clamp(20px, 3vw, 28px);
	min-width: 0;
	padding-bottom: clamp(40px, 6vw, 72px);
}

.vx-slot-panel {
	padding: clamp(22px, 3vw, 30px);
	border-radius: calc(var(--vx-radius-lg) + 2px);
	border: 1px solid rgba(255, 255, 255, .1);
	background:
		linear-gradient(165deg, rgba(255, 255, 255, .05) 0%, transparent 55%),
		rgba(10, 13, 30, .88);
	box-shadow: 0 20px 48px rgba(0, 0, 0, .35);
}

.vx-slot-panel__head {
	margin-bottom: clamp(18px, 2.5vw, 24px);
}

.vx-slot-panel__head--row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 20px;
}

.vx-slot-panel__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-family: var(--vx-font-head);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #ff9fd0;
}

.vx-slot-panel__pulse {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--vx-c-primary);
	box-shadow: 0 0 0 0 rgba(255, 0, 128, .55);
	animation: vx-slot-panel-pulse 2s ease-out infinite;
}

@keyframes vx-slot-panel-pulse {
	0% { box-shadow: 0 0 0 0 rgba(255, 0, 128, .45); }
	70% { box-shadow: 0 0 0 8px rgba(255, 0, 128, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 0, 128, 0); }
}

.vx-slot-panel__title {
	margin: 0;
	font-family: var(--vx-font-head);
	font-size: clamp(1.35rem, 2.6vw, 1.85rem);
	font-weight: 800;
	line-height: 1.12;
	color: #fff;
}

.vx-slot-panel__title-link {
	color: var(--vx-c-secondary);
	text-decoration: none;
	transition: color var(--vx-transition);
}

.vx-slot-panel__title-link:hover {
	color: #9ef5ff;
}

.vx-slot-panel__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--vx-font-head);
	font-size: .82rem;
	font-weight: 800;
	color: var(--vx-c-secondary);
	text-decoration: none;
	transition: gap var(--vx-transition), color var(--vx-transition);
}

.vx-slot-panel__link:hover {
	gap: 10px;
	color: #9ef5ff;
}

.vx-slot-panel__demo {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 16px;
	background: #000;
	border: 1px solid rgba(255, 255, 255, .08);
}

.vx-slot-panel__demo iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.vx-slot-panel__prose {
	max-width: 72ch;
}

.vx-slot-panel__badge-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	margin-bottom: 10px;
}

.vx-slot-panel__badge-row .vx-slot-panel__badge {
	margin-bottom: 0;
}

.vx-slot-panel__head-actions {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.vx-grid--related {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* —— Related slots carousel (4+ games) —— */
.vx-slot-carousel {
	container-type: inline-size;
	--vx-carousel-gap: clamp(16px, 2vw, 22px);
	--vx-carousel-cols: 3;
	--vx-slide-size: calc((100cqw - (var(--vx-carousel-cols) - 1) * var(--vx-carousel-gap)) / var(--vx-carousel-cols));
}

.vx-slot-carousel__nav {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.vx-slot-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 999px;
	border: 1px solid rgba(255, 159, 208, .45);
	background: rgba(255, 255, 255, .04);
	color: #fff;
	cursor: pointer;
	transition:
		border-color var(--vx-transition),
		background var(--vx-transition),
		color var(--vx-transition),
		opacity var(--vx-transition);
}

.vx-slot-carousel__btn:hover:not(:disabled) {
	border-color: var(--vx-c-secondary);
	background: rgba(0, 229, 255, .1);
	color: var(--vx-c-secondary);
}

.vx-slot-carousel__btn:disabled {
	opacity: .35;
	cursor: default;
}

.vx-slot-carousel__viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.vx-slot-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.vx-slot-carousel__track {
	display: flex;
	align-items: stretch;
	gap: var(--vx-carousel-gap);
	width: max-content;
	min-width: 100%;
}

.vx-slot-carousel__track .vx-slot-card {
	flex: 0 0 var(--vx-slide-size);
	width: var(--vx-slide-size);
	max-width: var(--vx-slide-size);
	height: auto;
	scroll-snap-align: start;
	min-width: 0;
}

@media (max-width: 980px) {
	.vx-grid--related {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vx-slot-carousel {
		--vx-carousel-cols: 2;
	}
}

@media (max-width: 720px) {
	.vx-slot-spotlight {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.vx-slot-spotlight__art {
		max-width: 200px;
	}

	.vx-slot-spotlight__rating {
		justify-content: center;
	}

	.vx-slot-spotlight__stats {
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 16px;
		text-align: left;
	}

	.vx-slot-spotlight__stat:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.vx-grid--related {
		grid-template-columns: 1fr;
	}

	.vx-slot-carousel {
		--vx-carousel-cols: 1;
	}
}

/* —— Compact bottom — no phantom gap above footer —— */
body.single-vegasx_slot .vx-site__content {
	min-height: 0;
}

body.single-vegasx_slot .vx-slot-single-page .vx-layout.vx-layout--bonuses {
	padding-bottom: clamp(20px, 3vw, 32px);
}

body.single-vegasx_slot .vx-main--slot {
	padding-bottom: 0;
}

body.single-vegasx_slot .vx-footer {
	margin-top: clamp(20px, 3vw, 32px);
}

@media (min-width: 768px) and (max-width: 1024px) {
	body.single-vegasx_slot .vx-slot-single-page .vx-layout.vx-layout--bonuses {
		padding-bottom: 20px;
	}

	body.single-vegasx_slot .vx-footer {
		margin-top: 20px;
	}
}

@media (max-width: 640px) {
	.vx-slot-single-page .vx-ed-hero__title {
		font-size: clamp(1.45rem, 6.5vw, 1.85rem);
	}

	.vx-slot-single-page .vx-ed-hero__desc {
		font-size: .9rem;
	}
}
