/* ==========================================================================
   Slots Madness brand stylesheet (slotsmadnesss.com)
   Light, editorial, high-impact US Vegas aesthetic.
   Scope: body.lv-slots-front.sm-shell
   ========================================================================== */

body.lv-slots-front.sm-shell {
	--sm-bg:           #FFF8F0;
	--sm-bg-soft:      #FDF0E4;
	--sm-bg-tint:      #FFECF3;
	--sm-bg-plum:      #F5ECFF;
	--sm-ink:          #0F0B2E;
	--sm-ink-dim:      #3F3A6B;
	--sm-muted:        #7A7593;
	--sm-primary:      #E11D74;
	--sm-primary-dark: #B91660;
	--sm-primary-soft: rgba(225, 29, 116, 0.10);
	--sm-secondary:    #F59E0B;
	--sm-accent:       #7C3AED;
	--sm-success:      #10B981;
	--sm-border:       rgba(15, 11, 46, 0.08);
	--sm-border-str:   rgba(15, 11, 46, 0.14);
	--sm-radius-lg:    1.25rem;
	--sm-radius:       0.9rem;
	--sm-radius-sm:    0.55rem;
	--sm-shadow-sm:    0 2px 8px rgba(15, 11, 46, 0.04);
	--sm-shadow-md:    0 10px 28px rgba(15, 11, 46, 0.08);
	--sm-shadow-lg:    0 24px 60px rgba(15, 11, 46, 0.14);
	--sm-max:          1200px;

	background: var(--sm-bg);
	color: var(--sm-ink);
	font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.lv-slots-front.sm-shell .sm-main {
	color: var(--sm-ink);
	line-height: 1.6;
	font-size: 1rem;
	overflow-x: clip;
}

/* Header/footer tweaks inside SM shell --------------------------------------- */
/* White header override */
body.lv-slots-front.sm-shell header.sm-header {
	background: rgba(255, 255, 255, 0.92) !important;
	border-bottom: 1px solid var(--sm-border) !important;
	box-shadow: 0 1px 0 rgba(15, 11, 46, 0.04);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
body.lv-slots-front.sm-shell header.sm-header a {
	color: var(--sm-ink) !important;
}
body.lv-slots-front.sm-shell header.sm-header a:hover,
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop a:hover,
body.lv-slots-front.sm-shell header.sm-header #lv-nav-mobile a:hover {
	color: var(--sm-primary) !important;
}
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop,
body.lv-slots-front.sm-shell header.sm-header #lv-nav-mobile {
	color: var(--sm-ink) !important;
}
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop > li > a,
body.lv-slots-front.sm-shell header.sm-header #lv-nav-mobile > li > a {
	color: var(--sm-ink) !important;
	font-weight: 700;
	letter-spacing: .01em;
	position: relative;
	padding-block: .35rem;
}
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop > li > a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: linear-gradient(90deg, var(--sm-primary), var(--sm-secondary));
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .28s ease;
}
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop > li > a:hover::after,
body.lv-slots-front.sm-shell header.sm-header #lv-nav-desktop > li.current-menu-item > a::after {
	transform: scaleX(1);
}
body.lv-slots-front.sm-shell header.sm-header #nav-toggle {
	color: var(--sm-ink) !important;
	border-color: var(--sm-border-str) !important;
}
body.lv-slots-front.sm-shell header.sm-header #nav-toggle:hover {
	border-color: var(--sm-primary) !important;
	color: var(--sm-primary) !important;
}
body.lv-slots-front.sm-shell header.sm-header #mobile-nav {
	background: #fff !important;
	border-top-color: var(--sm-border) !important;
}

body.lv-slots-front.sm-shell .lv-header-cta {
	background-image: linear-gradient(135deg, #E11D74 0%, #F59E0B 100%) !important;
	box-shadow: 0 8px 20px rgba(225, 29, 116, 0.25) !important;
	color: #fff !important;
}
body.lv-slots-front.sm-shell .lv-header-cta:hover {
	background-image: linear-gradient(135deg, #F04690 0%, #FFB020 100%) !important;
	color: #fff !important;
}
body.lv-slots-front.sm-shell .lv-footer-nav a:hover {
	color: #F8B4D4 !important;
}

/* Brand wordmark next to logo -------------------------------------------------- */
.sm-wordmark {
	display: inline-flex;
	align-items: baseline;
	gap: .08em;
	font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	font-size: 1.18rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: -.015em;
	text-decoration: none !important;
	color: var(--sm-ink) !important;
	padding: .2rem .1rem;
	position: relative;
	white-space: nowrap;
}
.sm-wordmark__a {
	color: var(--sm-ink);
	text-transform: lowercase;
}
.sm-wordmark__dot {
	display: inline-block;
	width: .32em;
	height: .32em;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	margin: 0 .14em .06em;
	align-self: center;
	box-shadow: 0 0 0 3px rgba(225, 29, 116, 0.08);
	color: transparent;
	font-size: 0;
}
.sm-wordmark__b {
	background: linear-gradient(135deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-style: italic;
	text-transform: lowercase;
	padding-right: .06em;
}
.sm-wordmark:hover .sm-wordmark__dot {
	box-shadow: 0 0 0 4px rgba(225, 29, 116, 0.16);
}
@media (max-width: 640px) {
	.sm-wordmark { font-size: 1.02rem; }
	.sm-wordmark__dot { margin: 0 .12em .05em; }
}
@media (max-width: 420px) {
	.sm-wordmark { display: none; }
}

/* Containers & sections ------------------------------------------------------ */
.sm-wrap { max-width: var(--sm-max); margin-inline: auto; padding-inline: clamp(1.1rem, 3vw, 2rem); }
.sm-section { padding-block: clamp(2.8rem, 5.5vw, 4.8rem); position: relative; }
.sm-section--tint { background: var(--sm-bg-soft); }
.sm-section--plum { background: linear-gradient(180deg, var(--sm-bg-plum) 0%, var(--sm-bg) 100%); }
.sm-section--pink { background: linear-gradient(180deg, var(--sm-bg-tint) 0%, var(--sm-bg) 100%); }

.sm-section__head { max-width: 820px; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; }
.sm-section__kicker {
	display: inline-block;
	padding: .35rem 1rem;
	border-radius: 999px;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	font-weight: 700;
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.sm-section__title {
	font-size: clamp(1.45rem, 3vw, 2.1rem);
	line-height: 1.18;
	margin: 0 0 .75rem;
	font-weight: 800;
	letter-spacing: -.018em;
	color: var(--sm-ink);
}
.sm-section__lead { color: var(--sm-ink-dim); font-size: .97rem; margin: 0; line-height: 1.6; }
.sm-section__lead strong { color: var(--sm-ink); }

/* Buttons -------------------------------------------------------------------- */
.sm-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .82rem 1.4rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: .88rem;
	line-height: 1;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
	white-space: nowrap;
	border: 1.5px solid transparent;
	cursor: pointer;
}
.sm-btn--primary {
	background-image: linear-gradient(135deg, #E11D74 0%, #F59E0B 100%);
	color: #fff;
	box-shadow: 0 14px 30px rgba(225, 29, 116, 0.25);
}
.sm-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(225, 29, 116, 0.34); }
.sm-btn--secondary {
	background: #fff;
	color: var(--sm-ink);
	border-color: var(--sm-border-str);
	box-shadow: var(--sm-shadow-sm);
}
.sm-btn--secondary:hover { border-color: var(--sm-primary); color: var(--sm-primary); transform: translateY(-2px); }
.sm-btn--ghost {
	background: transparent;
	color: var(--sm-ink);
	border-color: var(--sm-border-str);
}
.sm-btn--ghost:hover { background: var(--sm-ink); color: #fff; border-color: var(--sm-ink); }

/* Pill utility --------------------------------------------------------------- */
.sm-pill {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .35rem .75rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--sm-border);
	font-size: .75rem;
	font-weight: 600;
	color: var(--sm-ink-dim);
	letter-spacing: .02em;
}
.sm-pill--pink { background: var(--sm-primary-soft); color: var(--sm-primary); border-color: transparent; }
.sm-pill--gold { background: rgba(245, 158, 11, 0.12); color: #B15606; border-color: transparent; }
.sm-pill--purple { background: rgba(124, 58, 237, 0.10); color: var(--sm-accent); border-color: transparent; }
.sm-pill--green { background: rgba(16, 185, 129, 0.12); color: #047857; border-color: transparent; }

/* =====  HERO  ============================================================== */
.sm-hero {
	position: relative;
	padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(3rem, 6vw, 5rem);
	background:
		radial-gradient(60% 55% at 82% 15%, rgba(245, 158, 11, 0.16) 0%, transparent 70%),
		radial-gradient(120% 80% at 50% 0%, rgba(225, 29, 116, 0.12) 0%, transparent 60%),
		linear-gradient(180deg, #FFF8F0 0%, #FFE8ED 100%);
	overflow: hidden;
	border-bottom: 1px solid var(--sm-border);
}
.sm-hero::before,
.sm-hero::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(1px);
	pointer-events: none;
}
.sm-hero::before {
	width: 10px; height: 10px;
	top: 18%; left: 8%;
	background: var(--sm-primary);
	box-shadow:
		140px 40px 0 -2px var(--sm-secondary),
		320px -30px 0 -3px var(--sm-primary),
		560px 80px 0 -3px var(--sm-secondary),
		820px -10px 0 -4px var(--sm-primary);
	opacity: .4;
}
.sm-hero::after {
	width: 240px; height: 240px;
	right: -80px; bottom: -80px;
	background: radial-gradient(circle, var(--sm-primary) 0%, var(--sm-secondary) 60%, transparent 100%);
	opacity: .08;
	filter: blur(40px);
}
.sm-hero__inner {
	position: relative;
	max-width: var(--sm-max);
	margin: 0 auto;
	padding-inline: clamp(1.1rem, 3vw, 2rem);
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
@media (max-width: 900px) { .sm-hero__inner { grid-template-columns: 1fr; text-align: center; } }

.sm-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .95rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--sm-border-str);
	color: var(--sm-primary);
	font-weight: 700;
	font-size: .72rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	margin-bottom: 1.35rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-hero__kicker::before {
	content: "";
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--sm-primary);
	box-shadow: 0 0 0 3px rgba(225, 29, 116, 0.18);
}
.sm-hero__title {
	font-size: clamp(1.9rem, 4.2vw, 3.1rem);
	line-height: 1.08;
	letter-spacing: -.022em;
	font-weight: 900;
	color: var(--sm-ink);
	margin: 0 0 1rem;
}
.sm-hero__title em {
	font-style: normal;
	background: linear-gradient(120deg, #E11D74 0%, #F59E0B 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.sm-hero__title .sm-brand { font-style: normal; color: var(--sm-primary); }

.sm-hero__lead {
	font-size: clamp(.95rem, 1.1vw, 1.05rem);
	color: var(--sm-ink-dim);
	max-width: 580px;
	margin: 0 0 1.75rem;
	line-height: 1.6;
}
.sm-hero__lead .sm-domain { color: var(--sm-ink); font-weight: 700; }
@media (max-width: 900px) { .sm-hero__lead { margin-inline: auto; } }

.sm-hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2.2rem; }
@media (max-width: 900px) { .sm-hero__ctas { justify-content: center; } }

.sm-hero__trust {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: .65rem;
}
.sm-hero__trust-item {
	display: flex; align-items: center; gap: .5rem;
	padding: .65rem .85rem;
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-sm);
	backdrop-filter: blur(6px);
	font-size: .82rem;
	font-weight: 600;
	color: var(--sm-ink);
}
.sm-hero__trust-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--sm-success);
	box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.18);
	flex: none;
}

/* Hero visual card (right side) */
.sm-hero__visual {
	position: relative;
	border-radius: var(--sm-radius-lg);
	background: #fff;
	padding: .85rem;
	box-shadow: var(--sm-shadow-lg);
	border: 1px solid var(--sm-border);
}
.sm-hero__banner {
	position: relative;
	border-radius: var(--sm-radius);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #1a1026;
}
.sm-hero__banner img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.sm-hero__banner::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.32) 100%);
	pointer-events: none;
}
.sm-hero__banner-tag {
	position: absolute;
	top: .85rem; left: .85rem;
	z-index: 2;
	padding: .32rem .7rem;
	background: rgba(15, 11, 46, 0.78);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: #fff;
	font-size: .62rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .14em;
	border-radius: 4px;
}
.sm-hero__visual::before {
	content: "";
	position: absolute;
	inset: -24px -24px auto auto;
	width: 120px; height: 120px;
	border-radius: 50%;
	background: linear-gradient(135deg, #E11D74 0%, #F59E0B 100%);
	z-index: -1;
	filter: blur(28px);
	opacity: .28;
}
.sm-hero__reels {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .6rem;
	background: linear-gradient(180deg, #FFF8F0 0%, #FFEEDB 100%);
	border-radius: var(--sm-radius);
	padding: 1rem;
}
.sm-hero__reel {
	aspect-ratio: 3 / 4;
	border-radius: .6rem;
	background: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.65rem;
	font-weight: 900;
	box-shadow: inset 0 0 0 1px var(--sm-border);
	color: var(--sm-primary);
}
.sm-hero__reel:nth-child(2) { color: var(--sm-secondary); }
.sm-hero__reel:nth-child(3) { color: var(--sm-primary); }
.sm-hero__reel:nth-child(4) { color: var(--sm-secondary); }
.sm-hero__reel:nth-child(5) { color: var(--sm-primary); background: linear-gradient(135deg, #FFE0EC, #FFF8F0); }
.sm-hero__reel:nth-child(6) { color: var(--sm-secondary); }
.sm-hero__reel:nth-child(7) { color: var(--sm-primary); }
.sm-hero__reel:nth-child(8) { color: var(--sm-secondary); }
.sm-hero__reel:nth-child(9) { color: var(--sm-primary); }

.sm-hero__stage {
	margin-top: .85rem;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	column-gap: 1rem;
	row-gap: .15rem;
	padding: .85rem 1.05rem;
	background: var(--sm-ink);
	border-radius: .7rem;
	color: #fff;
}
.sm-hero__stage-lab {
	grid-column: 1;
	grid-row: 1;
	font-size: .6rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #F8B4D4;
	font-weight: 700;
}
.sm-hero__stage-val {
	grid-column: 1;
	grid-row: 2;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: .02em;
}
.sm-hero__stage-sub {
	grid-column: 2;
	grid-row: 1 / span 2;
	font-size: .85rem;
	font-weight: 700;
	color: var(--sm-secondary);
	white-space: nowrap;
}

/* =====  TRUST BAR  ========================================================= */
.sm-trustbar { padding-block: clamp(2rem, 4vw, 2.5rem); border-bottom: 1px solid var(--sm-border); background: #fff; }
.sm-trustbar__grid {
	max-width: var(--sm-max);
	margin: 0 auto;
	padding-inline: clamp(1.1rem, 3vw, 2rem);
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.25rem;
	align-items: center;
}
@media (max-width: 900px) { .sm-trustbar__grid { grid-template-columns: repeat(2, 1fr); } }
.sm-trustbar__item {
	display: flex; align-items: flex-start; gap: .75rem;
	font-size: .82rem;
	color: var(--sm-ink-dim);
	line-height: 1.45;
}
.sm-trustbar__icon {
	width: 34px; height: 34px; border-radius: 10px;
	display: grid; place-items: center;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	flex: none;
	font-size: 1.05rem;
	font-weight: 900;
}
.sm-trustbar__item strong { color: var(--sm-ink); display: block; margin-bottom: .15rem; font-size: .85rem; }

/* =====  FEATURE GRID (Why SM) ============================================== */
.sm-feature-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
@media (max-width: 1100px) { .sm-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-feature-grid { grid-template-columns: 1fr; } }

.sm-feature {
	position: relative;
	padding: 1.75rem 1.5rem 1.65rem;
	background: #fff;
	border-radius: var(--sm-radius);
	border: 1px solid var(--sm-border);
	box-shadow: var(--sm-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	overflow: hidden;
}
.sm-feature::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
}

.sm-feature:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); border-color: var(--sm-border-str); }
.sm-feature__icon {
	width: 48px; height: 48px; border-radius: 12px;
	display: grid; place-items: center;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	font-size: 1.25rem; font-weight: 900;
	margin-bottom: 1rem;
}
.sm-feature:nth-child(2) .sm-feature__icon { background: rgba(245, 158, 11, 0.12); color: #B15606; }
.sm-feature:nth-child(3) .sm-feature__icon { background: var(--sm-primary-soft); color: var(--sm-primary); }
.sm-feature:nth-child(4) .sm-feature__icon { background: rgba(245, 158, 11, 0.12); color: #B15606; }

.sm-feature__title { font-size: 1.02rem; font-weight: 800; margin: 0 0 .5rem; color: var(--sm-ink); }
.sm-feature__body { font-size: .9rem; color: var(--sm-ink-dim); margin: 0 0 .9rem; line-height: 1.55; }
.sm-feature__meta { font-size: .76rem; font-weight: 700; color: var(--sm-primary); letter-spacing: .02em; }

/* =====  SLOT CARDS  ======================================================== */
.sm-slot-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
@media (max-width: 1100px) { .sm-slot-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-slot-grid { grid-template-columns: 1fr; } }

.sm-slot {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease;
}
.sm-slot:hover { transform: translateY(-5px); box-shadow: var(--sm-shadow-md); }

.sm-slot__art {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #1a1026;
}
.sm-slot__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s ease;
}
.sm-slot:hover .sm-slot__img { transform: scale(1.04); }
.sm-slot__art::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(17,24,39,0) 55%, rgba(17,24,39,.35) 100%);
	z-index: 1;
	pointer-events: none;
}
.sm-slot__badge {
	position: absolute;
	top: .75rem;
	left: .75rem;
	z-index: 2;
	padding: .28rem .6rem;
	background: rgba(255,255,255,.95);
	color: var(--sm-ink);
	font-size: .62rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	border-radius: 4px;
	box-shadow: 0 2px 6px rgba(0,0,0,.15);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.sm-slot__body {
	padding: 1.05rem 1.15rem 1.2rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: .55rem;
}
.sm-slot__studio {
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-weight: 700;
	color: var(--sm-muted);
	margin: 0;
}
.sm-slot__title {
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--sm-ink);
	margin: 0;
	line-height: 1.25;
	letter-spacing: -.005em;
}
.sm-slot__pitch {
	font-size: .86rem;
	color: var(--sm-ink-dim);
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sm-slot__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--sm-border);
	padding-top: .8rem;
	gap: .5rem;
	margin-top: auto;
}
.sm-slot__stat-lab { display: block; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sm-muted); font-weight: 700; margin-bottom: .2rem; }
.sm-slot__stat-val { display: block; font-size: .9rem; font-weight: 800; color: var(--sm-ink); }

/* =====  BONUS CARDS  ======================================================= */
.sm-bonus-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
@media (max-width: 1100px) { .sm-bonus-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-bonus-grid { grid-template-columns: 1fr; } }

.sm-bonus {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.7rem 1.5rem 1.6rem;
	position: relative;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease;
	overflow: hidden;
}
.sm-bonus:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); }
.sm-bonus__ribbon {
	position: absolute; top: 1.1rem; right: -2rem;
	background: var(--sm-primary);
	color: #fff;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .25rem 2.1rem;
	transform: rotate(35deg);
}
.sm-bonus:nth-child(2) .sm-bonus__ribbon { background: var(--sm-secondary); }
.sm-bonus:nth-child(3) .sm-bonus__ribbon { background: var(--sm-primary); }
.sm-bonus:nth-child(4) .sm-bonus__ribbon { background: var(--sm-secondary); }

.sm-bonus__type { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; color: var(--sm-muted); font-weight: 800; margin: 0 0 .45rem; }
.sm-bonus__title {
	font-size: 1.3rem;
	font-weight: 900;
	letter-spacing: -.01em;
	margin: 0 0 .65rem;
	color: var(--sm-ink);
	background: linear-gradient(120deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1.25;
}
.sm-bonus__desc { font-size: .9rem; color: var(--sm-ink-dim); margin: 0 0 1.15rem; line-height: 1.55; }

.sm-bonus__code {
	display: flex; align-items: center; justify-content: space-between;
	padding: .7rem .9rem;
	background: var(--sm-ink);
	color: #fff;
	border-radius: .6rem;
	gap: .75rem;
	margin-bottom: 1rem;
}
.sm-bonus__code-lab { font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: #F8B4D4; font-weight: 700; }
.sm-bonus__code-val {
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: .04em;
	color: var(--sm-secondary);
}
.sm-bonus__meta { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .78rem; color: var(--sm-muted); }
.sm-bonus__meta span::before { content: " "; color: var(--sm-primary); font-weight: 800; }
.sm-bonus__meta span:first-child::before { content: ""; }

/* =====  STEPS  ============================================================= */
.sm-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	counter-reset: sm-step;
}
@media (max-width: 1100px) { .sm-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-steps { grid-template-columns: 1fr; } }
.sm-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 2.3rem 1.5rem 1.6rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-step::before {
	counter-increment: sm-step;
	content: "0" counter(sm-step);
	position: absolute; top: -1.1rem; left: 1.35rem;
	width: 54px; height: 54px;
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	color: #fff;
	font-size: 1.05rem;
	font-weight: 900;
	display: grid; place-items: center;
	border-radius: 14px;
	box-shadow: 0 10px 20px rgba(225, 29, 116, 0.28);
}
.sm-step__title { font-size: 1.05rem; font-weight: 800; margin: 0 0 .55rem; color: var(--sm-ink); }
.sm-step__body { font-size: .9rem; color: var(--sm-ink-dim); margin: 0; }

/* =====  EXPERT INSIGHTS (Editorial) ========================================= */
.sm-insight-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 1000px) { .sm-insight-grid { grid-template-columns: 1fr; } }
.sm-insight {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
	display: flex; flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}
.sm-insight:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); }
.sm-insight__banner {
	height: 160px;
	background: linear-gradient(135deg, var(--sm-bg-tint), var(--sm-bg-soft));
	display: flex; align-items: center; justify-content: center;
	font-size: 2.2rem;
	font-weight: 900;
	color: var(--sm-primary);
	position: relative;
	overflow: hidden;
}
.sm-insight__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
	display: block;
}
.sm-insight__banner::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.42) 100%);
	z-index: 1;
}
.sm-insight__tag {
	position: absolute;
	top: .9rem; left: .9rem;
	z-index: 2;
	padding: .32rem .75rem;
	background: rgba(255,255,255,0.94);
	color: var(--sm-ink);
	font-size: .68rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	border-radius: 999px;
}
.sm-insight__body { padding: 1.4rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: .8rem; flex: 1; }
.sm-insight__meta { display: flex; gap: .6rem; font-size: .72rem; color: var(--sm-muted); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.sm-insight__title { font-size: 1.15rem; font-weight: 800; line-height: 1.3; margin: 0; color: var(--sm-ink); }
.sm-insight__excerpt { font-size: .92rem; color: var(--sm-ink-dim); margin: 0; }
.sm-insight__author {
	display: flex; align-items: center; gap: .65rem;
	margin-top: auto;
	padding-top: .95rem;
	border-top: 1px dashed var(--sm-border-str);
}
.sm-insight__avatar {
	width: 38px; height: 38px; border-radius: 50%;
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	color: #fff;
	display: grid; place-items: center;
	font-weight: 900; font-size: .85rem;
}
.sm-insight__author-name { font-size: .85rem; font-weight: 700; color: var(--sm-ink); margin: 0; }
.sm-insight__author-role { font-size: .74rem; color: var(--sm-muted); margin: 0; }

/* =====  STATS  ============================================================= */
.sm-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
@media (max-width: 900px) { .sm-stats { grid-template-columns: repeat(2, 1fr); } }
.sm-stat {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 2rem 1.5rem;
	text-align: center;
	box-shadow: var(--sm-shadow-sm);
	position: relative;
	overflow: hidden;
}
.sm-stat::after {
	content: "";
	position: absolute; right: -40px; top: -40px;
	width: 120px; height: 120px;
	border-radius: 50%;
	background: radial-gradient(circle, var(--sm-primary-soft) 0%, transparent 70%);
}
.sm-stat__num {
	font-size: clamp(1.9rem, 3vw, 2.5rem);
	font-weight: 900;
	line-height: 1;
	background: linear-gradient(120deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	display: block;
	margin-bottom: .4rem;
	letter-spacing: -.02em;
}
.sm-stat__label { font-size: .82rem; font-weight: 600; color: var(--sm-ink-dim); }

/* =====  TESTIMONIALS  ====================================================== */
.sm-testimonials {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 1000px) { .sm-testimonials { grid-template-columns: 1fr; } }
.sm-quote {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 2rem 1.75rem 1.75rem;
	position: relative;
	box-shadow: var(--sm-shadow-sm);
}
.sm-quote::before {
	content: "";
	position: absolute; top: -6px; left: 1.25rem;
	font-size: 3.5rem;
	font-weight: 900;
	font-family: Georgia, serif;
	color: var(--sm-primary);
	opacity: .5;
	line-height: 1;
}
.sm-quote__text { font-size: .95rem; color: var(--sm-ink-dim); margin: 0 0 1.4rem; line-height: 1.6; font-style: italic; }
.sm-quote__who { display: flex; align-items: center; gap: .8rem; }
.sm-quote__avatar {
	width: 42px; height: 42px; border-radius: 50%;
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	color: #fff;
	display: grid; place-items: center;
	font-weight: 900;
	font-size: .9rem;
}
.sm-quote__name { font-size: .92rem; font-weight: 800; margin: 0; color: var(--sm-ink); }
.sm-quote__meta { font-size: .78rem; color: var(--sm-muted); margin: 0; }
.sm-quote__stars { color: var(--sm-secondary); font-size: .85rem; letter-spacing: .1em; margin-top: .8rem; }

/* =====  RESPONSIBLE GAMBLING NOTICE  ======================================= */
.sm-rg {
	background: linear-gradient(135deg, #FFF3E0 0%, #FEDFE6 100%);
	border: 1px solid rgba(225, 29, 116, 0.18);
	border-radius: var(--sm-radius-lg);
	padding: 2rem 2.2rem;
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 1.5rem;
	align-items: center;
}
@media (max-width: 800px) { .sm-rg { grid-template-columns: 1fr; text-align: center; } }
.sm-rg__badge {
	width: 64px; height: 64px;
	background: #fff;
	color: var(--sm-primary);
	border-radius: 16px;
	display: grid; place-items: center;
	font-size: 1.5rem;
	font-weight: 900;
	box-shadow: var(--sm-shadow-sm);
}
@media (max-width: 800px) { .sm-rg__badge { margin: 0 auto; } }
.sm-rg__title { font-size: 1.25rem; font-weight: 800; margin: 0 0 .45rem; color: var(--sm-ink); }
.sm-rg__body { font-size: .94rem; color: var(--sm-ink-dim); margin: 0; }
.sm-rg__body a { color: var(--sm-primary); font-weight: 700; text-decoration: underline; }
.sm-rg__actions { display: flex; flex-direction: column; gap: .4rem; }
@media (max-width: 800px) { .sm-rg__actions { flex-direction: row; flex-wrap: wrap; justify-content: center; } }

/* =====  FAQ  =============================================================== */
.sm-faq { max-width: 920px; margin: 0 auto; display: flex; flex-direction: column; gap: .85rem; }
.sm-faq__item {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
	transition: border-color .2s ease;
}
.sm-faq__item[open] { border-color: var(--sm-primary); }
.sm-faq__q {
	list-style: none;
	cursor: pointer;
	padding: 1.2rem 1.5rem;
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--sm-ink);
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem;
	position: relative;
}
.sm-faq__q::-webkit-details-marker { display: none; }
.sm-faq__q::after {
	content: "+";
	font-size: 1.6rem;
	font-weight: 300;
	color: var(--sm-primary);
	line-height: 1;
	flex: none;
	transition: transform .25s ease;
}
.sm-faq__item[open] .sm-faq__q::after { content: "?"; transform: rotate(0deg); }
.sm-faq__a {
	padding: 0 1.5rem 1.3rem;
	font-size: .94rem;
	color: var(--sm-ink-dim);
	line-height: 1.65;
	margin: 0;
}
.sm-faq__a strong { color: var(--sm-ink); }

/* =====  CLOSING CTA BAND  ================================================== */
.sm-closing {
	position: relative;
	padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1.5rem, 4vw, 3rem);
	background:
		radial-gradient(60% 80% at 20% 10%, rgba(245, 158, 11, 0.28) 0%, transparent 70%),
		radial-gradient(50% 60% at 90% 90%, rgba(124, 58, 237, 0.28) 0%, transparent 70%),
		linear-gradient(135deg, #E11D74 0%, #B91660 100%);
	color: #fff;
	border-radius: var(--sm-radius-lg);
	text-align: center;
	overflow: hidden;
	max-width: var(--sm-max);
	margin: 0 auto;
}
.sm-closing__kicker {
	display: inline-block;
	padding: .35rem .95rem;
	border-radius: 999px;
	background: rgba(255,255,255,0.18);
	color: #fff;
	font-weight: 700;
	font-size: .72rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	margin-bottom: 1.1rem;
}
.sm-closing__title { font-size: clamp(1.55rem, 3.2vw, 2.2rem); font-weight: 900; letter-spacing: -.02em; margin: 0 0 .85rem; color: #fff; line-height: 1.2; }
.sm-closing__lead { font-size: 1.05rem; color: #FFE0EC; max-width: 620px; margin: 0 auto 2rem; }
.sm-closing__lead .sm-domain { color: #fff; font-weight: 700; }
.sm-closing__ctas { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }
.sm-closing .sm-btn--primary {
	background: #fff;
	color: var(--sm-primary);
	box-shadow: 0 14px 30px rgba(0,0,0,0.2);
}
.sm-closing .sm-btn--primary:hover { background: #FFF8F0; color: var(--sm-primary-dark); }
.sm-closing .sm-btn--ghost {
	color: #fff;
	border-color: rgba(255,255,255,0.45);
}
.sm-closing .sm-btn--ghost:hover { background: rgba(255,255,255,0.12); color: #fff; border-color: #fff; }

/* Screen reader ------------------------------------------------------------- */
.sm-sr { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }


/* ==========================================================================
   Sub-page components (Slot / Bonus / Review / Legal)
   ========================================================================== */

/* Breadcrumbs --------------------------------------------------------------- */
.sm-crumbs {
	display: flex; flex-wrap: wrap; align-items: center; gap: .4rem;
	font-size: .78rem;
	color: var(--sm-muted);
	margin-bottom: 1.1rem;
}
.sm-crumbs a { color: var(--sm-ink-dim); text-decoration: none; font-weight: 600; transition: color .15s ease; }
.sm-crumbs a:hover { color: var(--sm-primary); }
.sm-crumbs__sep { color: var(--sm-muted); opacity: .6; }
.sm-crumbs__current { color: var(--sm-ink); font-weight: 700; }

/* Page hero (compact, for sub-pages) --------------------------------------- */
.sm-page-hero {
	position: relative;
	padding: clamp(2.4rem, 5vw, 3.6rem) 0 clamp(2rem, 4vw, 3rem);
	background:
		radial-gradient(55% 55% at 90% 10%, rgba(245, 158, 11, 0.14) 0%, transparent 70%),
		radial-gradient(55% 55% at 10% 95%, rgba(225, 29, 116, 0.10) 0%, transparent 70%),
		linear-gradient(180deg, #FFF8F0 0%, #FFF0E0 100%);
	border-bottom: 1px solid var(--sm-border);
	overflow: hidden;
}
.sm-page-hero__inner {
	max-width: var(--sm-max);
	margin: 0 auto;
	padding-inline: clamp(1.1rem, 3vw, 2rem);
	position: relative;
	z-index: 2;
}
.sm-page-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .32rem .9rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--sm-border-str);
	color: var(--sm-primary);
	font-weight: 700;
	font-size: .7rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	margin-bottom: 1.2rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-page-hero__kicker::before {
	content: "";
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--sm-primary);
	box-shadow: 0 0 0 3px rgba(225, 29, 116, 0.18);
}
.sm-page-hero__title {
	font-size: clamp(1.65rem, 3.4vw, 2.5rem);
	line-height: 1.15;
	letter-spacing: -.02em;
	font-weight: 900;
	color: var(--sm-ink);
	margin: 0 0 .9rem;
	max-width: 780px;
}
.sm-page-hero__title em {
	font-style: normal;
	background: linear-gradient(120deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.sm-page-hero__lead {
	font-size: clamp(.93rem, 1.05vw, 1rem);
	color: var(--sm-ink-dim);
	max-width: 700px;
	margin: 0 0 1.6rem;
	line-height: 1.6;
}
.sm-page-hero__lead strong { color: var(--sm-ink); }
.sm-page-hero__ctas { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 1.8rem; }
.sm-page-hero__meta {
	display: flex; flex-wrap: wrap; gap: 1.3rem;
	font-size: .82rem; color: var(--sm-ink-dim);
	padding-top: 1.3rem;
	border-top: 1px dashed var(--sm-border-str);
}
.sm-page-hero__meta strong { color: var(--sm-ink); font-weight: 800; }

/* Compact inline stats strip ----------------------------------------------- */
.sm-minibar {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.25rem 1.5rem;
	box-shadow: var(--sm-shadow-sm);
}
@media (max-width: 800px) { .sm-minibar { grid-template-columns: repeat(2, 1fr); } }
.sm-minibar__cell { display: flex; flex-direction: column; gap: .2rem; }
.sm-minibar__cell + .sm-minibar__cell { border-left: 1px solid var(--sm-border); padding-left: 1rem; }
@media (max-width: 800px) {
	.sm-minibar__cell:nth-child(odd) + .sm-minibar__cell { border-left: 1px solid var(--sm-border); padding-left: 1rem; }
	.sm-minibar__cell:nth-child(3) { border-left: none; padding-left: 0; border-top: 1px solid var(--sm-border); padding-top: .8rem; margin-top: .4rem; }
	.sm-minibar__cell:nth-child(4) { border-top: 1px solid var(--sm-border); padding-top: .8rem; margin-top: .4rem; }
}
.sm-minibar__num {
	font-size: 1.35rem;
	font-weight: 900;
	line-height: 1;
	background: linear-gradient(120deg, var(--sm-primary), var(--sm-secondary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	letter-spacing: -.01em;
}
.sm-minibar__lab { font-size: .74rem; text-transform: uppercase; letter-spacing: .14em; color: var(--sm-muted); font-weight: 700; }

/* Chip / pill navigation --------------------------------------------------- */
.sm-chips {
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: .55rem;
	margin-bottom: 1rem;
}
.sm-chip {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .62rem 1.05rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--sm-border-str);
	color: var(--sm-ink);
	font-weight: 700;
	font-size: .85rem;
	text-decoration: none;
	transition: all .18s ease;
	cursor: pointer;
}
.sm-chip:hover { border-color: var(--sm-primary); color: var(--sm-primary); transform: translateY(-2px); box-shadow: var(--sm-shadow-sm); }
.sm-chip--active {
	background: linear-gradient(135deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	color: #fff;
	border-color: transparent;
	box-shadow: 0 10px 22px rgba(225, 29, 116, 0.28);
}
.sm-chip--active:hover { color: #fff; }
.sm-chip__count {
	display: inline-flex;
	min-width: 28px; height: 22px;
	padding: 0 .45rem;
	border-radius: 999px;
	background: rgba(15, 11, 46, 0.08);
	font-size: .72rem;
	font-weight: 800;
	align-items: center; justify-content: center;
}
.sm-chip--active .sm-chip__count { background: rgba(255,255,255,0.2); color: #fff; }

/* Featured Editor Picks (3 wide, more detail) ----------------------------- */
.sm-featured-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 1000px) { .sm-featured-grid { grid-template-columns: 1fr; } }
.sm-featured {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-lg);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
	display: flex; flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}
.sm-featured:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); }
.sm-featured__art {
	aspect-ratio: 16 / 9;
	display: flex; align-items: center; justify-content: center;
	color: #fff;
	font-size: 1.9rem;
	font-weight: 900;
	letter-spacing: -.01em;
	position: relative;
	padding: 1.8rem 1.4rem;
	text-align: center;
	line-height: 1.15;
}
.sm-featured__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
	display: block;
}
.sm-featured__art::before {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.55) 100%),
		radial-gradient(60% 60% at 20% 20%, rgba(255,255,255,0.18) 0%, transparent 70%);
	z-index: 1;
}
.sm-featured__art span { position: relative; z-index: 2; text-shadow: 0 3px 12px rgba(0,0,0,0.45); }
.sm-featured__rank {
	position: absolute; top: 1rem; left: 1rem;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-size: 1rem;
	font-weight: 900;
	z-index: 3;
}
.sm-featured__badge {
	position: absolute; top: 1rem; right: 1rem;
	padding: .35rem .8rem;
	background: rgba(0,0,0,0.45);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	border-radius: 999px;
	backdrop-filter: blur(8px);
	z-index: 3;
}
.sm-featured--1 .sm-featured__art { background: linear-gradient(135deg, #E11D74 0%, #F59E0B 100%); }
.sm-featured--2 .sm-featured__art { background: linear-gradient(135deg, #F59E0B 0%, #E11D74 100%); }
.sm-featured--3 .sm-featured__art { background: linear-gradient(135deg, #111827 0%, #E11D74 100%); }

.sm-featured__body { padding: 1.4rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: .9rem; flex: 1; }
.sm-featured__studio { font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; color: var(--sm-muted); font-weight: 800; }
.sm-featured__pitch { font-size: .96rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.55; }
.sm-featured__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px dashed var(--sm-border-str);
	border-bottom: 1px dashed var(--sm-border-str);
	padding: .9rem 0;
	gap: .5rem;
}
.sm-featured__stats div { text-align: center; }
.sm-featured__stat-lab { display: block; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sm-muted); font-weight: 700; margin-bottom: .25rem; }
.sm-featured__stat-val { display: block; font-size: 1rem; font-weight: 800; color: var(--sm-ink); }
.sm-featured__actions { display: flex; gap: .5rem; margin-top: auto; }
.sm-featured__actions .sm-btn { flex: 1; justify-content: center; padding: .75rem .8rem; font-size: .85rem; }

/* Data table (RTP leaderboard) -------------------------------------------- */
.sm-table-wrap {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
}
.sm-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
}
.sm-table thead th {
	background: linear-gradient(180deg, #FDF0E4 0%, #FFE8ED 100%);
	color: var(--sm-ink) !important;
	text-align: left;
	padding: 1rem 1.1rem;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--sm-border);
}
.sm-table tbody tr { border-top: 1px solid var(--sm-border); transition: background .15s ease; }
.sm-table tbody tr:hover { background: var(--sm-bg-soft); }
.sm-table tbody td {
	padding: 1rem 1.1rem;
	color: var(--sm-ink) !important;
	background: transparent !important;
	vertical-align: middle;
}
.sm-table tbody td strong, .sm-table tbody td b { color: var(--sm-ink) !important; font-weight: 800; }
.sm-table__rank {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	font-weight: 900;
	font-size: .82rem;
}
.sm-table tbody tr:nth-child(1) .sm-table__rank { background: var(--sm-secondary); color: #fff; }
.sm-table tbody tr:nth-child(2) .sm-table__rank { background: var(--sm-ink); color: var(--sm-secondary); }
.sm-table tbody tr:nth-child(3) .sm-table__rank { background: var(--sm-primary); color: #fff; }
.sm-table__rtp { font-weight: 900; color: var(--sm-primary) !important; font-size: 1rem; }
.sm-table__vol {
	display: inline-block;
	padding: .25rem .65rem;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .04em;
}
.sm-table__vol--low    { background: rgba(16, 185, 129, 0.12); color: #047857; }
.sm-table__vol--med    { background: rgba(245, 158, 11, 0.14); color: #B15606; }
.sm-table__vol--high   { background: rgba(225, 29, 116, 0.10); color: var(--sm-primary); }
.sm-table__vol--vhigh  { background: rgba(124, 58, 237, 0.14); color: var(--sm-accent); }

@media (max-width: 720px) {
	.sm-table thead { display: none; }
	.sm-table, .sm-table tbody, .sm-table tr, .sm-table td { display: block; width: 100%; }
	.sm-table tbody tr { padding: 1rem 1.1rem; border-top: 1px solid var(--sm-border); }
	.sm-table tbody td { padding: .25rem 0; border: 0; }
	.sm-table tbody td[data-label]::before {
		content: attr(data-label) ": ";
		font-size: .7rem;
		text-transform: uppercase;
		letter-spacing: .12em;
		color: var(--sm-muted);
		font-weight: 800;
		margin-right: .4rem;
	}
}

/* Category deep-dive cards ------------------------------------------------- */
.sm-cat-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
@media (max-width: 900px) { .sm-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-cat-grid { grid-template-columns: 1fr; } }

.sm-cat {
	position: relative;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.6rem 1.5rem 1.5rem;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .22s ease, box-shadow .22s ease;
	overflow: hidden;
	display: flex; flex-direction: column; gap: .7rem;
}
.sm-cat:hover { transform: translateY(-3px); box-shadow: var(--sm-shadow-md); }
.sm-cat::after {
	content: "";
	position: absolute;
	right: -40px; top: -40px;
	width: 140px; height: 140px;
	border-radius: 50%;
	background: radial-gradient(circle, var(--sm-primary-soft) 0%, transparent 70%);
}
.sm-cat:nth-child(2n)::after { background: radial-gradient(circle, rgba(245, 158, 11, 0.14) 0%, transparent 70%); }
.sm-cat:nth-child(3n)::after { background: radial-gradient(circle, rgba(124, 58, 237, 0.14) 0%, transparent 70%); }
.sm-cat__icon {
	width: 48px; height: 48px; border-radius: 12px;
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--sm-primary-soft), rgba(245, 158, 11, 0.10));
	color: var(--sm-primary);
	font-weight: 900;
	font-size: 1.25rem;
	margin-bottom: .3rem;
	position: relative; z-index: 1;
}
.sm-cat:nth-child(even) .sm-cat__icon { background: rgba(245, 158, 11, 0.12); color: #B15606; }
.sm-cat__title { font-size: 1rem; font-weight: 800; margin: 0; color: var(--sm-ink); position: relative; z-index: 1; }
.sm-cat__desc { font-size: .88rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.55; position: relative; z-index: 1; }
.sm-cat__facts { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: auto; position: relative; z-index: 1; }
.sm-cat__fact {
	display: inline-block;
	padding: .22rem .55rem;
	font-size: .72rem;
	font-weight: 700;
	color: var(--sm-ink-dim);
	background: var(--sm-bg-soft);
	border-radius: 999px;
}

/* Studio grid -------------------------------------------------------------- */
.sm-studios {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}
@media (max-width: 900px) { .sm-studios { grid-template-columns: repeat(2, 1fr); } }
.sm-studio {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.3rem 1.2rem;
	text-align: center;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sm-studio:hover { transform: translateY(-3px); box-shadow: var(--sm-shadow-md); border-color: var(--sm-primary); }
.sm-studio__mark {
	display: inline-flex;
	width: 54px; height: 54px;
	border-radius: 14px;
	align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--sm-primary-soft), rgba(245, 158, 11, 0.10));
	color: var(--sm-primary);
	font-weight: 900;
	font-size: 1.25rem;
	margin-bottom: .75rem;
	letter-spacing: .02em;
}
.sm-studio:nth-child(4n+2) .sm-studio__mark { background: rgba(245, 158, 11, 0.14); color: #B15606; }
.sm-studio:nth-child(4n+3) .sm-studio__mark { background: rgba(124, 58, 237, 0.14); color: var(--sm-accent); }
.sm-studio:nth-child(4n+4) .sm-studio__mark { background: rgba(16, 185, 129, 0.14); color: #047857; }
.sm-studio__name { font-size: .98rem; font-weight: 800; margin: 0 0 .25rem; color: var(--sm-ink); }
.sm-studio__meta { font-size: .75rem; color: var(--sm-muted); margin: 0; font-weight: 600; letter-spacing: .02em; }
.sm-studio__meta strong { color: var(--sm-primary); font-weight: 800; }

/* Glossary ---------------------------------------------------------------- */
.sm-glossary {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.2rem;
}
@media (max-width: 800px) { .sm-glossary { grid-template-columns: 1fr; } }
.sm-glossary__item {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-left: 4px solid var(--sm-primary);
	border-radius: var(--sm-radius);
	padding: 1.2rem 1.35rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-glossary__item:nth-child(2n)  { border-left-color: var(--sm-secondary); }
.sm-glossary__item:nth-child(3n)  { border-left-color: var(--sm-accent); }
.sm-glossary__item:nth-child(4n)  { border-left-color: var(--sm-success); }
.sm-glossary__term { font-size: 1rem; font-weight: 800; margin: 0 0 .35rem; color: var(--sm-ink); letter-spacing: .01em; }
.sm-glossary__def  { font-size: .9rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.6; }
.sm-glossary__def strong { color: var(--sm-ink); }

/* Related pages split CTA ------------------------------------------------- */
.sm-cta-split {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
@media (max-width: 900px) { .sm-cta-split { grid-template-columns: 1fr; } }
.sm-cta-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-lg);
	padding: 2rem 1.75rem 1.85rem;
	overflow: hidden;
	text-decoration: none;
	color: var(--sm-ink);
	display: block;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sm-cta-card:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); border-color: var(--sm-primary); }
.sm-cta-card::before {
	content: "";
	position: absolute;
	right: -20px; top: -20px;
	width: 90px; height: 90px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	opacity: .12;
}
.sm-cta-card:nth-child(2)::before { background: linear-gradient(135deg, var(--sm-secondary), var(--sm-accent)); }
.sm-cta-card:nth-child(3)::before { background: linear-gradient(135deg, var(--sm-accent), var(--sm-primary)); }
.sm-cta-card__kicker { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; color: var(--sm-primary); margin: 0 0 .5rem; }
.sm-cta-card:nth-child(2) .sm-cta-card__kicker { color: #B15606; }
.sm-cta-card:nth-child(3) .sm-cta-card__kicker { color: var(--sm-accent); }
.sm-cta-card__title { font-size: 1.25rem; font-weight: 800; margin: 0 0 .55rem; color: var(--sm-ink); }
.sm-cta-card__desc { font-size: .92rem; color: var(--sm-ink-dim); margin: 0 0 1.1rem; }
.sm-cta-card__arrow {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .82rem; font-weight: 800;
	color: var(--sm-primary);
	letter-spacing: .02em;
	text-transform: uppercase;
}
.sm-cta-card:nth-child(2) .sm-cta-card__arrow { color: #B15606; }
.sm-cta-card:nth-child(3) .sm-cta-card__arrow { color: var(--sm-accent); }
.sm-cta-card__arrow::after { content: "?"; transition: transform .15s ease; }
.sm-cta-card:hover .sm-cta-card__arrow::after { transform: translateX(3px); }


/* ==========================================================================
   Bonus page components
   ========================================================================== */

/* 3-column variant of the bonus grid ---------------------------------------- */
.sm-bonus-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1000px) { .sm-bonus-grid--3 { grid-template-columns: 1fr; } }

/* Bonus card "featured" variant (with cover image on top) ------------------- */
.sm-bonus--featured {
	padding: 0;
	display: flex;
	flex-direction: column;
}
.sm-bonus--featured .sm-bonus__body {
	padding: 1.3rem 1.5rem 1.6rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.sm-bonus--featured .sm-bonus__title { font-size: 1.35rem; margin-top: .1rem; }
.sm-bonus--featured .sm-bonus__desc { font-size: .88rem; }

.sm-bonus__art {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #1a1026;
}
.sm-bonus__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s ease;
}
.sm-bonus--featured:hover .sm-bonus__img { transform: scale(1.04); }
.sm-bonus__art::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,11,46,0) 45%, rgba(15,11,46,.55) 100%);
	pointer-events: none;
}
.sm-bonus__ribbon--onart {
	position: absolute;
	top: .85rem;
	left: .85rem;
	right: auto;
	transform: none;
	padding: .32rem .75rem;
	border-radius: 4px;
	font-size: .62rem;
	letter-spacing: .14em;
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
	z-index: 2;
}
.sm-bonus--featured .sm-bonus__ribbon--onart { background: var(--sm-primary); }
.sm-bonus--featured:nth-child(2) .sm-bonus__ribbon--onart { background: var(--sm-secondary); }
.sm-bonus--featured:nth-child(3) .sm-bonus__ribbon--onart { background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary)); }

/* Refresh stamp bar -------------------------------------------------------- */
.sm-refresh-stamp {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .55rem 1rem;
	border-radius: 999px;
	background: rgba(16, 185, 129, 0.12);
	color: #047857;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .02em;
	border: 1px solid rgba(16, 185, 129, 0.25);
}
.sm-refresh-stamp::before {
	content: "";
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--sm-success);
	box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.22);
	animation: sm-pulse 1.8s ease-out infinite;
}
@keyframes sm-pulse {
	0%   { box-shadow: 0 0 0 0   rgba(16, 185, 129, 0.45); }
	100% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);    }
}

/* Good-vs-bad comparison ---------------------------------------------------- */
.sm-compare {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}
@media (max-width: 800px) { .sm-compare { grid-template-columns: 1fr; } }
.sm-compare__side {
	padding: 1.9rem 1.85rem 1.85rem;
	border-radius: var(--sm-radius-lg);
	box-shadow: var(--sm-shadow-sm);
}
.sm-compare__side--good {
	background: linear-gradient(180deg, #ECFDF5 0%, #D1FAE5 100%);
	border: 1px solid rgba(16, 185, 129, 0.28);
}
.sm-compare__side--bad {
	background: linear-gradient(180deg, #FFF1F2 0%, #FEE2E2 100%);
	border: 1px solid rgba(239, 68, 68, 0.28);
}
.sm-compare__kicker {
	display: inline-block;
	padding: .3rem .8rem;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.sm-compare__side--good .sm-compare__kicker { background: rgba(16, 185, 129, 0.18); color: #047857; }
.sm-compare__side--bad  .sm-compare__kicker { background: rgba(239, 68, 68, 0.18);  color: #B91C1C; }
.sm-compare__title {
	font-size: 1.2rem;
	font-weight: 800;
	margin: 0 0 1.15rem;
	color: var(--sm-ink);
	line-height: 1.3;
}
.sm-compare__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.sm-compare__list li {
	display: flex;
	gap: .65rem;
	align-items: flex-start;
	font-size: .93rem;
	color: var(--sm-ink-dim);
	line-height: 1.55;
}
.sm-compare__list li strong { color: var(--sm-ink); }
.sm-compare__list li::before {
	flex: none;
	width: 22px; height: 22px;
	border-radius: 50%;
	display: grid; place-items: center;
	font-size: .78rem;
	font-weight: 900;
	margin-top: .1rem;
}
.sm-compare__side--good .sm-compare__list li::before {
	content: "?";
	background: var(--sm-success);
	color: #fff;
}
.sm-compare__side--bad .sm-compare__list li::before {
	content: "?";
	background: #EF4444;
	color: #fff;
}

/* Wagering-math visual block ----------------------------------------------- */
.sm-wager-note {
	background: var(--sm-ink);
	color: #fff;
	border-radius: var(--sm-radius);
	padding: 1.5rem 1.75rem;
	display: flex;
	align-items: center;
	gap: 1.1rem;
	margin-top: 1.5rem;
}
.sm-wager-note__mark {
	width: 44px; height: 44px;
	border-radius: 12px;
	background: var(--sm-primary);
	color: #fff;
	display: grid; place-items: center;
	font-size: 1.15rem; font-weight: 900;
	flex: none;
}
.sm-wager-note__text { font-size: .92rem; color: #E5E1FF; line-height: 1.55; margin: 0; }
.sm-wager-note__text strong { color: var(--sm-secondary); }


/* ==========================================================================
   Review page components
   ========================================================================== */

/* Featured review hero (split card) ---------------------------------------- */
.sm-review-hero {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 0;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-lg);
	overflow: hidden;
	box-shadow: var(--sm-shadow-md);
}
@media (max-width: 900px) { .sm-review-hero { grid-template-columns: 1fr; } }

.sm-review-hero__art {
	position: relative;
	min-height: 320px;
	padding: 2.1rem 2rem;
	color: #fff;
	background: linear-gradient(135deg, #E11D74 0%, #F59E0B 100%);
	display: flex; align-items: flex-end;
	overflow: hidden;
}
.sm-review-hero__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
	display: block;
}
.sm-review-hero__art::before {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.55) 100%),
		radial-gradient(60% 60% at 20% 20%, rgba(255,255,255,0.14) 0%, transparent 70%);
	z-index: 1;
}
.sm-review-hero__art-inner { position: relative; z-index: 2; }
.sm-review-hero__ribbon {
	display: inline-block;
	padding: .35rem .85rem;
	background: rgba(0,0,0,0.38);
	backdrop-filter: blur(8px);
	color: #fff;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-radius: 999px;
	margin-bottom: 1rem;
}
.sm-review-hero__studio { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; opacity: .92; margin: 0 0 .4rem; }
.sm-review-hero__name {
	font-size: clamp(1.6rem, 2.8vw, 2.1rem);
	font-weight: 900;
	line-height: 1.1;
	margin: 0 0 .5rem;
	letter-spacing: -.02em;
	text-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.sm-review-hero__tag { font-size: .92rem; opacity: .92; margin: 0; line-height: 1.4; }

.sm-score-ring {
	position: absolute;
	top: 1.5rem; right: 1.5rem;
	width: 100px; height: 100px;
	border-radius: 50%;
	padding: 6px;
	z-index: 3;
	box-shadow: 0 12px 24px rgba(0,0,0,0.25);
}
.sm-score-ring__inner {
	width: 100%; height: 100%;
	border-radius: 50%;
	background: var(--sm-ink);
	color: #fff;
	display: grid; place-items: center;
	text-align: center;
	line-height: 1;
}
.sm-score-ring__val { font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; }
.sm-score-ring__lab { font-size: .58rem; text-transform: uppercase; letter-spacing: .18em; color: #F8B4D4; margin-top: .2rem; }

/* Progressive ring colors via inline --pct custom property */
.sm-score-ring {
	background: conic-gradient(from -90deg, var(--sm-secondary) 0%, var(--sm-secondary) calc(var(--pct,92) * 1%), rgba(255,255,255,0.3) calc(var(--pct,92) * 1%), rgba(255,255,255,0.3) 100%);
}

.sm-review-hero__body {
	padding: 2rem 2.1rem;
	display: flex; flex-direction: column; gap: 1.1rem;
}
.sm-review-hero__verdict {
	font-size: .96rem;
	color: var(--sm-ink-dim);
	line-height: 1.6;
	margin: 0;
}
.sm-review-hero__verdict strong { color: var(--sm-ink); }

/* 5-pillar score bars ------------------------------------------------------ */
.sm-pillars { display: grid; gap: .7rem; }
.sm-pillar {
	display: grid;
	grid-template-columns: 100px 1fr 48px;
	gap: .9rem;
	align-items: center;
	font-size: .85rem;
}
@media (max-width: 560px) { .sm-pillar { grid-template-columns: 90px 1fr 42px; } }
.sm-pillar__label { font-weight: 700; color: var(--sm-ink); }
.sm-pillar__bar {
	height: 8px;
	background: var(--sm-bg-soft);
	border-radius: 999px;
	overflow: hidden;
	position: relative;
}
.sm-pillar__fill {
	height: 100%;
	width: var(--fill, 80%);
	border-radius: 999px;
	background: linear-gradient(90deg, var(--sm-primary) 0%, var(--sm-secondary) 100%);
	transition: width .4s ease;
}
/* All pillars share the same primary?secondary gradient for a cleaner look */
.sm-pillar__val { font-weight: 900; color: var(--sm-ink); text-align: right; }

/* Pros / Cons block -------------------------------------------------------- */
.sm-procon {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	padding-top: 1.1rem;
	border-top: 1px dashed var(--sm-border-str);
}
@media (max-width: 560px) { .sm-procon { grid-template-columns: 1fr; } }
.sm-procon__col h4 {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	margin: 0 0 .6rem;
	font-weight: 800;
}
.sm-procon__col--good h4 { color: #047857; }
.sm-procon__col--bad  h4 { color: #B91C1C; }
.sm-procon__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.sm-procon__col li { display: flex; gap: .5rem; font-size: .85rem; color: var(--sm-ink-dim); line-height: 1.5; }
.sm-procon__col li::before { flex: none; font-weight: 900; width: 14px; }
.sm-procon__col--good li::before { content: "+"; color: #10B981; font-size: 1.1em; }
.sm-procon__col--bad  li::before { content: "?"; color: #EF4444; font-size: 1.1em; }

/* Top 5 Ranking (horizontal bars) ----------------------------------------- */
.sm-ranking { display: flex; flex-direction: column; gap: .8rem; }
.sm-ranking__item {
	display: grid;
	grid-template-columns: 44px 1fr 160px 64px;
	gap: 1rem;
	align-items: center;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: .95rem 1.1rem;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
@media (max-width: 720px) {
	.sm-ranking__item { grid-template-columns: 44px 1fr 64px; grid-row-gap: .7rem; }
	.sm-ranking__item > :nth-child(3) { grid-column: 1 / -1; }
}
.sm-ranking__item:hover { transform: translateY(-2px); box-shadow: var(--sm-shadow-md); border-color: var(--sm-primary); }
.sm-ranking__rank {
	width: 44px; height: 44px; border-radius: 12px;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-weight: 900; font-size: 1rem;
}
.sm-ranking__item:nth-child(1) .sm-ranking__rank { background: linear-gradient(135deg, var(--sm-secondary), #F97316); color: #fff; }
.sm-ranking__item:nth-child(2) .sm-ranking__rank { background: var(--sm-ink); color: var(--sm-secondary); }
.sm-ranking__item:nth-child(3) .sm-ranking__rank { background: var(--sm-primary); color: #fff; }
.sm-ranking__info { min-width: 0; }
.sm-ranking__name { font-size: 1.05rem; font-weight: 800; margin: 0; color: var(--sm-ink); }
.sm-ranking__meta { font-size: .8rem; color: var(--sm-muted); margin: .15rem 0 0; }
.sm-ranking__meta strong { color: var(--sm-ink-dim); font-weight: 700; }
.sm-ranking__bar {
	height: 8px;
	background: var(--sm-bg-soft);
	border-radius: 999px;
	overflow: hidden;
}
.sm-ranking__fill {
	height: 100%;
	width: var(--fill, 90%);
	background: linear-gradient(90deg, var(--sm-primary), var(--sm-secondary));
	border-radius: 999px;
}
.sm-ranking__score {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--sm-primary);
	text-align: right;
	line-height: 1;
}
.sm-ranking__score small { display: block; font-size: .6rem; font-weight: 700; color: var(--sm-muted); letter-spacing: .12em; text-transform: uppercase; margin-top: .25rem; }

/* Review cards grid -------------------------------------------------------- */
.sm-review-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
@media (max-width: 1000px) { .sm-review-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sm-review-grid { grid-template-columns: 1fr; } }
.sm-review-card {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	box-shadow: var(--sm-shadow-sm);
	display: flex; flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}
.sm-review-card:hover { transform: translateY(-4px); box-shadow: var(--sm-shadow-md); }
.sm-review-card__art {
	aspect-ratio: 16 / 9;
	position: relative;
	padding: 1.1rem 1.2rem;
	color: #fff;
	display: flex; align-items: flex-end;
	overflow: hidden;
}
.sm-review-card__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
	display: block;
}
.sm-review-card__art::before {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.6) 100%),
		radial-gradient(120% 60% at 20% 20%, rgba(255,255,255,0.12) 0%, transparent 70%);
	z-index: 1;
}
.sm-review-card:nth-child(3n+1) .sm-review-card__art { background: linear-gradient(135deg, #E11D74, #F59E0B); }
.sm-review-card:nth-child(3n+2) .sm-review-card__art { background: linear-gradient(135deg, #F59E0B, #E11D74); }
.sm-review-card:nth-child(3n+3) .sm-review-card__art { background: linear-gradient(135deg, #111827, #E11D74); }

.sm-review-card__badge {
	position: absolute; top: 1rem; left: 1rem;
	padding: .28rem .7rem;
	background: rgba(255,255,255,0.92);
	color: var(--sm-ink);
	font-size: .66rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	border-radius: 999px;
	z-index: 3;
}
.sm-review-card__score-chip {
	position: absolute; top: 1rem; right: 1rem;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: rgba(255,255,255,0.96);
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-size: 1.05rem;
	font-weight: 900;
	box-shadow: 0 6px 14px rgba(0,0,0,0.22);
	z-index: 3;
	line-height: 1;
}
.sm-review-card__name {
	position: relative; z-index: 2;
	font-size: 1.05rem; font-weight: 900;
	color: #fff;
	text-shadow: 0 2px 6px rgba(0,0,0,0.22);
	margin: 0;
	letter-spacing: -.01em;
}
.sm-review-card__body { padding: 1.15rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.sm-review-card__studio { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: var(--sm-muted); font-weight: 800; margin: 0; }
.sm-review-card__verdict { font-size: .9rem; color: var(--sm-ink-dim); margin: 0; flex: 1; line-height: 1.55; }
.sm-review-card__foot {
	display: flex; align-items: center; gap: .5rem;
	padding-top: .85rem;
	border-top: 1px dashed var(--sm-border-str);
	font-size: .78rem;
	color: var(--sm-muted);
}
.sm-review-card__foot strong { color: var(--sm-ink); font-weight: 700; }

/* Team cards (reviewer bios) ---------------------------------------------- */
.sm-team {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
@media (max-width: 1000px) { .sm-team { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .sm-team { grid-template-columns: 1fr; } }
.sm-team__member {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.75rem 1.5rem;
	text-align: center;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
	display: flex; flex-direction: column;
}
.sm-team__member:hover { transform: translateY(-3px); box-shadow: var(--sm-shadow-md); }
.sm-team__avatar {
	width: 88px; height: 88px; border-radius: 50%;
	margin: 0 auto 1rem;
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	color: #fff;
	display: grid; place-items: center;
	font-size: 1.65rem; font-weight: 900;
	letter-spacing: .02em;
	box-shadow: 0 10px 22px rgba(225, 29, 116, 0.28);
}
.sm-team__member:nth-child(even) .sm-team__avatar { background: linear-gradient(135deg, var(--sm-secondary), var(--sm-primary)); box-shadow: 0 10px 22px rgba(245, 158, 11, 0.25); }
.sm-team__name { font-size: 1rem; font-weight: 800; margin: 0 0 .2rem; color: var(--sm-ink); }
.sm-team__role { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: var(--sm-primary); margin: 0 0 .85rem; }
.sm-team__member:nth-child(even) .sm-team__role { color: #B15606; }
.sm-team__bio { font-size: .86rem; color: var(--sm-ink-dim); margin: 0 0 1.1rem; line-height: 1.55; flex: 1; }
.sm-team__creds {
	font-size: .72rem;
	padding-top: .85rem;
	border-top: 1px dashed var(--sm-border-str);
	color: var(--sm-muted);
	font-weight: 600;
	line-height: 1.45;
}
.sm-team__creds strong { color: var(--sm-ink); font-weight: 700; }

/* Badge legend ------------------------------------------------------------ */
.sm-badges {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}
@media (max-width: 900px) { .sm-badges { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .sm-badges { grid-template-columns: 1fr; } }
.sm-badge-card {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.3rem 1.35rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, border-color .2s ease;
}
.sm-badge-card:hover { transform: translateY(-2px); border-color: var(--sm-primary); }
.sm-badge-card__tag {
	flex: none;
	padding: .4rem .85rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: #fff;
	background: var(--sm-primary);
	white-space: nowrap;
	height: max-content;
}
.sm-badge-card:nth-child(2) .sm-badge-card__tag { background: var(--sm-secondary); }
.sm-badge-card:nth-child(3) .sm-badge-card__tag { background: var(--sm-ink); color: var(--sm-secondary); }
.sm-badge-card:nth-child(4) .sm-badge-card__tag { background: var(--sm-primary); }
.sm-badge-card:nth-child(5) .sm-badge-card__tag { background: var(--sm-secondary); }
.sm-badge-card:nth-child(6) .sm-badge-card__tag { background: var(--sm-ink); color: var(--sm-secondary); }
.sm-badge-card__title { font-size: .95rem; font-weight: 800; margin: 0 0 .3rem; color: var(--sm-ink); }
.sm-badge-card__desc { font-size: .84rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.5; }


/* ==========================================================================
   Legal page components
   ========================================================================== */

/* Status legend pills ------------------------------------------------------ */
.sm-status-legend {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	justify-content: center;
	margin-bottom: 2rem;
}
.sm-status-legend__item {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .45rem .9rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
	color: var(--sm-ink-dim);
	box-shadow: var(--sm-shadow-sm);
}
.sm-status-legend__dot {
	width: 10px; height: 10px;
	border-radius: 50%;
	flex: none;
}
.sm-status-legend__item--legal  .sm-status-legend__dot { background: #10B981; }
.sm-status-legend__item--soon   .sm-status-legend__dot { background: #F59E0B; }
.sm-status-legend__item--sweeps .sm-status-legend__dot { background: #EC4899; }
.sm-status-legend__item--none   .sm-status-legend__dot { background: #CBD5E1; }
.sm-status-legend__item--banned .sm-status-legend__dot { background: #EF4444; }

/* US states grid ----------------------------------------------------------- */
.sm-states {
	display: grid;
	grid-template-columns: repeat(9, 1fr);
	gap: .55rem;
}
@media (max-width: 1100px) { .sm-states { grid-template-columns: repeat(7, 1fr); } }
@media (max-width: 820px)  { .sm-states { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 520px)  { .sm-states { grid-template-columns: repeat(4, 1fr); } }

.sm-state {
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	text-align: center;
	padding: .35rem;
	transition: transform .2s ease, box-shadow .2s ease;
	cursor: default;
	line-height: 1.1;
}
.sm-state:hover { transform: translateY(-2px) scale(1.03); }
.sm-state__abbr { font-size: 1.1rem; letter-spacing: .02em; }
.sm-state__name { font-size: .54rem; text-transform: uppercase; letter-spacing: .05em; margin-top: .25rem; opacity: .78; font-weight: 600; }

.sm-state--legal {
	background: linear-gradient(160deg, #10B981 0%, #047857 100%);
	color: #fff;
	box-shadow: 0 5px 14px rgba(16, 185, 129, 0.32);
}
.sm-state--soon {
	background: #FEF3C7;
	color: #92400E;
	border: 1px solid #F59E0B;
}
.sm-state--sweeps {
	background: #FCE7F3;
	color: #9D174D;
	border: 1px solid #F9A8D4;
}
.sm-state--none {
	background: #F1F5F9;
	color: #64748B;
	border: 1px solid #CBD5E1;
}
.sm-state--banned {
	background: #FEE2E2;
	color: #991B1B;
	border: 1px solid #FCA5A5;
}

/* Legal-state highlight cards --------------------------------------------- */
.sm-legal-states {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.1rem;
}
@media (max-width: 1000px) { .sm-legal-states { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .sm-legal-states { grid-template-columns: repeat(2, 1fr); } }
.sm-legal-state {
	background: linear-gradient(180deg, #ECFDF5 0%, #ffffff 58%);
	border: 1px solid rgba(16, 185, 129, 0.28);
	border-radius: var(--sm-radius);
	padding: 1.5rem 1.3rem 1.4rem;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
}
.sm-legal-state:hover { transform: translateY(-3px); box-shadow: var(--sm-shadow-md); }
.sm-legal-state__flag {
	width: 46px; height: 46px;
	border-radius: 12px;
	background: linear-gradient(135deg, #10B981, #047857);
	color: #fff;
	display: grid; place-items: center;
	font-size: 1rem; font-weight: 900;
	margin-bottom: .85rem;
	box-shadow: 0 6px 14px rgba(16, 185, 129, 0.3);
}
.sm-legal-state__name { font-size: 1.15rem; font-weight: 800; color: var(--sm-ink); margin: 0 0 .3rem; letter-spacing: -.01em; }
.sm-legal-state__reg { font-size: .7rem; color: #047857; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 .8rem; }
.sm-legal-state__since { font-size: .82rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.5; }
.sm-legal-state__since strong { color: var(--sm-ink); }

/* Checklist / requirements -------------------------------------------------- */
.sm-check-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.1rem;
}
@media (max-width: 820px) { .sm-check-list { grid-template-columns: 1fr; } }
.sm-check {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.35rem 1.4rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease, border-color .2s ease;
}
.sm-check:hover { transform: translateY(-2px); border-color: var(--sm-primary); }
.sm-check__icon {
	flex: none;
	width: 38px; height: 38px;
	border-radius: 11px;
	background: var(--sm-primary-soft);
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-size: 1rem; font-weight: 900;
}
.sm-check__title { font-size: .98rem; font-weight: 800; margin: 0 0 .3rem; color: var(--sm-ink); }
.sm-check__body  { font-size: .86rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.55; }
.sm-check__body strong { color: var(--sm-ink); }

/* Helpline cards ----------------------------------------------------------- */
.sm-helplines {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (max-width: 820px) { .sm-helplines { grid-template-columns: 1fr; } }
.sm-helpline {
	display: grid;
	grid-template-columns: 52px 1fr auto;
	gap: 1.1rem;
	align-items: center;
	padding: 1.2rem 1.4rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease;
}
.sm-helpline:hover { transform: translateY(-2px); }
.sm-helpline__icon {
	width: 52px; height: 52px;
	border-radius: 14px;
	background: var(--sm-ink);
	color: var(--sm-secondary);
	display: grid; place-items: center;
	font-size: 1.25rem; font-weight: 900;
}
.sm-helpline__name { font-size: 1rem; font-weight: 800; color: var(--sm-ink); margin: 0 0 .15rem; }
.sm-helpline__desc { font-size: .82rem; color: var(--sm-muted); margin: 0; line-height: 1.45; }
.sm-helpline__number { font-size: 1.05rem; font-weight: 900; color: var(--sm-primary); white-space: nowrap; }

/* 3-doc summary (T&C / Privacy / Cookies) --------------------------------- */
.sm-doc-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.3rem;
}
@media (max-width: 900px) { .sm-doc-grid { grid-template-columns: 1fr; } }
.sm-doc {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.9rem 1.7rem;
	box-shadow: var(--sm-shadow-sm);
	display: flex; flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease;
}
.sm-doc:hover { transform: translateY(-3px); box-shadow: var(--sm-shadow-md); }
.sm-doc__icon {
	width: 54px; height: 54px;
	border-radius: 14px;
	display: grid; place-items: center;
	font-size: 1.4rem; font-weight: 900;
	color: #fff;
	margin-bottom: 1.1rem;
}
.sm-doc:nth-child(1) .sm-doc__icon { background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary)); }
.sm-doc:nth-child(2) .sm-doc__icon { background: linear-gradient(135deg, var(--sm-secondary), var(--sm-primary)); }
.sm-doc:nth-child(3) .sm-doc__icon { background: var(--sm-ink); }
.sm-doc__title { font-size: 1.2rem; font-weight: 800; color: var(--sm-ink); margin: 0 0 .35rem; }
.sm-doc__upd   { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; color: var(--sm-muted); font-weight: 800; margin: 0 0 1.2rem; }
.sm-doc__list  { list-style: none; padding: 0; margin: 0 0 1.2rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.sm-doc__list li {
	font-size: .86rem;
	color: var(--sm-ink-dim);
	line-height: 1.55;
	padding-left: 1.3rem;
	position: relative;
}
.sm-doc__list li::before {
	content: "";
	position: absolute;
	left: 0; top: .6rem;
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--sm-primary);
}
.sm-doc:nth-child(2) .sm-doc__list li::before { background: var(--sm-secondary); }
.sm-doc:nth-child(3) .sm-doc__list li::before { background: var(--sm-ink); }
.sm-doc__list li strong { color: var(--sm-ink); font-weight: 700; }
.sm-doc__foot {
	padding-top: 1rem;
	border-top: 1px dashed var(--sm-border-str);
	font-size: .78rem;
	color: var(--sm-muted);
	line-height: 1.45;
}
.sm-doc__foot strong { color: var(--sm-ink); font-weight: 700; }

/* Regulator list ----------------------------------------------------------- */
.sm-regs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (max-width: 820px) { .sm-regs { grid-template-columns: 1fr; } }
.sm-reg {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1.2rem 1.35rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	box-shadow: var(--sm-shadow-sm);
	transition: transform .2s ease;
}
.sm-reg:hover { transform: translateY(-2px); }
.sm-reg__mark {
	width: 60px; height: 60px;
	border-radius: 12px;
	background: var(--sm-bg-soft);
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-size: .78rem;
	font-weight: 900;
	letter-spacing: .04em;
	text-align: center;
	line-height: 1.05;
	padding: .3rem;
}
.sm-reg:nth-child(even) .sm-reg__mark { color: var(--sm-secondary); background: #FFF7E6; }
.sm-reg:nth-child(5) .sm-reg__mark,
.sm-reg:nth-child(6) .sm-reg__mark { color: var(--sm-ink); background: #F1F5F9; }
.sm-reg__name { font-size: 1rem; font-weight: 800; color: var(--sm-ink); margin: 0 0 .25rem; }
.sm-reg__meta { font-size: .82rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.5; }
.sm-reg__meta strong { color: var(--sm-ink); }


/* ============================================================================
   INFO / LEGAL DOCUMENT PAGES
   About / Contact / Privacy / Cookies  clean long-form prose, no decoration.
============================================================================ */
.sm-doc-wrap {
	max-width: 820px;
	margin: 0 auto;
	padding: 0 clamp(1rem, 3vw, 1.5rem);
}
.sm-doc-meta {
	display: flex; flex-wrap: wrap; gap: .55rem 1.4rem;
	font-size: .82rem; color: var(--sm-muted);
	padding: 1rem 1.2rem; margin: 0 0 2rem;
	background: var(--sm-bg-tint);
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
}
.sm-doc-meta strong { color: var(--sm-ink); font-weight: 800; }
.sm-toc {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-left: 3px solid var(--sm-primary);
	border-radius: var(--sm-radius);
	padding: 1.15rem 1.35rem 1.35rem;
	margin: 0 0 2.4rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-toc__title {
	font-size: .72rem; text-transform: uppercase; letter-spacing: .18em;
	color: var(--sm-muted); font-weight: 800;
	margin: 0 0 .85rem;
}
.sm-toc__list {
	list-style: decimal; margin: 0; padding: 0 0 0 1.35rem;
	display: grid; grid-template-columns: 1fr; gap: .35rem;
	color: var(--sm-ink-dim); font-size: .95rem; line-height: 1.5;
}
@media (min-width: 720px) { .sm-toc__list { grid-template-columns: 1fr 1fr; column-gap: 1.6rem; } }
.sm-toc__list a { color: var(--sm-ink); text-decoration: none; border-bottom: 1px dashed transparent; }
.sm-toc__list a:hover { color: var(--sm-primary); border-bottom-color: var(--sm-primary); }
.sm-prose { color: var(--sm-ink-dim); font-size: 1rem; line-height: 1.72; }
.sm-prose h2 {
	font-size: clamp(1.25rem, 2.4vw, 1.55rem);
	font-weight: 800; color: var(--sm-ink);
	margin: 2.4rem 0 .85rem;
	letter-spacing: -.012em;
	scroll-margin-top: 5rem;
	position: relative;
	padding-left: .9rem;
}
.sm-prose h2::before {
	content: ""; position: absolute; left: 0; top: .28em; bottom: .18em;
	width: 3px; border-radius: 3px; background: var(--sm-primary);
}
.sm-prose h3 {
	font-size: 1.05rem; font-weight: 800;
	color: var(--sm-ink);
	margin: 1.7rem 0 .55rem;
}
.sm-prose p { margin: 0 0 1rem; }
.sm-prose strong { color: var(--sm-ink); font-weight: 700; }
.sm-prose a { color: var(--sm-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.sm-prose a:hover { color: var(--sm-secondary); }
.sm-prose ul, .sm-prose ol { margin: 0 0 1.1rem; padding-left: 1.35rem; }
.sm-prose ul li, .sm-prose ol li { margin: .35rem 0; }
.sm-prose ul { list-style: none; padding-left: 0; }
.sm-prose ul li {
	position: relative;
	padding-left: 1.35rem;
}
.sm-prose ul li::before {
	content: ""; position: absolute; left: 0; top: .68em;
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--sm-primary);
}
.sm-prose ol li::marker { color: var(--sm-primary); font-weight: 800; }
.sm-prose blockquote {
	margin: 1.3rem 0;
	padding: .9rem 1.15rem;
	background: var(--sm-bg-tint);
	border-left: 3px solid var(--sm-primary);
	border-radius: 0 var(--sm-radius) var(--sm-radius) 0;
	color: var(--sm-ink);
	font-size: .96rem;
	font-style: italic;
}
.sm-prose table {
	width: 100%; border-collapse: collapse; margin: 1.3rem 0;
	font-size: .92rem;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	background: #fff;
}
.sm-prose th, .sm-prose td {
	padding: .72rem .85rem;
	text-align: left;
	border-bottom: 1px solid var(--sm-border);
}
.sm-prose th { background: var(--sm-bg-tint); color: var(--sm-ink); font-weight: 800; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }
.sm-prose tr:last-child td { border-bottom: 0; }
.sm-prose hr { border: 0; border-top: 1px solid var(--sm-border); margin: 2.4rem 0; }
.sm-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
	margin: 1.2rem 0 2rem;
}
.sm-contact-card {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	padding: 1.15rem 1.25rem;
	box-shadow: var(--sm-shadow-sm);
}
.sm-contact-card__label { font-size: .7rem; text-transform: uppercase; letter-spacing: .16em; color: var(--sm-muted); font-weight: 800; margin: 0 0 .4rem; }
.sm-contact-card__value { font-size: 1rem; font-weight: 800; color: var(--sm-ink); margin: 0 0 .35rem; word-break: break-word; }
.sm-contact-card__value a { color: var(--sm-primary); text-decoration: none; }
.sm-contact-card__value a:hover { color: var(--sm-secondary); text-decoration: underline; }
.sm-contact-card__desc { font-size: .85rem; color: var(--sm-ink-dim); margin: 0; line-height: 1.55; }


/* ============================================================================
   BLOG / SINGLE / AUTHOR  unified editorial templates
============================================================================ */

/* ---------- Post list grid ---------- */
.sm-postlist {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.6rem;
}
@media (min-width: 1024px) {
	.sm-postlist { grid-template-columns: repeat(3, 1fr); gap: 1.8rem; }
}

.sm-postcard {
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--sm-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sm-postcard:hover {
	transform: translateY(-3px);
	box-shadow: var(--sm-shadow-lg);
	border-color: var(--sm-border-str);
}
.sm-postcard__thumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--sm-bg-tint), var(--sm-bg-soft));
	overflow: hidden;
	text-decoration: none;
}
.sm-postcard__img,
.sm-postcard__thumb img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}
.sm-postcard:hover .sm-postcard__img,
.sm-postcard:hover .sm-postcard__thumb img { transform: scale(1.04); }
.sm-postcard__thumb-fallback {
	position: absolute; inset: 0;
	display: grid; place-items: center;
	font-size: 3.4rem; font-weight: 900;
	color: var(--sm-primary);
	letter-spacing: -.02em;
	background: linear-gradient(135deg, var(--sm-bg-tint), var(--sm-bg-soft));
}
.sm-postcard__cat {
	position: absolute;
	top: .85rem; left: .85rem;
	z-index: 2;
	padding: .3rem .75rem;
	background: rgba(255,255,255,0.95);
	color: var(--sm-ink);
	font-size: .68rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	border-radius: 999px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}
.sm-postcard__body {
	padding: 1.2rem 1.3rem 1.3rem;
	display: flex;
	flex-direction: column;
	gap: .75rem;
	flex: 1;
}
.sm-postcard__meta {
	display: flex; align-items: center; gap: .45rem;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--sm-muted);
}
.sm-postcard__dot { opacity: .6; }
.sm-postcard__title {
	font-size: 1.12rem;
	font-weight: 800;
	line-height: 1.3;
	margin: 0;
	letter-spacing: -.012em;
	color: var(--sm-ink);
}
.sm-postcard__title a {
	color: inherit;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) left bottom / 0% 1.5px no-repeat;
	transition: background-size .3s ease, color .2s ease;
}
.sm-postcard__title a:hover {
	color: var(--sm-primary);
	background-size: 100% 1.5px;
}
.sm-postcard__excerpt {
	font-size: .9rem;
	line-height: 1.6;
	color: var(--sm-ink-dim);
	flex: 1;
}
.sm-postcard__excerpt p { margin: 0; }
.sm-postcard__foot {
	display: flex; align-items: center; justify-content: space-between;
	gap: .8rem;
	padding-top: .85rem;
	border-top: 1px dashed var(--sm-border-str);
	margin-top: .25rem;
}
.sm-postcard__author {
	display: flex; align-items: center; gap: .55rem;
	min-width: 0;
}
.sm-postcard__avatar-wrap {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	padding: 3px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 0 0 1.5px var(--sm-primary), 0 2px 6px rgba(225,29,116,0.12);
	overflow: hidden;
}
.sm-postcard__avatar {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: contain;
	display: block;
	background: #fff;
}
.sm-postcard__author-link {
	font-size: .82rem;
	font-weight: 700;
	color: var(--sm-ink);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sm-postcard__author-link:hover { color: var(--sm-primary); }
.sm-postcard__more {
	font-size: .82rem;
	font-weight: 800;
	color: var(--sm-primary);
	text-decoration: none;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	transition: gap .2s ease;
}
.sm-postcard__more:hover { gap: .55rem; color: var(--sm-secondary); }

/* ---------- Pagination ---------- */
.sm-pager { margin: 3rem 0 0; }
.sm-pager__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
}
.sm-pager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .85rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: 10px;
	font-size: .92rem;
	font-weight: 700;
	color: var(--sm-ink);
	text-decoration: none;
	box-shadow: var(--sm-shadow-sm);
	transition: all .2s ease;
}
.sm-pager .page-numbers:hover {
	color: var(--sm-primary);
	border-color: var(--sm-primary);
	transform: translateY(-1px);
}
.sm-pager .page-numbers.current {
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 6px 14px rgba(225,29,116,0.28);
}
.sm-pager .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--sm-muted);
}
.sm-pager .page-numbers.prev,
.sm-pager .page-numbers.next { padding: 0 1.1rem; }

/* ---------- Empty state ---------- */
.sm-empty {
	max-width: 540px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
	text-align: center;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-lg);
	box-shadow: var(--sm-shadow-sm);
}
.sm-empty__icon {
	width: 72px; height: 72px;
	margin: 0 auto 1.2rem;
	border-radius: 50%;
	background: var(--sm-bg-tint);
	color: var(--sm-primary);
	display: grid; place-items: center;
	font-size: 2rem;
	font-weight: 900;
}
.sm-empty__title { font-size: 1.5rem; font-weight: 900; color: var(--sm-ink); margin: 0 0 .75rem; }
.sm-empty__text { color: var(--sm-ink-dim); font-size: 1rem; line-height: 1.6; margin: 0 0 1.5rem; }
.sm-empty__cta { display: flex; justify-content: center; }

/* ---------- Single post ---------- */
.sm-page-hero--single .sm-page-hero__title { font-size: clamp(1.75rem, 3.6vw, 2.7rem); }
.sm-single__title { margin-bottom: 1.4rem; }
.sm-single__meta {
	display: flex;
	align-items: center;
	gap: .85rem;
	margin-top: .5rem;
}
.sm-single__avatar-wrap {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	padding: 3px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 0 0 2px var(--sm-primary), 0 4px 12px rgba(225,29,116,0.14);
	overflow: hidden;
}
.sm-single__avatar {
	width: 100%; height: 100%;
	border-radius: 50%;
	object-fit: contain;
	display: block;
	background: #fff;
	border: 0;
	box-shadow: none;
}
.sm-single__byline {
	margin: 0;
	font-size: .92rem;
	font-weight: 800;
	color: var(--sm-ink);
}
.sm-single__byline a { color: var(--sm-primary); text-decoration: none; }
.sm-single__byline a:hover { color: var(--sm-secondary); }
.sm-single__date {
	margin: .15rem 0 0;
	font-size: .78rem;
	color: var(--sm-muted);
	font-weight: 600;
}
.sm-single__featured {
	margin: 0;
	border-radius: var(--sm-radius-lg);
	overflow: hidden;
	box-shadow: var(--sm-shadow-lg);
	background: var(--sm-bg-tint);
}
.sm-single__featured-img,
.sm-single__featured img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: cover;
}
.sm-single { margin: 0; }
.sm-single__content { font-size: 1.02rem; }
.sm-single__content > * { margin-left: 0; margin-right: 0; }
.sm-single__content img,
.sm-single__content figure {
	max-width: 100%;
	height: auto;
	border-radius: var(--sm-radius);
	margin: 1.5rem 0;
}
.sm-single__content figure { display: block; }
.sm-single__content figcaption {
	font-size: .82rem;
	color: var(--sm-muted);
	text-align: center;
	margin-top: .5rem;
}
.sm-single__pages {
	margin: 1.8rem 0;
	display: flex; flex-wrap: wrap; gap: .4rem;
	font-size: .85rem; font-weight: 700;
}
.sm-single__pages a,
.sm-single__pages > span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 36px; height: 36px;
	padding: 0 .6rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: 8px;
	color: var(--sm-ink);
	text-decoration: none;
}
.sm-single__pages a:hover { border-color: var(--sm-primary); color: var(--sm-primary); }

.sm-single__tags {
	margin: 2rem 0 0;
	padding: 1rem 1.2rem;
	background: var(--sm-bg-tint);
	border-radius: var(--sm-radius);
	border: 1px solid var(--sm-border);
	font-size: .88rem;
	color: var(--sm-ink-dim);
	display: flex; flex-wrap: wrap; gap: .5rem .75rem;
	align-items: center;
}
.sm-single__tags-label {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-weight: 800;
	color: var(--sm-muted);
}
.sm-single__tags a {
	display: inline-flex;
	padding: .25rem .7rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: 999px;
	color: var(--sm-ink);
	text-decoration: none;
	font-weight: 700;
	font-size: .82rem;
	transition: all .15s ease;
}
.sm-single__tags a:hover {
	color: var(--sm-primary);
	border-color: var(--sm-primary);
}

/* ---------- Author bio block (in single) ---------- */
.sm-single__author {
	margin: 2.4rem 0 0;
	padding: 1.5rem 1.6rem;
	background: linear-gradient(135deg, var(--sm-bg-tint) 0%, #fff 100%);
	border: 1px solid var(--sm-border);
	border-left: 4px solid var(--sm-primary);
	border-radius: var(--sm-radius);
	display: flex;
	gap: 1.2rem;
	align-items: flex-start;
}
.sm-single__author-avatar-wrap {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #fff;
	padding: 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 0 0 2px var(--sm-primary), 0 10px 22px rgba(225,29,116,0.18);
	overflow: hidden;
}
.sm-single__author-avatar {
	width: 100%; height: 100%;
	border-radius: 50%;
	object-fit: contain;
	display: block;
	background: #fff;
	border: 0;
	flex-shrink: 0;
}
.sm-single__author-kicker {
	margin: 0 0 .25rem;
	font-size: .7rem; text-transform: uppercase; letter-spacing: .14em;
	font-weight: 800; color: var(--sm-muted);
}
.sm-single__author-name {
	margin: 0 0 .5rem;
	font-size: 1.25rem; font-weight: 800; color: var(--sm-ink);
	letter-spacing: -.012em;
}
.sm-single__author-name a { color: inherit; text-decoration: none; }
.sm-single__author-name a:hover { color: var(--sm-primary); }
.sm-single__author-bio {
	margin: 0 0 .65rem;
	font-size: .92rem; line-height: 1.6; color: var(--sm-ink-dim);
}
.sm-single__author-cta {
	font-size: .85rem; font-weight: 800; color: var(--sm-primary);
	text-decoration: none;
	display: inline-flex; align-items: center; gap: .35rem;
	transition: gap .2s ease;
}
.sm-single__author-cta:hover { gap: .55rem; color: var(--sm-secondary); }

/* ---------- Post navigation (prev / next) ---------- */
.sm-postnav {
	margin: 2rem 0 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: .85rem;
}
@media (min-width: 720px) { .sm-postnav { grid-template-columns: 1fr 1fr; } }
.sm-postnav__item {
	display: flex; flex-direction: column; gap: .35rem;
	padding: 1rem 1.2rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius);
	text-decoration: none;
	box-shadow: var(--sm-shadow-sm);
	transition: all .2s ease;
}
.sm-postnav__item:hover {
	transform: translateY(-2px);
	box-shadow: var(--sm-shadow-lg);
	border-color: var(--sm-primary);
}
.sm-postnav__item--next { text-align: right; }
.sm-postnav__lab {
	font-size: .7rem; text-transform: uppercase; letter-spacing: .14em;
	font-weight: 800; color: var(--sm-primary);
}
.sm-postnav__title {
	font-size: .95rem; font-weight: 800; color: var(--sm-ink);
	line-height: 1.35;
}

/* ---------- Author archive header card ---------- */
.sm-author-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.4rem;
	padding: 1.8rem;
	background: #fff;
	border: 1px solid var(--sm-border);
	border-radius: var(--sm-radius-lg);
	box-shadow: var(--sm-shadow-sm);
	margin-top: 1.5rem;
}
@media (min-width: 720px) {
	.sm-author-card { grid-template-columns: auto 1fr; gap: 2rem; align-items: center; }
}
.sm-author-card__avatar {
	width: 120px; height: 120px;
	border-radius: 50%;
	background: #fff;
	color: var(--sm-ink);
	display: grid; place-items: center;
	font-size: 2.4rem; font-weight: 900;
	letter-spacing: .04em;
	padding: 10px;
	box-shadow: 0 0 0 3px var(--sm-primary), 0 16px 34px rgba(225,29,116,0.22);
	flex-shrink: 0;
	overflow: hidden;
}
.sm-author-card__avatar img {
	width: 100%; height: 100%;
	object-fit: contain;
	display: block;
	border-radius: 50%;
	background: #fff;
}
.sm-author-card__avatar span {
	background: linear-gradient(135deg, var(--sm-primary), var(--sm-secondary));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.sm-author-card__kicker {
	display: inline-block;
	font-size: .68rem; text-transform: uppercase; letter-spacing: .18em;
	font-weight: 800; color: var(--sm-primary);
	margin: 0 0 .55rem;
}
.sm-author-card__name {
	font-size: clamp(1.55rem, 3vw, 2.1rem);
	font-weight: 900;
	color: var(--sm-ink);
	margin: 0 0 .65rem;
	letter-spacing: -.018em;
	line-height: 1.15;
}
.sm-author-card__bio {
	font-size: .98rem;
	line-height: 1.6;
	color: var(--sm-ink-dim);
	margin: 0 0 1rem;
}
.sm-author-card__meta {
	display: flex; flex-wrap: wrap; gap: .8rem 1.4rem;
	align-items: center;
	padding-top: 1rem;
	border-top: 1px dashed var(--sm-border-str);
}
.sm-author-card__stat { display: flex; align-items: baseline; gap: .4rem; }
.sm-author-card__stat-num {
	font-size: 1.4rem;
	font-weight: 900;
	color: var(--sm-primary);
	line-height: 1;
}
.sm-author-card__stat-lab {
	font-size: .78rem;
	color: var(--sm-muted);
	font-weight: 600;
}
.sm-author-card__link {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .85rem; font-weight: 700;
	color: var(--sm-ink);
	text-decoration: none;
	padding: .35rem .8rem;
	background: var(--sm-bg-tint);
	border-radius: 999px;
	border: 1px solid var(--sm-border);
	transition: all .15s ease;
}
.sm-author-card__link:hover { color: var(--sm-primary); border-color: var(--sm-primary); }
