/* ============================================================
   BOLTON Signal — 02 BASE (reset + elements, dark-first)
   ============================================================ */
@layer base {
	*, *::before, *::after { box-sizing: border-box; }
	* { margin: 0; }

	html {
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
		scroll-behavior: smooth;
		/* In-page anchors (e.g. nav "How We Work" → #how-we-work) clear the sticky header. */
		scroll-padding-top: calc(var(--bx-header-offset, 76px) + 1.5rem);
		/* Dark from the very first paint — paired with prepaint.js. */
		background: var(--bx-base);
	}
	@media (prefers-reduced-motion: reduce) {
		html { scroll-behavior: auto; }
	}

	body {
		min-height: 100vh;
		min-height: 100dvh;
		background: var(--bx-base);
		color: var(--bx-contrast);
		font-family: var(--bx-font-sans);
		font-size: var(--bx-fs-base);
		line-height: var(--bx-lh-body);
		-webkit-font-smoothing: antialiased;
		text-rendering: optimizeLegibility;
		overflow-x: hidden;
	}

	img, picture, svg, video, canvas {
		display: block;
		max-width: 100%;
		height: auto;
	}
	svg { fill: currentColor; }

	h1, h2, h3, h4 {
		font-family: var(--bx-font-display);
		font-weight: 600;
		line-height: var(--bx-lh-tight);
		letter-spacing: -0.01em;
		color: var(--bx-contrast);
		text-wrap: balance;
	}
	h1 { font-size: var(--bx-fs-display); }
	h2 { font-size: var(--bx-fs-2xl); }
	h3 { font-size: var(--bx-fs-xl); }
	h4 { font-size: var(--bx-fs-lg); }

	p, li { max-width: 68ch; }
	p { text-wrap: pretty; }

	a {
		color: var(--bx-accent-strong);
		text-decoration-color: rgba(200,162,76,.4);
		text-underline-offset: 0.18em;
		transition: color var(--bx-dur-1) var(--bx-ease);
	}
	a:hover { color: var(--bx-accent-strong); }

	strong, b { font-weight: 700; color: var(--bx-cream); }

	/* Technical label / eyebrow */
	.eyebrow, .label-mono {
		font-family: var(--bx-font-mono);
		font-size: var(--bx-fs-xs);
		letter-spacing: var(--bx-tracking-label);
		text-transform: uppercase;
		color: var(--bx-accent-strong);
	}

	hr { border: 0; border-top: var(--bx-border-hair); margin: var(--bx-sp-50) 0; }

	::selection { background: var(--bx-gold); color: var(--bx-btn-primary-fg); }

	/* Universal visible focus for keyboard users. */
	:focus-visible {
		outline: none;
		box-shadow: var(--bx-focus);
		border-radius: var(--bx-radius-sm);
	}

	/* Scrollbar (subtle, dark). */
	* { scrollbar-color: var(--bx-navy-line) transparent; scrollbar-width: thin; }
	::-webkit-scrollbar { width: 11px; height: 11px; }
	::-webkit-scrollbar-thumb { background: var(--bx-navy-line); border-radius: var(--bx-radius-pill); }
}
