:root {
  --bg-default: #F7F4EF;
  --bg-subtle: #EFEAE1;
  --bg-surface-low: #FFFFFF;
  --bg-surface-high: #E7E0D4;
  --bg-inverse: #1C1917;
  --bg-brand: #E8DFD2;
  --bg-accent: #F6EBD8;
  --fg-on-default: #1C1917;
  --fg-on-subtle: #2A2622;
  --fg-on-inverse: #F7F4EF;
  --fg-on-brand: #1C1917;
  --fg-on-accent: #4A3617;
  --fg-secondary: #5C564E;
  --fg-disabled: #9A938A;
  --brand-primary: #6B4A2F;
  --brand-primary-hover: #543929;
  --brand-secondary: #8A6A45;
  --brand-secondary-hover: #705638;
  --brand-accent: #B4894A;
  --brand-accent-hover: #9C7339;
  --border-color-default: #D2C8B8;
  --border-color-subtle: #E4DCD0;
  --border-color-strong: #A89C88;
  --color-error: #A8442F;
  --color-warning: #B4894A;
  --color-info: #3A6B8A;
  --color-success: #4C7A4A;

  --font-body-lg-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.65;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.6;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 0.875rem;
  --font-label-lg-weight: 600;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.02em;
  --font-label-md-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.8125rem;
  --font-label-md-weight: 600;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.03em;
  --font-label-sm-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.75rem;
  --font-label-sm-weight: 600;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.04em;
  --font-title-lg-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.25rem;
  --font-title-lg-weight: 700;
  --font-title-lg-line-height: 1.2;
  --font-title-lg-letter-spacing: -0.01em;
  --font-title-md-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1rem;
  --font-title-md-weight: 700;
  --font-title-md-line-height: 1.25;
  --font-title-md-letter-spacing: 0em;
  --font-display-lg-family: 'Newsreader', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 3.75rem;
  --font-display-lg-weight: 400;
  --font-display-lg-line-height: 1.0;
  --font-display-lg-letter-spacing: -0.04em;
  --font-display-md-family: 'Newsreader', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3rem;
  --font-display-md-weight: 400;
  --font-display-md-line-height: 1.05;
  --font-display-md-letter-spacing: -0.035em;
  --font-headline-lg-family: 'Newsreader', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.25rem;
  --font-headline-lg-weight: 500;
  --font-headline-lg-line-height: 1.08;
  --font-headline-lg-letter-spacing: -0.025em;
  --font-headline-md-family: 'Newsreader', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.75rem;
  --font-headline-md-weight: 500;
  --font-headline-md-line-height: 1.12;
  --font-headline-md-letter-spacing: -0.02em;
  --font-headline-sm-family: 'Newsreader', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.375rem;
  --font-headline-sm-weight: 500;
  --font-headline-sm-line-height: 1.15;
  --font-headline-sm-letter-spacing: -0.015em;

  --spacing-lg: 1rem;
  --spacing-md: 0.75rem;
  --spacing-sm: 0.5rem;
  --spacing-xl: 1.5rem;
  --spacing-xs: 0.25rem;
  --spacing-section-margin: 4rem;
  --spacing-container-padding: 1.5rem;
  --spacing-section-padding-y: 3.5rem;

  --border-radius-lg: 0.875rem;
  --border-radius-md: 0.625rem;
  --border-radius-sm: 0.375rem;
  --border-radius-xl: 1.25rem;
  --border-radius-full: 9999px;

  --shadow-lg: 0 18px 40px rgba(15, 20, 24, 0.16), 0 4px 12px rgba(15, 20, 24, 0.08);
  --shadow-md: 0 8px 20px rgba(15, 20, 24, 0.10), 0 2px 6px rgba(15, 20, 24, 0.06);
  --shadow-sm: 0 1px 2px rgba(15, 20, 24, 0.06), 0 1px 1px rgba(15, 20, 24, 0.04);

  --container-max-width: 1600px;
  --container-padding-x: 1rem;

/* alias legacy — ne pas utiliser dans les nouveaux blocs */
  --color-primary: var(--brand-primary);
  --color-primary-main: var(--brand-primary);
  --color-primary-light: var(--brand-primary);
  --color-primary-dark: var(--brand-primary-hover);
  --color-primary-contrast: var(--fg-on-brand);
  --color-secondary: var(--brand-secondary);
  --color-secondary-main: var(--brand-secondary);
  --color-secondary-light: var(--brand-secondary);
  --color-secondary-dark: var(--brand-secondary-hover);
  --color-secondary-contrast: var(--fg-on-brand);
  --color-accent: var(--brand-accent);
  --color-accent-main: var(--brand-accent);
  --color-accent-light: var(--brand-accent);
  --color-accent-dark: var(--brand-accent-hover);
  --color-accent-contrast: var(--fg-on-accent);
  --color-background: var(--bg-default);
  --color-background-default: var(--bg-default);
  --color-background-paper: var(--bg-subtle);
  --color-paper: var(--bg-subtle);
  --color-text-primary: var(--fg-on-default);
  --color-text-secondary: var(--fg-secondary);
  --color-text-disabled: var(--fg-disabled);
  --font-family-body: var(--font-body-md-family);
  --font-family-heading: var(--font-headline-lg-family);
  --font-size-base: var(--font-body-md-size);
  --font-size-small: var(--font-body-sm-size);
  --font-size-h1: var(--font-display-lg-size);
  --font-size-h2: var(--font-headline-lg-size);
  --font-size-h3: var(--font-headline-md-size);
  --font-size-h4: var(--font-headline-sm-size);
  --font-size-h5: var(--font-title-lg-size);
  --font-size-h6: var(--font-title-md-size);
  --line-height-body: var(--font-body-md-line-height);
  --line-height-heading: var(--font-headline-lg-line-height);
  --border-radius: var(--border-radius-md);
  --heading-letter-spacing: var(--font-headline-lg-letter-spacing);
  --heading-weight: var(--font-headline-lg-weight);
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s ease;
}

[data-theme="dark"] {
  --bg-default: #16140F;
  --bg-subtle: #1E1B15;
  --bg-surface-low: #1C1A14;
  --bg-surface-high: #26221A;
  --bg-inverse: #F7F4EF;
  --bg-brand: #2A2118;
  --bg-accent: #332714;
  --fg-on-default: #ECE6DB;
  --fg-on-subtle: #D8D1C4;
  --fg-on-inverse: #16140F;
  --fg-on-brand: #E8DFD2;
  --fg-on-accent: #F0D9A8;
  --fg-secondary: #A69E90;
  --fg-disabled: #6B6459;
  --brand-primary: #C09A6E;
  --brand-primary-hover: #D1AE84;
  --brand-secondary: #B59468;
  --brand-secondary-hover: #C6A77C;
  --brand-accent: #D9AC63;
  --brand-accent-hover: #E6BC78;
  --border-color-default: #332E24;
  --border-color-subtle: #26221A;
  --border-color-strong: #4F4738;
  --color-error: #D0765E;
  --color-warning: #D9AC63;
  --color-info: #6FA3C0;
  --color-success: #85B07F;
}

.block--tone-inverse {
  --bg-default: var(--bg-inverse);
  --bg-subtle: var(--bg-inverse);
  --bg-surface-low: var(--bg-inverse);
  --bg-surface-high: var(--bg-inverse);
  --bg-brand: var(--bg-inverse);
  --bg-accent: var(--bg-inverse);
  --fg-on-default: var(--fg-on-inverse);
  --fg-on-subtle: var(--fg-on-inverse);
  --fg-on-brand: var(--fg-on-inverse);
  --fg-on-accent: var(--fg-on-inverse);
  --fg-secondary: color-mix(in srgb, var(--fg-on-inverse) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-inverse) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-inverse) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-inverse) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-inverse) 36%, transparent);
}

.block--tone-shell-inverse [class$="__shell"],
.block--tone-shell-inverse [class*="__shell "] {
  --bg-default: var(--bg-inverse);
  --bg-subtle: var(--bg-inverse);
  --bg-surface-low: var(--bg-inverse);
  --bg-surface-high: var(--bg-inverse);
  --bg-brand: var(--bg-inverse);
  --bg-accent: var(--bg-inverse);
  --fg-on-default: var(--fg-on-inverse);
  --fg-on-subtle: var(--fg-on-inverse);
  --fg-on-brand: var(--fg-on-inverse);
  --fg-on-accent: var(--fg-on-inverse);
  --fg-secondary: color-mix(in srgb, var(--fg-on-inverse) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-inverse) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-inverse) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-inverse) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-inverse) 36%, transparent);
}

.block--tone-brand {
  --bg-default: var(--bg-brand);
  --bg-subtle: var(--bg-brand);
  --bg-surface-low: var(--bg-brand);
  --bg-surface-high: var(--bg-brand);
  --bg-inverse: var(--bg-brand);
  --bg-accent: var(--bg-brand);
  --fg-on-default: var(--fg-on-brand);
  --fg-on-subtle: var(--fg-on-brand);
  --fg-on-inverse: var(--fg-on-brand);
  --fg-on-accent: var(--fg-on-brand);
  --fg-secondary: color-mix(in srgb, var(--fg-on-brand) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-brand) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-brand) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-brand) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-brand) 36%, transparent);
}

.block--tone-shell-brand [class$="__shell"],
.block--tone-shell-brand [class*="__shell "] {
  --bg-default: var(--bg-brand);
  --bg-subtle: var(--bg-brand);
  --bg-surface-low: var(--bg-brand);
  --bg-surface-high: var(--bg-brand);
  --bg-inverse: var(--bg-brand);
  --bg-accent: var(--bg-brand);
  --fg-on-default: var(--fg-on-brand);
  --fg-on-subtle: var(--fg-on-brand);
  --fg-on-inverse: var(--fg-on-brand);
  --fg-on-accent: var(--fg-on-brand);
  --fg-secondary: color-mix(in srgb, var(--fg-on-brand) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-brand) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-brand) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-brand) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-brand) 36%, transparent);
}

.block--tone-accent {
  --bg-default: var(--bg-accent);
  --bg-subtle: var(--bg-accent);
  --bg-surface-low: var(--bg-accent);
  --bg-surface-high: var(--bg-accent);
  --bg-inverse: var(--bg-accent);
  --bg-brand: var(--bg-accent);
  --fg-on-default: var(--fg-on-accent);
  --fg-on-subtle: var(--fg-on-accent);
  --fg-on-inverse: var(--fg-on-accent);
  --fg-on-brand: var(--fg-on-accent);
  --fg-secondary: color-mix(in srgb, var(--fg-on-accent) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-accent) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-accent) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-accent) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-accent) 36%, transparent);
}

.block--tone-shell-accent [class$="__shell"],
.block--tone-shell-accent [class*="__shell "] {
  --bg-default: var(--bg-accent);
  --bg-subtle: var(--bg-accent);
  --bg-surface-low: var(--bg-accent);
  --bg-surface-high: var(--bg-accent);
  --bg-inverse: var(--bg-accent);
  --bg-brand: var(--bg-accent);
  --fg-on-default: var(--fg-on-accent);
  --fg-on-subtle: var(--fg-on-accent);
  --fg-on-inverse: var(--fg-on-accent);
  --fg-on-brand: var(--fg-on-accent);
  --fg-secondary: color-mix(in srgb, var(--fg-on-accent) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-accent) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-accent) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-accent) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-accent) 36%, transparent);
}

.palette-signature {
  --bg-default: #12100D;
  --bg-subtle: #1A1714;
  --bg-surface-low: #191511;
  --bg-surface-high: #221C17;
  --bg-inverse: #F3EDE4;
  --bg-brand: #231C17;
  --bg-accent: #2B211A;
  --fg-on-default: #F1E9DE;
  --fg-on-subtle: #D9D0C4;
  --fg-on-inverse: #171311;
  --fg-on-brand: #F1E9DE;
  --fg-on-accent: #F4E8D5;
  --fg-secondary: #B2A697;
  --fg-disabled: #6E645A;
  --brand-primary: #B89267;
  --brand-primary-hover: #CAA57A;
  --brand-secondary: #9D7A57;
  --brand-secondary-hover: #B28C64;
  --brand-accent: #CDA05D;
  --brand-accent-hover: #DEB06A;
  --border-color-default: #322A23;
  --border-color-subtle: #231D18;
  --border-color-strong: #4A4036;
  --color-error: #C46F5A;
  --color-warning: #C79A52;
  --color-info: #6F93A8;
  --color-success: #7FA07A;

  --font-body-lg-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.7;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.65;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'JetBrains Mono', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 0.9375rem;
  --font-label-lg-weight: 500;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.02em;
  --font-label-md-family: 'JetBrains Mono', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.8125rem;
  --font-label-md-weight: 500;
  --font-label-md-line-height: 1.2;
  --font-label-md-letter-spacing: 0.03em;
  --font-label-sm-family: 'JetBrains Mono', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.6875rem;
  --font-label-sm-weight: 400;
  --font-label-sm-line-height: 1.15;
  --font-label-sm-letter-spacing: 0.08em;
  --font-title-lg-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.25rem;
  --font-title-lg-weight: 600;
  --font-title-lg-line-height: 1.25;
  --font-title-lg-letter-spacing: -0.01em;
  --font-title-md-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1rem;
  --font-title-md-weight: 600;
  --font-title-md-line-height: 1.3;
  --font-title-md-letter-spacing: 0em;
  --font-display-lg-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 3.75rem;
  --font-display-lg-weight: 600;
  --font-display-lg-line-height: 0.98;
  --font-display-lg-letter-spacing: -0.035em;
  --font-display-md-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 2.5rem;
  --font-display-md-weight: 600;
  --font-display-md-line-height: 1.02;
  --font-display-md-letter-spacing: -0.03em;
  --font-headline-lg-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2rem;
  --font-headline-lg-weight: 600;
  --font-headline-lg-line-height: 1.1;
  --font-headline-lg-letter-spacing: -0.025em;
  --font-headline-md-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.6rem;
  --font-headline-md-weight: 600;
  --font-headline-md-line-height: 1.12;
  --font-headline-md-letter-spacing: -0.02em;
  --font-headline-sm-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.3rem;
  --font-headline-sm-weight: 600;
  --font-headline-sm-line-height: 1.15;
  --font-headline-sm-letter-spacing: -0.015em;
}

.palette-signature[data-theme="dark"] {
  --bg-default: #12100D;
  --bg-subtle: #1A1714;
  --fg-on-default: #F1E9DE;
  --fg-on-subtle: #D9D0C4;
  --fg-secondary: #B2A697;
  --fg-disabled: #6E645A;
  --border-color-default: #322A23;
  --border-color-subtle: #231D18;
}
