/* ==========================================================================
   Weldeon — Design Tokens (Editorial Luxury)
   Single source of truth. Rebrand = change --accent-*.
   ========================================================================== */

:root {
  /* ---- Paper / canvas (warm neutrals) ---- */
  --paper:       #faf8f3;        /* the one canvas, under every section */
  --paper-bone:  var(--paper);
  --paper-warm:  var(--paper);
  --paper-ink:   var(--paper);

  /* ---- Surfaces ---- */
  --surface:       #ffffff;
  --surface-bone:  #f4f1ea;

  /* ---- Ink text ramp ---- */
  --ink:            #17150f;
  --text-primary:   #221f18;
  --text-secondary: #4a463c;
  --text-muted:     #6c6658;
  --text-faint:     #9b9484;
  --text-on-ink:    #f3efe6;
  --text-on-ink-muted: #b9b1a1;
  --text-on-accent: #ffffff;

  /* ---- Hairlines / rules (inside compositions only) ---- */
  --rule-subtle:  #e3e1dc;
  --rule-default: #d1cfca;
  --rule-strong:  #b1afaa;
  --rule-on-ink:  #3f3c36;
  --ring:         #7a5230;

  /* ---- Accent — one quiet luxury accent (oxblood / arc ember) ---- */
  --accent:       #7a2e2e;
  --accent-hover: #8c3838;
  --accent-press: #6a2727;
  --accent-soft:  #ede4df;   /* opaque tint of the accent on paper */
  --accent-on-ink:#c9855f;
  --gold:         #9a7b2e;

  /* ---- Semantic (muted, editorial) ---- */
  --success: #3f6b43; --success-soft: #e4e7de;
  --warning: #9a6a1e; --warning-soft: #eee7d9;
  --error:   #9b2c2c; --error-soft:   #efe0db;
  --info:    #335a73; --info-soft:    #e2e5e4;

  /* Flat by rule: every colour is opaque. No gradients, shadows or opacity. */
  --grad-paper: var(--paper-bone);
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;

  --logo-mark: #63605a;

  /* ---- Type families ---- */
  --font-serif: "Onest", "Canela", "GT Sectra", "Tiempos Headline",
                "Freight Display", "Playfair Display", Georgia, "Times New Roman", serif;
  --font-sans:  "Libre Franklin", "Söhne", -apple-system, BlinkMacSystemFont,
                "Helvetica Neue", Arial, sans-serif;
  --font-serif-text: "Onest", "Libre Franklin", sans-serif;
  /* Onest carries the headlines, matching the wordmark in the logo. Libre Franklin carries running and
     interface text, and Anonymous Pro carries WPS numbers, amperages and
     weld IDs. */
  --font-mono:  "Anonymous Pro", ui-monospace, Menlo, monospace;
  --font-display: var(--font-serif);
  --font-body:    var(--font-sans);

  /* ---- Fluid type scale ---- */
  --fs-display: clamp(3rem, 1.4rem + 7.2vw, 7.25rem);
  --fs-h1:      clamp(2.5rem, 1.6rem + 4vw, 4.5rem);
  --fs-h2:      clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
  --fs-h3:      clamp(1.5rem, 1.2rem + 1.4vw, 2.125rem);
  --fs-h4:      clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --fs-deck:    clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
  --fs-quote:   clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
  --fs-lead:    clamp(1.125rem, 1.04rem + 0.45vw, 1.375rem);
  --fs-body:    1.0625rem;
  --fs-body-lg: 1.1875rem;
  --fs-small:   0.875rem;
  --fs-kicker:  0.75rem;
  --fs-figure:  clamp(2.75rem, 2rem + 3vw, 4.25rem);

  /* ---- Spacing: 4-pt base / 8-pt rhythm ---- */
  --space-0: 0;      --space-1: 4px;   --space-2: 8px;   --space-3: 12px;
  --space-4: 16px;   --space-5: 20px;  --space-6: 24px;  --space-8: 32px;
  --space-10: 40px;  --space-12: 48px; --space-16: 64px; --space-20: 80px;
  --space-24: 96px;  --space-28: 112px;--space-32: 128px;--space-40: 160px;
  --space-48: 192px; --space-56: 224px;

  /* ---- Radii (crisp) ---- */
  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --radius-xl: 16px;
  --radius-pill: 999px;

  /* ---- Containers & margins ---- */
  --container-text: 680px;
  --container-md:   840px;
  --container-lg:   1040px;
  --container-xl:   1200px;
  --container-2xl:  1360px;
  --margin: clamp(24px, 7vw, 120px);

  /* ---- Section rhythm ---- */
  --section-y:    clamp(80px, 11vw, 176px);
  --section-y-lg: clamp(112px, 15vw, 240px);
  --stack:        clamp(16px, 2vw, 24px);
  --col-gap:      clamp(24px, 4vw, 72px);

  /* ---- Grid ---- */
  --grid-cols: 12;
  --grid-gap: var(--col-gap);

  /* ---- Motion ---- */
  --dur-fast: 200ms; --dur-base: 360ms; --dur-slow: 560ms; --dur-slower: 900ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-editorial: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---- Optional ink-dark theme ---- */
[data-theme="dark"] {
  --paper:       #16140f;        /* the one canvas in this theme too */
  --paper-bone:  var(--paper);
  --paper-warm:  #221e17;
  --paper-ink:   #0f0e0a;
  --surface:     #1b1812;
  --surface-bone:#221e17;
  --ink:            #f4efe4;
  --text-primary:   #ece7da;
  --text-secondary: #c3bdac;
  --text-muted:     #a49c88;
  --text-faint:     #7d7664;
  --rule-subtle:  #282620;
  --rule-default: #3e3b36;
  --rule-strong:  #615e58;
  --ring:         #c08552;
  --accent:       #c08552;
  --accent-hover: #d1976f;
  --accent-press: #a97246;
  --accent-soft:  #2e2418;
  --success-soft: #1b1e15; --warning-soft: #261e11;
  --error-soft:   #261712; --info-soft:    #191c1b;
  --logo-mark:    #aca89d;
}
