/**
 * RealFast design tokens — see DESIGN.md at the repo root for rationale.
 * Swiss direction: white ground, navy ink, one Canadian-red accent.
 * Fluid type: clamp() is built into each token (360px -> 1280px viewport math).
 * Hard floor: no font token resolves below 1rem.
 */

@font-face {
	font-family: "Hanken Grotesk";
	src: url("../fonts/hanken-grotesk-latin.woff2") format("woff2");
	font-weight: 400 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Hanken Grotesk";
	src: url("../fonts/hanken-grotesk-latin-ext.woff2") format("woff2");
	font-weight: 400 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	color-scheme: light;

	/* ---- Colour ---- */
	--color-bg: #ffffff;
	--color-surface: #f6f8fa;
	--color-ink: #0a2540;
	--color-ink-soft: #425466;
	--color-ink-inverse: #ffffff;
	--color-ink-inverse-soft: #b6c2d2;
	--color-accent: #d52b1e;        /* Canadian red — the one deliberate accent (5.0:1 on white) */
	--color-accent-hover: #b02318;
	--color-success: #15803d;       /* semantic only: ticks, confirmations */
	--color-line: #e3e8ee;
	--color-navy: #0a2540;          /* full-bleed section ground (footer, CTA band) */
	--color-navy-raised: #12335a;   /* panels on navy ground */

	/* ---- Typography ---- */
	--font-sans: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
	--fw-extrabold: 800;

	/* Fluid size scale — token name = px size at >=1280px; nothing resolves below 1rem */
	--fs-16: 1rem;
	--fs-18: clamp(1rem, 0.95rem + 0.22vw, 1.125rem);
	--fs-20: clamp(1.125rem, 1.08rem + 0.22vw, 1.25rem);
	--fs-24: clamp(1.25rem, 1.15rem + 0.43vw, 1.5rem);
	--fs-30: clamp(1.5rem, 1.35rem + 0.65vw, 1.875rem);
	--fs-38: clamp(1.75rem, 1.5rem + 1.09vw, 2.375rem);
	--fs-48: clamp(2rem, 1.61rem + 1.74vw, 3rem);
	--fs-64: clamp(2.375rem, 1.74rem + 2.83vw, 4rem);
	--fs-80: clamp(2.75rem, 1.87rem + 3.91vw, 5rem);

	--lh-tight: 1.1;
	--lh-snug: 1.25;
	--lh-normal: 1.6;
	--tracking-tight: -0.02em;
	--tracking-snug: -0.01em;

	/* ---- Space ---- */
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-block: clamp(1.5rem, 1.2rem + 1.3vw, 2.25rem);
	--space-section: clamp(3.5rem, 2.4rem + 4.8vw, 6.25rem);

	/* ---- Layout ---- */
	--container: 1390px;
	--container-pad: clamp(1.25rem, 0.9rem + 1.5vw, 2rem);
	--measure: 65ch;

	/* ---- Shape & elevation ---- */
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-lg: 16px;
	--radius-pill: 999px;
	--hairline: 1px solid var(--color-line);
	--shadow-lift: 0 6px 24px rgba(10, 37, 64, 0.10);

	--transition: 150ms ease;
}
