/* ============================================
   VARIABLES - PALETA DE COLORES
   ============================================ */

:root {
  /* Colores Primarios - PALETA 1 MODERNA */
  --color-primary: #2563EB;        /* Azul vibrante */
  --color-secondary: #10B981;      /* Verde esmeralda */
  --color-accent: #0EA5E9;         /* Cian brillante */
  
  /* Colores por Servicio */
  --color-idiomas: #0EA5E9;        /* Cian brillante */
  --color-campamentos: #F59E0B;    /* Ámbar/Oro */
  --color-estudio: #EC4899;        /* Rosa magenta */
  
  /* Colores Neutrales */
  --color-background: #F0F9FF;     /* Azul muy claro */
  --color-surface: #FFFFFF;        /* Blanco puro */
  --color-text: #1F2937;           /* Gris oscuro */
  --color-text-muted: #6B7280;     /* Gris medio */
  --color-border: #E5E7EB;         /* Gris muy claro */
  
  /* Estados */
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-error: #EF4444;
  --color-info: #2563EB;
  
  /* Gradientes */
  --gradient-primary: linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
  --gradient-accent: linear-gradient(135deg, #0EA5E9 0%, #06B6D4 100%);
  --gradient-secondary: linear-gradient(135deg, #10B981 0%, #059669 100%);
  --gradient-hero: linear-gradient(135deg, #2563EB 0%, #10B981 100%);
  
  /* Sombras */
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --shadow-xl: 0 12px 32px rgba(0, 0, 0, 0.20);
  
  /* Espaciado (REM) */
  --space-xs: 0.25rem;  /* 4px */
  --space-sm: 0.5rem;   /* 8px */
  --space-md: 1rem;     /* 16px */
  --space-lg: 1.5rem;   /* 24px */
  --space-xl: 2rem;     /* 32px */
  --space-2xl: 3rem;    /* 48px */
  --space-3xl: 4rem;    /* 64px */
  
  /* Tipografía */
  --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  --font-serif: Georgia, 'Times New Roman', serif;
  --font-mono: 'Monaco', 'Courier New', monospace;
  
  --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-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  
  /* Bordes */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;
  --border-radius-xl: 16px;
  --border-radius-full: 9999px;
  
  --border-width: 1px;
  --border-width-2: 2px;
  
  /* Transiciones */
  --transition-fast: 0.15s ease-in-out;
  --transition-base: 0.25s ease-in-out;
  --transition-slow: 0.35s ease-in-out;
  
  /* Breakpoints */
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --breakpoint-2xl: 1400px;
  
  /* Ancho máximo del contenedor */
  --container-max-width: 1200px;
  
  /* Z-index */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-fixed: 300;
  --z-modal-backdrop: 400;
  --z-modal: 500;
  --z-tooltip: 600;
  --z-notification: 700;
}

/* ============================================
   MODO OSCURO (futuro)
   ============================================ */

@media (prefers-color-scheme: dark) {
  :root {
    --color-background: #0F2A3D;
    --color-surface: #1A3A52;
    --color-text: #F8F7F4;
    --color-text-muted: #B8B6B0;
    --color-border: #2D4A5F;
  }
}

/* ============================================
   UTILIDADES DE ESPACIADO
   ============================================ */

.p-0 { padding: 0; }
.p-xs { padding: var(--space-xs); }
.p-sm { padding: var(--space-sm); }
.p-md { padding: var(--space-md); }
.p-lg { padding: var(--space-lg); }
.p-xl { padding: var(--space-xl); }

.px-sm { padding-left: var(--space-sm); padding-right: var(--space-sm); }
.px-md { padding-left: var(--space-md); padding-right: var(--space-md); }
.px-lg { padding-left: var(--space-lg); padding-right: var(--space-lg); }

.py-sm { padding-top: var(--space-sm); padding-bottom: var(--space-sm); }
.py-md { padding-top: var(--space-md); padding-bottom: var(--space-md); }
.py-lg { padding-top: var(--space-lg); padding-bottom: var(--space-lg); }

.m-0 { margin: 0; }
.m-xs { margin: var(--space-xs); }
.m-sm { margin: var(--space-sm); }
.m-md { margin: var(--space-md); }
.m-lg { margin: var(--space-lg); }

.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
