/* ==========================================================================
   NIZAM — DESIGN TOKENS
   The single source of truth for colour, type, space, radius and elevation.
   Colour values are re-declared inline from assets/branding/branding.json,
   so editing that file re-themes the whole site.
   ========================================================================== */

:root {
	/* ---- brand -------------------------------------------------------- */
	--nz-brand:      #0F766E;
	--nz-brand-600:  #0D6A63;
	--nz-brand-700:  #115E56;
	--nz-brand-050:  #EFFAF8;
	--nz-brand-100:  #D3F0EC;
	--nz-accent:     #D4A017;
	--nz-accent-050: #FDF7E7;

	/* ---- neutrals ----------------------------------------------------- */
	--nz-ink:    #0B1B2B;
	--nz-body:   #5A6C81;
	--nz-muted:  #8A99AC;
	--nz-line:   #E6EDF4;
	--nz-line-2: #F0F4F8;
	--nz-soft:   #F6F9FB;
	--nz-white:  #FFFFFF;

	/* ---- accent family (module + card tints) -------------------------- */
	--nz-violet: #6D4AC7;
	--nz-green:  #16A34A;
	--nz-amber:  #D97706;
	--nz-rose:   #E11D48;
	--nz-blue:   #2563EB;

	/* ---- semantic ----------------------------------------------------- */
	--nz-success: #16A34A;
	--nz-danger:  #DC2626;
	--nz-warning: #D97706;
	--nz-info:    #2563EB;

	/* ---- typography --------------------------------------------------- */
	--nz-font-latin:  'Plus Jakarta Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
	--nz-font-arabic: 'IBM Plex Sans Arabic', 'Segoe UI', system-ui, sans-serif;
	--nz-font: var(--nz-font-latin);

	--nz-fs-display: clamp(2.35rem, 1.35rem + 3.4vw, 4rem);
	--nz-fs-h1:      clamp(2rem,   1.35rem + 2.4vw, 3.1rem);
	--nz-fs-h2:      clamp(1.7rem, 1.25rem + 1.7vw, 2.55rem);
	--nz-fs-h3:      clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
	--nz-fs-lead:    clamp(1rem,  0.96rem + 0.22vw, 1.14rem);
	--nz-fs-sm:      0.875rem;
	--nz-fs-xs:      0.78rem;

	--nz-lh-tight: 1.08;
	--nz-lh-head:  1.18;
	--nz-lh-body:  1.65;

	--nz-tracking-tight: -0.032em;
	--nz-tracking-head:  -0.022em;
	--nz-tracking-wide:   0.09em;

	/* ---- space -------------------------------------------------------- */
	/* One rhythm for every section, top and bottom. Deliberately tighter
	   than the old value so sections read as one page, not a stack. */
	--nz-section-y:    clamp(2.75rem, 1.8rem + 2.4vw, 4.5rem);
	--nz-section-y-sm: clamp(2.25rem, 1.6rem + 1.6vw, 3.25rem);
	--nz-gap:      1.25rem;
	--nz-gap-lg:   1.75rem;

	/* ---- radius ------------------------------------------------------- */
	--nz-r-xs:  8px;
	--nz-r-sm:  10px;
	--nz-r:     14px;
	--nz-r-lg:  18px;
	--nz-r-xl:  24px;
	--nz-r-2xl: 32px;
	--nz-r-pill: 999px;

	/* ---- elevation ---------------------------------------------------- */
	--nz-shadow-xs: 0 1px 2px rgba(11, 27, 43, .05);
	--nz-shadow-sm: 0 1px 2px rgba(11, 27, 43, .04), 0 4px 12px -6px rgba(11, 27, 43, .08);
	--nz-shadow:    0 1px 2px rgba(11, 27, 43, .04), 0 10px 28px -14px rgba(11, 27, 43, .14);
	--nz-shadow-lg: 0 2px 4px rgba(11, 27, 43, .04), 0 22px 48px -20px rgba(11, 27, 43, .20);
	--nz-shadow-xl: 0 4px 8px rgba(11, 27, 43, .05), 0 40px 80px -28px rgba(11, 27, 43, .26);
	--nz-shadow-brand: 0 10px 26px -12px rgba(15, 118, 110, .55);

	/* ---- motion ------------------------------------------------------- */
	--nz-ease: cubic-bezier(.22, .61, .36, 1);
	--nz-t-fast: 120ms var(--nz-ease);
	--nz-t:      220ms var(--nz-ease);
	--nz-t-slow: 420ms var(--nz-ease);

	/* ---- layout ------------------------------------------------------- */
	--nz-header-h: 74px;
	--nz-container: 1180px;
	--nz-measure: 640px;

	/* ---- Bootstrap bridge --------------------------------------------- */
	--bs-primary: var(--nz-brand);
	--bs-primary-rgb: 15, 118, 110;
	--bs-body-color: var(--nz-body);
	--bs-body-bg: var(--nz-white);
	--bs-border-color: var(--nz-line);
	--bs-link-color: var(--nz-brand);
	--bs-link-hover-color: var(--nz-brand-700);
	--bs-border-radius: var(--nz-r);
	--bs-font-sans-serif: var(--nz-font);
}

/* Arabic swaps the type stack; everything else is shared. */
[dir="rtl"] {
	--nz-font: var(--nz-font-arabic);
	--nz-tracking-tight: 0;
	--nz-tracking-head: 0;
}

/* ---- accent helper classes ------------------------------------------- */
.nz-a-brand  { --nz-a: var(--nz-brand);  --nz-a-bg: var(--nz-brand-050); }
.nz-a-violet { --nz-a: var(--nz-violet); --nz-a-bg: #F1EDFB; }
.nz-a-green  { --nz-a: var(--nz-green);  --nz-a-bg: #E9F8EF; }
.nz-a-amber  { --nz-a: var(--nz-amber);  --nz-a-bg: #FDF3E4; }
.nz-a-rose   { --nz-a: var(--nz-rose);   --nz-a-bg: #FDECF1; }
.nz-a-blue   { --nz-a: var(--nz-blue);   --nz-a-bg: #E9F0FE; }
.nz-a-accent { --nz-a: var(--nz-accent); --nz-a-bg: var(--nz-accent-050); }
/* The one that deliberately says nothing: for a tile that is present but shut,
   where any of the colours above would read as a status it does not have. */
.nz-a-slate  { --nz-a: var(--nz-muted);  --nz-a-bg: var(--nz-soft); }

/* Anything that doesn't set an accent falls back to the brand colour. */
:root { --nz-a: var(--nz-brand); --nz-a-bg: var(--nz-brand-050); }
