/**
 * Geocartis design tokens.
 *
 * Palette derived from the logo artwork:
 *   grey   #6C6D71
 *   orange #F47121
 *
 * Contrast note: white text on brand orange measures 2.9:1 and fails WCAG AA.
 * Near-black text on the same orange measures 7.2:1. Every solid orange
 * surface in this theme therefore carries --gc-on-brand, never white.
 */

:root {

	/* ---------------------------------------------------------------
	 * Neutral scale, built from the logo grey (hsl 228 2% 43%)
	 * --------------------------------------------------------------- */
	--gc-grey-50:  #F5F5F6;
	--gc-grey-100: #E5E6E7;
	--gc-grey-200: #CACBCD;
	--gc-grey-300: #A9AAAD;
	--gc-grey-400: #8A8B8F;
	--gc-grey-500: #6C6D71; /* logo grey */
	--gc-grey-600: #55575D;
	--gc-grey-700: #3E4046;
	--gc-grey-800: #2D2E33;
	--gc-grey-900: #1F2024;
	--gc-grey-950: #17181B;

	/* ---------------------------------------------------------------
	 * Orange scale, built from the logo orange
	 * --------------------------------------------------------------- */
	--gc-orange-50:  #FEF4EE;
	--gc-orange-100: #FDE8DA;
	--gc-orange-200: #FCD2B8;
	--gc-orange-300: #FAB183;
	--gc-orange-400: #F78F4E;
	--gc-orange-500: #F47121; /* logo orange */
	--gc-orange-600: #D95F13;
	--gc-orange-700: #B34A0C;
	--gc-orange-800: #8F3B0B;
	--gc-orange-900: #75320D;

	/* ---------------------------------------------------------------
	 * Semantic colour
	 * --------------------------------------------------------------- */
	--gc-brand:          var(--gc-orange-500);
	--gc-brand-hover:    var(--gc-orange-600);
	--gc-on-brand:       #1A1B1E; /* 7.2:1 on brand orange */

	--gc-ink:            var(--gc-grey-950);
	--gc-ink-muted:      var(--gc-grey-600);
	--gc-ink-subtle:     var(--gc-grey-500);
	--gc-ink-inverse:    #FFFFFF;

	--gc-surface:        #FFFFFF;
	--gc-surface-alt:    var(--gc-grey-50);
	--gc-surface-sunken: var(--gc-grey-100);
	--gc-surface-dark:   var(--gc-grey-900);
	--gc-surface-brand:  var(--gc-orange-50);

	--gc-border:         var(--gc-grey-100);
	--gc-border-strong:  var(--gc-grey-200);
	--gc-border-dark:    rgba(255, 255, 255, 0.16);

	--gc-focus:          var(--gc-orange-600);

	/* Callout accents for the regulatory anchor blocks
	 * (Rule 34A, IBM SOP, CPCB, NHAI Data Lake, IEC 62446-3, MNRE). */
	--gc-callout-bg:     var(--gc-orange-50);
	--gc-callout-rule:   var(--gc-brand);
	--gc-callout-ink:    var(--gc-grey-900);

	/* ---------------------------------------------------------------
	 * Typography
	 * --------------------------------------------------------------- */
	--gc-font-display: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gc-font-body:    "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gc-font-mono:    ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

	/* Fluid scale, 360px to 1440px viewport */
	--gc-text-hero:  clamp(2.5rem, 1.45rem + 4.2vw, 4.5rem);
	--gc-text-h1:    clamp(2.125rem, 1.5rem + 2.6vw, 3.5rem);
	--gc-text-h2:    clamp(1.75rem, 1.35rem + 1.65vw, 2.5rem);
	--gc-text-h3:    clamp(1.375rem, 1.2rem + 0.72vw, 1.75rem);
	--gc-text-h4:    clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
	--gc-text-lead:  clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	--gc-text-body:  1rem;
	--gc-text-sm:    0.9375rem;
	--gc-text-xs:    0.8125rem;

	--gc-leading-tight:  1.08;
	--gc-leading-snug:   1.25;
	--gc-leading-normal: 1.5;
	--gc-leading-relaxed: 1.65;

	--gc-tracking-tight: -0.02em;
	--gc-tracking-normal: 0;
	--gc-tracking-wide:  0.12em; /* eyebrows */

	--gc-weight-regular: 400;
	--gc-weight-medium:  500;
	--gc-weight-semi:    600;
	--gc-weight-bold:    700;

	/* Measure: service pages run long, so body copy is capped for legibility. */
	--gc-measure: 68ch;

	/* ---------------------------------------------------------------
	 * Space, 4px base
	 * --------------------------------------------------------------- */
	--gc-space-1:  0.25rem;
	--gc-space-2:  0.5rem;
	--gc-space-3:  0.75rem;
	--gc-space-4:  1rem;
	--gc-space-5:  1.25rem;
	--gc-space-6:  1.5rem;
	--gc-space-8:  2rem;
	--gc-space-10: 2.5rem;
	--gc-space-12: 3rem;
	--gc-space-16: 4rem;
	--gc-space-20: 5rem;
	--gc-space-24: 6rem;

	/* Vertical rhythm between page sections */
	--gc-section-y: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);

	/* ---------------------------------------------------------------
	 * Layout
	 * --------------------------------------------------------------- */
	--gc-container: 1200px;
	--gc-container-narrow: 820px; /* long-form service copy */
	--gc-gutter: clamp(1rem, 0.7rem + 1.4vw, 2rem);
	--gc-header-h: 76px;

	/* ---------------------------------------------------------------
	 * Radius, shadow, motion
	 * --------------------------------------------------------------- */
	--gc-radius-sm: 4px;
	--gc-radius-md: 6px;
	--gc-radius-lg: 10px;
	--gc-radius-xl: 16px;
	--gc-radius-pill: 999px;

	--gc-shadow-sm: 0 1px 2px rgba(23, 24, 27, 0.06);
	--gc-shadow-md: 0 4px 12px rgba(23, 24, 27, 0.08);
	--gc-shadow-lg: 0 12px 32px rgba(23, 24, 27, 0.10);

	--gc-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--gc-duration: 180ms;

	--gc-z-header: 100;
	--gc-z-overlay: 200;
}

/* Dark sections invert the ink tokens rather than redefining components. */
.gc-on-dark {
	--gc-ink:        #FFFFFF;
	--gc-ink-muted:  var(--gc-grey-300);
	--gc-ink-subtle: var(--gc-grey-400);
	--gc-border:     var(--gc-border-dark);
	--gc-surface:    var(--gc-grey-900);
	--gc-surface-alt: var(--gc-grey-800);
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--gc-duration: 0ms;
	}
}
