/* Neighborly design tokens.
   Source: Figma "Neighborly" › Color & Surfaces (node 1266:16547).
   Palette names match Figma; semantic tokens below are what components use. */
:root {
  /* ── Figma primary palette ── */
  --howard-green: #1d7500;   /* Action/Primary */
  --ink-charcoal: #282e3e;   /* Primary text */
  --deep-indigo: #2e3856;    /* Supporting text */
  --slate-veil: #586380;     /* Metadata */
  --fog-mist: #939bb4;       /* Placeholder / disabled only; fails as text (2.8:1) */

  /* ── Figma supporting palette ── */
  --community-orange: #fe6c26; /* Alerts / events. Non-text or dark text only (white text 2.8:1) */
  --community-yellow: #d0cf43; /* Highlights / badges */
  --community-pink: #f5cce8;   /* Editorial backgrounds */
  --information-blue: #1491d9; /* Info / categories. Non-text only (white text 3.5:1) */

  /* ── Figma surface palette ── */
  --chalk-canvas: #f6f7fb;   /* 0 · Page canvas */
  --paper-white: #ffffff;    /* 1 · Card surface */
  --lilac-wash: #edefff;     /* 2 · Tinted highlight */
  --feature-pastel: #dbdfff; /* 3 · Feature pastel */
  --mist-border: #d9dde8;

  /* ── Semantic: text ── */
  --text: var(--ink-charcoal);           /* 11.9:1+ on every surface */
  --text-supporting: var(--deep-indigo);
  --text-secondary: var(--slate-veil);   /* 5.6:1 on canvas */
  --text-tertiary: #636c87;              /* derived: 4.6:1 on lilac wash, 4.9:1 on canvas */
  --text-on-dark: #ffffff;
  --text-event: #a63b05;                 /* derived from Community Orange: 5.3:1 on event tint */

  /* ── Semantic: surfaces ── */
  --surface-page: var(--chalk-canvas);
  --surface-card: var(--paper-white);
  --surface-tint: var(--lilac-wash);
  --surface-feature: var(--feature-pastel);
  --border: var(--mist-border);
  --border-strong: #858da7;              /* derived: 3.1:1 for form control boundaries */

  /* ── Semantic: actions & accents ── */
  --action: var(--howard-green);         /* white text 5.8:1 */
  --action-hover: #165a00;
  --action-soft: #e6f1e1;
  --highlight: var(--community-yellow);  /* dark text 8.2:1 */
  --highlight-strong: #bdbc2e;
  --highlight-soft: #f4f3d0;
  --editorial: var(--community-pink);
  --event: var(--community-orange);
  --event-soft: #ffe3d4;
  --info: var(--information-blue);
  --success: var(--howard-green);
  --danger: #b3261e;
  --danger-soft: #fbe9e7;
  --focus: var(--ink-charcoal);          /* blue ring fails on green buttons (1.7:1) */
  --focus-on-dark: #ffffff;

  /* ── Category tints (derived from the supporting palette; dark text 10:1+) ── */
  --cat-cafes: #ffd9c4;      /* orange */
  --cat-bakeries: #eeedb8;   /* yellow */
  --cat-boutiques: #f5cce8;  /* pink */
  --cat-art: #d2e8c8;        /* green */
  --cat-personal: #cfe6f6;   /* blue */
  --cat-wellness: #d3eee6;   /* green-blue */
  --cat-music: #dbdfff;      /* feature pastel */
  --cat-home: #e1e4ee;       /* mist */
  --cat-specialty: #ffe9b8;  /* yellow-orange */

  /* ── Type ── */
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "Montserrat Alternates", "Inter", ui-sans-serif, system-ui, sans-serif;
  --fs-xs: 0.8125rem;
  --fs-sm: 0.9375rem;
  --fs-md: 1rem;
  --fs-lg: 1.25rem;
  --fs-xl: 1.5rem;
  --fs-2xl: 2rem;
  --fs-3xl: clamp(2rem, 1.4rem + 2.2vw, 2.75rem);
  --fs-display: clamp(2.5rem, 1.4rem + 4.6vw, 4.75rem);

  /* ── Space (4px base) ── */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 72px;
  --s-9: 112px;
  --gutter: clamp(16px, 4vw, 40px);
  --maxw: 1240px;

  /* ── Shape (Figma: 8px tokens, 24px frames, 200px badges) ── */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 24px;
  --r-pill: 200px;

  /* ── Elevation (overlays only) ── */
  --shadow-pop: 0 12px 32px rgba(40, 46, 62, 0.16), 0 2px 6px rgba(40, 46, 62, 0.08);

  /* ── Motion ── */
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --t-fast: 150ms;
  --t-med: 220ms;

  --header-h: 68px;
  --tabbar-h: 64px;
}
