/* CartLot theme tokens — docs/golf-car-marketplace-spec.md §2.
 * Warm sunbelt trust: 12px radius, soft single-direction shadows, larger
 * base type (readability is a conversion feature for the 55+ buyer). */
.theme-golf {
  /* Spec palette — the six named tokens from spec §2, verbatim. */
  --fairway-700: #1E5C43;
  --sand-50: #FAF6EE;
  --citrus-500: #F5A623;
  --sky-400: #7FB8D4;
  --asphalt-800: #2B2F33;
  --legal-600: #2E7D32;

  /* Semantic mapping consumed by theme.css */
  --c-bg: var(--sand-50);
  --c-surface: #FFFFFF;
  --c-surface-sunken: color-mix(in srgb, var(--sand-50) 55%, white);
  --c-surface-hover: color-mix(in srgb, var(--citrus-500) 8%, white);
  --c-text: var(--asphalt-800);
  --c-text-secondary: #59605C;
  --c-accent: var(--citrus-500);
  /* Asphalt-800 on citrus-500 measures ~6.6:1 — comfortably AA. */
  --c-accent-contrast: var(--asphalt-800);
  --c-border: #E5DFD2;
  --c-brand: var(--fairway-700);
  --c-brand-contrast: #FFFFFF;
  --c-positive: var(--legal-600);
  /* Rating stars — warm sunbelt gold. */
  --c-star: #E8A32B;

  /* Spec §2 names sky-400 as the link/secondary color, but raw sky-400 text
     on sand-50 measures only ~2.2:1. Darkened toward asphalt-800 for a safe
     ~5.1:1 while staying visibly "sky." */
  --c-link: color-mix(in srgb, var(--sky-400) 45%, var(--asphalt-800) 55%);

  /* Price/CTA text: raw citrus-500 on sand-50 measures ~3.0:1 (only just
     clears AA-large, fails AA-normal). Two tiers:
     --c-price   → ~5:1, safe for the always-large/bold price display.
     --c-accent-text → ~4.5:1, safe for any smaller accent-colored text. */
  --c-price: color-mix(in srgb, var(--citrus-500) 70%, var(--asphalt-800) 30%);
  --c-accent-text: color-mix(in srgb, var(--citrus-500) 50%, var(--asphalt-800) 50%);

  --c-positive-contrast: #FFFFFF;

  /* Spec Bar (unused on golf cards today; skinned for safety) */
  --c-spec-bar-bg: var(--fairway-700);
  --c-spec-bar-text: #FFFFFF;
  --c-spec-bar-sep: var(--citrus-500);

  /* Photo placeholder (unclaimed dealer — grayed, never a fake photo) */
  --c-placeholder-start: #EFE7D6;
  --c-placeholder-end: #DCD2BC;
  --c-placeholder-text: var(--c-text-secondary);

  /* Hero + chrome */
  --c-hero-bg-start: var(--fairway-700);
  --c-hero-bg-end: color-mix(in srgb, var(--fairway-700) 78%, black);
  --c-hero-text: #FFFFFF;
  --c-hero-text-secondary: color-mix(in srgb, white 78%, var(--fairway-700));
  --c-hero-pattern: color-mix(in srgb, white 6%, transparent);

  /* Soft, single-direction shadows only — never a shadow that reads as a
     glow (no blur-and-spread from every side). */
  --shadow-sm: 0 1px 2px rgba(43, 47, 51, 0.06);
  --shadow: 0 4px 14px rgba(43, 47, 51, 0.08);
  --shadow-md: 0 8px 20px rgba(43, 47, 51, 0.10);
  --shadow-lg: 0 16px 36px rgba(43, 47, 51, 0.14);

  /* The one deliberate decorative touch (spec §2): a citrus → sky hairline
     under the header. */
  --c-hairline-gradient: linear-gradient(90deg, var(--citrus-500), var(--sky-400));

  --c-focus-ring: var(--sky-400);
  --c-input-border: var(--c-border);
  --c-input-focus: var(--citrus-500);

  --c-badge-neutral-bg: var(--sand-50);
  --c-badge-neutral-text: var(--c-text-secondary);
  --c-badge-neutral-border: var(--c-border);

  --radius: 12px;
  --radius-lg: 20px;
  --border-w: 1px;
  --fs-base: 17.5px;

  --tracking-display: 0;
  /* Numeric/price sets tabular Inter per spec §2. */
  --font-numeric-variant: tabular-nums;

  --font-display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "Inter", system-ui, sans-serif;
}
