@font-face {
  font-family: 'Outfit';
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/Outfit-500.ttf') format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/Outfit-700.ttf') format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-weight: 900;
  font-display: swap;
  src: url('/assets/fonts/Outfit-900.ttf') format('truetype');
}
@font-face {
  font-family: 'Quicksand';
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/Quicksand-500.ttf') format('truetype');
}
@font-face {
  font-family: 'Quicksand';
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/Quicksand-700.ttf') format('truetype');
}

:root {
  /* Surfaces */
  --surface-warm: #fbf9f6;
  --surface-warm-mid: #f5f3f0;
  --surface-fresh: #f0fdf4;
  --surface-sky: #f8fafc;
  --surface-mist: #f7f9f6;
  --surface-card: #ffffff;

  /* Primary (emerald) */
  --primary: #003527;
  --primary-container: #064e3b;
  --primary-bright: #047857;
  --primary-hover: #059669;
  --primary-soft: #10b981;
  --primary-wash-light: #d1fae5;
  --primary-wash-lightest: #ecfdf5;

  /* Text */
  --on-surface: #1b1c1a;
  --on-surface-secondary: #374740;
  --on-surface-muted: #5f6b65;

  /* Accent */
  --tertiary: #fb923c;

  /* Feedback */
  --danger: #dc2626;

  /* Footer */
  --footer-bg: #2d5e4b;

  /* Fonts */
  --font-headline: 'Outfit', sans-serif;
  --font-body: 'Quicksand', sans-serif;

  /* Shadows — emerald-tinted, nooit grijs of zwart */
  --shadow-card: 0 4px 20px -4px rgba(0, 53, 39, 0.06);
  --shadow-card-hover: 0 24px 48px -12px rgba(0, 53, 39, 0.10);
  --shadow-glass: 0 8px 32px rgba(0, 53, 39, 0.05);
  --shadow-hero: 0 24px 80px rgba(0, 53, 39, 0.15);
  --shadow-cta: 0 12px 24px rgba(4, 120, 87, 0.25);

  /* Radius */
  --radius-sm: 0.5rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --radius-xl: 1.75rem;
  --radius-pill: 9999px;

  /* Spacing */
  --s1: 0.25rem;
  --s2: 0.5rem;
  --s3: 0.75rem;
  --s4: 1rem;
  --s5: 1.25rem;
  --s6: 1.5rem;
  --s8: 2rem;
  --s10: 2.5rem;
  --s12: 3rem;
  --s16: 4rem;
  --s20: 5rem;
  --s24: 6rem;
  --s32: 8rem;

  /* Layout */
  --container: 1440px;
  --narrow: 1100px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  color: var(--on-surface);
  background-color: var(--surface-warm);
  -webkit-font-smoothing: antialiased;
  font-size: 1.125rem;
  line-height: 1.65;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-headline);
  line-height: 1.2;
}

a {
  color: var(--primary-bright);
  text-decoration: none;
}

a:hover {
  color: var(--primary-hover);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

:focus-visible {
  outline: 3px solid var(--primary-bright);
  outline-offset: 2px;
}

@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;
  }
}
