/**
 * DESIGN TOKENS — GENERATED FILE, DO NOT EDIT BY HAND.
 *
 * Source:     tools/tokens.config.json
 * Regenerate: node tools/generate-tokens.mjs
 *
 * Fluid between 320px and 1440px viewport.
 * Type maxima and the spacing scale are measured from the Figma file.
 */

@layer tokens {
	:root {
		/* ===============================================================
		   Type scale — not modular; each step is an explicit pair
		   =============================================================== */

		/* "What to expect" — fits one line up to 71px at 320 */
		--fs-display-1: clamp(4rem, 0.6607rem + 16.6964vw, 15.6875rem); /* 64px → 251px */
		--lh-display-1: 0.78;
		--track-display-1: -0.015em;

		/* Hero H1 — constrained by "FORMULA 1 HOSPITALITY," (max 54px at 320) */
		--fs-display-2: clamp(3rem, 1.1071rem + 9.4643vw, 9.625rem); /* 48px → 154px */
		--lh-display-2: 0.78;
		--track-display-2: -0.015em;

		/* Section headings — constrained by "SCHUMACHER" (max 87px at 320) */
		--fs-display-3: clamp(2.5rem, 0.9107rem + 7.9464vw, 8.0625rem); /* 40px → 129px */
		--lh-display-3: 0.78;
		--track-display-3: -0.015em;

		/* Lounge page section headings — measured 52px/0.9 across every one of them. */
		--fs-heading-lg: clamp(2rem, 1.6429rem + 1.7857vw, 3.25rem); /* 32px → 52px */
		--lh-heading-lg: 0.9;
		--track-heading-lg: 0.02em;

		/* Card titles */
		--fs-display-4: clamp(1.75rem, 1.4286rem + 1.6071vw, 2.875rem); /* 28px → 46px */
		--lh-display-4: 0.9;

		/* Pull quotes — measured 36px/1.16, -0.432px in the testimonial. */
		--fs-quote: clamp(1.375rem, 1.125rem + 1.25vw, 2.25rem); /* 22px → 36px */
		--lh-quote: 1.16;
		--track-quote: -0.012em;

		/* Lead paragraph — measured 24px in the who-we-are intro. */
		--fs-body-lg: clamp(1.125rem, 1.0179rem + 0.5357vw, 1.5rem); /* 18px → 24px */
		--lh-body-lg: 1.4;

		/* Body copy. 16px floor — never smaller, avoids iOS input zoom. */
		--fs-body: clamp(1rem, 0.9643rem + 0.1786vw, 1.125rem); /* 16px → 18px */
		--lh-body: 1.4;

		/* Buttons. Fixed — UI text should not scale. */
		--fs-ui: 0.875rem; /* 14px fixed */
		--lh-ui: 1.2;
		--track-ui: 0.11em;

		/* Section eyebrows. Fixed. */
		--fs-eyebrow: 0.75rem; /* 12px fixed */
		--lh-eyebrow: 1.2;
		--track-eyebrow: 0.1em;

		/* ===============================================================
		   Space scale — derived from the design (4px grid)
		   =============================================================== */
		--space-3xs: 0.25rem; /* 4px  hairline */
		--space-2xs: 0.5rem; /* 8px  most common measured gap (8x) */
		--space-xs: 0.75rem; /* 12px */
		--space-s: 1rem; /* 16px */
		--space-m: clamp(1.25rem, 1.1786rem + 0.3571vw, 1.5rem); /* 20 → 24px  eyebrow → heading (measured 26) */
		--space-l: clamp(1.5rem, 1.3571rem + 0.7143vw, 2rem); /* 24 → 32px  heading → body (measured 32, 4x) */
		--space-xl: clamp(2rem, 1.7143rem + 1.4286vw, 3rem); /* 32 → 48px  body → buttons (measured 48, 3x) */
		--space-2xl: clamp(2.5rem, 2.0714rem + 2.1429vw, 4rem); /* 40 → 64px  measured 64 */
		--space-3xl: clamp(3.5rem, 2.7857rem + 3.5714vw, 6rem); /* 56 → 96px  measured 96 */
		--space-4xl: clamp(4rem, 2.8571rem + 5.7143vw, 8rem); /* 64 → 128px  SECTION PADDING — measured 129/131 five times */
		--space-5xl: clamp(5rem, 3.5714rem + 7.1429vw, 10rem); /* 80 → 160px  largest section breaks */

		/* One-up pairs: grow from the smaller step to the larger. */
		--space-xs-s: clamp(0.75rem, 0.6786rem + 0.3571vw, 1rem);
		--space-s-m: clamp(1rem, 0.8571rem + 0.7143vw, 1.5rem);
		--space-m-l: clamp(1.25rem, 1.0357rem + 1.0714vw, 2rem);
		--space-l-xl: clamp(1.5rem, 1.0714rem + 2.1429vw, 3rem);
		--space-xl-2xl: clamp(2rem, 1.4286rem + 2.8571vw, 4rem);
		--space-2xl-3xl: clamp(2.5rem, 1.5rem + 5vw, 6rem);
		--space-3xl-4xl: clamp(3.5rem, 2.2143rem + 6.4286vw, 8rem);

		/* ===============================================================
		   Layout
		   =============================================================== */
		--wrapper-max: 72.75rem; /* 1164px — measured content column */
		--gutter: clamp(1.25rem, 1.0357rem + 1.0714vw, 2rem);

		/* Semantic aliases — use these in components, not raw steps. */
		--section-space: var(--space-4xl);   /* vertical padding of a section band */
		--stack-eyebrow: var(--space-m);     /* eyebrow → heading */
		--stack-heading: var(--space-l);     /* heading → body */
		--stack-action: var(--space-xl);     /* body → buttons */
	}
}
