/* =========================================================
   Artesian Pools Memphis — CSS Custom Properties
   ========================================================= */

:root {
  /* --- Brand Colors --- */
  --color-navy:       #1a2744;
  --color-navy-dark:  #111b33;
  --color-navy-light: #243258;
  --color-blue:       #2d8bc9;
  --color-blue-dark:  #2070a8;
  --color-blue-light: #4aa3e0;
  --color-gold:       #c5a55a;
  --color-gold-dark:  #a8893d;
  --color-gold-light: #d4b97a;

  /* --- Neutrals --- */
  --color-white:       #ffffff;
  --color-off-white:   #f5f7fa;
  --color-gray-100:    #f0f2f5;
  --color-gray-200:    #e2e6ec;
  --color-gray-300:    #c8d0dc;
  --color-gray-400:    #9aa5b5;
  --color-gray-500:    #6b7585;
  --color-gray-600:    #4a5568;
  --color-gray-700:    #2d3748;
  --color-gray-800:    #1a202c;

  /* --- Semantic Colors --- */
  --color-text-primary:   #1a202c;
  --color-text-secondary: #4a5568;
  --color-text-muted:     #6b7585;
  --color-text-inverse:   #ffffff;
  --color-border:         #e2e6ec;
  --color-border-dark:    #c8d0dc;

  /* --- Typography --- */
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
                 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
  --font-family-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;

  --font-size-xs:   0.75rem;   /* 12px */
  --font-size-sm:   0.875rem;  /* 14px */
  --font-size-base: 1rem;      /* 16px */
  --font-size-md:   1.125rem;  /* 18px */
  --font-size-lg:   1.25rem;   /* 20px */
  --font-size-xl:   1.5rem;    /* 24px */
  --font-size-2xl:  1.875rem;  /* 30px */
  --font-size-3xl:  2.25rem;   /* 36px */
  --font-size-4xl:  3rem;      /* 48px */
  --font-size-5xl:  3.75rem;   /* 60px */

  --font-weight-normal:    400;
  --font-weight-medium:    500;
  --font-weight-semibold:  600;
  --font-weight-bold:      700;
  --font-weight-extrabold: 800;

  --line-height-tight:  1.25;
  --line-height-snug:   1.375;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;

  /* --- Spacing Scale --- */
  --space-1:  0.25rem;   /* 4px */
  --space-2:  0.5rem;    /* 8px */
  --space-3:  0.75rem;   /* 12px */
  --space-4:  1rem;      /* 16px */
  --space-5:  1.25rem;   /* 20px */
  --space-6:  1.5rem;    /* 24px */
  --space-8:  2rem;      /* 32px */
  --space-10: 2.5rem;    /* 40px */
  --space-12: 3rem;      /* 48px */
  --space-16: 4rem;      /* 64px */
  --space-20: 5rem;      /* 80px */
  --space-24: 6rem;      /* 96px */
  --space-32: 8rem;      /* 128px */

  /* --- Layout --- */
  --container-max:    1200px;
  --container-pad:    1.5rem;
  --header-height:    70px;

  /* --- Borders --- */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;

  /* --- Shadows --- */
  --shadow-sm:  0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md:  0 4px 12px rgba(0, 0, 0, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
  --shadow-lg:  0 10px 30px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-xl:  0 20px 50px rgba(0, 0, 0, 0.15), 0 8px 20px rgba(0, 0, 0, 0.10);
  --shadow-navy: 0 4px 20px rgba(26, 39, 68, 0.25);
  --shadow-blue: 0 4px 20px rgba(45, 139, 201, 0.35);

  /* --- Transitions --- */
  --transition-fast:   150ms ease;
  --transition-base:   250ms ease;
  --transition-slow:   400ms ease;

  /* --- Z-index --- */
  --z-base:    1;
  --z-raised:  10;
  --z-dropdown: 100;
  --z-sticky:  200;
  --z-overlay: 300;
  --z-modal:   400;
  --z-toast:   500;
}
