/* CSS Custom Properties - Maximalist Puzzle Design System */
:root {
  /* Empieza Brand Color Palette - Warm & Family-Friendly */
  --color-primary: #FF6B1A;
  --color-primary-dark: #E55A10;
  --color-primary-light: #FF8542;

  --color-accent-orange: #FF8C42;
  --color-accent-coral: #FF6F59;
  --color-accent-yellow: #FFA500;
  --color-accent-gold: #FFB627;
  --color-accent-teal: #4ECDC4;
  --color-accent-blue: #5DADE2;
  --color-accent-sky: #87CEEB;

  /* Rich Dark Tones */
  --color-neutral-50: #FAFAF9;
  --color-neutral-100: #F5F5F4;
  --color-neutral-200: #E7E5E4;
  --color-neutral-300: #D6D3D1;
  --color-neutral-400: #A8A29E;
  --color-neutral-500: #78716C;
  --color-neutral-700: #44403C;
  --color-neutral-800: #292524;
  --color-neutral-900: #1C1917;

  --color-white: #FFFFFF;
  --color-black: #0A0908;

  /* Status Colors */
  --color-success: #10B981;
  --color-error: #EF4444;

  /* Typography - Distinctive fonts */
  --font-primary: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-heading: 'Fraunces', Georgia, serif;

  /* Fluid Type Scale */
  --font-size-xs: clamp(0.7rem, 0.9vw, 0.75rem);
  --font-size-sm: clamp(0.8rem, 1vw, 0.875rem);
  --font-size-base: clamp(0.95rem, 1.1vw, 1rem);
  --font-size-lg: clamp(1.05rem, 1.3vw, 1.125rem);
  --font-size-xl: clamp(1.2rem, 1.5vw, 1.35rem);
  --font-size-2xl: clamp(1.4rem, 2vw, 1.6rem);
  --font-size-3xl: clamp(1.8rem, 2.8vw, 2.2rem);
  --font-size-4xl: clamp(2.2rem, 3.5vw, 2.8rem);
  --font-size-5xl: clamp(2.8rem, 4.5vw, 3.6rem);
  --font-size-6xl: clamp(3.5rem, 6vw, 5rem);

  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  --line-height-tight: 1.1;
  --line-height-snug: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  /* Generous Spacing System */
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 2.5rem;
  --space-6: 3rem;
  --space-8: 4rem;
  --space-10: 5rem;
  --space-12: 6rem;
  --space-16: 8rem;
  --space-20: 10rem;
  --space-24: 12rem;

  /* Layout */
  --container-max-width: 1400px;
  --container-padding: var(--space-3);
  --container-padding-desktop: var(--space-8);

  /* Grid */
  --grid-gap: var(--space-5);
  --grid-gap-mobile: var(--space-3);

  /* Bold Border Radius */
  --border-radius-sm: 6px;
  --border-radius-md: 12px;
  --border-radius-lg: 20px;
  --border-radius-xl: 32px;
  --border-radius-2xl: 48px;
  --border-radius-full: 9999px;

  --border-width: 2px;
  --border-width-thick: 4px;

  /* Dramatic Shadows */
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 6px 16px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.16);
  --shadow-xl: 0 20px 48px rgba(0, 0, 0, 0.24);
  --shadow-2xl: 0 32px 64px rgba(0, 0, 0, 0.32);
  --shadow-colored: 0 16px 40px rgba(255, 107, 26, 0.3);

  /* Smooth Transitions */
  --transition-fast: 180ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 300ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-bounce: 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);

  /* Z-index layers */
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-fixed: 300;
  --z-modal-backdrop: 400;
  --z-modal: 500;

  /* Puzzle Piece Pattern (SVG data URI) */
  --pattern-puzzle: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23FF6B1A' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");

  /* Grain Texture */
  --texture-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='4' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
}

/* Responsive adjustments */
@media (min-width: 375px) {
  :root {
    --container-padding: clamp(1rem, 4vw, 1.5rem);
  }
}

@media (min-width: 640px) {
  :root {
    --container-padding: var(--space-4);
    --grid-gap: var(--space-4);
  }
}

@media (min-width: 768px) {
  :root {
    --grid-gap: var(--space-5);
  }
}

@media (min-width: 1024px) {
  :root {
    --container-padding: var(--container-padding-desktop); /* 64px */
    --grid-gap: var(--space-6);
  }
}

/* Reducir padding en 1280px para dar más espacio al nav */
@media (min-width: 1280px) {
  :root {
    --container-padding: var(--space-5); /* 40px - más reducido para dar espacio */
  }
}

/* Reducir aún más en 1440px */
@media (min-width: 1440px) {
  :root {
    --container-padding: var(--space-4); /* 32px - más espacio para el menú */
  }
}

@media (min-width: 1920px) {
  :root {
    --container-max-width: 1600px;
    --container-padding: var(--space-5); /* 40px - balance entre espacio y diseño */
  }
}
