:root {
  /* Direction A — Colorful Print Commerce. Semantic roles retain legacy aliases. */

  /* Brand + semantic color roles */
  --color-primary: #142348;
  --color-secondary: #2056ca;
  --color-gold: #f4c542;
  --color-accent: var(--color-gold);
  --color-coral: #e84f5d;
  --color-teal: #087f91;
  --color-cyan-soft: #e8f6f8;
  --color-coral-soft: #fff0ef;
  --color-yellow-soft: #fff6d9;

  --color-neutral: #64748b;
  --color-text: #142348;
  --color-text-soft: #475569;
  --color-text-muted: #566982; /* was #64748b: 4.48:1 on pearl, now >=5:1 */
  --color-placeholder: #64748b;

  --color-white: #ffffff;
  --color-background: #f5f8fb;
  --color-surface: #ffffff;
  --color-surface-soft: #f8fafc;
  --color-surface-blue: #eaf1ff;

  --color-border: #e2e8f0;
  --color-border-strong: #cbd5e1;
  --color-border-interactive: #b9c7db;

  --color-focus: #2056ca;
  --color-focus-ring: rgba(32, 86, 202, 0.2);
  --color-secondary-soft: rgba(32, 86, 202, 0.08);
  --color-secondary-border: rgba(32, 86, 202, 0.22);
  --color-gold-soft: rgba(201, 154, 46, 0.1);
  --color-gold-border: rgba(201, 154, 46, 0.3);
  --color-gold-text: #6c5114;
  --color-overlay: rgba(15, 23, 42, 0.44);
  --color-on-dark-strong: rgba(255, 255, 255, 0.8);
  --color-on-dark: rgba(255, 255, 255, 0.72);
  --color-on-dark-muted: rgba(255, 255, 255, 0.62);
  --color-on-dark-border: rgba(255, 255, 255, 0.14);

  /* Supporting palette */
  --color-ink: #0c1627;            /* deepest navy: dark sections, footer */
  --color-gold-deep: #8a6414;      /* gold for TEXT on light backgrounds (AA) */
  --color-gold-tint: #fbf6e8;      /* gold-tinted surface */
  --color-gold-light: #e8c872;     /* gold on dark backgrounds, focus on dark */
  --color-success: #15703f;
  --color-success-soft: rgba(21, 112, 63, 0.08);
  --color-success-border: rgba(21, 112, 63, 0.3);
  --color-danger: #b42318;
  --color-danger-soft: rgba(180, 35, 24, 0.08);
  --color-danger-border: rgba(180, 35, 24, 0.35);
  --gradient-foil: linear-gradient(90deg, #b98a22 0%, #e8c872 38%, #c99a2e 66%, #9a7220 100%);
  --accent-print: var(--color-coral);
  --accent-marketing: var(--color-teal);

  /* Typography */
  --font-display: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-heading: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-body: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

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

  --text-caption: 0.75rem; /* 12px */
  --text-small: 0.875rem;  /* 14px */
  --text-body: 1rem;       /* 16px */
  --text-body-lg: 1.125rem;/* 18px */
  --text-h4: 1.375rem;     /* 22px */
  --text-h3: 1.75rem;      /* 28px */
  --text-h2: 2.25rem;      /* 36px */
  --text-h1: 3rem;         /* 48px */

  --line-caption: 1.4;
  --line-small: 1.5;
  --line-body: 1.6;
  --line-h4: 1.3;
  --line-h3: 1.25;
  --line-h2: 1.2;
  --line-h1: 1.15;

  --tracking-tight: -0.025em;
  --tracking-eyebrow: 0.07em;

  /* Backwards-compatible aliases used by the current build */
  --text-xs: var(--text-caption);
  --text-sm: var(--text-small);
  --text-base: var(--text-body);
  --text-lg: var(--text-body-lg);
  --text-xl: var(--text-h4);
  --text-2xl: var(--text-h3);
  --text-3xl: var(--text-h2);
  --text-4xl: var(--text-h1);

  /* Spacing: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 120 */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem; /* was used by CSS but never defined */
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem; /* was used by CSS but never defined */
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-30: 7.5rem;

  /* Radius */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px; /* was used by CSS but never defined */
  --radius-pill: 999px;

  /* Layout */
  --container-width: 1440px;
  --container-gutter: 24px;
  --container-gutter-mobile: 16px;
  --section-space: var(--space-20);
  --section-space-mobile: var(--space-12);

  /* Controls */
  --control-height: 48px;
  --control-height-compact: 44px;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-md: 0 12px 30px rgba(15, 37, 63, 0.12);
  --shadow-lg: 0 18px 42px rgba(15, 37, 63, 0.14);
  --shadow-drawer: -12px 0 30px rgba(15, 23, 42, 0.18);

  /* Motion */
  --motion-fast: 160ms;
  --motion-base: 220ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* Layering */
  --header-z: 1000;
  --menu-z: 1050;
  --mobile-nav-z: 1100;
}
