/* ============================================================
   HeroCrédito — Design Tokens
   Versión 1.0 · Septiembre 2026
   ============================================================ */

:root {
  /* ── Color: Primary (Deep Indigo — trust, authority) ── */
  --color-primary-900: #0E0A32;
  --color-primary-800: #131050;
  --color-primary-700: #1B1464;
  --color-primary-600: #24197E;
  --color-primary-500: #2D2399;
  --color-primary-400: #4A3FBA;
  --color-primary-300: #6E65D4;
  --color-primary-200: #9D97E4;
  --color-primary-100: #CBC8F0;
  --color-primary-50:  #EEEDFA;

  /* ── Color: Accent (Gold / Amber — rescue, value, hero) ── */
  --color-accent-900: #6B4300;
  --color-accent-800: #946000;
  --color-accent-700: #B87A00;
  --color-accent-600: #D4891A;
  --color-accent-500: #F5A623;
  --color-accent-400: #F7B94D;
  --color-accent-300: #FACE7A;
  --color-accent-200: #FCDFAA;
  --color-accent-100: #FEF0D5;
  --color-accent-50:  #FFF9EE;

  /* ── Color: Neutral ── */
  --color-neutral-950: #0D0D14;
  --color-neutral-900: #1A1A2E;
  --color-neutral-800: #2D2D44;
  --color-neutral-700: #44445E;
  --color-neutral-600: #5E5E78;
  --color-neutral-500: #7A7A92;
  --color-neutral-400: #9999AD;
  --color-neutral-300: #B8B8C8;
  --color-neutral-200: #D4D4DE;
  --color-neutral-100: #EBEBF0;
  --color-neutral-50:  #F6F6F9;
  --color-white: #FFFFFF;

  /* ── Color: Semantic ── */
  --color-success-700: #057A4F;
  --color-success-600: #0D9F6E;
  --color-success-500: #10B981;
  --color-success-100: #D1FAE5;
  --color-success-50:  #ECFDF5;

  --color-warning-700: #B45309;
  --color-warning-600: #D97706;
  --color-warning-500: #F59E0B;
  --color-warning-100: #FEF3C7;
  --color-warning-50:  #FFFBEB;

  --color-error-700: #B91C1C;
  --color-error-600: #DC2626;
  --color-error-500: #EF4444;
  --color-error-100: #FEE2E2;
  --color-error-50:  #FEF2F2;

  --color-info-700: #1D4ED8;
  --color-info-600: #2563EB;
  --color-info-500: #3B82F6;
  --color-info-100: #DBEAFE;
  --color-info-50:  #EFF6FF;

  /* ── Semantic Aliases ── */
  --color-bg: var(--color-white);
  --color-bg-alt: var(--color-neutral-50);
  --color-bg-card: var(--color-white);
  --color-bg-dark: var(--color-primary-900);
  --color-text: var(--color-neutral-900);
  --color-text-secondary: var(--color-neutral-600);
  --color-text-muted: var(--color-neutral-500);
  --color-text-inverse: var(--color-white);
  --color-border: var(--color-neutral-200);
  --color-border-focus: var(--color-primary-500);
  --color-link: var(--color-primary-600);
  --color-link-hover: var(--color-primary-700);

  /* ── Typography ── */
  --font-heading: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-mono: 'DM Mono', 'Menlo', monospace;

  /* Font sizes — fluid with clamp */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-lg:   1.125rem;   /* 18px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  clamp(1.375rem, 1.2rem + 0.5vw, 1.5rem);   /* 22-24px */
  --text-3xl:  clamp(1.625rem, 1.4rem + 0.7vw, 1.875rem);  /* 26-30px */
  --text-4xl:  clamp(2rem, 1.6rem + 1.2vw, 2.5rem);        /* 32-40px */
  --text-5xl:  clamp(2.5rem, 2rem + 1.5vw, 3.25rem);       /* 40-52px */

  --leading-tight:  1.2;
  --leading-snug:   1.35;
  --leading-normal: 1.6;
  --leading-relaxed: 1.75;

  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold: 600;
  --weight-bold:    700;

  /* ── Spacing ── */
  --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 */

  /* ── Layout ── */
  --container-sm:  640px;
  --container-md:  768px;
  --container-lg:  1024px;
  --container-xl:  1200px;
  --container-max: 1440px;
  --gutter: clamp(1rem, 0.5rem + 2vw, 2rem);

  /* ── Border radius ── */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  24px;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-sm:  0 1px 2px rgba(13,13,20,0.05);
  --shadow-md:  0 4px 6px -1px rgba(13,13,20,0.07), 0 2px 4px -2px rgba(13,13,20,0.05);
  --shadow-lg:  0 10px 15px -3px rgba(13,13,20,0.08), 0 4px 6px -4px rgba(13,13,20,0.04);
  --shadow-xl:  0 20px 25px -5px rgba(13,13,20,0.10), 0 8px 10px -6px rgba(13,13,20,0.04);
  --shadow-card: 0 1px 3px rgba(13,13,20,0.06), 0 1px 2px rgba(13,13,20,0.04);
  --shadow-card-hover: 0 8px 25px rgba(13,13,20,0.10), 0 4px 10px rgba(13,13,20,0.04);

  /* ── Z-index scale ── */
  --z-base:     1;
  --z-dropdown: 10;
  --z-sticky:   20;
  --z-overlay:  30;
  --z-modal:    40;
  --z-toast:    50;

  /* ── Transitions ── */
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 300ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);

  /* ── Focus ring ── */
  --focus-ring: 0 0 0 2px var(--color-white), 0 0 0 4px var(--color-primary-500);
}

/* Dark backgrounds */
[data-theme="dark"],
.bg-dark {
  --color-bg: var(--color-primary-900);
  --color-bg-alt: var(--color-primary-800);
  --color-bg-card: rgba(255,255,255,0.06);
  --color-text: var(--color-neutral-100);
  --color-text-secondary: var(--color-neutral-300);
  --color-text-muted: var(--color-neutral-400);
  --color-border: rgba(255,255,255,0.12);
  --color-link: var(--color-accent-400);
  --color-link-hover: var(--color-accent-300);
}
