/* Packstract — design tokens (portable).
 * The page stylesheet (styles.css) references these by name; it never inlines
 * raw colour/font/space values. Brand palette in exact hex from the client handoff.
 * Import this before styles.css, or copy the :root block into another project. */
:root {
  /* neutrals — open & white-ish (friendly) */
  --color-bg: #fcfdfb;
  --color-surface: #f3f5ef;
  --color-surface-2: #eceee6;
  --color-raise: #ffffff;
  --color-text: #20241d;
  --color-divider: color-mix(in srgb, #20241d 18%, transparent);
  --color-hairline: color-mix(in srgb, #20241d 10%, transparent);

  /* primary accent — Packstract green (nature/environment) */
  --color-accent: #15a05e;
  --color-accent-100: #e6f6ee; --color-accent-200: #c4ead4; --color-accent-300: #8fd8b0;
  --color-accent-400: #4fbd85; --color-accent-500: #15a05e; --color-accent-600: #0f8a50;
  --color-accent-700: #0b7444; --color-accent-800: #08582f; --color-accent-900: #063f22;
  /* light logo-green — for fills (buttons, CTA band) with dark ink text */
  --color-green-light: #44b987; --color-green-light-600: #37a679;

  /* warm highlight — Packstract gold (eyebrows, CTA ribbon; used sparingly) */
  --color-accent-2: #f9c128;
  --color-accent-2-100: #fdf4d8; --color-accent-2-200: #fbe6a6; --color-accent-2-300: #f9d566;
  --color-accent-2-400: #f9c128; --color-accent-2-500: #eab00f; --color-accent-2-600: #c8920a;
  --color-accent-2-700: #9a6f08; --color-accent-2-800: #6f4f07; --color-accent-2-900: #4a3405;

  /* warm accent — Packstract orange (logo triband; eyebrows, ribbons, framed-figure offset) */
  --color-warm: #f0921e; --color-warm-100: #fdeeda; --color-warm-500: #e7851a; --color-warm-600: #c9720f; --color-warm-700: #a15a09;

  /* secondary — Packstract blue (logo + quiet utility) */
  --color-blue: #2f6fb8; --color-blue-100: #eaf1fb; --color-blue-700: #24507f;

  /* type */
  --font-heading: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-heading-weight: 800;
  --text-xs: 0.75rem; --text-sm: 0.8125rem; --text-base: 0.9375rem; --text-md: 1.0625rem;
  --text-lg: 1.1875rem; --text-xl: 1.375rem;
  --text-2xl: clamp(1.35rem, 1.9vw, 1.6rem);
  --text-3xl: clamp(1.7rem, 3vw, 2.4rem);
  --text-4xl: clamp(2rem, 4.2vw, 3.25rem);
  --text-display: clamp(2.6rem, 5.6vw, 4.5rem);

  /* space (4pt) */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px;
  --sec-y: clamp(64px, 8vw, 120px);
  --sec-y-tight: clamp(44px, 5.5vw, 76px);
  --sec-y-hero: clamp(80px, 10vw, 148px);
  --gutter: clamp(20px, 5vw, 72px);

  /* radius / elevation */
  --radius-md: 12px;
  --shadow-sm: 0 1px 3px color-mix(in srgb, #20241d 8%, transparent);
  --shadow-md: 0 16px 34px -22px color-mix(in srgb, #20241d 40%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2d2b2b 22%, transparent);

  /* motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 140ms;
  --dur: 240ms;
}
