:root,
:root .ivyforms-theme-dark {
  // Base Brand (Ivy)
  // Fill
  --map-base-brand-fill-4: var(--theme-base-brand-4);
  --map-base-brand-fill-3: var(--theme-base-brand-3);
  --map-base-brand-fill-2: var(--theme-base-brand-2);
  --map-base-brand-fill-1: var(--theme-base-brand-1);
  --map-base-brand-fill-0: var(--theme-base-brand-0);
  --map-base-brand-fill--1: var(--theme-base-brand--1);
  --map-base-brand-fill--2: var(--theme-base-brand--2);
  --map-base-brand-fill--3: var(--theme-base-brand--3);
  --map-base-brand-fill--4: var(--theme-base-brand--4);

  //Alfa
  --map-base-brand-o90: var(--theme-base-brand-o90);
  --map-base-brand-o80: var(--theme-base-brand-o80);
  --map-base-brand-o70: var(--theme-base-brand-o70);
  --map-base-brand-o60: var(--theme-base-brand-o60);
  --map-base-brand-o50: var(--theme-base-brand-o50);
  --map-base-brand-o40: var(--theme-base-brand-o40);
  --map-base-brand-o30: var(--theme-base-brand-o30);
  --map-base-brand-o20: var(--theme-base-brand-o20);
  --map-base-brand-o10: var(--theme-base-brand-o10);
  --map-base-brand-o05: var(--theme-base-brand-o05);

  // Stroke
  --map-base-brand-stroke-2: var(--theme-base-brand-2);
  --map-base-brand-stroke-1: var(--theme-base-brand-1);
  --map-base-brand-stroke-0: var(--theme-base-brand-0);
  --map-base-brand-stroke--1: var(--theme-base-brand--1);
  --map-base-brand-stroke--2: var(--theme-base-brand--2);

  // Symbol
  --map-base-brand-symbol-2: var(--theme-base-brand-2);
  --map-base-brand-symbol-1: var(--theme-base-brand-1);
  --map-base-brand-symbol-0: var(--theme-base-brand-0);
  --map-base-brand-symbol--1: var(--theme-base-brand--1);

  // Base Purple
  // Fill
  --map-base-purple-fill-4: var(--theme-base-purple-4);
  --map-base-purple-fill-3: var(--theme-base-purple-3);
  --map-base-purple-fill-2: var(--theme-base-purple-2);
  --map-base-purple-fill-1: var(--theme-base-purple-1);
  --map-base-purple-fill-0: var(--theme-base-purple-0);
  --map-base-purple-fill--1: var(--theme-base-purple--1);
  --map-base-purple-fill--2: var(--theme-base-purple--2);
  --map-base-purple-fill--3: var(--theme-base-purple--3);
  --map-base-purple-fill--4: var(--theme-base-purple--4);

  //Alfa
  --map-base-purple-o90: var(--theme-base-purple-o90);
  --map-base-purple-o80: var(--theme-base-purple-o80);
  --map-base-purple-o70: var(--theme-base-purple-o70);
  --map-base-purple-o60: var(--theme-base-purple-o60);
  --map-base-purple-o50: var(--theme-base-purple-o50);
  --map-base-purple-o40: var(--theme-base-purple-o40);
  --map-base-purple-o30: var(--theme-base-purple-o30);
  --map-base-purple-o20: var(--theme-base-purple-o20);
  --map-base-purple-o10: var(--theme-base-purple-o10);
  --map-base-purple-o05: var(--theme-base-purple-o05);

  // Stroke
  --map-base-purple-stroke-2: var(--theme-base-purple-2);
  --map-base-purple-stroke-1: var(--theme-base-purple-1);
  --map-base-purple-stroke-0: var(--theme-base-purple-0);
  --map-base-purple-stroke--1: var(--theme-base-purple--1);
  --map-base-purple-stroke--2: var(--theme-base-purple--2);

  // Symbol
  --map-base-purple-symbol-2: var(--theme-base-purple-2);
  --map-base-purple-symbol-1: var(--theme-base-purple-1);
  --map-base-purple-symbol-0: var(--theme-base-purple-0);
  --map-base-purple-symbol--1: var(--theme-base-purple--1);

  // Base Dusk
  // Fill
  --map-base-dusk-fill-4: var(--theme-base-dusk-4);
  --map-base-dusk-fill-3: var(--theme-base-dusk-3);
  --map-base-dusk-fill-2: var(--theme-base-dusk-2);
  --map-base-dusk-fill-1: var(--theme-base-dusk-1);
  --map-base-dusk-fill-0: var(--theme-base-dusk-0);
  --map-base-dusk-fill--1: var(--theme-base-dusk--1);
  --map-base-dusk-fill--2: var(--theme-base-dusk--2);
  --map-base-dusk-fill--3: var(--theme-base-dusk--3);
  --map-base-dusk-fill--4: var(--theme-base-dusk--4);

  //Alfa
  --map-base-dusk-o90: var(--theme-base-dusk-o90);
  --map-base-dusk-o80: var(--theme-base-dusk-o80);
  --map-base-dusk-o70: var(--theme-base-dusk-o70);
  --map-base-dusk-o60: var(--theme-base-dusk-o60);
  --map-base-dusk-o50: var(--theme-base-dusk-o50);
  --map-base-dusk-o40: var(--theme-base-dusk-o40);
  --map-base-dusk-o30: var(--theme-base-dusk-o30);
  --map-base-dusk-o20: var(--theme-base-dusk-o20);
  --map-base-dusk-o10: var(--theme-base-dusk-o10);
  --map-base-dusk-o05: var(--theme-base-dusk-o05);

  // Stroke
  --map-base-dusk-stroke-2: var(--theme-base-dusk-2);
  --map-base-dusk-stroke-1: var(--theme-base-dusk-1);
  --map-base-dusk-stroke-0: var(--theme-base-dusk-0);
  --map-base-dusk-stroke--1: var(--theme-base-dusk--1);
  --map-base-dusk-stroke--2: var(--theme-base-dusk--2);

  // Symbol
  --map-base-dusk-symbol-2: var(--theme-base-dusk-3);
  --map-base-dusk-symbol-1: var(--theme-base-dusk-2);
  --map-base-dusk-symbol-0: var(--theme-base-dusk-1);
  --map-base-dusk-symbol--1: var(--theme-base-dusk-0);

  // Text
  --map-base-text-0: var(--theme-base-text-0);
  --map-base-text--1: var(--theme-base-text--1);
  --map-base-text--2: var(--theme-base-text--2);

  // Text WCAG
  --map-base-text-wcag-0: var(--theme-base-text-wcag-0);
  --map-base-text-wcag--1: var(--theme-base-text-wcag--1);
  --map-base-text-wcag--2: var(--theme-base-text-wcag--2);
}

// WCAG overrides for light theme
:root.wcag-compliant {
  // Brand fill WCAG overrides
  --map-base-brand-fill-4: var(--theme-base-brand-wcag-4);
  --map-base-brand-fill-3: var(--theme-base-brand-wcag-3);
  --map-base-brand-fill-2: var(--theme-base-brand-wcag-2);
  --map-base-brand-fill-1: var(--theme-base-brand-wcag-1);
  --map-base-brand-fill-0: var(--theme-base-brand-wcag-0);
  --map-base-brand-fill--1: var(--theme-base-brand-wcag--1);
  --map-base-brand-fill--2: var(--theme-base-brand-wcag--2);
  --map-base-brand-fill--3: var(--theme-base-brand-wcag--3);
  --map-base-brand-fill--4: var(--theme-base-brand-wcag--4);

  // Brand symbol WCAG overrides
  --map-base-brand-symbol-2: var(--theme-base-brand-symbol-wcag-2);
  --map-base-brand-symbol-1: var(--theme-base-brand-symbol-wcag-1);
  --map-base-brand-symbol-0: var(--theme-base-brand-symbol-wcag--0);
  --map-base-brand-symbol--1: var(--theme-base-brand-symbol-wcag--1);

  // Brand alpha WCAG overrides
  --map-base-brand-o10: var(--theme-base-brand-wcag-o03);
  --map-base-brand-o05: var(--theme-base-brand-wcag-o03);

  // Purple fill WCAG overrides
  --map-base-purple-fill-4: var(--theme-base-purple-wcag-4);
  --map-base-purple-fill-3: var(--theme-base-purple-wcag-3);
  --map-base-purple-fill-2: var(--theme-base-purple-wcag-2);
  --map-base-purple-fill-1: var(--theme-base-purple-wcag-1);
  --map-base-purple-fill-0: var(--theme-base-purple-wcag-0);
  --map-base-purple-fill--1: var(--theme-base-purple-wcag--1);
  --map-base-purple-fill--2: var(--theme-base-purple-wcag--2);
  --map-base-purple-fill--3: var(--theme-base-purple-wcag--3);
  --map-base-purple-fill--4: var(--theme-base-purple-wcag--4);

  // Purple symbol WCAG overrides
  --map-base-purple-symbol-2: var(--theme-base-purple-symbol-wcag-2);
  --map-base-purple-symbol-1: var(--theme-base-purple-symbol-wcag-1);
  --map-base-purple-symbol-0: var(--theme-base-purple-symbol-wcag-0);
  --map-base-purple-symbol--1: var(--theme-base-purple-symbol-wcag--);

  // Text WCAG overrides
  --map-base-text-0: var(--theme-base-text-wcag-0);
  --map-base-text--1: var(--theme-base-text-wcag--1);
  --map-base-text--2: var(--theme-base-text-wcag--2);

  // Alpha WCAG overrides
  --map-base-purple-o05: var(--theme-base-purple-wcag-o03);
  --map-base-dusk-o05: var(--theme-base-dusk-wcag-o03);
}

// WCAG overrides for dark theme
:root.wcag-compliant .ivyforms-theme-dark {
  // Brand fill WCAG overrides for dark theme
  --map-base-brand-fill-4: var(--theme-base-brand-wcag-4);
  --map-base-brand-fill-3: var(--theme-base-brand-wcag-3);
  --map-base-brand-fill-2: var(--theme-base-brand-wcag-2);
  --map-base-brand-fill-1: var(--theme-base-brand-wcag-1);
  --map-base-brand-fill-0: var(--theme-base-brand-wcag-0);
  --map-base-brand-fill--1: var(--theme-base-brand-wcag--1);
  --map-base-brand-fill--2: var(--theme-base-brand-wcag--2);
  --map-base-brand-fill--3: var(--theme-base-brand-wcag--3);
  --map-base-brand-fill--4: var(--theme-base-brand-wcag--4);

  // Brand symbol WCAG overrides for dark theme
  --map-base-brand-symbol-2: var(--theme-base-brand-symbol-wcag-2);
  --map-base-brand-symbol-1: var(--theme-base-brand-symbol-wcag-1);
  --map-base-brand-symbol-0: var(--theme-base-brand-symbol-wcag--0);
  --map-base-brand-symbol--1: var(--theme-base-brand-symbol-wcag--1);

  // Brand alpha WCAG overrides for dark theme
  --map-base-brand-o10: var(--theme-base-brand-wcag-o03);
  --map-base-brand-o05: var(--theme-base-brand-wcag-o03);

  // Purple fill WCAG overrides for dark theme
  --map-base-purple-fill-4: var(--theme-base-purple-wcag-4);
  --map-base-purple-fill-3: var(--theme-base-purple-wcag-3);
  --map-base-purple-fill-2: var(--theme-base-purple-wcag-2);
  --map-base-purple-fill-1: var(--theme-base-purple-wcag-1);
  --map-base-purple-fill-0: var(--theme-base-purple-wcag-0);
  --map-base-purple-fill--1: var(--theme-base-purple-wcag--1);
  --map-base-purple-fill--2: var(--theme-base-purple-wcag--2);
  --map-base-purple-fill--3: var(--theme-base-purple-wcag--3);
  --map-base-purple-fill--4: var(--theme-base-purple-wcag--4);

  // Purple symbol WCAG overrides for dark theme
  --map-base-purple-symbol-2: var(--theme-base-purple-symbol-wcag-2);
  --map-base-purple-symbol-1: var(--theme-base-purple-symbol-wcag-1);
  --map-base-purple-symbol-0: var(--theme-base-purple-symbol-wcag-0);
  --map-base-purple-symbol--1: var(--theme-base-purple-symbol-wcag--1);

  // Text WCAG overrides for dark theme
  --map-base-text-0: var(--theme-base-text-wcag-0);
  --map-base-text--1: var(--theme-base-text-wcag--1);
  --map-base-text--2: var(--theme-base-text-wcag--2);

  // Alpha WCAG overrides for dark theme
  --map-base-purple-o05: var(--theme-base-purple-wcag-o03);
  --map-base-dusk-o05: var(--theme-base-dusk-wcag-o03);
}
