/* ==========================================================================
   variables.css — Design tokens
   Single source of truth for colors, typography, spacing, radius, shadows,
   transitions, and layout values. Derived 1:1 from the Trinitas Canva design.
   ========================================================================== */

:root {
  /* ---- Brand & accent -------------------------------------------------- */
  --color-accent: #e8630a;
  --color-accent-hover: #d45a09;
  --color-brand: #c0392b;

  /* ---- Neutral palette (Tailwind gray scale used by the design) -------- */
  --color-white: #ffffff;
  --color-gray-50: #f9fafb;
  --color-gray-100: #f3f4f6;
  --color-gray-200: #e5e7eb;
  --color-gray-300: #d1d5db;
  --color-gray-400: #9ca3af;
  --color-gray-500: #6b7280;
  --color-gray-600: #4b5563;
  --color-gray-700: #374151;
  --color-gray-800: #1f2937;
  --color-gray-900: #111827;

  /* ---- Hero overlay & accents ----------------------------------------- */
  --color-slate-200: #e2e8f0; /* hero subheadline */

  /* ---- Feedback colors ------------------------------------------------- */
  --color-success-bg: #f0fdf4;
  --color-success-border: #86efac;
  --color-success-text: #16a34a;
  --color-error-bg: #fef2f2;
  --color-error-border: #fca5a5;
  --color-error-text: #dc2626;

  /* ---- Semantic surface / text tokens --------------------------------- */
  --surface-page: var(--color-white);
  --surface-muted: var(--color-gray-50);
  --surface-inverse: var(--color-gray-900);
  --border-subtle: var(--color-gray-200);
  --border-input: var(--color-gray-300);

  --text-strong: var(--color-gray-900);
  --text-default: var(--color-gray-700);
  --text-body: var(--color-gray-600);
  --text-muted: var(--color-gray-500);
  --text-inverse: var(--color-white);

  /* ---- Typography ------------------------------------------------------ */
  --font-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial,
    sans-serif;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  /* Fluid type scale — mirrors the design's responsive intent
     (Tailwind text-lg → text-6xl) so headings scale smoothly. */
  --fs-body: 1rem;            /* 16px */
  --fs-sm: 0.875rem;         /* 14px */
  --fs-lg: 1.125rem;         /* 18px */
  --fs-xl: 1.25rem;          /* 20px */
  --fs-card-title: 1.1875rem; /* 19px */
  --fs-brand: 1.5rem;        /* 24px nav wordmark */
  --fs-section: clamp(1.75rem, 1.2rem + 2.4vw, 2.25rem); /* h2: 28→36px */
  --fs-hero: clamp(2rem, 1rem + 4.6vw, 3.75rem);         /* h1: 32→60px */

  --lh-tight: 1.15;
  --lh-snug: 1.3;
  --lh-normal: 1.5;
  --lh-relaxed: 1.65;

  /* ---- Spacing scale (4px base) --------------------------------------- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* ---- Radius ---------------------------------------------------------- */
  --radius-sm: 0.375rem; /* 6px */
  --radius-md: 0.5rem;   /* 8px  (rounded-lg) */
  --radius-lg: 0.75rem;  /* 12px (rounded-xl) */
  --radius-full: 9999px;

  /* ---- Shadows (Tailwind defaults used by the design) ----------------- */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-nav: 0 1px 2px 0 rgb(0 0 0 / 0.05);

  /* ---- Transitions ----------------------------------------------------- */
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease;

  /* ---- Layout ---------------------------------------------------------- */
  --container-max: 80rem;   /* max-w-7xl = 1280px */
  --container-narrow: 48rem; /* max-w-3xl = 768px  */
  --container-pad: 1rem;    /* px-4 */
  --nav-height: 4rem;
  --hero-min-height: 85vh;

  /* Real viewport height unit set by JS for mobile browsers */
  --vh: 1vh;

  /* ---- Z-index --------------------------------------------------------- */
  --z-nav: 50;
}

/*
 * Breakpoints (for reference — CSS custom properties can't be used inside
 * media queries, so these are documented here and hard-coded in responsive.css):
 *   sm:  640px
 *   md:  768px
 *   lg:  1024px
 *   xl:  1280px
 */
