:root {
	--color-primary: #1b1b1b;
	--color-accent: #ff6106;
	--color-accent-pressed: #d04701;
	--color-bg: #1a1a1a;
	--color-bg-elevated: #222222;
	--color-bg-card: #1f1f1f;
	--color-text: #ffffff;
	--color-text-muted: #c1c1c1;
	--color-rg-banner: #dc2626;
	--color-border: rgba(255, 255, 255, 0.08);

	--font-display: "Rubik", system-ui, sans-serif;
	--font-body: "Rubik", system-ui, sans-serif;

	--fs-h1: 56px;
	--fs-h2: 38px;
	--fs-h3: 24px;
	--fs-h4: 18px;
	--fs-h5: 15px;
	--fs-h6: 13px;
	--fs-body: 16px;
	--fs-small: 13px;
	--fs-micro: 11px;

	--lh-tight: 1.0;
	--lh-normal: 1.4;
	--lh-loose: 1.6;

	--ls-tight: -0.02em;
	--ls-normal: 0.02em;
	--ls-wide: 0.1em;

	--fw-regular: 500;
	--fw-medium: 700;
	--fw-bold: 900;

	--space-2xs: 2px;
	--space-xs: 6px;
	--space-sm: 10px;
	--space-md: 16px;
	--space-lg: 48px;
	--space-xl: 80px;
	--space-2xl: 128px;
	--space-3xl: 200px;

	--container-narrow: 600px;
	--container-default: 920px;
	--container-wide: 1480px;
	--container-readable: 720px;
	--container-site: 1380px;
	--container-padding-mobile: 16px;
	--container-padding-tablet: 24px;
	--container-padding-desktop: 48px;

	--radius-xs: 4px;
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--radius-pill: 9999px;
	--radius-circle: 50%;

	--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.45);

	--border-thin: 1px;
	--border-medium: 2px;

	--dur-fast: 120ms;
	--dur-base: 150ms;
	--dur-slow: 200ms;
	--ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);

	--header-height-desktop: 120px;
	--header-height-mobile: 80px;
}

* { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-weight: var(--fw-regular);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	padding-top: var(--header-height-desktop);
	padding-bottom: 64px;
}

@media (max-width: 820px) {
	body { padding-top: var(--header-height-mobile); padding-bottom: 96px; }
	:root {
		--fs-h1: 34px;
		--fs-h2: 26px;
		--fs-h3: 20px;
		--fs-h4: 16px;
		--fs-h5: 14px;
		--fs-h6: 12px;
		--fs-body: 15px;
		--fs-small: 12px;
		--fs-micro: 10px;
	}
}

img { max-width: 100%; display: block; }
a { color: var(--color-accent); }
a:hover { color: var(--color-accent-pressed); transition: color var(--dur-fast) var(--ease-out); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); margin: 0; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }

.skip-link {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	background: var(--color-accent);
	color: var(--color-bg);
	padding: 8px 16px;
	border-radius: var(--radius-md);
	z-index: 10000;
	font-weight: var(--fw-bold);
	text-decoration: none;
}
.skip-link:not(:focus) { top: -200px !important; }
.skip-link:focus { top: 12px; }

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

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

/* ============ HEADER HEAD-13 ============ */
.k40 {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: var(--color-bg);
	height: var(--header-height-desktop);
}
.k40-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	height: 100%;
	display: flex;
	align-items: center;
	gap: var(--space-md);
}
.k40-logo {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.k40-logo-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #ffffff;
	padding: 6px 12px;
	border-radius: var(--radius-md);
}
.k40-logo-img {
	height: 88px;
	width: auto;
	min-width: 88px;
	display: block;
}
.k40-nav {
	display: flex;
	flex: 1;
	justify-content: center;
	margin-left: var(--space-lg);
	position: relative;
}
.k40-list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--space-md);
	flex-wrap: nowrap;
	align-items: center;
}
.k40-nav-item { display: inline-flex; align-items: center; position: relative; }
.k40-nav-item--more { position: relative; }
.k40-link {
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text);
	text-decoration: none;
	white-space: nowrap;
	padding: var(--space-2xs) var(--space-xs);
}
.k40-link:hover, .k40-link:focus-visible { color: var(--color-accent); }
.k40-list a[aria-current="page"] { color: var(--color-accent); }
.k40-more-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2xs);
	background: transparent;
	border: 0;
	cursor: pointer;
	color: inherit;
	font: inherit;
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	padding: var(--space-2xs) var(--space-xs);
}
.k40-more-toggle:hover, .k40-more-toggle:focus-visible { color: var(--color-accent); }
.k40-more-chevron {
	display: inline-block;
	transition: transform var(--dur-fast) var(--ease-out);
}
.k40-more-toggle[aria-expanded="true"] .k40-more-chevron { transform: rotate(180deg); }
.k40-more-menu {
	position: absolute;
	top: calc(100% + var(--space-xs));
	right: 0;
	margin: 0;
	padding: var(--space-xs) 0;
	list-style: none;
	background: var(--color-bg-elevated);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	min-width: 220px;
	z-index: 110;
}
.k40-more-menu[hidden] { display: none; }
.k40-more-menu.is-open { display: block; }
.k40-more-link {
	display: block;
	padding: var(--space-sm) var(--space-md);
	color: var(--color-text);
	text-decoration: none;
	white-space: nowrap;
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
}
.k40-more-link:hover, .k40-more-link:focus-visible {
	background: rgba(255, 255, 255, 0.06);
	color: var(--color-accent);
}
.k40-auth {
	display: flex;
	gap: var(--space-sm);
	margin-left: auto;
	flex-shrink: 0;
}
.k40-auth-btn {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	flex-shrink: 0;
	height: 40px;
	padding-inline: var(--space-lg);
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border-radius: var(--radius-md);
	text-decoration: none;
	transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.k40-auth-btn--login {
	background: transparent;
	border: 1px solid var(--color-text);
	color: var(--color-text);
}
.k40-auth-btn--login:hover {
	background: var(--color-text);
	color: var(--color-bg);
}
.k40-auth-btn--register {
	background: var(--color-accent);
	border: 1px solid var(--color-accent);
	color: var(--color-bg);
}
.k40-auth-btn--register:hover {
	background: var(--color-accent-pressed);
	border-color: var(--color-accent-pressed);
	color: var(--color-bg);
}
.k40-toggle {
	display: none;
	background: transparent;
	border: 0;
	color: var(--color-text);
	cursor: pointer;
	padding: 8px;
	margin-left: auto;
	font-size: 24px;
	line-height: 1;
}
.k40-toggle-bar {
	display: block;
	width: 28px;
	height: 2px;
	background: var(--color-text);
	margin: 6px 0;
}
.k40-mobile {
	display: none;
	position: fixed;
	top: var(--header-height-mobile);
	left: 0;
	right: 0;
	background: var(--color-bg-elevated);
	border-top: 1px solid var(--color-border);
	padding: var(--space-md);
	max-height: calc(100vh - var(--header-height-mobile));
	overflow-y: auto;
	z-index: 99;
}
.k40-mobile.is-open { display: block; }
.k40-mobile-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}
.k40-mobile-link {
	display: block;
	padding: var(--space-sm) var(--space-md);
	color: var(--color-text);
	text-decoration: none;
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-body);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border-radius: var(--radius-md);
}
.k40-mobile-link:hover, .k40-mobile-link[aria-current="page"] {
	background: rgba(255, 255, 255, 0.06);
	color: var(--color-accent);
}
.k40-mobile-auth {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}

@media (max-width: 1099px) {
	.k40 { height: var(--header-height-mobile); }
	.k40-inner { padding-inline: var(--container-padding-mobile); }
	.k40-nav, .k40-auth { display: none; }
	.k40-toggle { display: block; margin-left: auto !important; }
	.k40-logo-img { height: 60px; min-width: 60px; }
	.k40-logo-pill { padding: 4px 10px; }
}

/* ============ FOOTER FOOT-04 — sticky mini ============ */
.n24 {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(26, 26, 26, 0.95);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--color-border);
	z-index: 80;
}
.n24-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding: var(--space-md) var(--container-padding-desktop);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-md);
	min-height: 64px;
}
.n24-copy {
	font-size: var(--fs-micro);
	color: var(--color-text-muted);
}
.n24-nav {
	display: flex;
	gap: var(--space-sm);
	align-items: center;
}
.n24-nav a {
	font-size: var(--fs-micro);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text-muted);
	text-decoration: none;
	border-left: 1px solid var(--color-text-muted);
	padding-left: var(--space-sm);
}
.n24-nav a:first-child {
	border-left: 0;
	padding-left: 0;
}
.n24-nav a:hover { color: var(--color-text); }

@media (max-width: 820px) {
	.n24-inner {
		flex-direction: column;
		gap: var(--space-sm);
		padding: var(--space-sm) var(--container-padding-mobile);
	}
	.n24-nav { width: 100%; flex-wrap: wrap; justify-content: center; }
}

/* ============ HERO HERO-01 — full-bleed cinematic ============ */
.z50 {
	position: relative;
	height: clamp(600px, 100vh, 900px);
	overflow: hidden;
	background: var(--color-bg);
	margin-top: calc(-1 * var(--header-height-desktop));
}
.z50-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	z-index: 1;
}
.z50-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.75) 100%);
	z-index: 2;
}
.z50-content {
	position: relative;
	z-index: 3;
	height: 100%;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	padding-bottom: var(--space-2xl);
	padding-top: calc(var(--header-height-desktop) + var(--space-xl));
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.z50-eyebrow {
	display: inline-block;
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-accent);
	margin-bottom: var(--space-md);
}
.z50-title {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h1);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: #ffffff;
	max-width: 920px;
	margin-bottom: var(--space-md);
}
.z50-subtitle {
	font-family: var(--font-body);
	font-weight: var(--fw-regular);
	font-size: var(--fs-h5);
	color: rgba(255, 255, 255, 0.85);
	line-height: var(--lh-normal);
	max-width: 640px;
	margin-bottom: var(--space-lg);
}
.z50-cta {
	display: inline-flex;
	align-items: center;
	height: 56px;
	padding-inline: var(--space-xl);
	background: var(--color-accent);
	color: #ffffff;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h6);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border-radius: var(--radius-md);
	text-decoration: none;
	width: fit-content;
	transition: background var(--dur-base) var(--ease-out), transform var(--dur-base);
}
.z50-cta:hover {
	background: var(--color-accent-pressed);
	color: #ffffff;
	transform: translateY(-2px);
}

@media (max-width: 820px) {
	.z50 {
		height: clamp(480px, 70vh, 600px);
		margin-top: calc(-1 * var(--header-height-mobile));
	}
	.z50-content {
		padding-inline: var(--container-padding-mobile);
		padding-top: calc(var(--header-height-mobile) + var(--space-lg));
		padding-bottom: var(--space-xl);
	}
	.z50-cta { width: 100%; justify-content: center; height: 52px; }
}

/* ============ PAGE-HEADER PHEAD-05 ============ */
.f55 {
	padding-block: var(--space-lg);
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}
.f55-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.f55-eyebrow {
	display: inline-block;
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-micro);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text-muted);
	margin-bottom: var(--space-sm);
}
.f55-eyebrow strong { color: var(--color-accent); font-weight: var(--fw-bold); }
.f55-title {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h1);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: var(--space-md);
}
.f55-description {
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	line-height: var(--lh-normal);
	color: var(--color-text-muted);
	max-width: 920px;
}
@media (max-width: 820px) {
	.f55-inner { padding-inline: var(--container-padding-mobile); }
	.f55 { padding-block: var(--space-lg); }
}

/* ============ PROSE / BODY SECTIONS PROSE-06 (centered quiet) ============ */
.o20 {
	padding-block: var(--space-lg);
}
.o20-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}
.o20 h2 {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h3);
	text-transform: uppercase;
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-top: var(--space-2xl);
	margin-bottom: var(--space-md);
}
.o20 h2:first-child { margin-top: 0; }
.o20 p {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
	margin-bottom: var(--space-md);
}
.o20 a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }
.o20 a:hover { color: var(--color-accent-pressed); }
.o20 strong { color: var(--color-text); font-weight: var(--fw-bold); }
.o20 em { color: var(--color-text); font-style: italic; }
.o20 ol, .o20 ul {
	list-style-position: inside;
	margin: var(--space-md) auto;
	max-width: 720px;
	text-align: left;
	color: var(--color-text-muted);
	line-height: var(--lh-loose);
}
.o20 li { margin-bottom: var(--space-xs); }
.o20-figure {
	margin: var(--space-lg) auto;
	max-width: 920px;
}
.o20-figure img {
	width: 100%;
	height: auto;
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
}
@media (max-width: 820px) {
	.o20-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ ITEMS-GRID GRID-11 — mixed block sizes ============ */
.t65 {
	padding-block: var(--space-lg);
}
.t65-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.t65-heading {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: var(--space-lg);
}
.t65-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: minmax(180px, auto);
	gap: var(--space-md);
	list-style: none;
}
.t65-item {
	padding: var(--space-lg);
	background: var(--color-bg-elevated);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}
.t65-item--featured {
	grid-column: span 2;
	grid-row: span 2;
	padding: var(--space-xl);
	background: linear-gradient(135deg, var(--color-primary), var(--color-bg-elevated));
	border-color: var(--color-accent);
}
.t65-item--wide { grid-column: span 2; }
.t65-item h3 {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h4);
	line-height: var(--lh-normal);
	color: var(--color-text);
	margin-bottom: var(--space-sm);
}
.t65-item--featured h3 { font-size: var(--fs-h3); color: var(--color-accent); }
.t65-item p {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
}
@media (max-width: 1099px) {
	.t65-list { grid-template-columns: repeat(2, 1fr); }
	.t65-item--featured, .t65-item--wide { grid-column: span 2; grid-row: auto; }
}
@media (max-width: 820px) {
	.t65-inner { padding-inline: var(--container-padding-mobile); }
	.t65-list { grid-template-columns: 1fr; }
	.t65-item--featured, .t65-item--wide { grid-column: auto; }
}

/* ============ FAQ FAQ-09 — magazine Q&A ============ */
.i87 {
	padding-block: var(--space-lg);
}
.i87-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.i87-heading {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: var(--space-lg);
}
.i87-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-xl);
}
.i87-item {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}
.i87-question {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h5);
	color: var(--color-text);
	font-style: italic;
	line-height: var(--lh-normal);
	margin: 0;
}
.i87-answer {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
	margin: 0;
}
.i87-prefix {
	display: inline-block;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h5);
	color: var(--color-accent);
	margin-right: var(--space-xs);
	font-style: normal;
}
@media (max-width: 820px) {
	.i87-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ REVIEWS REV-07 — grid with color-coded ratings ============ */
.g68 {
	padding-block: var(--space-lg);
}
.g68-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.g68-heading {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: var(--space-lg);
}
.g68-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-md);
	list-style: none;
}
.g68-item {
	padding: var(--space-lg);
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	background: var(--color-bg-elevated);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}
.g68-item--high { background: rgba(255, 97, 6, 0.08); border-color: rgba(255, 97, 6, 0.3); }
.g68-item--mid { background: var(--color-bg-elevated); }
.g68-item--low { background: rgba(27, 27, 27, 0.6); }
.g68-row {
	display: flex;
	align-items: baseline;
	gap: var(--space-sm);
}
.g68-rating {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	color: var(--color-accent);
	line-height: 1;
}
.g68-bar {
	display: inline-flex;
	gap: 4px;
}
.g68-bar-tick {
	width: 12px;
	height: 4px;
	background: var(--color-accent);
	border-radius: 2px;
	opacity: 0.3;
}
.g68-bar-tick.is-on { opacity: 1; }
.g68-author {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h5);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text);
}
.g68-text {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
}
@media (max-width: 820px) {
	.g68-inner { padding-inline: var(--container-padding-mobile); }
	.g68-list { grid-template-columns: 1fr; }
}

/* ============ CTA-BLOCK CTA-07 — vertical card with decorative number ============ */
.b50 {
	padding-block: var(--space-lg);
}
.b50-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.b50-card {
	padding: var(--space-2xl) var(--space-xl);
	background: var(--color-bg);
	border: 2px solid var(--color-accent);
	border-radius: var(--radius-lg);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-md);
}
.b50-decor {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h1);
	color: var(--color-accent);
	line-height: 1;
	margin-bottom: var(--space-sm);
}
.b50-title {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
}
.b50-text {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
	max-width: 680px;
}
.b50-button {
	display: inline-flex;
	align-items: center;
	height: 56px;
	padding-inline: var(--space-xl);
	background: var(--color-accent);
	color: #ffffff;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h6);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border-radius: var(--radius-md);
	text-decoration: none;
	border: 0;
	cursor: pointer;
	transition: background var(--dur-base) var(--ease-out);
}
.b50-button:hover {
	background: var(--color-accent-pressed);
	color: #ffffff;
}
@media (max-width: 820px) {
	.b50-inner { padding-inline: var(--container-padding-mobile); }
	.b50-card { padding: var(--space-xl) var(--space-md); }
	.b50-button { width: 100%; justify-content: center; }
}

/* ============ DATA-TABLE TABLE-01 ============ */
.y42 {
	padding-block: var(--space-lg);
}
.y42-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.y42-heading {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	color: var(--color-text);
	margin-bottom: var(--space-lg);
}
.y42-scroll {
	overflow-x: auto;
	border-radius: var(--radius-md);
}
.y42-table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	background: var(--color-bg-elevated);
}
.y42-table thead { background: var(--color-primary); }
.y42-table th {
	padding: var(--space-md);
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-h6);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-accent);
	text-align: left;
}
.y42-table td {
	padding: var(--space-md);
	font-size: var(--fs-body);
	color: var(--color-text-muted);
	border-top: 1px solid var(--color-border);
}
.y42-table td:first-child { color: var(--color-text); font-weight: var(--fw-medium); }
.y42-table tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.02); }
@media (max-width: 820px) {
	.y42-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ LEGAL-SECTION LEGAL-03 — two-column sidebar TOC ============ */
.r23 {
	padding-block: var(--space-lg);
}
.r23-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--space-2xl);
}
.r23-toc {
	position: sticky;
	top: calc(var(--header-height-desktop) + var(--space-md));
	padding: var(--space-md);
	background: var(--color-bg-elevated);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	height: fit-content;
}
.r23-toc h4 {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h5);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-accent);
	margin-bottom: var(--space-sm);
}
.r23-toc ol {
	list-style: decimal inside;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}
.r23-toc a {
	font-size: var(--fs-small);
	color: var(--color-text-muted);
	text-decoration: none;
}
.r23-toc a:hover { color: var(--color-accent); }
.r23-body {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}
.r23-intro {
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
}
.r23-updated {
	font-size: var(--fs-small);
	color: var(--color-text-muted);
	font-style: italic;
}
.r23-section {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}
.r23-section h3 {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h3);
	color: var(--color-text);
	margin-top: var(--space-lg);
}
.r23-section p {
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
}
.r23-support {
	margin-top: var(--space-lg);
	padding: var(--space-md);
	background: var(--color-bg-elevated);
	border-left: 3px solid var(--color-accent);
	border-radius: var(--radius-sm);
}
.r23-support h4 {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h5);
	text-transform: uppercase;
	color: var(--color-text);
	margin-bottom: var(--space-sm);
}
.r23-support ul { list-style: disc inside; color: var(--color-text-muted); }
.r23-disclaimer {
	margin-top: var(--space-md);
	padding: var(--space-md);
	font-size: var(--fs-small);
	color: var(--color-text-muted);
	font-style: italic;
	border: 1px dashed var(--color-border);
	border-radius: var(--radius-sm);
}
@media (max-width: 1099px) {
	.r23-inner { grid-template-columns: 1fr; gap: var(--space-lg); }
	.r23-toc { position: static; }
}
@media (max-width: 820px) {
	.r23-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ CONTACT-FORM FORM-05 — bordered editorial ============ */
.e10 {
	padding-block: var(--space-lg);
}
.e10-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.e10-intro {
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
	margin-bottom: var(--space-lg);
	max-width: 920px;
}
.e10-form {
	border: 2px solid var(--color-accent);
	border-radius: var(--radius-md);
	padding: var(--space-xl);
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}
.e10-field { display: flex; flex-direction: column; gap: var(--space-xs); }
.e10-label {
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text);
}
.e10-input {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	color: var(--color-text);
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	padding: var(--space-sm) 0;
	width: 100%;
}
.e10-input:focus { outline: 0; border-bottom-color: var(--color-accent); }
textarea.e10-input { min-height: 140px; resize: vertical; }
.e10-submit {
	align-self: flex-start;
	height: 48px;
	padding-inline: var(--space-xl);
	background: var(--color-accent);
	color: #ffffff;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h6);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border: 0;
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: background var(--dur-base) var(--ease-out);
}
.e10-submit:hover { background: var(--color-accent-pressed); color: #ffffff; }
.e10-success {
	display: none;
	padding: var(--space-md);
	background: rgba(34, 197, 94, 0.1);
	border: 1px solid rgba(34, 197, 94, 0.3);
	border-radius: var(--radius-md);
	color: var(--color-text);
	margin-bottom: var(--space-md);
}
.e10-success.is-visible { display: block; }
@media (max-width: 820px) {
	.e10-inner { padding-inline: var(--container-padding-mobile); }
	.e10-form { padding: var(--space-lg) var(--space-md); }
	.e10-submit { width: 100%; }
}

/* ============ COOKIE-BANNER COOK-02 — full-width bottom strip ============ */
.c04 {
	position: fixed;
	bottom: 64px;
	left: 0;
	right: 0;
	background: var(--color-primary);
	border-top: 1px solid var(--color-border);
	padding-block: var(--space-md);
	padding-inline: var(--container-padding-desktop);
	z-index: 95;
	display: none;
}
.c04.is-visible { display: block; }
.c04-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-md);
}
.c04-message {
	flex: 1;
	font-size: var(--fs-small);
	color: var(--color-text-muted);
	line-height: var(--lh-normal);
}
.c04-actions {
	display: flex;
	gap: var(--space-sm);
	flex-shrink: 0;
}
.c04-button {
	height: 40px;
	padding-inline: var(--space-md);
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-micro);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border: 0;
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: background var(--dur-base) var(--ease-out);
}
.c04-button--accept { background: var(--color-accent); color: #ffffff; }
.c04-button--accept:hover { background: var(--color-accent-pressed); color: #ffffff; }
.c04-button--decline {
	background: transparent;
	color: var(--color-text);
	border: 1px solid rgba(255, 255, 255, 0.18);
}
.c04-button--decline:hover { background: rgba(255, 255, 255, 0.06); color: var(--color-text); }

@media (max-width: 720px) {
	.c04, .c04-inner {
		padding: 12px 14px !important;
		gap: 8px !important;
		font-size: 13px !important;
		line-height: 1.35 !important;
	}
	.c04 { bottom: 80px; padding-inline: 14px !important; }
	.c04-inner { flex-direction: column; align-items: stretch; }
	.c04-actions { width: 100%; }
	.c04-button {
		flex: 1;
		padding: 8px 14px !important;
		font-size: 12px !important;
		min-height: 36px !important;
	}
}

/* ============ ERROR-BLOCK ERR-03 — minimal no-drama ============ */
.o26 {
	padding-block: var(--space-lg);
}
.o26-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}
.o26-body {
	max-width: 600px;
	margin-inline: auto;
}
.o26-title {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h2);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	color: var(--color-text);
	margin-bottom: var(--space-md);
}
.o26-text {
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	color: var(--color-text-muted);
	margin-bottom: var(--space-lg);
}
.o26-button {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding-inline: var(--space-xl);
	background: var(--color-accent);
	color: #ffffff;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h6);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	border-radius: var(--radius-md);
	text-decoration: none;
}
.o26-button:hover { background: var(--color-accent-pressed); color: #ffffff; }

/* ============ AUTHOR-BYLINE BYLINE-04 — quote-style editorial ============ */
.s09 {
	padding-block: var(--space-lg);
	border-top: 1px solid var(--color-border);
}
.s09-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.s09-quote {
	max-width: 760px;
	margin-inline: auto;
}
.s09-quote {
	text-align: center;
	position: relative;
	padding-top: var(--space-lg);
}
.s09-quote::before {
	content: "\201C";
	display: block;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-h1);
	color: var(--color-accent);
	line-height: 0.6;
	margin-bottom: var(--space-sm);
}
.s09-text {
	font-family: var(--font-display);
	font-weight: var(--fw-regular);
	font-size: var(--fs-h4);
	font-style: italic;
	color: var(--color-text);
	line-height: var(--lh-normal);
	margin-bottom: var(--space-md);
}
.s09-attribution {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	flex-wrap: wrap;
	justify-content: center;
}
.s09-portrait {
	width: 36px;
	height: 36px;
	border-radius: var(--radius-circle);
	object-fit: cover;
	object-position: center 20%;
}
.s09-name { font-style: normal; }
.s09-name a {
	color: var(--color-accent);
	font-weight: var(--fw-bold);
	text-decoration: none;
}
.s09-name a:hover { color: var(--color-accent-pressed); }
.s09-role {
	font-size: var(--fs-small);
	font-style: italic;
	color: var(--color-text-muted);
}
@media (max-width: 820px) {
	.s09-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ AUTHOR-CARD AUTH-06 — full-hero style ============ */
.g11 {
	padding-block: var(--space-lg);
	background: linear-gradient(135deg, var(--color-primary), var(--color-bg));
}
.g11-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: var(--space-2xl);
	align-items: center;
}
.g11-portrait {
	width: 280px;
	aspect-ratio: 4 / 5;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-lg);
	background: var(--color-bg-elevated);
}
.g11-portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
}
.g11-body { display: flex; flex-direction: column; gap: var(--space-md); }
.g11-eyebrow {
	font-family: var(--font-body);
	font-weight: var(--fw-medium);
	font-size: var(--fs-small);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-accent);
}
.g11-name {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: clamp(40px, 6vw, 64px);
	text-transform: uppercase;
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	color: var(--color-text);
}
.g11-bio {
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	line-height: var(--lh-normal);
	color: rgba(255, 255, 255, 0.85);
	max-width: 620px;
}
.g11-expertise {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	list-style: none;
}
.g11-tag {
	display: inline-block;
	padding: 6px 14px;
	background: rgba(255, 97, 6, 0.15);
	border: 1px solid var(--color-accent);
	color: var(--color-text);
	border-radius: var(--radius-pill);
	font-size: var(--fs-micro);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
}
@media (max-width: 1099px) {
	.g11-inner { grid-template-columns: 1fr; gap: var(--space-lg); }
	.g11-portrait { margin-inline: auto; max-width: 240px; }
}
@media (max-width: 820px) {
	.g11 { padding-block: var(--space-lg); }
	.g11-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ INLINE-CTA INLINE-CTA-03 — inline text hook ============ */
.r12 {
	padding-block: var(--space-md);
}
.r12-inner {
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	margin-inline: auto;
	padding-inline: var(--container-padding-desktop);
}
.r12-line {
	font-family: var(--font-body);
	font-size: var(--fs-h6);
	line-height: var(--lh-normal);
	color: var(--color-text-muted);
	text-align: center;
}
.r12-line strong { color: var(--color-text); font-weight: var(--fw-bold); }
.r12-link {
	color: var(--color-accent);
	font-weight: var(--fw-bold);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.r12-link:hover {
	color: var(--color-accent-pressed);
	text-decoration-thickness: 2px;
}
@media (max-width: 820px) {
	.r12-inner { padding-inline: var(--container-padding-mobile); }
}

/* ============ 18+ RG banner (above sticky footer) ============ */
.rg-banner {
	padding: 6px 12px;
	background: var(--color-rg-banner);
	color: #ffffff;
	font-size: var(--fs-micro);
	text-align: center;
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
