:root {
  --pl-source-bg-canvas: var(--pl-color-neutral-0);
  --pl-source-bg-surface: var(--pl-color-neutral-50);
  --pl-source-bg-muted: var(--pl-color-neutral-100);

  --pl-source-text-primary: var(--pl-color-neutral-900);
  --pl-source-text-secondary: var(--pl-color-neutral-600);

  --pl-source-border-subtle: var(--pl-color-neutral-200);
  --pl-source-border-strong: var(--pl-color-neutral-300);

  --pl-source-accent: var(--pl-color-primary, var(--pl-color-primary-600));
  --pl-source-secondary: var(--pl-color-secondary, var(--pl-color-secondary-600));

  --pl-bg-canvas: var(--wp--preset--color--canvas, var(--pl-source-bg-canvas));
  --pl-bg-surface: var(--wp--preset--color--surface, var(--pl-source-bg-surface));
  --pl-bg-muted: var(--wp--preset--color--muted, var(--pl-source-bg-muted));

  --pl-text-primary: var(--wp--preset--color--text-primary, var(--pl-source-text-primary));
  --pl-text-secondary: var(--wp--preset--color--text-secondary, var(--pl-source-text-secondary));

  --pl-border-subtle: var(--wp--preset--color--border-subtle, var(--pl-source-border-subtle));
  --pl-border-strong: var(--wp--preset--color--border-strong, var(--pl-source-border-strong));

  --pl-accent: var(--wp--preset--color--accent, var(--pl-source-accent));
  --pl-accent-soft: var(--wp--preset--color--accent-soft, var(--pl-color-primary-soft));
  --pl-accent-strong: var(--wp--preset--color--accent-strong, var(--pl-color-primary-strong));
  --pl-secondary: var(--wp--preset--color--secondary, var(--pl-source-secondary));
  --pl-secondary-soft: var(--wp--preset--color--secondary-soft, var(--pl-color-secondary-soft));
  --pl-secondary-strong: var(--wp--preset--color--secondary-strong, var(--pl-color-secondary-strong));
  --pl-status-success: var(--wp--preset--color--success, var(--pl-color-success));
  --pl-status-warning: var(--wp--preset--color--warning, var(--pl-color-warning));
  --pl-status-danger: var(--wp--preset--color--danger, var(--pl-color-danger));
  --pl-status-info: var(--wp--preset--color--info, var(--pl-color-info));

  /* Legacy alias for historical content that still references heading. */
  --wp--preset--color--heading: var(--pl-accent-soft);
  --pl-accent-hover: var(--pl-color-primary-strong, var(--pl-color-primary-700));
  --pl-secondary-hover: var(--pl-color-secondary-strong, var(--pl-color-secondary-700));
  --pl-heading: var(--wp--preset--color--accent, var(--pl-accent));

  --pl-link: var(--wp--preset--color--secondary, var(--pl-secondary));
  --pl-link-hover: var(--wp--preset--color--secondary-strong, var(--pl-secondary-strong));
  --pl-link-visited: var(--wp--preset--color--secondary-soft, var(--pl-secondary-soft));
  --pl-focus-ring: var(--pl-color-focus-ring);
}

body:not(.wp-admin) .has-heading-color,
.editor-styles-wrapper .has-heading-color {
  color: var(--wp--preset--color--heading) !important;
}

body:not(.wp-admin) .has-heading-background-color,
.editor-styles-wrapper .has-heading-background-color {
  background-color: var(--wp--preset--color--heading) !important;
}
