/* ========================================================================
   Dean & Associates Inc — Design System Tokens
   Source: phase3-design-system.md v1.1 (May 7, 2026)
   Brand primary blue carried over from current Divi build (#0B57D0).
   ======================================================================== */

:root {
	/* Brand primary */
	--brand-primary:        #0B57D0;
	--brand-primary-dark:   #0846A8;
	--brand-primary-light:  #3D7FE0;
	--brand-primary-pale:   #E7EFFB;

	/* Neutrals */
	--neutral-900: #1A1A1A;
	--neutral-700: #4A4A4A;
	--neutral-500: #8A8A8A;
	--neutral-300: #D5D5D5;
	--neutral-100: #F5F5F5;
	--neutral-050: #FAFAFA;
	--neutral-000: #FFFFFF;

	/* Semantic */
	--color-success: #22C55E;
	--color-warning: #F59E0B;
	--color-error:   #EF4444;
	--color-info:    #3B82F6;

	/* Accent (sparing — trust signals, anniversary markers) */
	--accent-gold: #C9A14A;

	/* Type scale (fluid) */
	--text-xs:  clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
	--text-s:   clamp(0.875rem, 0.8rem + 0.3vw, 1rem);
	--text-m:   clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
	--text-l:   clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	--text-xl:  clamp(1.5rem, 1.3rem + 0.6vw, 1.875rem);
	--text-2xl: clamp(1.875rem, 1.6rem + 0.7vw, 2.25rem);
	--text-3xl: clamp(2.25rem, 2rem + 1vw, 3rem);
	--text-4xl: clamp(3rem, calc(4vw + 2rem), 4.5rem);
	--text-5xl: clamp(3.5rem, calc(6vw + 2rem), 6rem);
	--text-6xl: clamp(4rem, calc(8vw + 2rem), 8rem);

	/* Line height */
	--leading-tight:   1.1;
	--leading-snug:    1.3;
	--leading-normal:  1.5;
	--leading-relaxed: 1.65;

	/* Letter spacing */
	--tracking-tight:  -0.02em;
	--tracking-normal: 0;
	--tracking-wide:   0.05em;

	/* Font stacks */
	--font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

	/* Spacing scale (fluid) */
	--space-xxs: 0.125rem;
	--space-xs:  0.25rem;
	--space-s:   clamp(0.5rem, 0.3rem + 0.6vw, 1rem);
	--space-m:   clamp(1rem, 0.6rem + 0.8vw, 1.5rem);
	--space-l:   clamp(1.5rem, 1rem + 1vw, 2.5rem);
	--space-xl:  clamp(2.5rem, 1.5rem + 2vw, 4rem);
	--space-2xl: clamp(4rem, 2.5rem + 3vw, 6rem);
	--space-3xl: clamp(6rem, 4rem + 4vw, 9rem);
	--space-4xl: clamp(9rem, 6rem + 6vw, 13.5rem);

	/* Border radius */
	--radius-xs: 2px;
	--radius-s:  4px;
	--radius-m:  6px;
	--radius-l:  10px;
	--radius-xl: 16px;

	/* Container widths */
	--container-sm:    640px;
	--container-md:    768px;
	--container-lg:    1024px;
	--container-xl:    1280px;
	--container-2xl:   1440px;
	--container-prose: 65ch;
}

/* ------------------------------------------------------------------------
   Body typography
   Sets Inter as the body font and applies the design-system body size +
   leading. Cascade conflicts with Kadence Customizer-emitted typography
   are resolved during Step 3 (Customizer setup) by setting Kadence Body
   and Heading fonts to "System Default" so Kadence does not load a
   competing Google Font. If a specific selector still loses the cascade
   after that, re-add !important locally with an inline comment naming
   the source it overrides — never as a sitewide default.
   ------------------------------------------------------------------------ */

body,
body p,
body input,
body textarea,
body select,
body button,
body label,
body li,
body td,
body th {
	font-family: var(--font-body);
}

body {
	font-size:   var(--text-m);
	line-height: var(--leading-relaxed);
	color:       var(--neutral-900);
	background:  var(--neutral-050);
}

/* Reduced-motion preference (per design system Section 13) */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration:        0.01ms !important;
		animation-iteration-count: 1      !important;
		transition-duration:       0.01ms !important;
		scroll-behavior:           auto   !important;
	}
}
