/*
 * Oletukat Conservancy — SITE 3 design tokens
 * Direction: clarity-led and modern. One tight sans family, deep forest ink, pale "mist" surfaces,
 * round icon badges, pill labels and buttons, composed image groups, consistent 0.4s ease-in-out motion.
 * Inspired by the structure and rhythm of a modern ecology template; every value here is original.
 * Palette is rooted in the client's logo (forest green, copper). Contrast ratios are noted per pair.
 *
 * Rule: components use these tokens. No raw hex, spacing or font names elsewhere.
 */

:root {
  /* ---- Colour ---- */
  --color-ink: #0e2815;              /* headings, dark sections. 15.75:1 on white */
  --color-text: #55605a;             /* body copy. 6.55:1 on white, 5.74:1 on mist */
  --color-text-strong: #2b3a30;      /* emphasised body */
  --color-mist: #eef1ea;             /* alternate section, card frames */
  --color-white: #ffffff;
  --color-accent: #b2875d;           /* client copper: buttons, dots, badges. ink on it 4.89:1 */
  --color-accent-hover: #c99c6c;     /* ink on it 6.34:1 */
  --color-accent-soft: #f1e6d9;      /* icon badges on light surfaces */
  --color-accent-text: #7c5b3b;      /* copper as TEXT on light: 5.4:1 on mist */
  --color-green: #2a6438;            /* check marks, links. 7.05:1 on white */
  --color-green-soft: #dcebdf;
  --color-on-dark: #ffffff;
  --color-on-dark-muted: #cfd6d1;    /* 10.65:1 on ink */
  --color-divider: rgba(14, 40, 21, 0.1);
  --skeleton-base: var(--color-mist);                 /* image placeholder on light surfaces */
  --skeleton-shine: rgba(255, 255, 255, 0.75);
  --skeleton-base-dark: rgba(255, 255, 255, 0.07);    /* image placeholder on dark photo bands */
  --skeleton-shine-dark: rgba(255, 255, 255, 0.16);
  --color-divider-dark: rgba(255, 255, 255, 0.14);
  --color-border-input: #6e7b72;     /* 4.43:1 on white: form controls need 3:1 */
  --color-focus: #0e2815;
  --color-focus-on-dark: #c99c6c;

  --color-error: #9b2c2c;
  --color-error-bg: #fdecec;
  --color-warning-bg: #fff4d6;
  --color-warning-text: #5c3d00;
  --color-info-bg: #e6f2f6;
  --color-info-text: #1f4a5c;
  --color-success-bg: #dcebdf;
  --color-success-text: #1e4828;

  /* overlays used on photographs */
  --overlay-hero: linear-gradient(180deg, rgba(14, 40, 21, 0.62) 0%, rgba(14, 40, 21, 0.55) 40%, rgba(14, 40, 21, 0.88) 100%);
  --overlay-card: rgba(255, 255, 255, 0.1);
  --overlay-band: linear-gradient(90deg, rgba(14, 40, 21, 0.92) 0%, rgba(14, 40, 21, 0.7) 55%, rgba(14, 40, 21, 0.45) 100%);

  /* ---- Typography: one family. Inter Tight is the intended face; fallbacks are local (no third-party request) ---- */
  --font: "Inter Tight", "Inter", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  --text-xs: 0.8125rem;
  --text-sm: 0.9375rem;
  --text-base: clamp(1rem, 0.96rem + 0.18vw, 1.0625rem);
  --text-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
  --text-h4: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
  --text-h3: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);
  --text-h2: clamp(2rem, 1.35rem + 2.6vw, 3.25rem);
  --text-h1: clamp(2.5rem, 1.3rem + 4.8vw, 4.75rem);
  --leading-display: 1.06;
  --leading-heading: 1.12;
  --leading-body: 1.7;
  --tracking-display: -0.032em;
  --tracking-heading: -0.025em;
  --measure: 62ch;

  /* ---- Shape ---- */
  --radius-sm: 0.625rem;     /* 10  inputs, small chips */
  --radius-md: 0.875rem;     /* 14  cards */
  --radius-lg: 1.5rem;       /* 24  image frames, panels */
  --radius-xl: 2rem;         /* 32  hero cards, big bands */
  --radius-pill: 6.25rem;    /* 100 pills and buttons */

  /* ---- Space ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --space-9: 6rem;
  --section-pad: clamp(4rem, 2.5rem + 6vw, 7.5rem);
  --container: 77.5rem;
  --container-narrow: 48rem;
  --gutter: clamp(1.25rem, 0.5rem + 3vw, 2.5rem);
  --header-h: 5.5rem;

  /* ---- Depth ---- */
  --shadow-card: 0 10px 30px rgba(14, 40, 21, 0.08);
  --shadow-lift: 0 18px 44px rgba(14, 40, 21, 0.14);

  /* ---- Motion: one duration and easing throughout ---- */
  --ease: cubic-bezier(0.45, 0, 0.25, 1);
  --t: 0.4s var(--ease);
  --t-slow: 0.8s var(--ease);
  --reveal-distance: 28px;

  --target-min: 2.75rem;
  --focus-ring-w: 3px;
  --focus-offset: 3px;
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t: 0.01ms; --t-slow: 0.01ms; --reveal-distance: 0px; }
}
