/* Reset */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Anchor targets stop short of the viewport edge instead of butting against it. */
main [id] { scroll-margin-top: 32px; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

html, body, ul, ol, h1, h2, h3, h4, h5, h6, p, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; background: none; border: 0; cursor: pointer; }

/* Tokens */
:root {
	--color-bg: #171717;
	--color-dark: #2d2c2c;
	--color-dark-alt: #272727;
	--color-heading: #272729;
	--color-text-muted: #3b3b3b;
	--color-text-strong: #1c1c1c;
	--color-accent-orange: #ff6a00;
	--color-accent-red: #fd4a26;
	--color-green: #1bb96b;
	--color-pink: #b91b5d;
	--color-nav-inactive: #e5e8ee;
	--color-nav-active: #ff5532;
	--gradient-cta: radial-gradient(circle, #ff0e0e 0%, #ff5532 100%);
	--font-heading: 'Montserrat', sans-serif;
	--font-display: 'Inter', sans-serif;
	--font-body: 'Open Sans', sans-serif;

	/* --- Design tokens (new.pen) --- */
	--color-deep: #03050c;
	--color-lime: #7bff00;
	--color-lime-soft: #d6ffaf;
	--color-live: #04ff00;
	--color-green-mid: #438802;
	--color-hairline: #2bba004d;
	--font-ui: 'Outfit', sans-serif;
	--font-mono: 'JetBrains Mono', monospace;
	/* Brushed-silver fill shared by the header CTA and display headings. */
	--gradient-silver: linear-gradient(135deg, #696969 7.47%, #f9f8f6 39.37%, #d4d4d4 66.96%, #7f7f7f 100%);
	--gradient-lime: linear-gradient(90deg, #7bff00 49.04%, #d6ffaf 77.4%);
	/* Dark card surface — shared by the step cards, the inverted feature/promo cards
	   and the FAQ rows. */
	--gradient-surface-dark: radial-gradient(96.62% 270.77% at 5.14% 3.38%, #03050C 0%, #1C1F19 100%);
	--gradient-surface-lime: radial-gradient(187% 201% at 11.4% 0%, #7bff00 22.64%, #438802 100%);
	--header-h: 80px;
}

@media (max-width: 1023px) {
	:root { --header-h: 64px; }
}

body {
	font-family: var(--font-heading);
	color: #fff;
	background: var(--color-deep);
	-webkit-font-smoothing: antialiased;
}

.container {
	max-width: 1600px;
	margin: 0 auto;
	padding: 0 80px;
	box-sizing: border-box;
}

@media (max-width: 1023px) {
	.container { padding: 0 16px; }
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 4px;
	padding: 8px 32px;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
	border: none;
	cursor: pointer;
}

.btn--outline {
	background: transparent;
	color: #fff;
	border: 1px solid #fff;
}

.btn--gradient {
	background: var(--gradient-cta);
	color: #fff;
}

.btn--lg {
	padding: 12px 40px;
	font-size: 16px;
	font-weight: 800;
}

.btn--silver {
	background: var(--gradient-silver);
	border: 1px solid #fff;
	border-radius: 8px;
	padding: 10px 20px;
	font-family: var(--font-ui);
	font-size: 15px;
	font-weight: 700;
	color: #1d1d1d;
}

/* Site header — sticky, transparent over the hero, solid once you scroll past it. */
.site-header {
	position: sticky;
	top: 0;
	height: var(--header-h);
	background: transparent;
	z-index: 100;
	transition: background .25s ease, border-color .25s ease;
	border-bottom: 1px solid transparent;
}

.site-header.is-stuck {
	background: rgba(3, 5, 12, .88);
	backdrop-filter: blur(10px);
	border-bottom-color: var(--color-hairline);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
}

.site-header__logo {
	display: block;
	line-height: 0;
}

.site-header__logo img {
	height: 22px;
	width: auto;
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: 20px;
}

.site-header__login {
	font-family: var(--font-ui);
	font-size: 15px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
}

.site-nav__list {
	display: flex;
	align-items: center;
	gap: 32px;
}

.site-nav__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 4px;
}

.site-nav__item a {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #fff;
	font-family: var(--font-heading);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: color .2s ease;
}

.site-nav__item a:hover,
.site-nav__item a.current-ref {
	color: var(--color-lime);
}

/* "Live" nav item — add the CSS class `is-live` to the menu item in Appearance → Menus
 * to get the green label plus its pulsing dot. */
.site-nav__item.is-live > a {
	color: var(--color-live);
}

.site-nav__item.is-live > a::after {
	content: '';
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-live);
	flex: none;
}

/* new.pen nav items are text-only — the walker's auto-injected glyphs are suppressed. */
.site-nav__icon {
	display: none;
}

/* WPML language switcher rendered as a menu item. Its markup comes from the plugin, so
   these are the plugin's own class names rather than theme ones. */
.site-nav__item .wpml-ls-flag {
	display: inline-block;
	width: 18px;
	height: auto;
	margin-right: 8px;
	border-radius: 2px;
	vertical-align: -3px;
}

.site-nav__item .wpml-ls-native {
	white-space: nowrap;
}

.wpml-ls-menu-item.wpml-ls-current-language > a {
	color: var(--color-lime);
}

.site-nav__caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 10px;
	height: 10px;
	flex: none;
	color: #fff;
	transition: transform .2s ease, color .2s ease;
}

/* The glyph keeps its own size so the box can grow into a tap target on touch. */
.site-nav__caret svg {
	width: 10px;
	height: 10px;
}

.site-nav__item:hover > .site-nav__caret,
.site-nav__item:focus-within > .site-nav__caret {
	color: var(--color-lime);
	transform: rotate(180deg);
}

/* Submenu — desktop hover dropdown */
.sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 200;
	min-width: 220px;
	margin-top: 16px;
	padding: 8px;
	border-radius: 12px;
	background: var(--gradient-surface-dark);
	border: 1px solid var(--color-hairline);
	box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}

.site-nav__item:hover > .sub-menu,
.site-nav__item:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.sub-menu .site-nav__item { width: 100%; }

.sub-menu .site-nav__item a {
	padding: 8px 12px;
	border-radius: 6px;
	white-space: nowrap;
}

.sub-menu .site-nav__item a:hover {
	background: rgba(123, 255, 0, .12);
	color: var(--color-lime);
}

/* Second level and deeper open to the side rather than stacking on top. */
.sub-menu .sub-menu {
	top: 0;
	left: 100%;
	margin: 0 0 0 8px;
}

.sub-menu .site-nav__caret {
	transform: rotate(-90deg);
}

.sub-menu .site-nav__item:hover > .site-nav__caret,
.sub-menu .site-nav__item:focus-within > .site-nav__caret {
	transform: rotate(-90deg);
}

.menu-toggle-box { display: none; }

@media (max-width: 1023px) {
	/* Nav collapses into a panel under the header, opened by the burger. */
	.site-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		padding: 8px 16px 16px;
		background: rgba(3, 5, 12, .97);
		backdrop-filter: blur(10px);
		border-bottom: 1px solid var(--color-hairline);
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
	}

	.site-nav.is-active { display: block; }

	body.has-nav-open { overflow: hidden; }

	.site-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.site-nav__item {
		flex-wrap: wrap;
		justify-content: space-between;
		border-bottom: 1px solid rgba(43, 186, 0, .15);
	}

	.site-nav__item:last-child { border-bottom: 0; }

	.site-nav__item > a {
		flex: 1 1 auto;
		padding: 14px 0;
		font-size: 16px;
	}

	/* Caret becomes the accordion handle, sized as a proper tap target. The glyph itself
	   stays 12px — only the hit area grows. */
	.site-nav__caret {
		width: 44px;
		height: 44px;
		align-self: center;
		cursor: pointer;
	}

	.site-nav__caret svg {
		width: 12px;
		height: 12px;
	}

	/* Hover is meaningless on touch and left carets stuck rotated after a tap. */
	.site-nav__item:hover > .site-nav__caret,
	.site-nav__item:focus-within > .site-nav__caret {
		transform: none;
		color: #fff;
	}

	.site-nav__item.is-open > .site-nav__caret {
		transform: rotate(180deg);
		color: var(--color-lime);
	}

	.sub-menu .site-nav__caret,
	.sub-menu .site-nav__item:hover > .site-nav__caret,
	.sub-menu .site-nav__item:focus-within > .site-nav__caret {
		transform: none;
	}

	.sub-menu .site-nav__item.is-open > .site-nav__caret {
		transform: rotate(180deg);
	}

	/* Submenus stack inline instead of floating, and hover must not open them on touch. */
	.sub-menu,
	.site-nav__item:hover > .sub-menu,
	.site-nav__item:focus-within > .sub-menu {
		position: static;
		display: none;
		flex-basis: 100%;
		min-width: 0;
		margin: 0;
		padding: 0 0 8px 12px;
		border: 0;
		border-radius: 0;
		background: none;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.site-nav__item.is-open > .sub-menu { display: block; }

	.sub-menu .site-nav__item { border-bottom: 0; }

	.sub-menu .site-nav__item > a {
		padding: 10px 0;
		font-size: 15px;
		font-weight: 500;
	}

	/* Logo, actions and burger stay on a single row — wrapping used to push the CTA
	   full-width and break "Log In" onto two lines. */
	.site-header {
		height: 64px;
	}

	.site-header__inner {
		flex-wrap: nowrap;
		gap: 12px;
	}

	.site-header__logo img {
		height: 18px;
	}

	.site-header__actions {
		gap: 12px;
		margin-left: auto;
	}

	.site-header__login {
		white-space: nowrap;
		font-size: 14px;
	}

	.site-header__actions .btn {
		width: auto;
		flex: none;
		white-space: nowrap;
		padding: 8px 14px;
		font-size: 13px;
	}

	.menu-toggle-box {
		display: block;
		flex: none;
	}

	.menu-toggle {
		display: block;
		width: 24px;
		height: 18px;
		position: relative;
	}

	.menu-toggle small,
	.menu-toggle::before,
	.menu-toggle::after {
		content: '';
		display: block;
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		background: #fff;
	}

	.menu-toggle::before { top: 0; }
	.menu-toggle small { top: 8px; }
	.menu-toggle::after { top: 16px; }

	/* Legacy always-expanded mobile submenu removed — the accordion above owns this now.
	   Only the burger-open panel geometry that is still needed is kept. */
	.site-header nav.is-active {
		top: 100%;
	}
}

/* Site footer — new.pen */
.site-footer {
	background: var(--color-deep);
	border-top: 1px solid var(--color-hairline);
	color: #fff;
	padding: 80px 0 40px;
}

.site-footer__top {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 60px;
}

.site-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 405px;
}

.site-footer__logo {
	display: inline-block;
	line-height: 0;
}

.site-footer__logo img {
	height: 22px;
	width: auto;
}

.site-footer__about {
	font-family: var(--font-heading);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5714;
	color: #fff;
}

.site-footer__column {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.site-footer__title {
	font-family: var(--font-heading);
	font-size: 15px;
	font-weight: 700;
	color: #fff;
}

.site-footer__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.site-footer__list a {
	font-family: var(--font-heading);
	font-size: 13px;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
	transition: color .2s ease;
}

.site-footer__list a:hover {
	color: var(--color-lime);
}

.site-footer__bottom {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(30, 38, 74, .3);
}

.site-footer__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.site-footer__license {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 500;
	color: #fff;
}

.site-footer__copyright {
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 500;
	color: #fff;
}

.site-footer__warning {
	background: rgba(255, 255, 255, .2);
	border: 1px solid #fff;
	border-radius: 8px;
	padding: 16px;
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.6364;
	color: #fff;
}

/* Floating dock — bonus offer + back-to-top, pinned bottom-right */
.floating-dock {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 200;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
	pointer-events: none;
}

.floating-dock > * {
	pointer-events: auto;
}

.bonus-box {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	width: 300px;
	padding: 18px 20px;
	border-radius: 16px;
	border: 1px solid var(--color-hairline);
	background: var(--gradient-surface-dark);
	box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
	transition: opacity .25s ease, transform .25s ease;
}

.bonus-box.is-hidden {
	opacity: 0;
	transform: translateY(12px) scale(.96);
	pointer-events: none;
}

.bonus-box__close {
	position: absolute;
	top: 6px;
	right: 10px;
	font-size: 20px;
	line-height: 1;
	color: rgba(255, 255, 255, .45);
	transition: color .2s ease;
}

.bonus-box__close:hover {
	color: #fff;
}

.bonus-box__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: 12px;
	background: var(--color-lime);
	color: #03050c;
}

.bonus-box__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.bonus-box__kicker {
	font-family: var(--font-heading);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	color: var(--color-lime);
}

.bonus-box__title {
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	color: #fff;
}

.bonus-box__text {
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	color: #8a99ad;
}

.bonus-box__cta {
	align-self: flex-start;
	margin-top: 8px;
	padding: 7px 16px;
	border-radius: 100px;
	background: var(--gradient-lime);
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 700;
	color: #121212;
	text-decoration: none;
}

.to-top {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--color-hairline);
	background: rgba(3, 5, 12, .8);
	backdrop-filter: blur(6px);
	color: var(--color-lime);
	opacity: 0;
	transform: translateY(12px);
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease, background .2s ease;
}

.to-top.is-visible {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

.to-top:hover {
	background: rgba(123, 255, 0, .15);
}

@media (max-width: 599px) {
	.floating-dock {
		right: 12px;
		bottom: 12px;
		gap: 10px;
	}

	.bonus-box {
		width: calc(100vw - 24px);
		max-width: 300px;
	}
}

/* 18+ chip — shared by the hero, final CTA and footer */
.age-chip {
	display: inline-flex;
	align-items: center;
	padding: 2px 6px;
	border: 1px solid #fff;
	border-radius: 4px;
	background: rgba(255, 255, 255, .2);
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--color-lime);
	flex: none;
}

.age-chip--lg {
	font-size: 14px;
}

@media (max-width: 1023px) {
	.site-footer {
		padding: 48px 0 32px;
	}

	.site-footer__top {
		flex-direction: column;
		gap: 32px;
		margin-bottom: 40px;
	}

	.site-footer__bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}

/* Rich text — ACF WYSIWYG / SEO text blocks. Covers every tag TinyMCE's "full" toolbar
   can produce. Colours assume a dark surface, which is now every surface on the site. */
.rich-text {
	font-family: var(--font-heading);
	font-size: 16px;
	line-height: 1.7;
	color: rgba(255, 255, 255, .82);
}

.seo-section { padding: 40px 0; }

/* Dark card matching the new.pen surface treatment: lime hairline on near-black. */
.seo-text {
	background: rgba(255, 255, 255, .03);
	border: 1px solid var(--color-hairline);
	border-radius: 16px;
	padding: 32px 40px;
}

@media (max-width: 640px) {
	.seo-text { padding: 16px; }
}

.rich-text > *:first-child { margin-top: 0; }
.rich-text > *:last-child { margin-bottom: 0; }

.rich-text h1,
.rich-text h2,
.rich-text h3,
.rich-text h4,
.rich-text h5,
.rich-text h6 {
	font-family: var(--font-heading);
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
	margin: 1.4em 0 .6em;
}

.rich-text h1 { font-size: 32px; }
.rich-text h2 { font-size: 26px; }
.rich-text h3 { font-size: 21px; }
.rich-text h4 { font-size: 18px; }
.rich-text h5 { font-size: 16px; }
.rich-text h6 { font-size: 14px; text-transform: uppercase; letter-spacing: .04em; }

.rich-text p { margin: 0 0 1.2em; }

.rich-text a {
	color: var(--color-lime);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.rich-text a:hover { color: var(--color-lime-soft); }

.rich-text strong, .rich-text b { font-weight: 700; color: #fff; }
.rich-text em, .rich-text i { font-style: italic; }

.rich-text ul,
.rich-text ol {
	margin: 0 0 1.2em;
	padding-left: 1.4em;
}

.rich-text ul { list-style: disc; }
.rich-text ol { list-style: decimal; }
.rich-text li { margin-bottom: .5em; }
.rich-text li > ul,
.rich-text li > ol { margin-top: .5em; margin-bottom: 0; }

.rich-text blockquote {
	margin: 1.6em 0;
	padding: 16px 24px;
	border-left: 3px solid var(--color-lime);
	background: rgba(255, 255, 255, .04);
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: #fff;
}

.rich-text blockquote p:last-child { margin-bottom: 0; }

.rich-text img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 1.2em 0;
}

.rich-text figure { margin: 1.2em 0; }
.rich-text figcaption {
	font-size: 13px;
	color: #8a99ad;
	text-align: center;
	margin-top: .5em;
}

.rich-text hr {
	border: 0;
	border-top: 1px solid var(--color-hairline);
	margin: 2em 0;
}

/* Tables on the dark surface: lime hairlines, uppercase lime header, subtle zebra. */
.table-scroll {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 1.6em 0;
	border: 1px solid var(--color-hairline);
	border-radius: 12px;
}

.rich-text table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.table-scroll table { margin: 0; }

.rich-text th,
.rich-text td {
	padding: 12px 16px;
	border-bottom: 1px solid rgba(43, 186, 0, .18);
	text-align: left;
	vertical-align: top;
	min-width: 120px;
}

.rich-text tr:last-child td { border-bottom: 0; }

.rich-text thead th {
	background: rgba(123, 255, 0, .09);
	color: var(--color-lime);
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.rich-text tbody tr:nth-child(even) { background: rgba(255, 255, 255, .03); }

/* First column reads as the row label. */
.rich-text tbody td:first-child {
	color: #fff;
	font-weight: 600;
}

.rich-text code {
	font-family: 'SFMono-Regular', Consolas, monospace;
	font-size: .9em;
	background: rgba(255, 255, 255, .08);
	padding: 2px 6px;
	border-radius: 4px;
}

.rich-text pre {
	background: var(--color-dark);
	color: #fff;
	padding: 16px 20px;
	border-radius: 8px;
	overflow-x: auto;
	margin: 1.2em 0;
}

.rich-text pre code { background: none; padding: 0; color: inherit; }

/* Modifier: use inside dark cards (hero / promo blocks) */
.rich-text--on-dark { color: rgba(255, 255, 255, .85); }
.rich-text--on-dark h1, .rich-text--on-dark h2, .rich-text--on-dark h3,
.rich-text--on-dark h4, .rich-text--on-dark h5, .rich-text--on-dark h6,
.rich-text--on-dark strong, .rich-text--on-dark b { color: #fff; }
.rich-text--on-dark a { color: var(--color-accent-orange); }
.rich-text--on-dark a:hover { color: #fff; }
.rich-text--on-dark blockquote { background: rgba(255, 255, 255, .08); color: #fff; }
.rich-text--on-dark hr { border-top-color: rgba(255, 255, 255, .2); }
.rich-text--on-dark th, .rich-text--on-dark td { border-color: rgba(255, 255, 255, .2); }
.rich-text--on-dark thead th { background: rgba(255, 255, 255, .12); }
.rich-text--on-dark tbody tr:nth-child(even) { background: rgba(255, 255, 255, .05); }
.rich-text--on-dark code { background: rgba(255, 255, 255, .12); }

/* Breadcrumbs (Yoast SEO — yoast_breadcrumb()) */
.breadcrumbs {
	font-family: var(--font-heading);
	font-size: 13px;
	color: rgba(255, 255, 255, .5);
	margin-bottom: 16px;
}

.breadcrumbs a {
	color: rgba(255, 255, 255, .75);
	text-decoration: none;
}

.breadcrumbs a:hover { color: var(--color-accent-orange); }

/* Generic article page (page.php) — title + content, with a sticky table of contents sidebar. */
/* Interior pages. The sticky header occupies flow space, so only breathing room here. */
.page-article {
	padding: 40px 0 80px;
}

.page-article__head { margin-bottom: 32px; }

.page-article__title {
	font-family: var(--font-ui);
	font-size: 44px;
	font-weight: 800;
	line-height: 1.15;
	color: #fff;
}

.breadcrumbs {
	margin-bottom: 14px;
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #8a99ad;
}

.breadcrumbs a {
	color: #8a99ad;
	text-decoration: none;
	transition: color .2s ease;
}

.breadcrumbs a:hover { color: var(--color-lime); }

.page-article__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
	align-items: start;
}

/* Dark card with a lime hairline, matching the home page surfaces. */
.page-article__content {
	background: var(--gradient-surface-dark);
	border: 1px solid var(--color-hairline);
	border-radius: 16px;
	padding: 40px 48px;
}

.page-article__sidebar { position: sticky; top: calc(var(--header-h) + 24px); }

/* Anchor targets must clear the sticky header, not just the viewport edge. */
main [id] { scroll-margin-top: calc(var(--header-h) + 24px); }

.toc-sidebar {
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, .12);
	background: #141414;
	padding: 24px;
}

.toc-sidebar__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.toc-sidebar__title {
	font-family: var(--font-heading);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .5);
	margin-bottom: 16px;
}

.toc-sidebar__toggle { display: none; }

.toc-sidebar__list { display: flex; flex-direction: column; gap: 2px; }
.toc-sidebar__list li { list-style: none; }

.toc-sidebar__list a {
	display: block;
	padding: 6px 0 6px 12px;
	border-left: 2px solid transparent;
	font-family: var(--font-heading);
	font-size: 14px;
	color: rgba(255, 255, 255, .75);
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease;
}

.toc-sidebar__list a:hover {
	color: #fff;
	border-left-color: var(--color-accent-orange);
}

.toc-sidebar__level-3 a { padding-left: 24px; font-size: 13px; color: rgba(255, 255, 255, .55); }

@media (max-width: 1023px) {
	.page-article__layout { grid-template-columns: minmax(0, 1fr); }
	.page-article__sidebar { position: static; order: -1; }
	.page-article__content { padding: 24px; }
	.page-article__title { font-size: 28px; }

	.toc-sidebar__head { cursor: pointer; }
	.toc-sidebar__title { margin-bottom: 0; }

	.toc-sidebar__toggle {
		display: block;
		flex: none;
		width: 24px;
		height: 18px;
		position: relative;
	}

	.toc-sidebar__burger,
	.toc-sidebar__burger::before,
	.toc-sidebar__burger::after {
		content: '';
		display: block;
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		background: #fff;
		transition: transform .2s ease, opacity .2s ease;
	}

	.toc-sidebar__burger { top: 8px; }
	.toc-sidebar__burger::before { top: -8px; }
	.toc-sidebar__burger::after { top: 8px; }

	.toc-sidebar.is-open .toc-sidebar__burger { background: transparent; }
	.toc-sidebar.is-open .toc-sidebar__burger::before { transform: translateY(8px) rotate(45deg); }
	.toc-sidebar.is-open .toc-sidebar__burger::after { transform: translateY(-8px) rotate(-45deg); }

	.toc-sidebar__list {
		max-height: 0;
		overflow: hidden;
		margin-top: 0;
		transition: max-height .3s ease, margin-top .3s ease;
	}

	.toc-sidebar.is-open .toc-sidebar__list {
		max-height: 800px;
		margin-top: 16px;
	}
}
