/*
 * Design tokens — contract §6.5.
 *
 * Colors map to Elementor kit globals (custom color _ids cm_*). Elementor prints kit
 * variables on the kit body class (.elementor-kit-N), not on :root, so the color
 * block is declared on both :root and body: on body the var() lookups resolve against
 * the kit values; on :root (and outside Elementor) the fallbacks apply.
 * Tokens derived from colors live in the same block for the same reason.
 */

:root,
body {
	--color-ink: var(--e-global-color-cm_ink, #0B0D10);
	--color-ink-2: var(--e-global-color-cm_ink2, #14181E);
	--color-paper: var(--e-global-color-cm_paper, #F7F3EC);
	--color-white: var(--e-global-color-cm_white, #FFFFFF);
	--color-text: var(--e-global-color-cm_text, #17191C);
	--color-muted: var(--e-global-color-cm_muted, #6F747C);
	--color-line: var(--e-global-color-cm_line, #E5E0D8);
	--color-accent: var(--e-global-color-cm_accent, #FF365F);
	--color-accent-hover: var(--e-global-color-cm_accent_hover, #E92850);
	--color-gold: var(--e-global-color-cm_gold, #D6B45C);
	--color-success: var(--e-global-color-cm_success, #23A866);
	--color-danger: var(--e-global-color-cm_danger, #E64242);

	/* Derived (theme-internal). */
	--color-ink-3: color-mix(in srgb, var(--color-ink-2) 82%, #ffffff 18%);
	--color-on-ink: #F4F1EA;
	--color-on-ink-muted: color-mix(in srgb, var(--color-on-ink) 64%, transparent);
	--color-line-ink: color-mix(in srgb, var(--color-white) 11%, transparent);
	--color-accent-soft: color-mix(in srgb, var(--color-accent) 11%, transparent);
	--color-accent-ring: color-mix(in srgb, var(--color-accent) 38%, transparent);
	--color-paper-2: color-mix(in srgb, var(--color-paper) 70%, var(--color-line) 30%);
	--color-success-soft: color-mix(in srgb, var(--color-success) 12%, transparent);
	--color-danger-soft: color-mix(in srgb, var(--color-danger) 10%, transparent);
	--color-gold-soft: color-mix(in srgb, var(--color-gold) 16%, transparent);
	--focus-ring: 0 0 0 3px var(--color-accent-ring);
}

:root {
	/* Contract "LANGUAGE DECISION" stack (supersedes the shorter §6.5 one): IRANSansX has Latin
	 * glyphs (owner-supplied), bundled Vazirmatn (latin + arabic subsets) is the default. */
	--font-sans: "IRANSansX", "IRANSans", "Vazirmatn", "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

	--radius: 14px;
	--radius-lg: 22px;
	--radius-pill: 999px;
	--radius-sm: 10px;

	--container: 1280px;
	--container-wide: 1440px;
	--container-text: 760px;
	--gutter: clamp(16px, 3vw, 32px);
	--section-y: clamp(40px, 8vw, 112px);

	--ease: cubic-bezier(.2, .7, .2, 1);
	--dur: 220ms;
	--dur-fast: 180ms;
	--dur-slow: 280ms;

	/* Fluid type scale (MASTER_PROMPT §4): mobile → desktop. */
	--fs-display: clamp(2.375rem, 1.55rem + 3.4vw, 4.5rem);   /* 38 → 72 */
	--fs-h1: clamp(2.125rem, 1.6rem + 2.2vw, 3.5rem);         /* 34 → 56 */
	--fs-h2: clamp(1.625rem, 1.25rem + 1.5vw, 2.625rem);      /* 26 → 42 */
	--fs-h3: clamp(1.25rem, 1.08rem + .7vw, 1.875rem);        /* 20 → 30 */
	--fs-h4: clamp(1.125rem, 1.04rem + .35vw, 1.375rem);      /* 18 → 22 */
	--fs-lead: clamp(1.0625rem, 1rem + .3vw, 1.25rem);        /* 17 → 20 */
	--fs-body: clamp(.9375rem, .9rem + .18vw, 1.0625rem);     /* 15 → 17 */
	--fs-small: clamp(.8125rem, .79rem + .1vw, .875rem);      /* 13 → 14 */
	--fs-xs: .75rem;

	/* English: body 1.65, headings 1.15–1.3. */
	--lh-display: 1.15;
	--lh-h1: 1.18;
	--lh-h2: 1.22;
	--lh-h3: 1.3;
	--lh-body: 1.65;
	--lh-small: 1.55;

	/* Spacing scale (4px base). */
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-7: 32px;
	--space-8: 40px;
	--space-9: 56px;
	--space-10: 72px;

	/* Elevation: subtle, borders first. */
	--shadow-sm: 0 1px 2px rgb(11 13 16 / .06);
	--shadow-md: 0 6px 24px -8px rgb(11 13 16 / .14);
	--shadow-lg: 0 24px 60px -20px rgb(11 13 16 / .32);

	--header-h: 64px;
	--tap: 44px;
	--z-header: 900;
	--z-overlay: 1000;
}

@media (min-width: 1024px) {
	:root {
		--header-h: 76px;
	}
}
