/* ==========================================================================
   Kigali Yacu Properties — Design Tokens
   ========================================================================== */

:root {
  /* --- Brand colors --- */
  --color-black: #0a0a0a;
  --color-black-pure: #000000;
  --color-red: #c8102e;
  --color-red-dark: #9c0d24;
  --color-red-light: #e14b62;
  --color-accent: var(--color-red);
  --color-accent-light: #ff4f68;
  --color-accent-dark: var(--color-red-dark);
  --color-white: #ffffff;

  /* --- Neutrals (needed to make black/white/red usable at real density) --- */
  --color-ink: #14141a;
  --color-charcoal: #1f1f26;
  --color-graphite: #3a3a42;
  --color-slate: #5c5c66;
  --color-mist: #8b8b95;
  --color-fog: #c9c9d1;
  --color-cloud: #e5e4e0;
  --color-cream: #f7f5f0;
  --color-cream-dark: #efece4;
  --color-paper: #fcfbf8;

  /* --- Semantic aliases --- */
  --color-bg: var(--color-paper);
  --color-bg-alt: var(--color-cream);
  --color-surface: var(--color-white);
  --color-text: var(--color-ink);
  --color-text-muted: var(--color-slate);
  --color-text-inverse: var(--color-white);
  --color-border: var(--color-cloud);
  --color-success: #1f8a55;
  --color-warning: #c88a1a;
  --color-danger: var(--color-red);

  /* --- Typography --- */
  --font-heading: 'Playfair Display', 'Georgia', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --fs-xs: clamp(0.75rem, 0.735rem + 0.06vw, 0.7813rem);
  --fs-sm: clamp(0.85rem, 0.83rem + 0.08vw, 0.9rem);
  --fs-base: clamp(0.9375rem, 0.92rem + 0.1vw, 1rem);
  --fs-md: clamp(1.0313rem, 1.01rem + 0.12vw, 1.125rem);
  --fs-lg: clamp(1.1563rem, 1.11rem + 0.2vw, 1.3rem);
  --fs-xl: clamp(1.35rem, 1.28rem + 0.32vw, 1.625rem);
  --fs-2xl: clamp(1.625rem, 1.46rem + 0.7vw, 2.0625rem);
  --fs-3xl: clamp(1.9375rem, 1.65rem + 1.2vw, 2.625rem);
  --fs-4xl: clamp(2.25rem, 1.8rem + 1.9vw, 3.25rem);

  --lh-tight: 1.15;
  --lh-snug: 1.35;
  --lh-normal: 1.6;
  --lh-relaxed: 1.75;

  --ls-tight: -0.01em;
  --ls-normal: 0;
  --ls-wide: 0.05em;
  --ls-wider: 0.14em;

  /* --- Spacing scale --- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.375rem;
  --space-6: 1.75rem;
  --space-7: 2.25rem;
  --space-8: 2.75rem;
  --space-9: 3.25rem;
  --space-10: 4rem;
  --space-11: 4.75rem;
  --space-12: 5.75rem;

  /* --- Layout --- */
  --container-max: 1280px;
  --container-narrow: 800px;
  --container-pad: clamp(1.25rem, 4vw, 2.5rem);
  --header-height: 76px;

  /* --- Radius --- */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --radius-full: 999px;

  /* --- Shadows (soft, understated) --- */
  --shadow-sm: 0 2px 8px rgba(10, 10, 10, 0.06);
  --shadow-md: 0 6px 20px rgba(10, 10, 10, 0.08);
  --shadow-lg: 0 16px 40px rgba(10, 10, 10, 0.12);
  --shadow-xl: 0 24px 64px rgba(10, 10, 10, 0.16);
  --shadow-accent: 0 10px 26px rgba(200, 16, 46, 0.22);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.06);

  /* --- Motion --- */
  --ease-luxury: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --transition-fast: 160ms var(--ease-out);
  --transition-base: 280ms var(--ease-luxury);
  --transition-slow: 480ms var(--ease-luxury);

  /* --- Z-index scale --- */
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
  --z-lang-picker: 500;
}

/* Dark section variant (used on hero/footer/dark bands) */
.theme-dark {
  --color-bg: var(--color-black);
  --color-bg-alt: var(--color-ink);
  --color-surface: var(--color-charcoal);
  --color-text: var(--color-white);
  --color-text-muted: var(--color-fog);
  --color-text-inverse: var(--color-black);
  --color-border: rgba(255, 255, 255, 0.12);
}
