/* =========================================================================
   Coalfield Resources — Base / Reset / Typography
   ========================================================================= */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	background: var(--cr-surface);
}

body.cr-body {
	margin: 0;
	font-family: var(--cr-font-body);
	font-size: var(--cr-fs-body-md);
	font-weight: var(--cr-fw-regular);
	line-height: var(--cr-lh-normal);
	color: var(--cr-text);
	background: var(--cr-surface);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	min-height: 100vh;
	overflow-x: hidden;
}

/* Blueprint grid overlay — subtle vertical hairlines on the surface */
body.cr-body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		linear-gradient(to right, rgba(51, 65, 85, 0.06) 1px, transparent 1px);
	background-size: 96px 100%;
	background-position: center top;
	opacity: 0.6;
}

main, section, article, aside, header, footer, nav { position: relative; z-index: 1; }

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

/* ---------- Headings ---------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--cr-font-display);
	color: var(--cr-text);
	margin: 0 0 var(--cr-space-4);
	font-weight: var(--cr-fw-bold);
	line-height: var(--cr-lh-snug);
}

h1 {
	font-size: var(--cr-fs-display-lg);
	font-weight: var(--cr-fw-black);
	letter-spacing: var(--cr-tracking-tight);
	line-height: var(--cr-lh-tight);
}

h2 {
	font-size: var(--cr-fs-headline-lg);
	letter-spacing: var(--cr-tracking-snug);
}

h3 {
	font-size: var(--cr-fs-headline-md);
	font-weight: var(--cr-fw-semibold);
	line-height: 1.3;
}

h4 {
	font-size: var(--cr-fs-headline-sm);
	font-weight: var(--cr-fw-semibold);
}

h5, h6 {
	font-size: var(--cr-fs-body-md);
	font-weight: var(--cr-fw-semibold);
	text-transform: uppercase;
	letter-spacing: var(--cr-tracking-wide);
	font-family: var(--cr-font-mono);
}

/* ---------- Paragraphs & inline ---------- */
p {
	margin: 0 0 var(--cr-space-4);
	line-height: var(--cr-lh-relaxed);
	color: var(--cr-text);
}

p.cr-lead {
	font-size: var(--cr-fs-body-lg);
	color: var(--cr-on-surface-variant);
	line-height: var(--cr-lh-relaxed);
}

a {
	color: var(--cr-primary);
	text-decoration: none;
	transition: color var(--cr-transition);
}
a:hover, a:focus-visible {
	color: var(--cr-safety-amber-bright);
	text-decoration: underline;
	text-underline-offset: 3px;
}

strong, b { color: var(--cr-text); font-weight: var(--cr-fw-bold); }

code, kbd, samp, pre {
	font-family: var(--cr-font-mono);
	font-size: var(--cr-fs-data-mono);
}

code {
	background: var(--cr-surface-container);
	border: 1px solid var(--cr-border-muted);
	padding: 2px 6px;
	border-radius: var(--cr-radius-sm);
	color: var(--cr-primary);
}

/* ---------- Lists ---------- */
ul, ol { margin: 0 0 var(--cr-space-4); padding-left: var(--cr-space-6); }
li { margin-bottom: var(--cr-space-2); }

/* ---------- Tables ---------- */
table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--cr-fs-body-sm);
}

/* ---------- HR ---------- */
hr {
	border: 0;
	border-top: 1px solid var(--cr-border-muted);
	margin: var(--cr-space-8) 0;
}

/* ---------- Selection ---------- */
::selection {
	background: var(--cr-safety-amber);
	color: #000;
}

/* ---------- Focus rings ---------- */
:focus-visible {
	outline: 2px solid var(--cr-safety-amber-bright);
	outline-offset: 2px;
}

/* ---------- Typography utility classes ---------- */
.cr-label-caps {
	font-family: var(--cr-font-mono);
	font-size: var(--cr-fs-label-caps);
	font-weight: var(--cr-fw-bold);
	text-transform: uppercase;
	letter-spacing: var(--cr-tracking-wide);
	color: var(--cr-safety-amber);
	line-height: var(--cr-lh-snug);
}

.cr-data-mono {
	font-family: var(--cr-font-mono);
	font-size: var(--cr-fs-data-mono);
	font-weight: var(--cr-fw-medium);
	color: var(--cr-text);
}

.cr-text-muted { color: var(--cr-on-surface-variant); }
.cr-text-dim   { color: var(--cr-text-dim); }
.cr-text-amber { color: var(--cr-safety-amber); }

/* ---------- Skip link ---------- */
.cr-skip-link {
	position: absolute;
	top: -100px;
	left: var(--cr-space-4);
	background: var(--cr-safety-amber);
	color: #000;
	padding: var(--cr-space-2) var(--cr-space-4);
	font-family: var(--cr-font-mono);
	text-transform: uppercase;
	font-size: var(--cr-fs-label-caps);
	letter-spacing: var(--cr-tracking-wide);
	z-index: 1000;
	transition: top var(--cr-transition);
}
.cr-skip-link:focus {
	top: var(--cr-space-2);
	outline: none;
}

/* ---------- Visually hidden ---------- */
.cr-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;
}
