/* ============================================================================
   Global Design Tokens
   Centralized color, typography, and motion variables shared across UI surfaces
   ============================================================================ */

:root {
  /* Color Palette */
  --primary-dark: #124E66;
  --primary-green: #2E8B57;
  --primary-blue: #1C6E8C;
  --primary-navy: #0D1B2A;
  --primary-light: #E6EBEE;
  --accent-green: #A5B452;
  
  /* Extended Colors */
  --white: #ffffff;
  --black: #000000;
  --gray-100: #f8f9fa;
  --gray-200: #e9ecef;
  --gray-300: #dee2e6;
  --gray-400: #ced4da;
  --gray-500: #adb5bd;
  --gray-600: #6c757d;
  --gray-700: #495057;
  --gray-800: #343a40;
  --gray-900: #212529;
  
  /* Gradients */
  --gradient-primary: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-blue) 100%);
  --gradient-secondary: linear-gradient(135deg, var(--primary-green) 0%, var(--accent-green) 100%);
  --gradient-accent: linear-gradient(135deg, var(--primary-navy) 0%, var(--primary-dark) 100%);
  --gradient-light: linear-gradient(135deg, var(--primary-light) 0%, var(--white) 100%);
  
  /* Typography - Vietnamese Optimized */
  --font-primary: 'Be Vietnam Pro', 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
  --font-heading: 'Nunito', 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
  
  /* Shadows */
  --shadow-sm: 0 2px 4px rgba(13, 27, 42, 0.1);
  --shadow-md: 0 4px 12px rgba(13, 27, 42, 0.15);
  --shadow-lg: 0 8px 32px rgba(13, 27, 42, 0.2);
  --shadow-xl: 0 16px 64px rgba(13, 27, 42, 0.25);
  
  /* Border Radius */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 32px;
  
  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;

  /* Layout & Spacing - Enhanced for all screen sizes */
  --content-max: 1200px;
  --content-wide: 1400px;
  --content-ultra: 1600px;
  --section-padding: clamp(64px, 8vw, 120px);
  --gutter: clamp(20px, 4vw, 48px);
  --gutter-tight: clamp(16px, 3vw, 32px);
  --nav-height: 72px;

  /* Enhanced Breakpoints Reference */
  --bp-xs: 375px;      /* Small mobile */
  --bp-sm: 480px;      /* Mobile */
  --bp-md: 640px;      /* Large mobile / Small tablet */
  --bp-lg: 768px;      /* Tablet */
  --bp-xl: 1024px;     /* Small laptop */
  --bp-2xl: 1200px;    /* Desktop */
  --bp-3xl: 1366px;    /* HD laptop (1366x768) */
  --bp-4xl: 1440px;    /* WXGA+ laptop */
  --bp-5xl: 1536px;    /* MacBook Pro 14" */
  --bp-6xl: 1680px;    /* Large laptop */
  --bp-7xl: 1920px;    /* Full HD desktop */
  --bp-8xl: 2560px;    /* 2K/QHD displays */

  /* Legacy breakpoints for compatibility */
  --bp-desktop: 1200px;
  --bp-laptop: 1024px;
  --bp-tablet: 900px;
  --bp-medium: 768px;
  --bp-mobile: 640px;
  --bp-small: 480px;

  /* Grid system */
  --grid-cols-mobile: 1;
  --grid-cols-tablet: 2;
  --grid-cols-laptop: 3;
  --grid-cols-desktop: 4;
  --grid-gap: clamp(1rem, 2.5vw, 2rem);
  --grid-gap-lg: clamp(1.5rem, 3vw, 2.5rem);

  /* Container widths for different screens */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1200px;
  --container-2xl: 1400px;
  --container-3xl: 1600px;

  /* Fluid typography scale */
  --text-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.25vw, 1rem);
  --text-base: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.4vw, 1.25rem);
  --text-xl: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
  --text-2xl: clamp(1.5rem, 1.3rem + 0.6vw, 1.875rem);
  --text-3xl: clamp(1.875rem, 1.5rem + 1vw, 2.25rem);
  --text-4xl: clamp(2.25rem, 1.8rem + 1.5vw, 3rem);
  --text-5xl: clamp(3rem, 2.2rem + 2vw, 4rem);
}

/* Screen-specific adjustments */
@media (min-width: 1366px) {
  :root {
    --content-max: 1280px;
    --content-wide: 1500px;
    --nav-height: 76px;
  }
}

@media (min-width: 1440px) {
  :root {
    --content-max: 1320px;
    --content-wide: 1560px;
  }
}

@media (min-width: 1536px) {
  :root {
    --content-max: 1400px;
    --content-wide: 1600px;
  }
}

@media (min-width: 1680px) {
  :root {
    --content-max: 1480px;
    --content-wide: 1680px;
  }
}

@media (min-width: 1920px) {
  :root {
    --content-max: 1600px;
    --content-wide: 1800px;
    --nav-height: 80px;
  }
}

@media (min-width: 2560px) {
  :root {
    --content-max: 1800px;
    --content-wide: 2000px;
  }
}
