/* ==========================================================================
   NV Casino — brand layer
   Navy + hot pink. Stroke icons via #i-* sprite (see functions.php).
   ========================================================================== */

:root {
	--nv-glow-pink: 0 0 0 1px rgba(255, 46, 143, .3), 0 12px 34px -12px rgba(224, 28, 120, .65);
	--nv-glow-violet: 0 12px 40px -14px rgba(108, 76, 255, .6);
	--nv-radius: 18px;
	--nv-radius-sm: 12px;
	--nv-ring: 1px solid var(--wp--preset--color--border);
}

body {
	background:
		radial-gradient(55% 40% at 85% -5%, rgba(178, 60, 255, .16), transparent 60%),
		radial-gradient(45% 35% at 0% 0%, rgba(255, 46, 143, .12), transparent 60%),
		var(--wp--preset--color--base);
	background-attachment: fixed;
}

/* Our custom blocks always size with border-box */
.nv-card, .nv-card *,
.nv-btn, .nv-minicard, .nv-minicard *,
.nv-quicknav a, .nv-winner, .nv-winner *,
.nv-game, .nv-game *, .nv-pay span, .nv-eyebrow-pill {
	box-sizing: border-box;
}

/* ---- Icons ---------------------------------------------------------------- */
.nv-i {
	width: 1em; height: 1em;
	flex: 0 0 auto;
	vertical-align: -0.125em;
	stroke: currentColor;
	fill: none;
}

/* ---- Logo ----------------------------------------------------------------- */
.nv-logo { display: inline-flex; align-items: center; text-decoration: none; }
.nv-logo img { height: 34px; width: auto; display: block; }
.nv-logo--sm img { height: 30px; }

/* ---- Header --------------------------------------------------------------- */
.nv-header {
	position: sticky; top: 0; z-index: 100;
	border-bottom: var(--nv-ring);
	backdrop-filter: blur(10px);
	background-color: rgba(23, 20, 58, .88) !important;
}
.nv-nav a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.nv-nav a:hover { color: var(--wp--preset--color--primary); }
.nv-header-cta .wp-block-button__link { padding: .5rem 1.15rem; border-radius: 10px; }
.nv-login .wp-block-button__link {
	background: transparent; color: #fff;
	border: 1.5px solid var(--wp--preset--color--accent); box-shadow: none;
}
.nv-login .wp-block-button__link:hover { background: rgba(108, 76, 255, .22); color: #fff; }

/* ---- Buttons -------------------------------------------------------------- */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--contrast);
	border: 1.5px solid var(--wp--preset--color--border); box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	background: rgba(255, 46, 143, .07);
}
.wp-block-button.nv-cta .wp-block-button__link { box-shadow: var(--nv-glow-pink); }

/* Plain-HTML buttons (used inside cards) */
.nv-btn {
	box-sizing: border-box;
	display: inline-flex; align-items: center; justify-content: center;
	gap: .5rem;
	padding: .78rem 1.3rem;
	border-radius: 12px;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700; font-size: .9375rem;
	text-decoration: none;
	transition: transform .15s ease, background .15s ease, border-color .15s ease;
	width: 100%;
}
.nv-btn:hover { text-decoration: none; transform: translateY(-1px); }
.nv-btn--primary { background: var(--wp--preset--color--primary); color: #fff; box-shadow: var(--nv-glow-pink); }
.nv-btn--primary:hover { background: var(--wp--preset--color--primary-strong); color: #fff; }
.nv-btn--ghost { background: transparent; color: #fff; border: 1.5px solid var(--wp--preset--color--border); }
.nv-btn--ghost:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }

/* ---- Section rhythm ------------------------------------------------------- */
.nv-section { padding-block: clamp(1.75rem, 4vw, 3rem); }
.nv-eyebrow {
	text-transform: uppercase; letter-spacing: .16em;
	font-size: .78rem; font-weight: 700;
	color: var(--wp--preset--color--primary);
	margin-bottom: .35rem;
}
.nv-center { text-align: center; }

.nv-sechead {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; flex-wrap: wrap;
	margin-bottom: clamp(1.1rem, 2.5vw, 1.75rem);
}
.nv-sechead h2 { margin: 0; font-size: var(--wp--preset--font-size--xx-large); font-weight: 800; }
.nv-link {
	display: inline-flex; align-items: center; gap: .4rem;
	font-weight: 600; font-size: .92rem; text-decoration: none;
	color: var(--wp--preset--color--primary);
}
.nv-link:hover { text-decoration: none; color: #fff; }
.nv-link .nv-i { transition: transform .15s ease; }
.nv-link:hover .nv-i { transform: translateX(3px); }

/* ---- Hero ----------------------------------------------------------------- */
.nv-hero {
	position: relative; overflow: hidden;
	background-color: #0e0c26;
}
.nv-hero::before {
	content: ""; position: absolute; inset: 0;
	/* Source art is 1440x476 — cap it so wide screens don't upscale (and blur) it.
	   Beyond the cap the base colour + scrim take over seamlessly. */
	max-width: 1600px;
	left: 50%; margin-left: -800px; right: auto; width: 100%;
	background-image: url(hero.webp);
	background-size: cover;
	background-position: center top;
	z-index: 0;
	animation: nv-float 15s ease-in-out infinite;
}
@media (max-width: 1600px) {
	.nv-hero::before { left: 0; margin-left: 0; max-width: none; }
}
@keyframes nv-float {
	0%, 100% { transform: translate3d(0, 0, 0); }
	50%      { transform: translate3d(0, -0.9%, 0); }
}
/* Blend the capped art into the page on ultra-wide screens */
.nv-hero::after {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(48% 78% at 50% 52%, rgba(11, 9, 30, .93) 0%, rgba(11, 9, 30, .72) 45%, rgba(11, 9, 30, .18) 100%),
		linear-gradient(90deg, #0e0c26 0%, rgba(14, 12, 38, 0) 12%, rgba(14, 12, 38, 0) 88%, #0e0c26 100%),
		linear-gradient(180deg, rgba(11, 9, 30, .55) 0%, rgba(11, 9, 30, 0) 22%, rgba(11, 9, 30, 0) 72%, rgba(14, 12, 38, .96) 100%);
	z-index: 0;
}
.nv-hero > * { position: relative; z-index: 1; }

/* H1 = brand line, kept small and refined (the number is the visual hero) */
.nv-hero h1 {
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .78);
	margin: 0 0 .35rem;
}
.nv-hero-kicker {
	font-size: clamp(.95rem, .9rem + .3vw, 1.15rem);
	color: rgba(255, 255, 255, .82);
	font-weight: 500;
	margin: 0 0 .3rem;
}
.nv-hero-num {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; color: #fff;
	line-height: 1.02;
	font-size: clamp(2.1rem, 1.3rem + 4vw, 4rem);
	letter-spacing: -0.03em;
	margin: 0;
	text-shadow: 0 4px 30px rgba(0, 0, 0, .6);
}
.nv-hero-num span {
	display: block;
	font-size: .46em;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: rgba(255, 255, 255, .92);
	margin-top: .15em;
}

/* Sleek eyebrow pill — gradient hairline + live dot + shimmer */
.nv-eyebrow-pill {
	position: relative;
	display: flex; align-items: center; gap: .55rem;
	width: fit-content; margin: 0 auto 1rem;
	padding: .4rem .95rem .4rem .7rem;
	border-radius: 999px;
	background: rgba(12, 10, 32, .62);
	backdrop-filter: blur(12px);
	overflow: hidden;
	font-size: .76rem; line-height: 1;
	box-shadow: 0 8px 28px -14px rgba(0, 0, 0, .9);
}
/* gradient hairline border */
.nv-eyebrow-pill::before {
	content: ""; position: absolute; inset: 0;
	border-radius: inherit; padding: 1px;
	background: linear-gradient(100deg, rgba(255,46,143,.9), rgba(178,60,255,.55) 45%, rgba(255,255,255,.14) 75%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	pointer-events: none;
}
/* shine sweep */
.nv-eyebrow-pill::after {
	content: ""; position: absolute; top: 0; bottom: 0; width: 38%;
	background: linear-gradient(100deg, transparent, rgba(255,255,255,.16), transparent);
	transform: skewX(-18deg);
	animation: nv-sheen 4.5s ease-in-out infinite;
	pointer-events: none;
}
@keyframes nv-sheen { 0%,72% { left: -45%; } 100% { left: 115%; } }

.nv-eyebrow-dot {
	width: .4rem; height: .4rem; border-radius: 50%; flex: 0 0 auto;
	background: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 0 rgba(255, 46, 143, .7);
	animation: nv-dot 2.2s infinite;
}
@keyframes nv-dot {
	0% { box-shadow: 0 0 0 0 rgba(255,46,143,.65); }
	70% { box-shadow: 0 0 0 7px rgba(255,46,143,0); }
	100% { box-shadow: 0 0 0 0 rgba(255,46,143,0); }
}
.nv-eyebrow-pill b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: #fff; font-size: .7rem;
}
.nv-eyebrow-pill em {
	font-style: normal; color: rgba(255, 255, 255, .62);
	letter-spacing: .01em;
}
@media (max-width: 460px) { .nv-eyebrow-pill em { display: none; } }

/* ---- Hero mini bonus cards ------------------------------------------------ */
.nv-minicards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .6rem;
	max-width: 720px;
	margin: 1.35rem auto 0;
}
.nv-minicard {
	display: flex; align-items: center; gap: .6rem;
	background: rgba(16, 13, 42, .74);
	border: 1px solid rgba(255, 255, 255, .1);
	backdrop-filter: blur(8px);
	border-radius: 14px;
	padding: .55rem .8rem;
	text-align: left; text-decoration: none;
	transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.nv-minicard:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 46, 143, .5);
	background: rgba(26, 20, 58, .88);
	text-decoration: none;
}
img.nv-minicard-ic {
	width: 2.3rem; height: 2.3rem; flex: 0 0 auto;
	object-fit: contain;
	filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .5));
}
.nv-minicard-tx { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.nv-minicard-tx b { font-family: var(--wp--preset--font-family--heading); font-size: .88rem; color: #fff; }
.nv-minicard-tx i { font-style: normal; font-size: .74rem; color: var(--wp--preset--color--muted); }
@media (max-width: 620px) {
	.nv-minicards { grid-template-columns: 1fr; max-width: 340px; }
}

/* ---- Quick-nav ------------------------------------------------------------ */
.nv-quicknav {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .6rem;
	max-width: 760px; margin-inline: auto;
}
.nv-quicknav a {
	display: flex; flex-direction: column; align-items: center; gap: .45rem;
	padding: .9rem .5rem;
	border-radius: 14px;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	color: #fff; text-decoration: none;
	font-size: .82rem; font-weight: 600;
	transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.nv-quicknav a img { height: 2.1rem; width: auto; object-fit: contain; }
.nv-quicknav a:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 46, 143, .5);
	background: var(--wp--preset--color--surface-2);
	text-decoration: none;
}
@media (max-width: 560px) {
	.nv-quicknav { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Cards (equal height everywhere) ------------------------------------- */
.nv-card {
	box-sizing: border-box;
	display: flex; flex-direction: column;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: var(--nv-radius);
	padding: clamp(1.2rem, 1.8vw, 1.6rem);
	min-width: 0;
}
.nv-card.is-featured { border-color: rgba(255, 46, 143, .5); box-shadow: var(--nv-glow-pink); }
.nv-card h3 { margin: 0 0 .4rem; font-size: 1.05rem; font-weight: 700; }
.nv-card p { margin: 0; }
.nv-card-tx { color: var(--wp--preset--color--muted); font-size: .92rem; margin-bottom: 1rem !important; }
/* CTA always pinned to the bottom → buttons line up across cards */
.nv-card .nv-btn { margin-top: auto; }

.nv-bonus-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	margin-top: clamp(1.25rem, 3vw, 2rem);
}
@media (max-width: 900px) { .nv-bonus-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }

.nv-amount {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; color: var(--wp--preset--color--primary);
	line-height: 1.08;
	font-size: clamp(1.45rem, 1.15rem + 1vw, 1.85rem);
	margin: .55rem 0 .6rem !important;
}
.nv-facts { list-style: none; margin: 0 0 1.15rem; padding: 0; display: grid; gap: .45rem; }
.nv-facts li {
	display: flex; align-items: center; gap: .5rem;
	font-size: .84rem; color: var(--wp--preset--color--muted);
}
.nv-facts .nv-i { font-size: 1rem; color: var(--wp--preset--color--primary); }

/* Bonus card header image */
.nv-card-img {
	width: calc(100% + 2 * clamp(1.2rem, 1.8vw, 1.6rem));
	margin: calc(-1 * clamp(1.2rem, 1.8vw, 1.6rem)) calc(-1 * clamp(1.2rem, 1.8vw, 1.6rem)) 1rem;
	height: auto; display: block;
	border-radius: var(--nv-radius) var(--nv-radius) 0 0;
	object-fit: cover; aspect-ratio: 614 / 392;
}

/* ---- Badges --------------------------------------------------------------- */
.nv-badge {
	display: inline-block; width: fit-content;
	font-size: .72rem; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase;
	padding: .3rem .7rem; border-radius: 8px;
	background: rgba(255, 46, 143, .14);
	color: #ff8ac0;
	border: 1px solid rgba(255, 46, 143, .35);
}
.nv-badge.is-gold { background: rgba(178, 60, 255, .16); color: #d7b6ff; border-color: rgba(178, 60, 255, .4); }

.nv-18 {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.7rem; height: 1.7rem; border-radius: 50%;
	border: 2px solid var(--wp--preset--color--muted);
	color: var(--wp--preset--color--muted);
	font-weight: 800; font-size: .72rem;
	font-family: var(--wp--preset--font-family--heading);
	vertical-align: middle;
}

/* ---- USP grid ------------------------------------------------------------- */
.nv-usp-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	margin-top: clamp(1.25rem, 3vw, 2rem);
}
@media (max-width: 900px) { .nv-usp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .nv-usp-grid { grid-template-columns: 1fr; } }
.nv-usp p { color: var(--wp--preset--color--muted); font-size: .9rem; }
.nv-ic-tile {
	display: grid; place-items: center;
	width: 2.6rem; height: 2.6rem;
	border-radius: 13px;
	margin-bottom: .85rem;
	font-size: 1.35rem;
	color: #fff;
	background: linear-gradient(140deg, rgba(255, 46, 143, .9), rgba(178, 60, 255, .85));
	box-shadow: 0 10px 24px -14px rgba(255, 46, 143, .9);
}

/* ---- Steps ---------------------------------------------------------------- */
.nv-steps {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	margin-top: clamp(1.25rem, 3vw, 2rem);
}
@media (max-width: 800px) { .nv-steps { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }
.nv-step p { color: var(--wp--preset--color--muted); font-size: .9rem; }
.nv-step-num {
	display: grid; place-items: center;
	width: 2.4rem; height: 2.4rem; border-radius: 50%;
	margin-bottom: .8rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 1.05rem;
	color: var(--wp--preset--color--primary);
	background: rgba(255, 46, 143, .12);
	border: 1px solid rgba(255, 46, 143, .35);
}

/* ---- Game grid ------------------------------------------------------------ */
.nv-grid {
	display: grid; gap: .75rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}
@media (max-width: 1100px) { .nv-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 780px)  { .nv-grid { grid-template-columns: repeat(3, 1fr); gap: .6rem; } }
@media (max-width: 520px)  { .nv-grid { grid-template-columns: repeat(2, 1fr); gap: .55rem; } }

.nv-game {
	position: relative;
	display: flex; align-items: flex-end;
	aspect-ratio: 3 / 4;
	border-radius: var(--nv-radius-sm);
	overflow: hidden;
	border: var(--nv-ring);
	background-size: cover; background-position: center;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}
.nv-game:hover { transform: translateY(-4px); box-shadow: var(--nv-glow-violet); text-decoration: none; }
.nv-game-meta {
	width: 100%;
	display: flex; flex-direction: column; gap: .1rem;
	padding: .85rem .6rem .5rem;
	background: linear-gradient(0deg, rgba(8, 6, 20, .95) 12%, rgba(8, 6, 20, 0) 100%);
}
.nv-game-meta b { font-size: .74rem; font-weight: 700; color: #fff; line-height: 1.2; }
.nv-game-meta i { font-style: normal; font-size: .64rem; color: rgba(255, 255, 255, .62); }

/* Real game art (webp portraits) */
.nv-g1 { background-image: url(game-sweet-bonanza.webp); }
.nv-g2 { background-image: url(game-gates-of-olympus.webp); }
.nv-g3 { background-image: url(game-book-of-fallen.webp); }
.nv-g4 { background-image: url(game-big-bass-splash.webp); }
.nv-g5 { background-image: url(game-joker-stoker.webp); }
.nv-g6 { background-image: url(game-hell-hot-100.webp); }
.nv-g7 { background-image: url(game-live-roulette.webp); }
.nv-g8 { background-image: url(game-blackjack-vip.webp); }
.nv-g9  { background-image: url(game-coin-win-hold.webp); }
.nv-g10 { background-image: url(game-coin-win-2.webp); }
.nv-g11 { background-image: url(game-blazing-crown.webp); }
.nv-g12 { background-image: url(game-sizzling-hot.webp); }
.nv-g13 { background-image: url(game-baccarat.webp); }
.nv-g14 { background-image: url(game-caribbean-stud.webp); }
.nv-g15 { background-image: url(game-auto-roulette.webp); }
.nv-g16 { background-image: url(game-speed-roulette.webp); }

/* ---- Live winners feed ---------------------------------------------------- */
.nv-live-dot {
	display: inline-block; width: .55rem; height: .55rem; border-radius: 50%;
	background: var(--wp--preset--color--primary);
	margin-right: .55rem; vertical-align: middle;
	animation: nv-pulse 1.8s infinite;
}
@keyframes nv-pulse {
	0% { box-shadow: 0 0 0 0 rgba(255, 46, 143, .6); }
	70% { box-shadow: 0 0 0 9px rgba(255, 46, 143, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 46, 143, 0); }
}
.nv-live-tag {
	font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	border: 1px solid rgba(255, 46, 143, .45);
	background: rgba(255, 46, 143, .12);
	padding: .28rem .6rem; border-radius: 7px;
}

.nv-feed {
	position: relative;
	height: 336px;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 88%, transparent 100%);
	mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 88%, transparent 100%);
}
.nv-feed-track {
	display: flex; flex-direction: column; gap: .55rem;
	animation: nv-scroll 34s linear infinite;
}
.nv-feed:hover .nv-feed-track { animation-play-state: paused; }
@keyframes nv-scroll { to { transform: translateY(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.nv-feed { height: auto; -webkit-mask-image: none; mask-image: none; }
	.nv-feed-track { animation: none; }
	.nv-winner[aria-hidden="true"] { display: none; }
}

.nv-winner {
	display: flex; align-items: center; gap: .8rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: 14px;
	padding: .65rem .85rem;
	transition: border-color .15s ease, transform .15s ease;
}
.nv-winner:hover { border-color: rgba(255, 46, 143, .45); transform: translateX(3px); }
.nv-av {
	width: 2.4rem; height: 2.4rem; flex: 0 0 auto;
	border-radius: 10px;
	background-size: cover; background-position: center;
	border: 1px solid rgba(255, 255, 255, .1);
}
.nv-w-tx { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; flex: 1 1 auto; }
.nv-w-tx b { font-size: .88rem; font-weight: 600; color: #fff; }
.nv-w-tx i { font-style: normal; font-size: .76rem; color: var(--wp--preset--color--muted); }
.nv-w-amt {
	display: flex; flex-direction: column; align-items: flex-end;
	line-height: 1.3; flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: .95rem; color: var(--wp--preset--color--win);
}
.nv-w-amt i { font-style: normal; font-weight: 500; font-size: .7rem; color: var(--wp--preset--color--muted); font-family: var(--wp--preset--font-family--body); }
.nv-feed-note { text-align: center; margin-top: .9rem; }

/* ---- App CTA -------------------------------------------------------------- */
.nv-appcta {
	flex-direction: row; align-items: center; gap: clamp(1rem, 3vw, 2.5rem);
	padding: clamp(1.4rem, 3vw, 2.4rem);
}
.nv-appcta-tx { flex: 1 1 auto; }
.nv-appcta-tx h2 { margin: 0 0 .55rem; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); }
.nv-appcta .nv-btn { width: fit-content; margin-top: 0; }
.nv-appcta-img {
	flex: 0 0 auto;
	width: clamp(9rem, 20vw, 15rem); height: auto;
	margin-block: -1.5rem;
	filter: drop-shadow(0 22px 44px rgba(0, 0, 0, .6));
}
@media (max-width: 700px) {
	.nv-appcta { flex-direction: column-reverse; text-align: center; }
	.nv-appcta .nv-btn { width: 100%; }
}

/* ---- Payment chips -------------------------------------------------------- */
/* Flex, not grid: the method list changes length, and a short trailing row
   should centre rather than hang off to the left. */
.nv-pay {
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: .55rem;
	margin: clamp(1.25rem, 3vw, 2rem) auto 1.25rem;
	max-width: 1060px;
}
.nv-pay > .nv-pay-chip { flex: 0 1 118px; }
@media (max-width: 520px) { .nv-pay { gap: .45rem; } .nv-pay > .nv-pay-chip { flex: 0 1 100px; } }
/* Dark chips — the brand logos are white/colour on transparent */
.nv-pay-chip {
	display: grid; place-items: center;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: 12px;
	padding: .55rem .7rem;
	min-width: 0; height: 3.1rem;
	transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.nv-pay-chip:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 46, 143, .45);
	background: var(--wp--preset--color--surface-2);
}
.nv-pay-chip img {
	max-height: 1.55rem; max-width: 100%; width: auto; height: auto;
	object-fit: contain; display: block;
}
/* Square brand icons carry no wordmark, so the chip supplies the label —
   the same shape the operator's own cashier uses. */
.nv-pay-chip--ico {
	grid-auto-flow: column; grid-template-columns: auto auto;
	justify-content: center; align-items: center; gap: .4rem;
}
.nv-pay-chip--ico img { max-height: 1.25rem; }
.nv-pay-chip--ico > span {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .72rem; font-weight: 700; letter-spacing: .01em;
	color: #fff; line-height: 1.1; white-space: nowrap;
}

/* Visa Secure trust line */
.nv-pay-secure {
	text-align: center;
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--muted); font-size: .82rem;
}

/* ---- Hero logo (H1) ------------------------------------------------------- */
.nv-hero-logo { margin: 0 0 .7rem; display: flex; justify-content: center; }
.nv-hero-logo img {
	height: clamp(2rem, 1.4rem + 2.4vw, 3.1rem);
	width: auto; display: block;
	filter: drop-shadow(0 6px 22px rgba(0, 0, 0, .55));
}

/* ---- Section heading icon ------------------------------------------------- */
.nv-h-ic { height: 1.5em; width: auto; vertical-align: -.32em; margin-right: .5rem; }

/* ---- App store buttons ---------------------------------------------------- */
.nv-stores { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .25rem; }
.nv-store {
	display: inline-flex; align-items: center; gap: .6rem;
	padding: .55rem 1.2rem .55rem 1rem;
	border-radius: 12px;
	background: var(--wp--preset--color--primary);
	border: none;
	color: #fff; text-decoration: none;
	box-shadow: var(--nv-glow-pink);
	transition: transform .16s ease, background .16s ease;
}
.nv-store:hover {
	transform: translateY(-2px); text-decoration: none; color: #fff;
	background: var(--wp--preset--color--primary-strong);
}
.nv-store i { color: rgba(255, 255, 255, .8) !important; }
.nv-store .nv-i { font-size: 1.6rem; }
.nv-store span { display: flex; flex-direction: column; line-height: 1.2; }
.nv-store i { font-style: normal; font-size: .66rem; color: rgba(255, 255, 255, .62); }
.nv-store b { font-family: var(--wp--preset--font-family--heading); font-size: .92rem; font-weight: 700; }

/* ---- FAQ ------------------------------------------------------------------ */
.nv-faq .wp-block-details {
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: var(--nv-radius-sm);
	padding: .1rem 1.1rem;
	margin-bottom: .6rem;
}
.nv-faq summary { padding: .85rem 0; font-weight: 600; cursor: pointer; list-style: none; }
.nv-faq summary::-webkit-details-marker { display: none; }
.nv-faq summary::after {
	content: "+"; float: right;
	color: var(--wp--preset--color--primary);
	font-weight: 700; font-size: 1.15rem; line-height: 1;
}
.nv-faq details[open] summary::after { content: "–"; }

/* ---- Footer --------------------------------------------------------------- */
.nv-footer-nav a { text-decoration: none; color: var(--wp--preset--color--muted); }
.nv-footer-nav a:hover { color: var(--wp--preset--color--primary); }
.nv-footer .wp-block-heading { color: var(--wp--preset--color--contrast); text-transform: uppercase; letter-spacing: .1em; }
.nv-disclaimer { color: var(--wp--preset--color--muted); font-size: .82rem; line-height: 1.6; }

/* ---- Responsive tweaks ---------------------------------------------------- */
@media (max-width: 600px) {
	.nv-hero-cta .wp-block-button { flex: 1 1 auto; }
	.nv-hero-cta .wp-block-button__link { width: 100%; }
	.nv-header-cta { gap: .4rem; }
}

/* ---- Hero CTA: pulse + shine ---------------------------------------------- */
.nv-hero-cta .nv-cta .wp-block-button__link {
	position: relative;
	overflow: hidden;
	animation: nv-cta-pulse 2.8s ease-in-out infinite;
}
.nv-hero-cta .nv-cta .wp-block-button__link::after {
	content: ""; position: absolute; top: 0; bottom: 0; width: 45%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .38), transparent);
	transform: skewX(-20deg);
	animation: nv-sheen 3.6s ease-in-out infinite;
	pointer-events: none;
}
@keyframes nv-cta-pulse {
	0%, 100% { box-shadow: 0 0 0 1px rgba(255,46,143,.3), 0 12px 34px -12px rgba(224,28,120,.65), 0 0 0 0 rgba(255,46,143,.5); }
	55%      { box-shadow: 0 0 0 1px rgba(255,46,143,.45), 0 16px 40px -12px rgba(224,28,120,.85), 0 0 0 12px rgba(255,46,143,0); }
}
.nv-hero-cta .wp-block-button__link { transition: transform .16s ease; }
.nv-hero-cta .wp-block-button__link:hover { transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
	.nv-hero::before,
	.nv-eyebrow-pill::after,
	.nv-eyebrow-dot,
	.nv-hero-cta .nv-cta .wp-block-button__link,
	.nv-hero-cta .nv-cta .wp-block-button__link::after { animation: none; }
}

/* ---- Game category nav (/spill/) ------------------------------------------ */
.nv-cats {
	display: flex; flex-wrap: wrap; gap: .5rem;
	margin: 1.5rem 0 2rem;
}
.nv-cats a {
	padding: .5rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	color: rgba(255, 255, 255, .82);
	font-size: .85rem; font-weight: 600; text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.nv-cats a:hover, .nv-cats a.is-active {
	border-color: rgba(255, 46, 143, .5);
	color: #fff;
	background: rgba(255, 46, 143, .14);
	text-decoration: none;
}
.nv-cat-h {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	margin: 2.5rem 0 .5rem;
}
.nv-cat-tx { color: var(--wp--preset--color--muted); font-size: .92rem; margin: 0 0 1.1rem; }
.nv-cats + .nv-cat-h { margin-top: 0; }

/* ---- Inline-width button variant ------------------------------------------ */
.nv-btn--auto { width: auto; display: inline-flex; }

/* ---- Providers ------------------------------------------------------------ */
.nv-provs { display: flex; flex-wrap: wrap; gap: .6rem; }
.nv-prov {
	display: inline-flex; align-items: center; gap: .55rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: 12px;
	padding: .6rem 1.05rem;
	font-size: .88rem; font-weight: 600;
	color: rgba(255, 255, 255, .9);
	transition: border-color .15s ease, background .15s ease;
}
.nv-prov:hover { border-color: rgba(255, 46, 143, .45); background: var(--wp--preset--color--surface-2); }
.nv-prov img { width: 1.35rem; height: auto; object-fit: contain; }
.nv-prov.is-more { color: var(--wp--preset--color--muted); font-weight: 500; }

/* ---- Tournaments ---------------------------------------------------------- */
.nv-tourn-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}
@media (max-width: 980px) { .nv-tourn-grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; } }
.nv-tourn-top {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 1rem; margin-bottom: .85rem;
}
.nv-tourn-pool { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.nv-tourn-pool i { font-style: normal; font-size: .68rem; color: var(--wp--preset--color--muted); text-transform: uppercase; letter-spacing: .1em; }
.nv-tourn-pool b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 1.25rem;
	color: var(--wp--preset--color--win);
}
.nv-count { display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; margin: 0 0 1.1rem; }
.nv-count span {
	display: flex; flex-direction: column; align-items: center;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 10px; padding: .45rem .2rem;
}
.nv-count b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 1.05rem; color: #fff;
	font-variant-numeric: tabular-nums;
}
.nv-count i { font-style: normal; font-size: .62rem; color: var(--wp--preset--color--muted); text-transform: uppercase; letter-spacing: .06em; }

/* description absorbs the extra height so countdown + CTA line up */
.nv-tourn .nv-card-tx { flex: 1 1 auto; }
.nv-tourn .nv-btn { margin-top: 0; }

/* ---- VIP club ------------------------------------------------------------- */
.nv-vip {
	display: grid; gap: .6rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	margin: 1.5rem 0 1.1rem;
}
@media (max-width: 1000px) { .nv-vip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px)  { .nv-vip { grid-template-columns: repeat(2, 1fr); } }
.nv-vip-tier {
	display: flex; flex-direction: column; gap: .18rem;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: 14px;
	padding: .9rem .85rem;
	text-align: center;
}
.nv-vip-tier.is-top { border-color: rgba(55, 214, 122, .5); box-shadow: 0 0 0 1px rgba(55, 214, 122, .18), 0 12px 30px -14px rgba(55, 214, 122, .5); }
.nv-vip-name { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: .95rem; color: #fff; }
.nv-vip-lvl { font-size: .68rem; color: var(--wp--preset--color--muted); }
.nv-vip-cb {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 1.35rem; color: var(--wp--preset--color--primary);
	margin-top: .2rem;
}
.nv-vip-tier.is-top .nv-vip-cb { color: var(--wp--preset--color--win); }
.nv-vip-rw { font-size: .7rem; color: rgba(255, 255, 255, .68); }

.nv-vip-perks { display: flex; flex-wrap: wrap; gap: .55rem; }
.nv-vip-perk {
	display: inline-flex; align-items: center; gap: .5rem;
	background: rgba(255, 46, 143, .09);
	border: 1px solid rgba(255, 46, 143, .28);
	border-radius: 999px;
	padding: .45rem .95rem;
	font-size: .82rem; color: rgba(255, 255, 255, .9);
}
.nv-vip-perk .nv-i { color: var(--wp--preset--color--primary); font-size: 1.05rem; }

/* ---- Registration CTA ----------------------------------------------------- */
.nv-reg {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
	align-items: stretch;
	border-radius: var(--nv-radius);
	overflow: hidden;
	border: var(--nv-ring);
	background:
		radial-gradient(85% 120% at 0% 50%, #221a52 0%, #1a1540 45%, #141031 100%);
	box-sizing: border-box;
}

.nv-reg-tx {
	padding: clamp(1.6rem, 3.2vw, 2.9rem);
	display: flex; flex-direction: column;
	justify-content: center;
	position: relative; z-index: 2;
	max-width: 34rem;
}
.nv-reg-tx .nv-eyebrow { margin-bottom: .5rem; }
.nv-reg-tx h2 {
	margin: 0 0 .3rem;
	font-size: clamp(1.45rem, 1.1rem + 1.15vw, 2rem);
	line-height: 1.15;
	letter-spacing: -.02em;
}
.nv-reg-amount {
	margin: 0 0 .85rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.05rem, .95rem + .5vw, 1.35rem);
	font-weight: 600;
	color: rgba(255, 255, 255, .72);
	letter-spacing: -.01em;
}
.nv-reg-amount b { color: var(--wp--preset--color--primary); font-weight: 800; }
.nv-reg-lead {
	margin: 0 0 1.4rem;
	color: var(--wp--preset--color--muted);
	font-size: .95rem; line-height: 1.6;
	max-width: 30rem;
}

/* 2x2 benefit grid — compact and scannable */
.nv-reg-list {
	list-style: none; margin: 0 0 1.6rem; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem 1.1rem;
}
.nv-reg-list li { display: flex; align-items: flex-start; gap: .6rem; }
.nv-reg-list .nv-i {
	color: var(--wp--preset--color--win);
	font-size: 1.15rem; margin-top: .12rem;
}
.nv-reg-list span { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.nv-reg-list b {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .9rem; font-weight: 700; color: #fff;
}
.nv-reg-list span { font-size: .78rem; color: var(--wp--preset--color--muted); }

.nv-reg-cta { display: flex; gap: .65rem; flex-wrap: wrap; }
.nv-reg-cta .nv-btn { width: auto; min-width: 9.5rem; }

.nv-reg-note {
	display: flex; align-items: flex-start; gap: .6rem;
	margin: 1.15rem 0 0;
	font-size: .76rem; line-height: 1.55;
	color: var(--wp--preset--color--muted);
	max-width: 30rem;
}
.nv-reg-note .nv-18 { flex: 0 0 auto; width: 1.55rem; height: 1.55rem; font-size: .66rem; }

/* Artwork column */
.nv-reg-art {
	position: relative;
	min-height: 100%;
	background-image: url(register-art.webp);
	background-size: cover;
	background-position: 62% center;
}
/* soften the seam into the panel + tone down the busy source background */
.nv-reg-art::before {
	content: ""; position: absolute; inset: 0;
	background:
		linear-gradient(90deg, #1c1648 0%, rgba(28, 22, 72, .82) 14%, rgba(28, 22, 72, .28) 34%, rgba(28, 22, 72, 0) 55%),
		radial-gradient(75% 95% at 62% 50%, rgba(20, 16, 49, 0) 45%, rgba(20, 16, 49, .72) 100%);
}

@media (max-width: 900px) {
	.nv-reg { grid-template-columns: 1fr; }
	.nv-reg-tx { max-width: none; padding-top: 1.4rem; }
	.nv-reg-art { order: -1; min-height: 230px; background-position: center 22%; }
	.nv-reg-art::before {
		background:
			radial-gradient(70% 80% at 50% 35%, rgba(20, 16, 49, 0) 40%, rgba(20, 16, 49, .55) 100%),
			linear-gradient(180deg, rgba(20, 16, 49, .35) 0%, rgba(20, 16, 49, 0) 35%, rgba(28, 22, 72, .92) 88%, #1c1648 100%);
	}
}
@media (max-width: 560px) {
	.nv-reg-list { grid-template-columns: 1fr; gap: .7rem; }
	.nv-reg-cta .nv-btn { width: 100%; }
}

/* VIP tier icon */
.nv-vip-ic {
	width: 3.2rem; height: auto;
	margin: 0 auto .45rem;
	display: block;
	filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .5));
}
.nv-vip-tier { padding-top: 1rem; }
.nv-vip-tier.is-top .nv-vip-ic { filter: drop-shadow(0 6px 18px rgba(55, 214, 122, .45)); }

/* ---- Trust bar (footer) --------------------------------------------------- */
.nv-trust { margin: clamp(1.5rem, 3vw, 2.25rem) 0 .5rem; }

.nv-badges {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: .55rem .9rem;
}
.nv-badge-img {
	display: inline-grid; place-items: center;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 10px;
	padding: .5rem .85rem;
	height: 2.9rem;
	transition: border-color .15s ease, background .15s ease;
}
.nv-badge-img:hover { border-color: rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .08); }
.nv-badge-img img { max-height: 1.55rem; width: auto; display: block; }
/* GameCheck is a scannable QR seal — it has to stay on white to work, so we
   keep the light card but match the height/radius of the others so it reads
   as deliberate rather than as a broken transparency. */
.nv-badge-img.is-lic { background: rgba(255,255,255,.92); border-color: rgba(255,255,255,.16); padding: .35rem .5rem; }
.nv-badge-img.is-lic img { max-height: 1.85rem; }
.nv-badge-img.is-lic:hover { background: #fff; border-color: rgba(255,255,255,.32); }

/* responsible-gambling marks sit plain, slightly dimmed until hover */
.nv-badges--rg {
	margin-top: .9rem; padding-top: .9rem;
	border-top: 1px solid rgba(255, 255, 255, .07);
	gap: .5rem 1.35rem;
}
.nv-badges--rg img { height: 1.4rem; width: auto; opacity: .72; transition: opacity .15s ease; }
.nv-badges--rg img:hover { opacity: 1; }

.nv-trust-rg {
	display: grid; grid-template-columns: 1fr auto;
	align-items: center; gap: 1rem;
	margin-top: .9rem; padding-top: .9rem;
	border-top: 1px solid rgba(255, 255, 255, .07);
	font-size: .78rem; color: var(--wp--preset--color--muted); line-height: 1.6;
}
.nv-trust-lic b { color: rgba(255, 255, 255, .85); font-weight: 600; }
.nv-trust-help { text-align: right; }
.nv-trust-help a { color: var(--wp--preset--color--primary); text-decoration: none; }
.nv-trust-help a:hover { text-decoration: underline; }
@media (max-width: 760px) {
	.nv-trust-rg { grid-template-columns: 1fr; text-align: center; }
	.nv-trust-help { text-align: center; }
}

/* ---- Stats bar ------------------------------------------------------------ */
.nv-stats {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .8rem;
}
.nv-stat {
	display: flex; flex-direction: column; align-items: center; gap: .1rem;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: var(--nv-radius);
	padding: 1.15rem .9rem;
	text-align: center;
}
.nv-stat b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; letter-spacing: -.02em;
	font-size: clamp(1.4rem, 1.1rem + 1.1vw, 2rem);
	color: #fff;
}
.nv-stat i { font-style: normal; font-size: .82rem; color: var(--wp--preset--color--muted); }
.nv-stat .nv-i { font-size: 1.3rem; color: var(--wp--preset--color--primary); margin-bottom: .3rem; }
@media (max-width: 800px) { .nv-stats { grid-template-columns: repeat(2, 1fr); } }

/* ---- Game category chips (homepage) --------------------------------------- */
.nv-catrow {
	display: flex; flex-wrap: wrap; gap: .5rem;
	margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
}
.nv-catrow a {
	display: inline-flex; align-items: center; gap: .45rem;
	padding: .5rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	color: rgba(255, 255, 255, .85);
	font-size: .84rem; font-weight: 600; text-decoration: none;
	transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.nv-catrow a:hover { border-color: rgba(255,46,143,.5); background: rgba(255,46,143,.12); color: #fff; text-decoration: none; }
.nv-catrow a .nv-i { font-size: 1rem; color: var(--wp--preset--color--primary); }

/* ---- Provider cards ------------------------------------------------------- */
.nv-prov-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	margin-top: 1.25rem;
}
@media (max-width: 1080px) { .nv-prov-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .nv-prov-grid { grid-template-columns: 1fr; } }

.nv-provcard {
	box-sizing: border-box;
	display: flex; flex-direction: column;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: var(--nv-radius);
	padding: 1.2rem;
	transition: border-color .16s ease, transform .16s ease;
}
.nv-provcard:hover { border-color: rgba(255, 46, 143, .4); transform: translateY(-2px); }

.nv-provcard-top { display: flex; align-items: center; gap: .7rem; margin-bottom: .8rem; }
.nv-provcard-logo {
	display: grid; place-items: center; flex: 0 0 auto;
	width: 2.5rem; height: 2.5rem;
	border-radius: 11px;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .1);
}
.nv-provcard-logo img { width: 1.4rem; height: auto; object-fit: contain; }
.nv-provcard h3 {
	margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.2;
	font-family: var(--wp--preset--font-family--heading);
}
.nv-provcard-tag { font-size: .7rem; color: var(--wp--preset--color--primary); font-weight: 600; }
.nv-provcard > p {
	margin: 0 0 .9rem;
	font-size: .84rem; line-height: 1.55;
	color: var(--wp--preset--color--muted);
	flex: 1 1 auto;
}
.nv-provcard-games { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.nv-provcard-games li {
	font-size: .7rem; font-weight: 600;
	padding: .25rem .6rem;
	border-radius: 7px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .09);
	color: rgba(255, 255, 255, .82);
}

/* trailing list of the remaining studios */
.nv-prov-more {
	display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem;
	margin-top: 1.1rem; padding-top: 1.1rem;
	border-top: 1px solid rgba(255, 255, 255, .07);
	font-size: .82rem; color: var(--wp--preset--color--muted);
}
.nv-prov-more b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600; font-size: .8rem;
	color: rgba(255, 255, 255, .8);
	padding: .3rem .7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
}
.nv-prov-more-rest { font-style: italic; }

/* ---- Content pages: alerts, tables, terms --------------------------------- */
.nv-alert {
	display: flex; align-items: flex-start; gap: .75rem;
	background: rgba(255, 46, 143, .1);
	border: 1px solid rgba(255, 46, 143, .3);
	border-radius: var(--nv-radius-sm);
	padding: .9rem 1.1rem;
	font-size: .9rem; line-height: 1.6;
	margin: 1.25rem 0;
}
.nv-alert .nv-i { font-size: 1.25rem; color: var(--wp--preset--color--primary); margin-top: .1rem; }
.nv-alert b { color: #fff; }

/* deposit-tier cards */
.nv-dep-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	margin: 1.5rem 0;
}
@media (max-width: 900px) { .nv-dep-grid { grid-template-columns: 1fr; } }
.nv-dep .nv-amount { font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); }
.nv-dep .nv-facts { margin-bottom: 0; }
.nv-dep .nv-facts li { align-items: flex-start; }
.nv-dep .nv-facts .nv-i { margin-top: .15rem; }

/* key-value term blocks */
.nv-terms {
	display: grid; gap: .6rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 1.25rem 0;
}
@media (max-width: 900px) { .nv-terms { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .nv-terms { grid-template-columns: 1fr; } }
.nv-term {
	display: flex; flex-direction: column; gap: .2rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: var(--nv-radius-sm);
	padding: .8rem .95rem;
}
.nv-term b {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .8rem; color: var(--wp--preset--color--primary);
	text-transform: uppercase; letter-spacing: .06em;
}
.nv-term span { font-size: .85rem; color: rgba(255, 255, 255, .82); line-height: 1.5; }

/* data tables */
.nv-tbl { overflow-x: auto; margin: 1.25rem 0; }
.nv-tbl table {
	width: 100%; border-collapse: collapse;
	font-size: .88rem;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: var(--nv-radius-sm);
	overflow: hidden;
}
.nv-tbl th {
	text-align: left; padding: .8rem 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .76rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .07em;
	color: var(--wp--preset--color--primary);
	background: rgba(255, 255, 255, .04);
	border-bottom: 1px solid rgba(255, 255, 255, .09);
	white-space: nowrap;
}
.nv-tbl td {
	padding: .75rem 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, .06);
	color: rgba(255, 255, 255, .86);
	vertical-align: top;
}
.nv-tbl tr:last-child td { border-bottom: 0; }
.nv-tbl tbody tr:hover td { background: rgba(255, 255, 255, .03); }
.nv-tbl tr.is-top td { background: rgba(55, 214, 122, .07); }
.nv-tbl tr.is-top td:first-child { color: var(--wp--preset--color--win); font-weight: 700; }

/* formula + definition list */
.nv-formula {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(.9rem, .82rem + .4vw, 1.05rem);
	font-weight: 700; text-align: center;
	background: var(--wp--preset--color--surface);
	border: 1px dashed rgba(255, 46, 143, .4);
	border-radius: var(--nv-radius-sm);
	padding: 1rem 1.1rem;
	margin: 1.25rem 0;
	color: #fff;
}
.nv-deflist { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .5rem; }
.nv-deflist li {
	font-size: .88rem; line-height: 1.55;
	color: var(--wp--preset--color--muted);
	padding-left: 1rem; position: relative;
}
.nv-deflist li::before {
	content: ""; position: absolute; left: 0; top: .6em;
	width: .35rem; height: .35rem; border-radius: 50%;
	background: var(--wp--preset--color--primary);
}
.nv-deflist b { color: #fff; font-weight: 600; }

/* tournament name + how-it-works strip */
.nv-tourn-name {
	margin: 0 0 .5rem !important;
	font-size: 1.05rem !important; font-weight: 700;
	font-family: var(--wp--preset--font-family--heading);
}
.nv-tourn-how {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: .6rem; margin-top: 1.1rem;
}
@media (max-width: 900px) { .nv-tourn-how { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .nv-tourn-how { grid-template-columns: 1fr; } }
.nv-tourn-step {
	display: flex; align-items: center; gap: .6rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-radius: var(--nv-radius-sm);
	padding: .7rem .9rem;
	font-size: .82rem; line-height: 1.4;
	color: rgba(255, 255, 255, .82);
}
.nv-tourn-step b {
	display: grid; place-items: center; flex: 0 0 auto;
	width: 1.6rem; height: 1.6rem; border-radius: 50%;
	background: rgba(255, 46, 143, .14);
	border: 1px solid rgba(255, 46, 143, .35);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-size: .78rem; font-weight: 800;
}
.nv-alert2 {
	background: rgba(255, 255, 255, .05);
	border-left: 3px solid var(--wp--preset--color--primary);
	border-radius: 0 var(--nv-radius-sm) var(--nv-radius-sm) 0;
	padding: .8rem 1.1rem;
	font-size: .85rem; line-height: 1.6;
	color: var(--wp--preset--color--muted);
	margin: 1rem 0;
}
.nv-alert2 b { color: #fff; }
.nv-catrow a em {
	font-style: normal; font-size: .72rem; font-weight: 700;
	color: var(--wp--preset--color--muted);
	background: rgba(255, 255, 255, .07);
	padding: .1rem .4rem; border-radius: 5px;
}

/* app page spec strip */
.nv-appspecs {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .7rem; margin: 1.5rem 0;
}
@media (max-width: 700px) { .nv-appspecs { grid-template-columns: repeat(2, 1fr); } }
.nv-appspec {
	display: flex; flex-direction: column; align-items: center; gap: .1rem;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: 1rem .8rem; text-align: center;
}
.nv-appspec b {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: clamp(1.05rem, .9rem + .6vw, 1.4rem); color: #fff;
}
.nv-appspec i { font-style: normal; font-size: .78rem; color: var(--wp--preset--color--muted); }
.nv-stores--lg { margin: 1.5rem 0; }
.nv-stores--lg .nv-store { padding: .7rem 1.4rem .7rem 1.1rem; }
.nv-stores--lg .nv-store .nv-i { font-size: 1.85rem; }

/* ---- Betting Predictions -------------------------------------------------- */
.nv-pred-grid {
	display: grid; gap: .8rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 1.25rem 0;
}
@media (max-width: 900px) { .nv-pred-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .nv-pred-grid { grid-template-columns: 1fr; } }

.nv-pred {
	box-sizing: border-box;
	display: flex; flex-direction: column; gap: .15rem;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring);
	border-radius: var(--nv-radius);
	padding: 1.1rem 1.2rem;
	text-decoration: none;
	transition: border-color .16s ease, transform .16s ease, background .16s ease;
}
.nv-pred:hover {
	border-color: rgba(108, 76, 255, .55);
	background: rgba(108, 76, 255, .09);
	transform: translateY(-2px);
	text-decoration: none;
}
.nv-pred-ic {
	display: grid; place-items: center;
	width: 2.4rem; height: 2.4rem;
	border-radius: 12px;
	margin-bottom: .6rem;
	font-size: 1.25rem; color: #fff;
	background: linear-gradient(140deg, rgba(108, 76, 255, .95), rgba(178, 60, 255, .8));
	box-shadow: 0 10px 24px -14px rgba(108, 76, 255, .95);
}
.nv-pred b {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .98rem; font-weight: 700; color: #fff;
}
.nv-pred i { font-style: normal; font-size: .8rem; line-height: 1.5; color: var(--wp--preset--color--muted); }

/* ---- Long-form content & legal pages -------------------------------------- */
.nv-lead {
	font-size: 1.06rem; line-height: 1.75;
	color: rgba(255, 255, 255, .88);
	border-left: 3px solid var(--wp--preset--color--primary);
	padding-left: 1rem; margin: 0 0 1.6rem;
}
.nv-updated {
	display: inline-flex; align-items: center; gap: .45rem;
	font-size: .78rem; color: var(--wp--preset--color--muted);
	background: rgba(255, 255, 255, .04);
	border: var(--nv-ring); border-radius: 999px;
	padding: .3rem .8rem; margin-bottom: 1.3rem;
}
.nv-updated .nv-i { width: .95rem; height: .95rem; }

/* anchor list at the top of legal pages */
.nv-toc {
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: 1.15rem 1.35rem; margin: 0 0 2rem;
}
.nv-toc b {
	display: block; font-family: var(--wp--preset--font-family--heading);
	font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--muted); margin-bottom: .75rem;
}
.nv-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .9rem; }
@media (max-width: 640px) { .nv-toc ol { grid-template-columns: 1fr; } }
.nv-toc li { counter-increment: toc; font-size: .87rem; }
.nv-toc a { color: rgba(255, 255, 255, .8); text-decoration: none; display: block; padding: .18rem 0; }
.nv-toc a::before {
	content: counter(toc) ". "; color: var(--wp--preset--color--muted);
	font-variant-numeric: tabular-nums;
}
.nv-toc a:hover { color: var(--wp--preset--color--primary); }

/* body copy inside legal pages */
.nv-legal h2 { scroll-margin-top: 6rem; }
.nv-legal h3 { font-size: 1.02rem; margin-top: 1.6rem; }
.nv-legal p, .nv-legal li { line-height: 1.75; }
.nv-legal ul, .nv-legal ol { padding-left: 1.15rem; }
.nv-legal li { margin: .35rem 0; }
.nv-legal li::marker { color: var(--wp--preset--color--primary); }

/* small callout used for "this is not legal advice" / warnings */
.nv-note {
	display: flex; gap: .7rem; align-items: flex-start;
	background: rgba(255, 255, 255, .04);
	border: var(--nv-ring); border-left: 3px solid var(--wp--preset--color--accent);
	border-radius: 12px; padding: .9rem 1.05rem;
	font-size: .87rem; line-height: 1.65; margin: 1.2rem 0;
	color: rgba(255, 255, 255, .82);
}
.nv-note .nv-i { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .15rem; color: var(--wp--preset--color--accent); }

/* contact / channel cards */
.nv-contact-grid {
	display: grid; gap: .85rem; margin: 1.4rem 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 860px) { .nv-contact-grid { grid-template-columns: 1fr; } }
.nv-contact {
	box-sizing: border-box;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: 1.25rem; display: flex; flex-direction: column;
}
.nv-contact .nv-ic-tile { margin-bottom: .85rem; }
.nv-contact b { font-family: var(--wp--preset--font-family--heading); font-size: 1rem; color: #fff; }
.nv-contact p { flex: 1 1 auto; font-size: .85rem; line-height: 1.6; color: var(--wp--preset--color--muted); margin: .35rem 0 .9rem; }
.nv-contact .nv-chan {
	font-size: .88rem; font-weight: 600; color: var(--wp--preset--color--primary);
	text-decoration: none; word-break: break-word;
}
.nv-contact .nv-chan:hover { text-decoration: underline; }
.nv-contact .nv-sla {
	display: block; margin-top: .5rem; font-size: .74rem;
	color: var(--wp--preset--color--muted);
}

/* ---- Inner-page vertical rhythm ------------------------------------------- */
/* Long-form pages were reading as one dense block: headings sat flush against
   the element above them. These rules give each section room to breathe and
   mark every H2 with a short accent bar so the page scans at a glance. */
.wp-block-post-content > h2,
.wp-block-post-content > .wp-block-heading:not(h1),
.nv-legal > h2 {
	position: relative;
	margin-top: clamp(2.6rem, 5vw, 4rem);
	margin-bottom: .9rem;
	padding-top: 1.1rem;
}
.wp-block-post-content > h2::before,
.nv-legal > h2::before {
	content: "";
	position: absolute; top: 0; left: 0;
	width: 2.2rem; height: 3px; border-radius: 3px;
	background: var(--wp--preset--gradient--brand);
}
.wp-block-post-content > h3,
.nv-legal > h3 { margin-top: 2.1rem; margin-bottom: .55rem; }

/* first heading after the lead paragraph doesn't need the full gap */
.nv-lead + h2, .nv-updated + .nv-lead + h2 { margin-top: clamp(1.8rem, 3vw, 2.4rem); }

/* space around the component blocks that sit between paragraphs */
.wp-block-post-content > .nv-usp-grid,
.wp-block-post-content > .nv-steps,
.wp-block-post-content > .nv-terms,
.wp-block-post-content > .nv-contact-grid,
.wp-block-post-content > .nv-pred-grid,
.wp-block-post-content > .nv-tbl,
.wp-block-post-content > .nv-faq { margin-block: 1.5rem; }

/* standalone CTA rows need air on both sides, not just above */
.nv-center { margin: 2rem 0; }
.nv-center + h2, .nv-center + .wp-block-heading { margin-top: clamp(2.6rem, 5vw, 4rem); }

/* callouts shouldn't collide with the heading that follows */
.nv-alert, .nv-alert2, .nv-note { margin-block: 1.3rem; }

/* .nv-term was written for <b> + <span>; the content pages use <p> */
.nv-term p { margin: 0; font-size: .85rem; color: rgba(255, 255, 255, .82); line-height: 1.55; }

/* cards inside long-form pages sit a touch tighter than on the homepage */
.wp-block-post-content .nv-usp h3,
.wp-block-post-content .nv-step h3 { margin: 0 0 .35rem; font-size: 1rem; }
.wp-block-post-content .nv-usp p,
.wp-block-post-content .nv-step p { font-size: .87rem; line-height: 1.6; color: var(--wp--preset--color--muted); }
.wp-block-post-content .nv-usp a,
.wp-block-post-content .nv-step a { color: var(--wp--preset--color--primary); text-decoration: none; }
.wp-block-post-content .nv-usp a:hover,
.wp-block-post-content .nv-step a:hover { text-decoration: underline; }

/* Orphan rows: a 4-card set in a 3-column grid leaves one card stranded on its
   own row. Match the column count to the item count instead of padding it out. */
@media (min-width: 1001px) {
	.wp-block-post-content .nv-usp-grid:has(> :nth-child(4):last-child),
	.wp-block-post-content .nv-steps:has(> :nth-child(4):last-child),
	.wp-block-post-content .nv-terms:has(> :nth-child(4):last-child),
	.wp-block-post-content .nv-terms:has(> :nth-child(8):last-child) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	/* five items never divide evenly — centre the remainder so it reads as a choice */
	.wp-block-post-content .nv-usp-grid:has(> :nth-child(5):last-child),
	.wp-block-post-content .nv-steps:has(> :nth-child(5):last-child) {
		display: flex; flex-wrap: wrap; justify-content: center;
	}
	.wp-block-post-content .nv-usp-grid:has(> :nth-child(5):last-child) > *,
	.wp-block-post-content .nv-steps:has(> :nth-child(5):last-child) > * {
		flex: 1 1 15rem; max-width: 22rem;
	}
}
@media (max-width: 1000px) and (min-width: 601px) {
	.wp-block-post-content .nv-usp-grid,
	.wp-block-post-content .nv-steps,
	.wp-block-post-content .nv-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Text selection: Chrome's default highlight is an off-brand green on this
   dark palette. Use the brand pink so selecting copy still looks like NV. */
::selection { background: rgba(255, 46, 143, .35); color: #fff; }
::-moz-selection { background: rgba(255, 46, 143, .35); color: #fff; }

/* ---- Labelled how-it-works cards ------------------------------------------ */
/* Distinct from .nv-tourn-step, whose <b> is a 1.6rem numbered circle. Here the
   <b> is a real heading, so it needs its own block-level treatment. */
.nv-howto {
	display: grid; gap: .7rem; margin: 1.3rem 0;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}
.nv-howto-item {
	box-sizing: border-box;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	border-left: 3px solid var(--wp--preset--color--primary);
	border-radius: var(--nv-radius-sm);
	padding: .95rem 1.1rem;
}
.nv-howto-item b {
	display: block; margin-bottom: .3rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .82rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .06em;
	color: var(--wp--preset--color--primary);
}
.nv-howto-item p { margin: 0; font-size: .87rem; line-height: 1.6; color: rgba(255, 255, 255, .84); }

/* ---- Fixes to shared components used on long-form pages -------------------- */
/* .nv-alert2 was block-level, so an inline icon sat on top of the copy. */
.nv-alert2 { display: flex; align-items: flex-start; gap: .75rem; }
.nv-alert2 .nv-i { flex: 0 0 auto; font-size: 1.15rem; color: var(--wp--preset--color--primary); margin-top: .15rem; }
.nv-alert2 b { color: #fff; }
.nv-alert .nv-i { flex: 0 0 auto; }

/* Tables stretched their last column across empty space. Size value columns to
   their content and let the first (label) column absorb the slack instead. */
.nv-tbl table { table-layout: auto; }
.nv-tbl th:not(:first-child),
.nv-tbl td:not(:first-child) { width: 1%; white-space: nowrap; }
.nv-tbl th:first-child, .nv-tbl td:first-child { width: auto; }
/* tables carrying prose in later columns opt out */
.nv-tbl.is-prose th, .nv-tbl.is-prose td { width: auto; white-space: normal; }

/* An H3 directly under an H2 is a sub-heading, not a new section. */
.wp-block-post-content > h2 + h3,
.nv-legal > h2 + h3 { margin-top: .9rem; }

/* Readable measure. Prose at the full 1140px column runs to ~150 characters
   a line, which is hard to track back to the next line.

   Two different mechanisms, because the two contexts behave differently:

   1. Top-level children of the post content are centred by WP's constrained
      layout with `margin-left/right: auto !important`. Capping their width
      would centre them (out of line with the headings) and zeroing the margin
      would throw them out of the column entirely — so the line is shortened
      with padding instead, which leaves the left edge exactly where it is.

   2. Children of .nv-legal sit inside a group that is already the content
      column, so there a max-width plus a zeroed left margin is correct. */
.wp-block-post-content > p:not(.nv-center):not(.nv-disclaimer),
.wp-block-post-content > ul,
.wp-block-post-content > ol,
.wp-block-post-content > .nv-lead {
	/* The padding must be measured against the CONTENT COLUMN, not the element's
	   containing block — a percentage resolves against the full-bleed wrapper,
	   which pushes the box past its 1140px cap, collapses the auto margins to 0
	   and drops the paragraph out to the viewport edge. box-sizing keeps the
	   padding inside the cap so the left edge stays on the column. */
	box-sizing: border-box;
	padding-right: max(0rem, var(--wp--style--global--content-size, 1140px) - 58rem);
}

.nv-legal > p, .nv-legal > ul, .nv-legal > ol {
	max-width: 58rem;
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* ---- Interactive enhancements --------------------------------------------- */
/* All of these are driven by the script in functions.php and degrade to nothing
   without JS. Motion is disabled under prefers-reduced-motion. */

/* reading progress, pinned under the sticky header */
.nv-progress {
	position: fixed; inset: 0 0 auto 0; z-index: 60;
	height: 3px; background: transparent; pointer-events: none;
}
.nv-progress span {
	display: block; height: 100%; width: 0;
	background: var(--wp--preset--gradient--brand);
	box-shadow: 0 0 12px rgba(255, 46, 143, .6);
}

/* back to top */
.nv-totop {
	position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 55;
	display: grid; place-items: center;
	width: 2.9rem; height: 2.9rem; padding: 0;
	border-radius: 50%; cursor: pointer;
	color: #fff; background: var(--wp--preset--color--surface-2);
	border: 1px solid rgba(255, 255, 255, .16);
	box-shadow: 0 12px 30px -12px rgba(0, 0, 0, .8);
	opacity: 0; visibility: hidden; transform: translateY(.5rem);
	transition: opacity .22s ease, transform .22s ease, visibility .22s, background .18s ease;
}
.nv-totop.is-on { opacity: 1; visibility: visible; transform: none; }
.nv-totop:hover { background: var(--wp--preset--color--primary); border-color: transparent; }
.nv-totop .nv-i { width: 1.15rem; height: 1.15rem; transform: rotate(-90deg); }

/* scroll-spy state in the table of contents */
.nv-toc a.is-current {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}
.nv-toc a.is-current::before { color: var(--wp--preset--color--primary); }

/* reveal on scroll */
.nv-reveal > * {
	opacity: 0; transform: translateY(14px);
	transition: opacity .5s ease, transform .5s cubic-bezier(.22, .61, .36, 1);
}
.nv-reveal.is-in > * { opacity: 1; transform: none; }

/* In-page category nav (games page). Deliberately NOT sticky: pinning it under
   the already-sticky header left a strip of page content visible between the
   two and made the bar jump as it engaged. A plain filter row is predictable,
   and back-to-top covers long-page navigation. */
.nv-cats { margin: 1.5rem 0 2rem; }

@media (prefers-reduced-motion: reduce) {
	.nv-progress { display: none; }
	.nv-reveal > * { opacity: 1; transform: none; transition: none; }
	.nv-totop { transition: none; }
	html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* ---- Predictions: category explorer --------------------------------------- */
.nv-pex {
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: 1.1rem; margin: 1.5rem 0;
}
.nv-pex-tabs { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.1rem; }
.nv-pex-tabs button {
	display: inline-flex; align-items: center; gap: .45rem;
	padding: .5rem .95rem; border-radius: 999px; cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .84rem; font-weight: 600;
	color: rgba(255, 255, 255, .8);
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring);
	transition: color .16s ease, background .16s ease, border-color .16s ease;
}
.nv-pex-tabs button .nv-i { width: 1rem; height: 1rem; }
.nv-pex-tabs button:hover { color: #fff; border-color: rgba(108, 76, 255, .5); }
.nv-pex-tabs button[aria-selected="true"] {
	color: #fff; border-color: transparent;
	background: linear-gradient(140deg, rgba(108, 76, 255, .95), rgba(178, 60, 255, .8));
	box-shadow: 0 10px 24px -14px rgba(108, 76, 255, .95);
}
.nv-pex-panel[hidden] { display: none; }
.nv-pex-scope {
	margin: 0 0 .8rem; font-size: .95rem; font-weight: 600; color: #fff;
}
.nv-pex-ex { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.nv-pex-ex li {
	position: relative; padding: .6rem .9rem .6rem 2.1rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	font-size: .87rem; line-height: 1.55; color: rgba(255, 255, 255, .84);
}
.nv-pex-ex li::before {
	content: "?"; position: absolute; left: .8rem; top: .58rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; color: var(--wp--preset--color--accent);
}
.nv-pex-note {
	display: flex; gap: .6rem; align-items: flex-start;
	margin: 1rem 0 0; padding-top: .9rem;
	border-top: 1px solid rgba(255, 255, 255, .08);
	font-size: .8rem; line-height: 1.55; color: var(--wp--preset--color--muted);
}
.nv-pex-note .nv-i { flex: 0 0 auto; width: 1rem; height: 1rem; margin-top: .15rem; color: var(--wp--preset--color--accent); }
.nv-pex-note b { color: rgba(255, 255, 255, .9); }
@media (prefers-reduced-motion: no-preference) {
	.nv-pex-panel:not([hidden]) { animation: nv-pex-in .28s ease both; }
	@keyframes nv-pex-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}

/* ---- Predictions: payout calculator --------------------------------------- */
.nv-calc {
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: 1.25rem; margin: 1.5rem 0;
}
.nv-calc-in { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
@media (max-width: 520px) { .nv-calc-in { grid-template-columns: 1fr; } }
.nv-calc-in label {
	display: grid; gap: .35rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .75rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--wp--preset--color--muted);
}
.nv-calc-field {
	display: flex; align-items: center;
	background: var(--wp--preset--color--base);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	transition: border-color .16s ease;
}
.nv-calc-field:focus-within { border-color: rgba(255, 46, 143, .6); }
.nv-calc-field i {
	padding: 0 .3rem 0 .85rem; font-style: normal;
	color: var(--wp--preset--color--muted); font-size: 1rem;
}
.nv-calc-field input {
	flex: 1 1 auto; width: 100%; min-width: 0;
	background: none; border: 0; outline: none;
	padding: .7rem .9rem .7rem .1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem; font-weight: 700; color: #fff;
	font-variant-numeric: tabular-nums;
}
.nv-calc-out {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .6rem; margin-top: 1rem;
}
.nv-calc-out--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .nv-calc-out { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .nv-calc-out { grid-template-columns: 1fr; } }
.nv-calc-out > div {
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	padding: .85rem 1rem; text-align: center;
}
.nv-calc-out b {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.1rem, 1rem + .6vw, 1.4rem); font-weight: 800;
	color: var(--wp--preset--color--win);
	font-variant-numeric: tabular-nums;
}
.nv-calc-out > div:first-child b { color: #fff; }
.nv-calc-out i {
	display: block; margin-top: .15rem; font-style: normal;
	font-size: .74rem; letter-spacing: .05em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.nv-calc-out.is-invalid b { color: var(--wp--preset--color--muted); }
/* Word answers ("5 min – 48 timer") need a smaller face than money figures do. */
.nv-calc-out--text b { font-size: clamp(.92rem, .85rem + .32vw, 1.08rem); line-height: 1.35; }
.nv-calc-field i .nv-i { width: 1.05em; height: 1.05em; display: block; }
.nv-calc-foot { margin: .85rem 0 0; font-size: .76rem; color: var(--wp--preset--color--muted); }

/* ---- Predictions: headline figures ---------------------------------------- */
.nv-pstat {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .6rem; margin: 1.4rem 0;
}
@media (max-width: 720px) { .nv-pstat { grid-template-columns: repeat(2, 1fr); } }
.nv-pstat > div {
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	padding: .9rem 1rem; text-align: center;
}
.nv-pstat b {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.2rem, 1rem + .8vw, 1.6rem); font-weight: 800; color: #fff;
	font-variant-numeric: tabular-nums;
}
.nv-pstat i {
	display: block; margin-top: .1rem; font-style: normal;
	font-size: .72rem; letter-spacing: .06em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* count badge on the category tabs */
.nv-pex-tabs button em {
	font-style: normal; font-size: .74rem; font-weight: 700;
	padding: .05rem .4rem; border-radius: 999px;
	background: rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .75);
}
.nv-pex-tabs button[aria-selected="true"] em { background: rgba(0, 0, 0, .28); color: #fff; }

/* ---- Predictions: annotated market card ----------------------------------- */
.nv-market {
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	overflow: hidden; margin: 1.4rem 0;
}
.nv-market-head {
	display: flex; align-items: center; gap: .7rem;
	padding: .95rem 1.1rem;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.nv-market-ic {
	display: grid; place-items: center; flex: 0 0 auto;
	width: 2.1rem; height: 2.1rem; border-radius: 50%;
	color: #fff; background: linear-gradient(140deg, #f7931a, #b8690f);
}
.nv-market-head b {
	flex: 1 1 auto; font-family: var(--wp--preset--font-family--heading);
	font-size: .98rem; color: #fff;
}
.nv-market-tag {
	display: inline-flex; align-items: center; gap: .35rem; flex: 0 0 auto;
	font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--wp--preset--color--win);
}
.nv-market-tag.is-demo { color: var(--wp--preset--color--muted); }
.nv-market-tag i {
	width: .45rem; height: .45rem; border-radius: 50%;
	background: var(--wp--preset--color--win);
	box-shadow: 0 0 0 3px rgba(55, 214, 122, .2);
}
.nv-market-tbl { width: 100%; border-collapse: collapse; font-size: .88rem; }
.nv-market-tbl th {
	text-align: left; padding: .55rem 1.1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.nv-market-tbl td {
	padding: .7rem 1.1rem; color: rgba(255, 255, 255, .88);
	border-bottom: 1px solid rgba(255, 255, 255, .05);
	font-variant-numeric: tabular-nums;
}
.nv-market-tbl tr:last-child td { border-bottom: 0; }
.nv-market-tbl th:not(:first-child), .nv-market-tbl td:not(:first-child) { text-align: right; }
.nv-market-tbl .is-yes { color: var(--wp--preset--color--win); font-weight: 700; }
.nv-market-tbl .is-no  { color: var(--wp--preset--color--primary); font-weight: 700; }
.nv-market-tbl .is-lock { color: var(--wp--preset--color--muted); }
.nv-market-foot {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: .7rem 1.1rem;
	background: rgba(255, 255, 255, .03);
	font-size: .78rem; color: var(--wp--preset--color--muted);
}
.nv-market-clock {
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .2rem .6rem; border-radius: 6px;
	background: rgba(255, 46, 143, .16); color: #fff;
	font-variant-numeric: tabular-nums; font-weight: 600;
}
.nv-market-clock .nv-i { width: .85rem; height: .85rem; }

/* auto-fit lands 6 how-to cards as 4 + 2, which leaves two dead cells.
   Pin the common counts to a layout that divides evenly. */
@media (min-width: 981px) {
	.nv-howto:has(> :nth-child(6):last-child),
	.nv-howto:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nv-howto:has(> :nth-child(4):last-child),
	.nv-howto:has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	/* five or seven never divide — centre the short last row */
	.nv-howto:has(> :nth-child(5):last-child),
	.nv-howto:has(> :nth-child(7):last-child) {
		display: flex; flex-wrap: wrap; justify-content: center;
	}
	.nv-howto:has(> :nth-child(5):last-child) > *,
	.nv-howto:has(> :nth-child(7):last-child) > * { flex: 1 1 15rem; max-width: 22rem; }
}

/* market title: real English wording as it appears in the product, with a
   Norwegian gloss underneath — the platform has no Norwegian locale. */
.nv-market-q { flex: 1 1 auto; display: grid; gap: .1rem; }
.nv-market-q b { font-family: var(--wp--preset--font-family--heading); font-size: .98rem; color: #fff; }
.nv-market-tr { font-size: .78rem; color: var(--wp--preset--color--muted); font-style: italic; }

/* icons on labelled cards */
.nv-term b, .nv-howto-item b { display: flex; align-items: center; gap: .45rem; }
.nv-term b .nv-i, .nv-howto-item b .nv-i {
	flex: 0 0 auto; width: 1rem; height: 1rem;
	color: var(--wp--preset--color--primary);
}

/* provider rows: logo where we have one, monogram placeholder where we don't */
.nv-prov-cell { display: inline-flex; align-items: center; gap: .6rem; }
.nv-prov-cell img { width: 1.25rem; height: 1.25rem; object-fit: contain; flex: 0 0 auto; }
.nv-prov-cell b { font-weight: 500; color: inherit; }
.nv-pay-cell { display: inline-flex; align-items: center; gap: .6rem; }
.nv-pay-cell img {
	/* Every mark gets the same tile. The logos range from square coins to wide
	   wordmarks, so anything that only fixes the slot still leaves them ragged —
	   an identical plate is what makes the column read as a column. */
	box-sizing: border-box;
	flex: 0 0 2.9rem; width: 2.9rem; height: 2rem;
	padding: .22rem;
	border-radius: 7px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .09);
	object-fit: contain;
}
.nv-pay-cell b { font-weight: 500; color: inherit; }
.nv-prov-mono {
	display: grid; place-items: center; flex: 0 0 auto;
	width: 1.25rem; height: 1.25rem; border-radius: 5px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .68rem; font-weight: 800;
	color: var(--wp--preset--color--muted);
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .1);
}

/* VIP tier cell */
.nv-tier { display: inline-flex; align-items: center; gap: .5rem; }
.nv-tier img { width: 1.15rem; height: 1.15rem; object-fit: contain; flex: 0 0 auto; }
.nv-tier b { font-weight: 500; color: inherit; }
tr.is-top .nv-tier b { color: var(--wp--preset--color--win); font-weight: 700; }

/* every table fills the content column and starts on the same left edge */


/* A buttons block sitting on its own between paragraphs is a section CTA, so it
   centres. Buttons inside cards, the header and the app-store row keep their
   own alignment because they are not direct children of the post content. */
.wp-block-post-content > .wp-block-buttons { justify-content: center; margin-block: 2rem; }

/* Blocks narrower than the content column are centred inside it — tables that
   size to their content, and the example market card. Prose stays flush left
   with the headings; only these self-sizing blocks centre. */
.nv-tbl { margin-inline: auto !important; }
.nv-tbl table { margin-inline: auto; }
.nv-colwrap { display: flex; justify-content: center; }

/* ---- Section illustration + text/image split ------------------------------ */
.nv-secimg {
	display: block; width: 100%; max-width: 38rem; height: auto;
	margin: 1.4rem auto 1.6rem;
	border-radius: var(--nv-radius);
	border: var(--nv-ring);
	object-fit: cover;
}
.nv-secimg.is-tall { max-width: 26rem; aspect-ratio: 16 / 10; object-position: center 22%; }


/* ---- Page-title spacing ---------------------------------------------------
   The H1 had no bottom margin of its own, so the gap under it came only from
   WP's 1.25rem blockGap — and .nv-lead cancelled even that with `margin: 0`,
   leaving the intro glued to the title. Giving the H1 its own bottom margin
   fixes both cases at once: adjacent margins collapse to the larger value, so
   this works whether the next block is a lead, a date badge or a paragraph. */
.wp-block-post-content > h1 { margin-bottom: 1.6rem; }
.wp-block-post-content > h1 + .nv-updated { margin-top: 0; }
.nv-updated + .nv-lead { margin-top: .4rem; }

/* The date pill is inline-flex, so on its own it lines up with the container
   edge rather than the content column. A block-level parent puts it back on
   the column, where it sits flush under the H1. */
.nv-metaline { margin: 0 0 1.3rem; }
.nv-metaline .nv-updated { margin-bottom: 0; }

/* ---- Two-column how-to (homepage account section) ------------------------- */
.nv-split2 {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem; margin: 1.4rem 0;
}
@media (max-width: 860px) { .nv-split2 { grid-template-columns: 1fr; } }
.nv-split2-col {
	box-sizing: border-box; display: flex; flex-direction: column;
	background: var(--wp--preset--gradient--card);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	padding: clamp(1.2rem, 1.8vw, 1.6rem);
}
.nv-split2-col h3 {
	display: flex; align-items: center; gap: .5rem;
	margin: 0 0 .9rem; font-size: 1.05rem; font-weight: 700;
}
.nv-split2-col h3 .nv-i { width: 1.1rem; height: 1.1rem; color: var(--wp--preset--color--primary); }
.nv-split2-col .nv-cat-tx { flex: 1 1 auto; margin-bottom: 1rem; }
.nv-split2-col .nv-btn { align-self: flex-start; margin-top: auto; }

.nv-numlist { counter-reset: nl; list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
.nv-numlist li {
	counter-increment: nl; position: relative; padding-left: 2rem;
	font-size: .9rem; line-height: 1.6; color: rgba(255, 255, 255, .84);
}
.nv-numlist li::before {
	content: counter(nl);
	position: absolute; left: 0; top: -.05rem;
	display: grid; place-items: center;
	width: 1.45rem; height: 1.45rem; border-radius: 50%;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .74rem; font-weight: 800;
	color: var(--wp--preset--color--primary);
	background: rgba(255, 46, 143, .12);
	border: 1px solid rgba(255, 46, 143, .35);
}

/* ---- App page header: specs + stores beside the device shot --------------- */
.nv-apphead {
	display: grid; grid-template-columns: 1fr minmax(0, 15rem);
	gap: clamp(1.2rem, 3vw, 2.2rem); align-items: center;
	margin: 1.5rem 0 2rem;
}
@media (max-width: 820px) { .nv-apphead { grid-template-columns: 1fr; } }
.nv-apphead-tx { min-width: 0; }
.nv-apphead-tx .nv-appspecs { margin-top: 0; }
.nv-apphead-img {
	width: 100%; height: auto; display: block;
	filter: drop-shadow(0 26px 50px rgba(0, 0, 0, .55));
}
@media (max-width: 820px) {
	.nv-apphead-img { max-width: 13rem; margin-inline: auto; }
}

/* three-input calculator variant + native select styled like the inputs */
.nv-calc-in--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) { .nv-calc-in--3 { grid-template-columns: 1fr; } }
.nv-calc-field select {
	flex: 1 1 auto; width: 100%; min-width: 0;
	background: none; border: 0; outline: none; cursor: pointer;
	padding: .7rem .9rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem; font-weight: 700; color: #fff;
	appearance: none;
}
.nv-calc-field select option { background: var(--wp--preset--color--surface-2); color: #fff; }
.nv-calc .nv-formula { margin: 0 0 1.1rem; }

/* Game tile without artwork yet. We only put a game image on a tile when the
   image is actually that game — reusing another title's art misrepresents the
   catalogue. Titles still awaiting art get this branded placeholder instead. */
.nv-game--tba {
	background-image: none;
	background:
		radial-gradient(120% 90% at 30% 0%, rgba(108, 76, 255, .35), transparent 60%),
		var(--wp--preset--gradient--card);
}
.nv-game--tba::after {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(80% 60% at 50% 35%, rgba(255, 46, 143, .18), transparent 70%);
	pointer-events: none;
}
.nv-game--tba .nv-tba-mark {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -60%);
	width: 2.6rem; height: 2.6rem;
	color: rgba(255, 255, 255, .28);
}
.nv-game--tba .nv-tba-mark .nv-i { width: 100%; height: 100%; }

/* provider mark on a how-to card, in place of the generic icon */
.nv-howto-item b .nv-howto-logo {
	flex: 0 0 auto; width: 1.15rem; height: 1.15rem;
	object-fit: contain;
}


/* ---- Tournament cards ----------------------------------------------------- */
.nv-tgrid {
	display: grid; gap: .7rem; margin: 1.5rem 0;
	/* The source artwork is only ~430px wide, so the tiles are kept narrow
	   enough that a 2x display never has to upscale them. */
	grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
}
@media (max-width: 620px) { .nv-tgrid { grid-template-columns: repeat(2, 1fr); } }

.nv-tcard {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end;
	aspect-ratio: 43 / 62; overflow: hidden;
	border-radius: var(--nv-radius); border: var(--nv-ring);
	background-size: cover; background-position: center top;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nv-tcard:hover {
	transform: translateY(-4px); text-decoration: none;
	border-color: rgba(255, 46, 143, .5); box-shadow: var(--nv-glow-pink);
}
.nv-tcard::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(8, 6, 24, .96) 22%, rgba(8, 6, 24, .55) 48%, transparent 72%);
}
.nv-tcard-body { position: relative; z-index: 1; padding: .75rem .8rem .8rem; }
.nv-tcard-prov {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--wp--preset--color--muted); margin-bottom: .25rem;
}
.nv-tcard-prov img { width: .75rem; height: .75rem; object-fit: contain; }
.nv-tcard b {
	display: block; font-family: var(--wp--preset--font-family--heading);
	font-size: .86rem; font-weight: 700; color: #fff; line-height: 1.25;
}
.nv-tcard-pool {
	display: block; margin-top: .3rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: .95rem; font-weight: 800;
	background: var(--wp--preset--gradient--brand);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	font-variant-numeric: tabular-nums;
}
.nv-tcard-pool i { font-style: normal; font-size: .68rem; font-weight: 600; letter-spacing: .07em;
	text-transform: uppercase; color: var(--wp--preset--color--muted);
	-webkit-text-fill-color: var(--wp--preset--color--muted); display: block; margin-top: .1rem; }

/* Wide editorial banner — runs the full content column, no width cap. */
.nv-banner {
	display: block; width: 100%; height: auto;
	margin: 1.5rem 0 1.8rem;
	border-radius: var(--nv-radius);
	border: var(--nv-ring);
}

/* ---- Wheel of Fortune (demo) ----------------------------------------------
   Modelled on the operator's wheel: separated wedges with rounded ends, a pale
   rim with gold studs on every boundary, teardrop pointer and a domed hub. */
.nv-wheel {
	display: grid; grid-template-columns: minmax(0, 26rem) 1fr;
	gap: clamp(1.2rem, 3vw, 2.6rem); align-items: center; margin: 1.8rem 0;
}
@media (max-width: 900px) { .nv-wheel { grid-template-columns: 1fr; justify-items: center; } }

.nv-wheel-stage { position: relative; width: 100%; max-width: 26rem; aspect-ratio: 1; }

.nv-wheel-ring {
	position: absolute; inset: 0; border-radius: 50%;
	background: linear-gradient(160deg, #fdfdff, #c9cbe0 45%, #8e90ad 60%, #eef0ff);
	box-shadow: 0 30px 70px -28px rgba(0, 0, 0, .95), inset 0 0 0 1px rgba(255, 255, 255, .5);
}
.nv-wheel-ring::after {
	content: ""; position: absolute; inset: 4.5%; border-radius: 50%;
	background: #0b0920;
	box-shadow: inset 0 0 22px rgba(0, 0, 0, .9);
}
.nv-wheel-studs { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.nv-wheel-studs span {
	position: absolute; inset: 0;
	transform: rotate(var(--a));
}
.nv-wheel-studs span::before {
	content: ""; position: absolute; left: 50%; top: 1.6%;
	width: .42rem; height: .42rem; margin-left: -.21rem;
	border-radius: 50%;
	background: radial-gradient(circle at 34% 30%, #fff6d5, #d8a53a 60%, #a97d24);
	box-shadow: 0 0 5px rgba(255, 210, 120, .9);
}

.nv-wheel-disc {
	position: absolute; inset: 5.5%;
	transition: transform 5.2s cubic-bezier(.1, .82, .14, 1);
	will-change: transform;
}
.nv-wheel-svg { width: 100%; height: 100%; display: block; }
.nv-wheel-svg path { filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .45)); }
.nv-wheel-svg path.is-gold { stroke: #f5d98a; stroke-width: 4; }

.nv-wheel-lbl {
	position: absolute; inset: 0;
	display: flex; align-items: flex-start; justify-content: center;
	padding-top: 8%; transform: rotate(var(--a)); pointer-events: none;
}
.nv-wheel-lbl span { display: block; text-align: center; max-width: 40%;
	font-family: var(--wp--preset--font-family--heading); color: #fff;
	text-shadow: 0 2px 6px rgba(0, 0, 0, .8); }
.nv-wheel-lbl b { display: block; font-size: 1.25rem; font-weight: 800; line-height: 1; }
.nv-wheel-lbl i { display: block; font-style: normal; margin-top: .15rem;
	font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .92; }

.nv-wheel-hub {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 22%; height: 22%; border-radius: 50%; z-index: 3;
	display: grid; place-items: center;
	background: radial-gradient(circle at 32% 26%, #4b3aa0, #171338 72%);
	box-shadow: 0 12px 30px -10px #000, inset 0 3px 10px rgba(255, 255, 255, .25),
		0 0 0 4px rgba(11, 9, 32, .95);
}
.nv-wheel-hub img { width: 60%; height: auto; }

.nv-wheel-pin {
	position: absolute; left: 50%; top: -3%; transform: translateX(-50%); z-index: 4;
	width: 1.7rem; height: 2.3rem;
	background: linear-gradient(180deg, #fdfdff, #c9cbe0 55%, #9b9db8);
	clip-path: polygon(50% 100%, 8% 46%, 8% 20%, 30% 2%, 70% 2%, 92% 20%, 92% 46%);
	filter: drop-shadow(0 5px 10px rgba(0, 0, 0, .75));
}
.nv-wheel-pin::after {
	content: ""; position: absolute; left: 50%; top: 22%; transform: translateX(-50%);
	width: 46%; height: 34%; border-radius: 50%;
	background: radial-gradient(circle at 34% 28%, #f0e6ff, #8b6fd8 60%, #5b3fa8);
}

/* the croupier stands beside the wheel, as on the operator's page */
/* The wedge labels are the whole disc rotated, so each one's bounding box is
   ~1.4× the disc and pushed the page sideways on narrow screens. Clip on the
   disc, not the stage — clipping the stage also cut the croupier in half. */
.nv-wheel-disc { overflow: hidden; }

.nv-wheel-figure {
	position: absolute; left: -34%; bottom: -4%;
	width: 62%; height: auto; z-index: 1; pointer-events: none;
	filter: drop-shadow(0 22px 40px rgba(0, 0, 0, .7));
}
@media (max-width: 1100px) { .nv-wheel-figure { display: none; } }

.nv-wheel-side { min-width: 0; width: 100%; }
.nv-wheel-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; }
.nv-wheel-tabs button {
	flex: 0 0 auto; padding: .5rem 1.1rem; border-radius: 999px; cursor: pointer;
	font-family: var(--wp--preset--font-family--heading); font-size: .84rem; font-weight: 700;
	color: rgba(255, 255, 255, .8); background: var(--wp--preset--color--surface);
	border: var(--nv-ring); transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.nv-wheel-tabs button[aria-selected="true"] {
	color: #fff; border-color: transparent; background: var(--wp--preset--gradient--brand);
}
.nv-wheel-list { list-style: none; margin: 0 0 1rem; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem .9rem; }
.nv-wheel-list li { display: flex; align-items: center; gap: .5rem;
	font-size: .84rem; color: rgba(255, 255, 255, .84); }
.nv-wheel-list i { width: .6rem; height: .6rem; border-radius: 2px; flex: 0 0 auto; }
.nv-wheel-out {
	min-height: 3.4rem; margin: 0 0 1rem; padding: .85rem 1rem;
	border-radius: var(--nv-radius-sm); border: var(--nv-ring);
	background: var(--wp--preset--color--surface);
	font-size: .88rem; line-height: 1.55; color: rgba(255, 255, 255, .86);
}
.nv-wheel-out b { color: var(--wp--preset--color--win); }
.nv-wheel-cta { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.nv-wheel-note { margin: .9rem 0 0; font-size: .76rem; line-height: 1.6; color: var(--wp--preset--color--muted); }
@media (prefers-reduced-motion: reduce) { .nv-wheel-disc { transition: none; } }

/* market grid + clickable odds cells */
.nv-mgrid { display: grid; gap: .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.5rem 0; }
@media (max-width: 900px) { .nv-mgrid { grid-template-columns: 1fr; } }
.nv-mgrid .nv-market { margin: 0; }
.nv-mgrid .nv-market-q b { font-size: .88rem; }
.nv-mgrid .nv-market-tbl { font-size: .82rem; }
.nv-mgrid .nv-market-tbl th, .nv-mgrid .nv-market-tbl td { padding: .5rem .85rem; }

.nv-mo {
	font: inherit; font-weight: 700; cursor: pointer;
	padding: .18rem .5rem; border-radius: 6px;
	background: rgba(255, 255, 255, .05); border: 1px solid transparent;
	font-variant-numeric: tabular-nums;
	transition: background .14s ease, border-color .14s ease, transform .14s ease;
}
.nv-mo.is-yes { color: var(--wp--preset--color--win); }
.nv-mo.is-no  { color: var(--wp--preset--color--primary); }
.nv-mo:hover  { background: rgba(255, 255, 255, .12); transform: translateY(-1px); }
.nv-mo.is-picked { border-color: currentColor; background: rgba(255, 255, 255, .14); }
.nv-market-tbl .is-lock { color: var(--wp--preset--color--muted); }

/* platform icon in the install headings */
.nv-oshead { display: flex; align-items: center; gap: .55rem; }
.nv-oshead .nv-i {
	width: 1.5rem; height: 1.5rem; flex: 0 0 auto;
	padding: .3rem; box-sizing: content-box;
	border-radius: 9px; color: #fff;
	background: linear-gradient(140deg, rgba(255, 46, 143, .9), rgba(178, 60, 255, .85));
	box-shadow: 0 8px 20px -12px rgba(255, 46, 143, .9);
}

/* The wheel doubles as the spin control. An outline follows the ELEMENT's
   border-radius, not its own — without a round stage the focus ring was drawn
   as a square. Mouse clicks get no ring at all; keyboard focus gets a circular
   one in the brand colour. */
.nv-wheel-stage[data-wheel-hit] { cursor: pointer; border-radius: 50%; }
.nv-wheel-stage[data-wheel-hit]:focus { outline: none; }
.nv-wheel-stage[data-wheel-hit]:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 8px;
}
.nv-wheel-stage[data-wheel-hit]:hover .nv-wheel-ring { filter: brightness(1.06); }
.nv-wheel.is-spinning .nv-wheel-stage { cursor: default; }

/* linked responsible-gambling marks keep the plain look but gain a hover cue */
.nv-badges--rg a { display: inline-flex; line-height: 0; }
.nv-badges--rg a img { transition: opacity .15s ease; }
.nv-badges--rg a:hover img { opacity: 1; }

/* ---- Breadcrumbs ---------------------------------------------------------- */
.nv-crumbs { margin: 0 0 1.1rem; font-size: .82rem; }
.nv-crumbs ol {
	display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .55rem;
	list-style: none; margin: 0; padding: 0;
}
.nv-crumbs li { display: flex; align-items: center; gap: .55rem; }
.nv-crumbs li + li::before {
	content: "/"; color: var(--wp--preset--color--border);
}
.nv-crumbs a { color: var(--wp--preset--color--muted); text-decoration: none; }
.nv-crumbs a:hover { color: #fff; text-decoration: underline; }
.nv-crumbs [aria-current] { color: var(--wp--preset--color--muted); }

/* ---- 404 ------------------------------------------------------------------ */
.nv-404 { text-align: center; padding: clamp(1.5rem, 5vw, 3.5rem) 0 clamp(1rem, 3vw, 2rem); }
.nv-404-code {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(5rem, 18vw, 11rem); font-weight: 800; line-height: .9;
	background: linear-gradient(135deg, var(--wp--preset--color--primary), var(--wp--preset--color--accent));
	-webkit-background-clip: text; background-clip: text; color: transparent;
	opacity: .9;
}
.nv-404 h1 { margin: .4rem 0 .8rem; }
.nv-404 .nv-lead { margin-left: auto; margin-right: auto; max-width: 44rem; border-left: 0; padding-left: 0; }
.nv-404 .nv-center { display: flex; flex-wrap: wrap; gap: .7rem; justify-content: center; margin-top: 1.6rem; }
a.nv-usp { text-decoration: none; color: inherit; display: block; }
a.nv-usp:hover { border-color: rgba(255, 46, 143, .45); transform: translateY(-2px); }

/* ---- Mobile tap targets --------------------------------------------------- */
/* Core's nav toggle ships at 24px. Apple and Android both ask for ~44–48px,
   and this is the only way into the menu on a phone. */
/* Size only — never touch `display`. Core hides the open button on desktop with
   a display rule, and forcing display here puts a hamburger on wide screens. */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	width: 44px; height: 44px;
	align-items: center; justify-content: center;
	padding: 0;
}
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }

@media (max-width: 781px) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block; padding: .7rem 0; min-height: 44px;
	}
	.wp-block-navigation__responsive-container.is-menu-open .nv-header-cta { margin-top: .6rem; }
	.wp-block-navigation__responsive-container.is-menu-open .nv-header-cta .wp-block-button__link {
		display: block; text-align: center; padding: .85rem 1.4rem;
	}
}

/* ---- Related pages -------------------------------------------------------- */
.nv-rel {
	display: grid; gap: .8rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 1rem 0 0;
}
@media (max-width: 860px) { .nv-rel { grid-template-columns: 1fr; } }
.nv-rel-card {
	display: grid; grid-template-columns: 1fr auto; align-items: center;
	gap: .2rem 1rem;
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	padding: 1rem 1.15rem; text-decoration: none; color: inherit;
	transition: transform .16s ease, border-color .16s ease;
}
.nv-rel-card:hover { transform: translateY(-2px); border-color: rgba(255, 46, 143, .45); }
.nv-rel-card b { font-family: var(--wp--preset--font-family--heading); font-size: 1rem; }
.nv-rel-card span { grid-column: 1; font-size: .84rem; color: var(--wp--preset--color--muted); }
.nv-rel-card .nv-i { grid-row: 1 / span 2; grid-column: 2; width: 1.1rem; height: 1.1rem; color: var(--wp--preset--color--primary); }

/* ---- Consent banner ------------------------------------------------------- */
.nv-consent {
	position: fixed; inset: auto 0 0 0; z-index: 9999;
	display: flex; justify-content: center;
	padding: clamp(.6rem, 2vw, 1.2rem);
	background: linear-gradient(to top, rgba(8, 7, 20, .92), rgba(8, 7, 20, 0));
	animation: nv-consent-in .28s ease both;
}
@keyframes nv-consent-in { from { transform: translateY(14px); opacity: 0 } }
@media (prefers-reduced-motion: reduce) { .nv-consent { animation: none } }

.nv-consent-box {
	width: min(62rem, 100%);
	background: var(--wp--preset--color--surface);
	border: var(--nv-ring); border-radius: var(--nv-radius);
	box-shadow: 0 30px 70px -24px rgba(0, 0, 0, .9);
	padding: clamp(.9rem, 2.2vw, 1.25rem) clamp(1rem, 2.5vw, 1.4rem);
	max-height: 80vh; overflow-y: auto;
}
.nv-consent-h {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1rem, .95rem + .35vw, 1.15rem); font-weight: 800; color: #fff;
}
.nv-consent-tx { margin: 0; font-size: .84rem; line-height: 1.5; color: var(--wp--preset--color--muted); }
.nv-consent-tx a { color: var(--wp--preset--color--primary); }

/* An author `display` beats the UA rule behind [hidden], so the panel stayed
   open however hard the JS hid it. Collapsed is the default state. */
.nv-consent-prefs { margin-top: 1rem; display: grid; gap: .5rem; }
.nv-consent-prefs[hidden] { display: none; }
.nv-consent-cat {
	background: var(--wp--preset--color--base);
	border: var(--nv-ring); border-radius: var(--nv-radius-sm);
	padding: .55rem .8rem;
}
.nv-consent-cat label { display: flex; gap: .7rem; align-items: flex-start; cursor: pointer; }
.nv-consent-cat input { margin-top: .25rem; width: 1.05rem; height: 1.05rem; accent-color: var(--wp--preset--color--primary); flex: 0 0 auto; }
.nv-consent-cat input:disabled { opacity: .55; cursor: not-allowed; }
.nv-consent-cat b { display: block; font-size: .9rem; color: #fff; }
.nv-consent-cat b i { font-style: normal; font-weight: 500; color: var(--wp--preset--color--muted); font-size: .8rem; }
.nv-consent-cat em { display: block; margin-top: .15rem; font-style: normal; font-size: .8rem; line-height: 1.5; color: var(--wp--preset--color--muted); }

.nv-consent-acts { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; }

/* Wide screens get a single row: message left, actions right. */
@media (min-width: 900px) {
	.nv-consent-box { display: flex; align-items: center; gap: 1.6rem; }
	.nv-consent-head { flex: 1 1 auto; min-width: 0; }
	.nv-consent-acts { margin-top: 0; flex: 0 0 auto; flex-wrap: nowrap; }
	.nv-consent-acts .nv-btn { flex: 0 0 auto; white-space: nowrap; }
	.nv-consent-box.is-open { display: block; }
	.nv-consent-box.is-open .nv-consent-acts { margin-top: .8rem; }
}
.nv-consent-acts .nv-btn { flex: 1 1 10rem; justify-content: center; min-height: 44px; padding-block: .6rem; }
.nv-consent-link {
	flex: 0 0 auto; margin-left: auto;
	background: none; border: 0; cursor: pointer;
	font-family: inherit; font-size: .85rem; font-weight: 600;
	color: var(--wp--preset--color--muted); text-decoration: underline;
	padding: .6rem .3rem; min-height: 44px;
}
.nv-consent-link:hover { color: #fff; }
@media (max-width: 560px) {
	.nv-consent-acts .nv-btn { flex: 1 1 100%; }
	.nv-consent-link { margin-left: 0; width: 100%; text-align: center; }
}
.nv-foot-consent {
	display: inline-block; padding: .25rem 0;
	color: var(--wp--preset--color--muted); font-size: .88rem; text-decoration: none;
}
.nv-foot-consent:hover { color: #fff; text-decoration: underline; }
/* Reject must not read as the weaker option: same size, same solidity, same
   position weight — only the colour differs. */
.nv-consent-acts .nv-btn--ghost {
	background: var(--wp--preset--color--surface-2);
	border-color: rgba(255, 255, 255, .22);
	color: #fff;
}
.nv-consent-acts .nv-btn--ghost:hover { background: var(--wp--preset--color--border); }

/* 44px is the touch minimum; a mouse does not need it, so the bar gets a lighter
   button on wide screens. Must come last — the base rule above sets 44px. */
@media (min-width: 900px) {
	.nv-consent .nv-consent-acts .nv-btn {
		min-height: 34px; padding: .38rem 1rem; font-size: .82rem;
	}
	.nv-consent .nv-consent-link { min-height: 34px; padding: .3rem .2rem; font-size: .79rem; }
}

/* Promo artwork is clickable. The wrapper must not introduce a box of its own —
   the images carry their own width, margins and negative offsets. */
.nv-imglink { display: contents; }
.nv-imglink img { cursor: pointer; transition: filter .16s ease, transform .16s ease; }
.nv-imglink:hover img { filter: brightness(1.06); }
.nv-imglink:focus-visible img { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
