/*
 * tokens.css — design tokens compiled from project global-styles.md (Olbrand).
 * Single source of truth for visual decisions. Do not hardcode values elsewhere;
 * reference these CSS custom properties instead.
 * Provenance: derived from Olbrand logo (navy wordmark + gold wreath + watercolor rose).
 */

:root {
  /* ===== COLORS — base palette ===== */
  --color-primary: #1F2A48;
  --color-primary-hover: #2C3A62;
  --color-primary-active: #151C33;

  --color-secondary: #E06CA7;
  --color-secondary-hover: #CC5494;
  --color-secondary-active: #B8447F;

  --color-accent: #C2A14E;
  --color-accent-hover: #AA8B3D;

  /* Backgrounds */
  --color-bg-base: #FFFFFF;
  --color-bg-surface: #FAF6F8;
  --color-bg-subtle: #F3EEF1;
  --color-bg-overlay: rgba(31, 42, 72, 0.55);

  /* Text */
  --color-text-primary: #1F2A48;
  --color-text-secondary: #4A5470;
  --color-text-muted: #8A8FA3;
  --color-text-inverted: #FFFFFF;
  --color-text-link: #BC4385;
  --color-text-link-hover: #9F3570;

  /* States */
  --color-success: #2E7D5B;
  --color-success-bg: #E6F4EC;
  --color-warning: #B8860B;
  --color-warning-bg: #FBF1DA;
  --color-error: #C0392B;
  --color-error-bg: #FBEAE8;
  --color-info: #3A6EA5;
  --color-info-bg: #E8F0F8;

  /* Borders */
  --color-border: #E6E0E4;
  --color-border-strong: #CFC6CC;
  --color-border-subtle: #F0EAEE;
  --color-divider: #ECE5EA;

  /* ===== TYPOGRAPHY ===== */
  --font-primary: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 1.875rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;

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

  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;

  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.04em;
  --letter-spacing-widest: 0.1em;

  /* ===== SPACING ===== */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  /* ===== BORDER RADIUS ===== */
  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* ===== SHADOWS ===== */
  --shadow-xs: 0 1px 2px rgba(31, 42, 72, 0.05);
  --shadow-sm: 0 1px 3px rgba(31, 42, 72, 0.08);
  --shadow-md: 0 4px 12px rgba(31, 42, 72, 0.10);
  --shadow-lg: 0 10px 24px rgba(31, 42, 72, 0.12);
  --shadow-xl: 0 20px 40px rgba(31, 42, 72, 0.15);
  --shadow-inner: inset 0 2px 4px rgba(31, 42, 72, 0.06);
  --shadow-none: none;

  /* ===== MOTION ===== */
  --duration-instant: 0ms;
  --duration-fast: 120ms;
  --duration-normal: 240ms;
  --duration-slow: 360ms;
  --duration-slower: 600ms;

  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ===== BREAKPOINTS (reference; used in media queries) ===== */
  --breakpoint-xs: 360px;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --breakpoint-2xl: 1440px;

  /* ===== COMPONENT TOKENS ===== */
  --btn-height-sm: 36px;
  --btn-height-md: 44px;
  --btn-height-lg: 52px;
  --btn-radius: var(--radius-full);

  --input-height: 44px;
  --input-radius: var(--radius-md);

  --card-radius: var(--radius-xl);
  --card-padding: var(--space-6);

  --topbar-height: 72px;

  --container-max: var(--breakpoint-xl);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration-normal: 0ms;
    --duration-slow: 0ms;
    --duration-slower: 0ms;
  }
}
