/*
 * Fonturi găzduite local (OFL, vezi assets/vendor/fonts). Variabile: o singură descărcare pe subset
 * acoperă toate grosimile. Intervalele unicode sunt cele din fontsource 5.3.
 */
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../vendor/fonts/public-sans-latin-ext-wght-normal.woff2") format("woff2"); 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; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../vendor/fonts/public-sans-latin-wght-normal.woff2") format("woff2"); 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: "Space Grotesk"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("../vendor/fonts/space-grotesk-latin-ext-wght-normal.woff2") format("woff2"); 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; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("../vendor/fonts/space-grotesk-latin-wght-normal.woff2") format("woff2"); 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; }

/* ==========================================================================
   CTP Iași — Design tokens „Spatial Mobility & Green Pulse”
   Tema se comută automat după răsăritul/apusul din Iași (vezi header.php),
   sau manual din HUD-ul de accesibilitate (data-theme pe <html>).
   ========================================================================== */

:root {
	/* Brand */
	--emerald-500: #00c853;
	--emerald-400: #00e676;
	--emerald-glow: rgba(0, 230, 118, 0.45);
	--amber-500: #ffb300;
	--amber-glow: rgba(255, 179, 0, 0.45);
	--red-500: #ff5252;

	/* Suprafețe — Daylight Alabaster (implicit, suprascris noaptea) */
	--bg: #f4f6f9;
	--bg-elev: #ffffff;
	--glass: rgba(255, 255, 255, 0.78);
	--glass-strong: rgba(255, 255, 255, 0.92);
	--glass-border: #e2e8f0;
	--hairline: rgba(15, 23, 42, 0.08);
	--text: #0b0f17;
	--text-2: #243041;          /* 12,6:1 pe --bg (AAA) */
	--text-3: #3b4656;          /* ≥7,5:1 și pe fundalurile nuanțate (AAA, verificat cu axe) */
	--accent: var(--emerald-500);
	--accent-ink: #00502a;      /* text verde, ≥7,7:1 și pe fundalurile nuanțate (AAA) */
	--amber-ink: #6b4500;       /* text ambră, 8,6:1 pe alb */
	--on-accent: #04140a;
	--shadow-1: 0 1px 2px rgba(15, 23, 42, 0.06), 0 8px 24px rgba(15, 23, 42, 0.06);
	--shadow-2: 0 2px 6px rgba(15, 23, 42, 0.08), 0 24px 60px rgba(15, 23, 42, 0.12);
	--map-fog: #e9eef4;

	/* Sticlă */
	--blur: 24px;
	--saturate: 160%;

	/* Tipografie */
	--font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
	--font-ui: "Public Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
	/* cifre: Space Grotesk cu tnum (lățime egală), nu un font monospace */
	--font-num: var(--font-display);

	--fs-xs: 0.8125rem;    /* 13 */
	--fs-sm: 0.9375rem;    /* 15 */
	--fs-md: 1.0625rem;    /* 17 — corpul de text, peste minimul AAA pentru citire în mers */
	--fs-lg: 1.25rem;
	--fs-xl: clamp(1.5rem, 1.1rem + 1.4vw, 2rem);
	--fs-2xl: clamp(2rem, 1.3rem + 2.8vw, 3.25rem);
	--fs-hero: clamp(2.4rem, 1.2rem + 3.4vw, 4.6rem);
	--lh-tight: 1.02;
	--lh-body: 1.55;
	--tracking-display: -0.035em;

	/* Spațiere & raze */
	--sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 72px; --sp-9: 120px;
	--r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-xl: 32px; --r-pill: 999px;
	--gutter: clamp(16px, 4vw, 40px);
	--maxw: 1320px;
	--tap: 48px;               /* țintă minimă de atingere */

	/* Mișcare (aceleași curbe sunt citite de GSAP din JS) */
	--ease-spatial: cubic-bezier(0.22, 1, 0.36, 1);     /* expo-out, „visionOS” */
	--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);   /* overshoot fin pentru pills */
	--ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
	--dur-1: 140ms; --dur-2: 240ms; --dur-3: 420ms; --dur-4: 800ms; --dur-hero: 1500ms;

	/* Straturi */
	--z-canvas: 0; --z-content: 2; --z-sheet: 30; --z-dock: 40; --z-island: 45; --z-top: 50; --z-hud: 60;

	color-scheme: light;
}

/* Asphalt Deep — noaptea în Iași */
:root[data-theme="dark"] {
	--bg: #0b0f17;
	--bg-elev: #121824;
	--glass: rgba(18, 24, 36, 0.72);
	--glass-strong: rgba(18, 24, 36, 0.9);
	--glass-border: rgba(255, 255, 255, 0.09);
	--hairline: rgba(255, 255, 255, 0.07);
	--text: #f5f7fa;
	--text-2: #d6dde7;          /* 13,8:1 */
	--text-3: #b8c2cf;          /* ≥7,3:1 și pe sticla nuanțată (AAA, verificat cu axe) */
	--accent-ink: #00e676;      /* 11:1 pe asfalt */
	--amber-ink: #ffc233;
	--shadow-1: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 8px 30px rgba(0, 0, 0, 0.35);
	--shadow-2: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 30px 80px rgba(0, 0, 0, 0.55);
	--map-fog: #0b0f17;
	color-scheme: dark;
}

/* Contrast ridicat (HUD) — fără transparențe, margini pline */
:root.a11y-contrast {
	--glass: var(--bg-elev);
	--glass-strong: var(--bg-elev);
	--glass-border: currentColor;
	--text-2: var(--text);
	--text-3: var(--text);
	--blur: 0px;
}
:root.a11y-contrast[data-theme="dark"] { --bg: #000; --bg-elev: #000; --accent-ink: #5dffa8; --amber-ink: #ffd666; }
:root.a11y-contrast[data-theme="light"] { --bg: #fff; --bg-elev: #fff; --accent-ink: #004d26; }

/* Mod stație (soare): contrast maxim, fără sticlă, litere cu o treaptă mai groase. Implică tema de zi. */
:root.a11y-sun {
	--bg: #fff; --bg-elev: #fff; --glass: #fff; --glass-strong: #fff; --glass-border: #000;
	--text: #000; --text-2: #000; --text-3: #000; --hairline: rgba(0, 0, 0, 0.07);
	--accent-ink: #003d1f; --amber-ink: #4d3200;
	--shadow-1: none; --shadow-2: none; --blur: 0px; --saturate: 100%;
}

/* Text mare (HUD) */
:root.a11y-large { font-size: 125%; }

@media (prefers-reduced-motion: reduce) {
	:root { --dur-1: 0ms; --dur-2: 0ms; --dur-3: 0ms; --dur-4: 0ms; --dur-hero: 0ms; }
}
:root.a11y-calm { --dur-1: 0ms; --dur-2: 0ms; --dur-3: 0ms; --dur-4: 0ms; --dur-hero: 0ms; }
