/**
 * Ed's Sewer & Water Repair - CSS Variables
 * Design Tokens - Single Source of Truth
 * 
 * All colors, spacing, typography, and design values
 * defined here for easy maintenance and consistency.
 */

:root {
  /* ==================== COLORS ==================== */
  
  /* Primary Colors */
  --color-navy: #1B3A52;
  --color-aqua: #008e97;
  --color-orange: #ff5f15;
  
  /* Supporting Colors */
  --color-white: #ffffff;
  --color-black: #000000;
  
  /* Gray Scale */
  --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;
  
  /* Gradient Colors */
  --color-aqua-light: #00a8b3;
  --color-aqua-lighter: #00c9d7;
  --color-navy-medium: #2c5470;
  
  /* Semantic Colors */
  --color-text-primary: var(--color-navy);
  --color-text-secondary: var(--color-gray-600);
  --color-text-muted: var(--color-gray-400);
  --color-text-inverse: var(--color-white);
  
  --color-background-primary: var(--color-white);
  --color-background-secondary: var(--color-gray-50);
  --color-background-dark: var(--color-navy);
  
  --color-border-light: var(--color-gray-200);
  --color-border-medium: var(--color-gray-300);
  --color-border-dark: var(--color-gray-400);
  
  /* ==================== TYPOGRAPHY ==================== */
  
  /* Font Families */
  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  
  /* Font Sizes */
  --font-size-xs: 0.75rem;     /* 12px */
  --font-size-sm: 0.875rem;    /* 14px */
  --font-size-base: 1rem;      /* 16px */
  --font-size-lg: 1.125rem;    /* 18px */
  --font-size-xl: 1.25rem;     /* 20px */
  --font-size-2xl: 1.5rem;     /* 24px */
  --font-size-3xl: 1.875rem;   /* 30px */
  --font-size-4xl: 2.25rem;    /* 36px */
  --font-size-5xl: 3rem;       /* 48px */
  --font-size-6xl: 3.75rem;    /* 60px */
  
  /* Font Weights */
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  
  /* Line Heights */
  --line-height-tight: 1.2;
  --line-height-snug: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.6;
  --line-height-loose: 1.8;
  
  /* Letter Spacing */
  --letter-spacing-tight: -0.01em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.01em;
  
  /* ==================== SPACING ==================== */
  
  /* Base unit: 4px */
  --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 */
  
  /* Section Spacing */
  --section-padding-sm: var(--space-12);  /* 48px */
  --section-padding-md: var(--space-16);  /* 64px */
  --section-padding-lg: var(--space-20);  /* 80px */
  
  /* Container Spacing */
  --container-padding-mobile: var(--space-4);   /* 16px */
  --container-padding-tablet: var(--space-6);   /* 24px */
  --container-padding-desktop: var(--space-8);  /* 32px */
  
  /* ==================== LAYOUT ==================== */
  
  /* Container */
  --container-max-width: 1280px;
  
  /* Breakpoints (for JS or CSS reference) */
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;
  
  /* Grid Gaps */
  --gap-sm: var(--space-4);   /* 16px */
  --gap-md: var(--space-6);   /* 24px */
  --gap-lg: var(--space-8);   /* 32px */
  --gap-xl: var(--space-12);  /* 48px */
  
  /* ==================== BORDERS ==================== */
  
  /* Border Widths */
  --border-width-thin: 1px;
  --border-width-medium: 2px;
  --border-width-thick: 4px;
  
  /* Border Radius */
  --radius-sm: 0.25rem;   /* 4px */
  --radius-md: 0.5rem;    /* 8px */
  --radius-lg: 0.75rem;   /* 12px */
  --radius-xl: 1rem;      /* 16px */
  --radius-2xl: 1.5rem;   /* 24px */
  --radius-full: 9999px;  /* Circle */
  
  /* ==================== SHADOWS ==================== */
  
  /* Box Shadows */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  
  /* Colored Shadows (for buttons) */
  --shadow-aqua: 0 10px 30px rgba(0, 142, 151, 0.4);
  --shadow-orange: 0 10px 30px rgba(255, 95, 21, 0.4);
  
  /* ==================== TRANSITIONS ==================== */
  
  /* Duration */
  --transition-fast: 150ms;
  --transition-base: 300ms;
  --transition-slow: 500ms;
  
  /* Easing */
  --ease-linear: linear;
  --ease-in: ease-in;
  --ease-out: ease-out;
  --ease-in-out: ease-in-out;
  
  /* Common Transitions */
  --transition-all: all var(--transition-base) var(--ease-in-out);
  --transition-color: color var(--transition-base) var(--ease-in-out);
  --transition-transform: transform var(--transition-base) var(--ease-in-out);
  
  /* ==================== Z-INDEX ==================== */
  
  --z-index-dropdown: 1000;
  --z-index-sticky: 1020;
  --z-index-fixed: 1030;
  --z-index-modal-backdrop: 1040;
  --z-index-modal: 1050;
  --z-index-popover: 1060;
  --z-index-tooltip: 1070;
  
  /* ==================== GRADIENTS ==================== */
  
  /* Background Gradients */
  --gradient-aqua: linear-gradient(135deg, var(--color-aqua) 0%, var(--color-aqua-light) 100%);
  --gradient-hero: linear-gradient(135deg, 
    var(--color-navy) 0%, 
    var(--color-navy-medium) 25%,
    var(--color-aqua) 50%,
    var(--color-navy-medium) 75%,
    var(--color-navy) 100%);
  
  /* Text Gradients */
  --gradient-text-aqua: linear-gradient(135deg, var(--color-aqua) 0%, var(--color-aqua-lighter) 100%);
  
  /* Component Gradients */
  --gradient-card-bg: linear-gradient(135deg, rgba(0, 142, 151, 0.05) 0%, rgba(0, 142, 151, 0.02) 100%);
  --gradient-icon-bg: linear-gradient(135deg, rgba(0, 142, 151, 0.1) 0%, rgba(0, 142, 151, 0.05) 100%);
  
  /* ==================== COMPONENT SPECIFIC ==================== */
  
  /* Button Sizes */
  --button-padding-sm: 0.75rem 1.5rem;  /* 12px 24px */
  --button-padding-md: 1rem 2rem;       /* 16px 32px */
  --button-padding-lg: 1.25rem 2.5rem;  /* 20px 40px */
  
  /* Icon Sizes */
  --icon-size-sm: 1rem;     /* 16px */
  --icon-size-md: 1.5rem;   /* 24px */
  --icon-size-lg: 2rem;     /* 32px */
  --icon-size-xl: 3rem;     /* 48px */
  
  /* Trust Badge Sizes */
  --trust-icon-size: 3.75rem;           /* 60px */
  --trust-icon-size-mobile: 3.125rem;   /* 50px */
  
  /* ==================== ANIMATIONS ==================== */
  
  /* Animation Durations */
  --animation-fast: 300ms;
  --animation-normal: 500ms;
  --animation-slow: 1000ms;
  --animation-gradient: 20s;
  --animation-float: 20s;
}

/* ==================== MOBILE OVERRIDES ==================== */

@media (max-width: 767px) {
  :root {
    /* Reduce font sizes for mobile */
    --font-size-4xl: 2rem;      /* 32px instead of 36px */
    --font-size-5xl: 2.25rem;   /* 36px instead of 48px */
    
    /* Reduce section padding for mobile */
    --section-padding-sm: var(--space-8);   /* 32px */
    --section-padding-md: var(--space-10);  /* 40px */
    --section-padding-lg: var(--space-12);  /* 48px */
  }
}

/* ==================== DARK MODE (Optional Future Enhancement) ==================== */

/*
@media (prefers-color-scheme: dark) {
  :root {
    --color-text-primary: var(--color-gray-100);
    --color-text-secondary: var(--color-gray-300);
    --color-background-primary: var(--color-gray-900);
    --color-background-secondary: var(--color-gray-800);
  }
}
*/