/* =========================================================================
   CJ DESIGN SYSTEM v1.1 — Sold by Craig
   Single source of truth for tokens, scale, breakpoints.

   v1.1 (2026-05-10): Brand palette shift from slate-blue + gold to
   warm black + gold. Ink tokens moved off cool slate to a true warm
   neutral. Cool surface tokens (fog/frost/mist) re-keyed to warm
   cream equivalents. Shadow rgba retinted to match.

   This file is ADDITIVE. It introduces a token layer and opt-in utility
   classes prefixed with .cj-. It does NOT override existing page CSS
   that hardcodes color values directly. See section 11 ("LEGACY COLOR
   OVERRIDES") for site-wide overrides that DO override hardcoded blues.

   Last updated: 2026-05-10
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. TOKENS
   ------------------------------------------------------------------------- */
:root{
  /* Color · Brand
     v1.1: ink shifted from slate-blue (#0f172a etc.) to warm black scale.
     Old values preserved as comments for reference.
  */
  --cj-color-ink:           #161413;   /* primary text, headings  (was #0f172a slate) */
  --cj-color-ink-soft:      #4a443f;   /* body copy, secondary    (was #334155 slate) */
  --cj-color-ink-muted:     #6e655c;   /* meta, captions          (was #64748b slate) */
  --cj-color-ink-faint:     #9c918a;   /* dividers, decorative    (was #94a3b8 slate) */

  --cj-color-gold:          #c6a87a;   /* primary accent · CTAs */
  --cj-color-gold-deep:     #b4925a;   /* gold hover */
  --cj-color-gold-bronze:   #8c7547;   /* gold high-contrast text */

  --cj-color-cream:         #faf6ee;   /* primary surface */
  --cj-color-cream-deep:    #f1ece0;   /* surface alt */
  --cj-color-cream-edge:    #eee4d2;   /* hairlines on cream */

  --cj-color-paper:         #ffffff;   /* white surface */

  /* v1.1: cool surface tokens re-keyed to warm cream equivalents.
     Old slate-blue tints replaced. */
  --cj-color-fog:           #faf8f3;   /* warm surface  (was #f8fafc cool) */
  --cj-color-frost:         #f1ece0;   /* warm surface  (was #f1f5f9 cool) */
  --cj-color-mist:          #e6dec9;   /* warm hairline (was #e2e8f0 cool) */

  --cj-color-success:       #16a34a;
  --cj-color-warning:       #d97706;
  --cj-color-danger:        #dc2626;

  /* Typography · Families */
  --cj-font-sans:           'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --cj-font-serif:          'Playfair Display', Georgia, 'Times New Roman', serif;
  --cj-font-mono:           ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* Typography · Weights */
  --cj-fw-regular:          400;
  --cj-fw-medium:           500;
  --cj-fw-semibold:         600;
  --cj-fw-bold:             700;
  --cj-fw-black:            800;

  /* Typography · Scale (mobile → desktop via clamp) */
  --cj-text-eyebrow:        clamp(11px, 0.65vw + 9px, 12px);   /* uppercase labels */
  --cj-text-meta:           clamp(12px, 0.7vw + 10px, 13px);   /* captions, meta */
  --cj-text-small:          clamp(13px, 0.8vw + 11px, 14px);
  --cj-text-body:           clamp(15px, 1.0vw + 12px, 17px);
  --cj-text-body-lg:        clamp(16px, 1.2vw + 13px, 19px);
  --cj-text-lead:           clamp(17px, 1.4vw + 14px, 22px);

  --cj-text-h6:             clamp(15px, 1.2vw + 12px, 18px);
  --cj-text-h5:             clamp(17px, 1.4vw + 13px, 22px);
  --cj-text-h4:             clamp(20px, 1.8vw + 15px, 28px);
  --cj-text-h3:             clamp(24px, 2.2vw + 16px, 36px);
  --cj-text-h2:             clamp(30px, 3.2vw + 18px, 48px);
  --cj-text-h1:             clamp(36px, 4.5vw + 20px, 64px);
  --cj-text-display:        clamp(44px, 5.5vw + 24px, 84px);

  /* Typography · Line height */
  --cj-lh-tight:            1.15;
  --cj-lh-snug:             1.30;
  --cj-lh-normal:           1.55;
  --cj-lh-relaxed:          1.70;

  /* Typography · Letter spacing */
  --cj-ls-tight:            -0.02em;
  --cj-ls-snug:             -0.01em;
  --cj-ls-normal:           0;
  --cj-ls-wide:             0.02em;
  --cj-ls-wider:            0.08em;
  --cj-ls-widest:           0.16em;

  /* Spacing scale (base 8) */
  --cj-space-1:             4px;
  --cj-space-2:             8px;
  --cj-space-3:             12px;
  --cj-space-4:             16px;
  --cj-space-5:             24px;
  --cj-space-6:             32px;
  --cj-space-7:             48px;
  --cj-space-8:             64px;
  --cj-space-9:             80px;
  --cj-space-10:            96px;
  --cj-space-11:            128px;
  --cj-space-12:            160px;

  /* Section padding (responsive) */
  --cj-section-pad-y:       clamp(56px, 6vw + 32px, 96px);
  --cj-section-pad-y-lg:    clamp(72px, 8vw + 40px, 128px);
  --cj-section-pad-x:       clamp(20px, 3vw + 12px, 48px);

  /* Layout · Max-widths */
  --cj-max-text:            68ch;        /* readable prose */
  --cj-max-narrow:          720px;
  --cj-max-content:         960px;
  --cj-max-wide:            1140px;
  --cj-max-shell:           1240px;      /* default shell */
  --cj-max-grand:           1360px;      /* hero / wide grids */

  /* Radius */
  --cj-radius-sm:           6px;
  --cj-radius-md:           10px;
  --cj-radius-lg:           16px;
  --cj-radius-xl:           24px;
  --cj-radius-pill:         999px;

  /* Shadow (elevation system)
     v1.1: rgba retinted from slate (15,23,42) to warm black (22,20,19). */
  --cj-shadow-1:            0 1px 2px rgba(22,20,19,0.04), 0 2px 6px rgba(22,20,19,0.04);
  --cj-shadow-2:            0 4px 12px rgba(22,20,19,0.06), 0 2px 4px rgba(22,20,19,0.04);
  --cj-shadow-3:            0 12px 32px rgba(22,20,19,0.10), 0 4px 8px rgba(22,20,19,0.05);
  --cj-shadow-4:            0 20px 50px rgba(22,20,19,0.14), 0 8px 16px rgba(22,20,19,0.06);
  --cj-shadow-5:            0 32px 80px rgba(22,20,19,0.18), 0 12px 24px rgba(22,20,19,0.08);

  --cj-ring-focus:          0 0 0 3px rgba(198,168,122,0.45);

  /* Motion */
  --cj-ease-out:            cubic-bezier(0.16, 1, 0.3, 1);
  --cj-ease-in-out:         cubic-bezier(0.65, 0, 0.35, 1);
  --cj-dur-fast:            120ms;
  --cj-dur-base:            220ms;
  --cj-dur-slow:            420ms;

  /* Z-index ramp */
  --cj-z-base:              1;
  --cj-z-raised:            10;
  --cj-z-sticky:            50;
  --cj-z-overlay:           80;
  --cj-z-modal:             100;
  --cj-z-toast:             1000;
}

/* -------------------------------------------------------------------------
   2. BREAKPOINTS (documented; consume via media queries)
     · Phone   < 380px  | Phone-LG  380–679
     · Tablet  680–959  | Laptop    960–1239
     · Desktop ≥ 1240
   ------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------
   3. UTILITY · LAYOUT
   ------------------------------------------------------------------------- */
.cj-shell{
  width:100%;
  max-width:var(--cj-max-shell);
  margin:0 auto;
  padding-left:var(--cj-section-pad-x);
  padding-right:var(--cj-section-pad-x);
}
.cj-shell--narrow{ max-width:var(--cj-max-narrow); }
.cj-shell--content{ max-width:var(--cj-max-content); }
.cj-shell--wide{ max-width:var(--cj-max-wide); }
.cj-shell--grand{ max-width:var(--cj-max-grand); }

.cj-section{
  padding-top:var(--cj-section-pad-y);
  padding-bottom:var(--cj-section-pad-y);
}
.cj-section--lg{
  padding-top:var(--cj-section-pad-y-lg);
  padding-bottom:var(--cj-section-pad-y-lg);
}
.cj-section--cream{ background:var(--cj-color-cream); }
.cj-section--cream-deep{ background:var(--cj-color-cream-deep); }
.cj-section--ink{ background:var(--cj-color-ink); color:var(--cj-color-cream); }
.cj-section--fog{ background:var(--cj-color-fog); }

.cj-stack > * + * { margin-top:var(--cj-space-4); }
.cj-stack-2 > * + * { margin-top:var(--cj-space-2); }
.cj-stack-3 > * + * { margin-top:var(--cj-space-3); }
.cj-stack-5 > * + * { margin-top:var(--cj-space-5); }
.cj-stack-6 > * + * { margin-top:var(--cj-space-6); }
.cj-stack-7 > * + * { margin-top:var(--cj-space-7); }

.cj-grid{ display:grid; gap:var(--cj-space-5); }
.cj-grid-2{ grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.cj-grid-3{ grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.cj-grid-4{ grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); }

.cj-row{ display:flex; flex-wrap:wrap; gap:var(--cj-space-4); align-items:center; }
.cj-row-tight{ display:flex; flex-wrap:wrap; gap:var(--cj-space-2); align-items:center; }

/* -------------------------------------------------------------------------
   4. UTILITY · TYPOGRAPHY (opt-in)
   ------------------------------------------------------------------------- */
.cj-font-serif{ font-family:var(--cj-font-serif); }
.cj-font-sans{ font-family:var(--cj-font-sans); }

.cj-eyebrow{
  font-family:var(--cj-font-sans);
  font-size:var(--cj-text-eyebrow);
  font-weight:var(--cj-fw-bold);
  letter-spacing:var(--cj-ls-widest);
  text-transform:uppercase;
  color:var(--cj-color-gold-bronze);
}
.cj-display{
  font-family:var(--cj-font-serif);
  font-size:var(--cj-text-display);
  font-weight:var(--cj-fw-bold);
  line-height:var(--cj-lh-tight);
  letter-spacing:var(--cj-ls-tight);
  color:var(--cj-color-ink);
}
.cj-h1{
  font-family:var(--cj-font-serif);
  font-size:var(--cj-text-h1);
  font-weight:var(--cj-fw-bold);
  line-height:var(--cj-lh-tight);
  letter-spacing:var(--cj-ls-tight);
  color:var(--cj-color-ink);
}
.cj-h2{
  font-family:var(--cj-font-serif);
  font-size:var(--cj-text-h2);
  font-weight:var(--cj-fw-bold);
  line-height:var(--cj-lh-snug);
  letter-spacing:var(--cj-ls-snug);
  color:var(--cj-color-ink);
}
.cj-h3{
  font-family:var(--cj-font-serif);
  font-size:var(--cj-text-h3);
  font-weight:var(--cj-fw-bold);
  line-height:var(--cj-lh-snug);
  color:var(--cj-color-ink);
}
.cj-h4{
  font-family:var(--cj-font-sans);
  font-size:var(--cj-text-h4);
  font-weight:var(--cj-fw-bold);
  line-height:var(--cj-lh-snug);
  color:var(--cj-color-ink);
}
.cj-lead{
  font-family:var(--cj-font-sans);
  font-size:var(--cj-text-lead);
  line-height:var(--cj-lh-normal);
  color:var(--cj-color-ink-soft);
  font-weight:var(--cj-fw-regular);
}
.cj-body{
  font-family:var(--cj-font-sans);
  font-size:var(--cj-text-body);
  line-height:var(--cj-lh-relaxed);
  color:var(--cj-color-ink-soft);
}
.cj-meta{
  font-family:var(--cj-font-sans);
  font-size:var(--cj-text-meta);
  color:var(--cj-color-ink-muted);
  letter-spacing:var(--cj-ls-wide);
}

/* -------------------------------------------------------------------------
   5. UTILITY · BUTTONS (opt-in CTA system)
   ------------------------------------------------------------------------- */
.cj-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--cj-space-2);
  padding:14px 26px;
  border-radius:var(--cj-radius-pill);
  font-family:var(--cj-font-sans);
  font-size:14px;
  font-weight:var(--cj-fw-bold);
  letter-spacing:var(--cj-ls-wide);
  text-decoration:none;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform var(--cj-dur-base) var(--cj-ease-out),
             box-shadow var(--cj-dur-base) var(--cj-ease-out),
             background var(--cj-dur-base) var(--cj-ease-out),
             color var(--cj-dur-base) var(--cj-ease-out);
  white-space:nowrap;
  line-height:1;
}
.cj-btn:hover{ transform:translateY(-2px); }
.cj-btn:focus-visible{ outline:none; box-shadow:var(--cj-ring-focus); }

.cj-btn--primary{
  background:var(--cj-color-gold);
  color:var(--cj-color-ink);
  box-shadow:var(--cj-shadow-2);
}
.cj-btn--primary:hover{
  background:var(--cj-color-gold-deep);
  box-shadow:var(--cj-shadow-3);
}
.cj-btn--ink{
  background:var(--cj-color-ink);
  color:var(--cj-color-cream);
}
/* v1.1: ink hover shifted from slate (#1e293b) to warm grey (#2a2522) */
.cj-btn--ink:hover{ background:#2a2522; box-shadow:var(--cj-shadow-3); }

.cj-btn--ghost{
  background:transparent;
  color:var(--cj-color-ink);
  border-color:var(--cj-color-ink);
}
.cj-btn--ghost:hover{
  background:var(--cj-color-ink);
  color:var(--cj-color-cream);
}
.cj-btn--ghost-gold{
  background:transparent;
  color:var(--cj-color-gold-bronze);
  border-color:var(--cj-color-gold);
}
.cj-btn--ghost-gold:hover{
  background:var(--cj-color-gold);
  color:var(--cj-color-ink);
}

.cj-btn--sm{ padding:10px 18px; font-size:13px; }
.cj-btn--lg{ padding:18px 32px; font-size:15px; }
.cj-btn--block{ display:flex; width:100%; }

/* -------------------------------------------------------------------------
   6. UTILITY · CARDS / SURFACES
   ------------------------------------------------------------------------- */
.cj-card{
  background:var(--cj-color-paper);
  border:1px solid var(--cj-color-cream-edge);
  border-radius:var(--cj-radius-lg);
  padding:var(--cj-space-6);
  box-shadow:var(--cj-shadow-1);
  transition:box-shadow var(--cj-dur-base) var(--cj-ease-out),
             transform var(--cj-dur-base) var(--cj-ease-out);
}
.cj-card:hover{ box-shadow:var(--cj-shadow-3); transform:translateY(-2px); }

.cj-card--cream{ background:var(--cj-color-cream); }
/* v1.1: ink card border shifted from slate (#1e293b) to warm grey */
.cj-card--ink{ background:var(--cj-color-ink); color:var(--cj-color-cream); border-color:#2a2522; }
.cj-card--quiet{ box-shadow:none; }

.cj-divider{
  border:0;
  border-top:1px solid var(--cj-color-cream-edge);
  margin:var(--cj-space-7) 0;
}
.cj-divider--mist{ border-top-color:var(--cj-color-mist); }
.cj-divider--gold{
  height:2px;
  width:48px;
  background:var(--cj-color-gold);
  border:0;
  margin:var(--cj-space-4) 0;
}

/* -------------------------------------------------------------------------
   7. UTILITY · TAGS / BADGES
   ------------------------------------------------------------------------- */
.cj-tag{
  display:inline-flex;
  align-items:center;
  gap:var(--cj-space-2);
  padding:6px 14px;
  border-radius:var(--cj-radius-pill);
  font-family:var(--cj-font-sans);
  font-size:12px;
  font-weight:var(--cj-fw-bold);
  letter-spacing:var(--cj-ls-wide);
  text-transform:uppercase;
  background:var(--cj-color-cream);
  color:var(--cj-color-gold-bronze);
  border:1px solid var(--cj-color-cream-edge);
}
.cj-tag--ink{ background:var(--cj-color-ink); color:var(--cj-color-cream); border-color:transparent; }
.cj-tag--gold{ background:var(--cj-color-gold); color:var(--cj-color-ink); border-color:transparent; }

/* -------------------------------------------------------------------------
   8. ACCESSIBILITY
   ------------------------------------------------------------------------- */
.cj-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.cj-skip-link{
  position:absolute;
  top:-40px;
  left:8px;
  background:var(--cj-color-ink);
  color:var(--cj-color-cream);
  padding:8px 12px;
  border-radius:var(--cj-radius-sm);
  text-decoration:none;
  z-index:var(--cj-z-toast);
}
.cj-skip-link:focus{ top:8px; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* -------------------------------------------------------------------------
   9. RESPONSIVE GUARDRAILS
   ------------------------------------------------------------------------- */
@media (max-width:680px){
  .cj-section{ padding-top:56px; padding-bottom:56px; }
  .cj-section--lg{ padding-top:72px; padding-bottom:72px; }
  .cj-grid{ gap:var(--cj-space-4); }
  .cj-btn{ padding:13px 22px; }
  .cj-card{ padding:var(--cj-space-5); }
}

/* -------------------------------------------------------------------------
   10. GRID FIX UTILITIES
   Lock awkward auto-fit grids to clean column counts. Applied via class on
   the grid container; designed to override inline grid-template-columns.
   ------------------------------------------------------------------------- */
.cj-grid-3x2{ grid-template-columns:repeat(3, 1fr) !important; }
.cj-grid-5x1{ grid-template-columns:repeat(5, 1fr) !important; }
@media (max-width:980px){
  .cj-grid-3x2{ grid-template-columns:repeat(2, 1fr) !important; }
  .cj-grid-5x1{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width:640px){
  .cj-grid-3x2,
  .cj-grid-5x1{ grid-template-columns:1fr !important; }
}

/* -------------------------------------------------------------------------
   11. LEGACY COLOR OVERRIDES (added 2026-05-10 for v1.1)
   Sweep blue/slate hardcoded colors out of legacy per-page inline styles.
   Targets the slate-blue family (#0f172a, #1e293b, #334155, #475569,
   #64748b, #94a3b8, #cbd5e1, #e2e8f0, #f1f5f9, #f8fafc) plus common
   bright blues that may exist in older content (#1e40af, #2563eb,
   #3b82f6, #60a5fa, #93c5fd, #dbeafe, #eff6ff, #1e3a8a, #1e3a5f).

   These overrides apply globally and warm the existing site to the new
   black-and-gold palette without requiring per-page edits.
   ------------------------------------------------------------------------- */

/* Text-color overrides — slate-blue → warm ink scale */
[style*="color: #0f172a"], [style*="color:#0f172a"],
[style*="color: #1e293b"], [style*="color:#1e293b"]
{ color: var(--cj-color-ink) !important; }

[style*="color: #334155"], [style*="color:#334155"],
[style*="color: #475569"], [style*="color:#475569"]
{ color: var(--cj-color-ink-soft) !important; }

[style*="color: #64748b"], [style*="color:#64748b"]
{ color: var(--cj-color-ink-muted) !important; }

[style*="color: #94a3b8"], [style*="color:#94a3b8"]
{ color: var(--cj-color-ink-faint) !important; }

/* Background-color overrides — cool slate surfaces → warm cream surfaces */
[style*="background: #f8fafc"], [style*="background:#f8fafc"],
[style*="background-color: #f8fafc"], [style*="background-color:#f8fafc"]
{ background-color: var(--cj-color-fog) !important; }

[style*="background: #f1f5f9"], [style*="background:#f1f5f9"],
[style*="background-color: #f1f5f9"], [style*="background-color:#f1f5f9"]
{ background-color: var(--cj-color-frost) !important; }

[style*="background: #e2e8f0"], [style*="background:#e2e8f0"],
[style*="background-color: #e2e8f0"], [style*="background-color:#e2e8f0"]
{ background-color: var(--cj-color-mist) !important; }

[style*="background: #cbd5e1"], [style*="background:#cbd5e1"]
{ background-color: var(--cj-color-cream-edge) !important; }

/* Border overrides — cool hairlines → warm hairlines */
[style*="border: 1px solid #e2e8f0"], [style*="border:1px solid #e2e8f0"],
[style*="border-color: #e2e8f0"], [style*="border-color:#e2e8f0"],
[style*="border-color: #cbd5e1"], [style*="border-color:#cbd5e1"]
{ border-color: var(--cj-color-mist) !important; }

/* Bright/saturated blues sometimes seen in older content blocks */
[style*="color: #1e40af"], [style*="color:#1e40af"],
[style*="color: #1e3a8a"], [style*="color:#1e3a8a"],
[style*="color: #1e3a5f"], [style*="color:#1e3a5f"],
[style*="color: #2563eb"], [style*="color:#2563eb"],
[style*="color: #3b82f6"], [style*="color:#3b82f6"]
{ color: var(--cj-color-ink) !important; }

[style*="background: #1e40af"], [style*="background:#1e40af"],
[style*="background: #1e3a8a"], [style*="background:#1e3a8a"],
[style*="background: #2563eb"], [style*="background:#2563eb"],
[style*="background-color: #1e40af"], [style*="background-color:#1e40af"],
[style*="background-color: #1e3a8a"], [style*="background-color:#1e3a8a"],
[style*="background-color: #2563eb"], [style*="background-color:#2563eb"]
{ background-color: var(--cj-color-ink) !important; }

[style*="background: #dbeafe"], [style*="background:#dbeafe"],
[style*="background: #eff6ff"], [style*="background:#eff6ff"],
[style*="background-color: #dbeafe"], [style*="background-color:#dbeafe"],
[style*="background-color: #eff6ff"], [style*="background-color:#eff6ff"]
{ background-color: var(--cj-color-cream) !important; }

/* -------------------------------------------------------------------------
   12. SITE-WIDE BLUE → BLACK FORCED OVERRIDES (added v1.1.1, 2026-05-10)
   The legacy override section above (Section 11) catches inline-style
   attributes (`style="color: #0f172a"`). This section catches the bigger
   problem: hardcoded slate-blue / bright-blue values inside per-page
   <style> blocks, which Section 11 cannot reach via attribute selectors.

   Strategy: use element-level selectors with !important for the most
   common color targets (body text, headings, links). Page-level inline
   <style> blocks load AFTER this file in the cascade, so to win we
   need both element specificity AND !important — and even then, page
   styles with their own !important will still win on identical
   selectors. That's why we layer this with the attribute-selector
   sweep above for inline styles, plus targeted class overrides for
   common framework patterns.

   This section is INTENTIONALLY aggressive. If a specific page legitimately
   needs a non-warm-black color (e.g. a chart, a status badge, a brand-
   approved colored callout), wrap that element in a `.cj-allow-color`
   class to opt out of the forced override.
   ------------------------------------------------------------------------- */

/* --- Base text colors: force warm-black palette site-wide --- */
:where(body:not(.cj-allow-color)),
:where(body p:not(.cj-allow-color):not([class*="text-"]):not([style*="color:"]):not([style*="color :"])) {
  color: var(--cj-color-ink-soft);
}

:where(body h1:not(.cj-allow-color):not([style*="color:"])),
:where(body h2:not(.cj-allow-color):not([style*="color:"])),
:where(body h3:not(.cj-allow-color):not([style*="color:"])),
:where(body h4:not(.cj-allow-color):not([style*="color:"])),
:where(body h5:not(.cj-allow-color):not([style*="color:"])),
:where(body h6:not(.cj-allow-color):not([style*="color:"])) {
  color: var(--cj-color-ink);
}

/* --- Default link styling: gold instead of blue --- */
:where(body a:not(.cj-allow-color):not([class*="btn"]):not([class*="button"]):not([class*="cj-btn"]):not([style*="color:"])) {
  color: var(--cj-color-gold-bronze);
  text-decoration-color: rgba(198, 168, 122, 0.4);
  transition: color 0.2s ease;
}
:where(body a:not(.cj-allow-color):not([class*="btn"]):not([class*="button"]):not([class*="cj-btn"]):not([style*="color:"]):hover) {
  color: var(--cj-color-ink);
  text-decoration-color: var(--cj-color-gold);
}

/* --- Common framework utility classes that may exist in legacy content --- */
/* Bootstrap-style "primary" classes */
.text-primary:not(.cj-allow-color),
.text-info:not(.cj-allow-color),
.text-blue:not(.cj-allow-color),
.text-navy:not(.cj-allow-color) {
  color: var(--cj-color-ink) !important;
}

.bg-primary:not(.cj-allow-color),
.bg-info:not(.cj-allow-color),
.bg-blue:not(.cj-allow-color),
.bg-navy:not(.cj-allow-color) {
  background-color: var(--cj-color-ink) !important;
  color: var(--cj-color-cream) !important;
}

.bg-light-blue:not(.cj-allow-color),
.bg-pale-blue:not(.cj-allow-color) {
  background-color: var(--cj-color-cream) !important;
}

.btn-primary:not(.cj-allow-color),
.btn-info:not(.cj-allow-color),
.btn-blue:not(.cj-allow-color) {
  background-color: var(--cj-color-gold) !important;
  color: var(--cj-color-ink) !important;
  border-color: var(--cj-color-gold) !important;
}

.btn-primary:not(.cj-allow-color):hover,
.btn-info:not(.cj-allow-color):hover,
.btn-blue:not(.cj-allow-color):hover {
  background-color: var(--cj-color-gold-deep) !important;
  border-color: var(--cj-color-gold-deep) !important;
}

.border-primary:not(.cj-allow-color),
.border-info:not(.cj-allow-color),
.border-blue:not(.cj-allow-color) {
  border-color: var(--cj-color-ink) !important;
}

/* --- Inline-style attribute selectors: comprehensive blue/slate sweep --- */
/* Color (text) — all common slate-blue and bright-blue hex values */
[style*="color: #0f172a"], [style*="color:#0f172a"], [style*="color: #0F172A"], [style*="color:#0F172A"],
[style*="color: #1e293b"], [style*="color:#1e293b"], [style*="color: #1E293B"], [style*="color:#1E293B"],
[style*="color: #334155"], [style*="color:#334155"], [style*="color: #475569"], [style*="color:#475569"],
[style*="color: #1e3a5f"], [style*="color:#1e3a5f"],
[style*="color: #1e3a8a"], [style*="color:#1e3a8a"], [style*="color: #1e40af"], [style*="color:#1e40af"],
[style*="color: #1d4ed8"], [style*="color:#1d4ed8"], [style*="color: #2563eb"], [style*="color:#2563eb"],
[style*="color: #3b82f6"], [style*="color:#3b82f6"], [style*="color: #2c5282"], [style*="color:#2c5282"],
[style*="color: #2a4365"], [style*="color:#2a4365"], [style*="color: #3182ce"], [style*="color:#3182ce"],
[style*="color: #1a365d"], [style*="color:#1a365d"]
{ color: var(--cj-color-ink) !important; }

[style*="color: #64748b"], [style*="color:#64748b"], [style*="color: #4a5568"], [style*="color:#4a5568"]
{ color: var(--cj-color-ink-soft) !important; }

[style*="color: #94a3b8"], [style*="color:#94a3b8"], [style*="color: #a0aec0"], [style*="color:#a0aec0"]
{ color: var(--cj-color-ink-muted) !important; }

[style*="color: #cbd5e1"], [style*="color:#cbd5e1"], [style*="color: #cbd5e0"], [style*="color:#cbd5e0"]
{ color: var(--cj-color-ink-faint) !important; }

[style*="color: #60a5fa"], [style*="color:#60a5fa"], [style*="color: #93c5fd"], [style*="color:#93c5fd"],
[style*="color: #4299e1"], [style*="color:#4299e1"], [style*="color: #63b3ed"], [style*="color:#63b3ed"]
{ color: var(--cj-color-gold-bronze) !important; }

/* Background-color — slate/blue surfaces shifted to warm equivalents */
[style*="background: #0f172a"], [style*="background:#0f172a"],
[style*="background: #1e293b"], [style*="background:#1e293b"],
[style*="background: #1e3a8a"], [style*="background:#1e3a8a"],
[style*="background: #1e40af"], [style*="background:#1e40af"],
[style*="background: #2563eb"], [style*="background:#2563eb"],
[style*="background: #1a365d"], [style*="background:#1a365d"],
[style*="background-color: #0f172a"], [style*="background-color:#0f172a"],
[style*="background-color: #1e293b"], [style*="background-color:#1e293b"],
[style*="background-color: #1e3a8a"], [style*="background-color:#1e3a8a"],
[style*="background-color: #1e40af"], [style*="background-color:#1e40af"],
[style*="background-color: #2563eb"], [style*="background-color:#2563eb"],
[style*="background-color: #1a365d"], [style*="background-color:#1a365d"]
{ background-color: var(--cj-color-ink) !important; }

[style*="background: #f8fafc"], [style*="background:#f8fafc"],
[style*="background-color: #f8fafc"], [style*="background-color:#f8fafc"]
{ background-color: var(--cj-color-fog) !important; }

[style*="background: #f1f5f9"], [style*="background:#f1f5f9"],
[style*="background-color: #f1f5f9"], [style*="background-color:#f1f5f9"]
{ background-color: var(--cj-color-frost) !important; }

[style*="background: #e2e8f0"], [style*="background:#e2e8f0"],
[style*="background-color: #e2e8f0"], [style*="background-color:#e2e8f0"]
{ background-color: var(--cj-color-mist) !important; }

[style*="background: #cbd5e1"], [style*="background:#cbd5e1"],
[style*="background-color: #cbd5e1"], [style*="background-color:#cbd5e1"]
{ background-color: var(--cj-color-cream-edge) !important; }

[style*="background: #dbeafe"], [style*="background:#dbeafe"],
[style*="background: #eff6ff"], [style*="background:#eff6ff"],
[style*="background: #ebf8ff"], [style*="background:#ebf8ff"],
[style*="background-color: #dbeafe"], [style*="background-color:#dbeafe"],
[style*="background-color: #eff6ff"], [style*="background-color:#eff6ff"],
[style*="background-color: #ebf8ff"], [style*="background-color:#ebf8ff"]
{ background-color: var(--cj-color-cream) !important; }

/* Border-color sweep */
[style*="border: 1px solid #e2e8f0"], [style*="border:1px solid #e2e8f0"],
[style*="border-color: #e2e8f0"], [style*="border-color:#e2e8f0"],
[style*="border-color: #cbd5e1"], [style*="border-color:#cbd5e1"]
{ border-color: var(--cj-color-mist) !important; }

[style*="border-color: #1e293b"], [style*="border-color:#1e293b"],
[style*="border-color: #0f172a"], [style*="border-color:#0f172a"],
[style*="border-color: #1e3a8a"], [style*="border-color:#1e3a8a"]
{ border-color: var(--cj-color-ink) !important; }

/* end CJ Design System v1.1.1 */
