/* tokens.css — GENERE AUTOMATIQUEMENT par 10_generate_seo_pages.py.
   NE PAS EDITER A LA MAIN : toute modification sera ecrasee au
   prochain run. La source de verite est site/style.css.

   Ce fichier ne contient que les variables de theme, pour que les
   pages generees (gare / departement / rando) n'aient pas a charger
   les 138 Ko de style.css dont elles n'utilisent aucune classe. */

:root {
  /* — Surface, ink, lines — */
  --bg: #f3eee5;
  --bg-alt: #ece6d8;
  --surface: #faf7f0;
  --surface-elev: #fdfaf3;
  --border: #e7dfcf;
  --border-soft: #efe9da;
  --border-strong: #d4cab6;
  --text: #1d1c19;
  --text-muted: #6c6557;
  --text-faint: #726b5f;

  /* — Sage primary (rando, nature) — */
  --accent: #3f5a2e;
  --accent-soft: #4d6d39;
  --accent-bg: #e6ecd5;
  --accent-bg-soft: #eef2e0;
  --accent-dark: #2a3f1e;

  /* — Earth notes — */
  --warn: #8a5719;
  --warn-bg: #f1e4cb;
  --danger: #9a4a36;
  --danger-bg: #f1ddd0;

  /* — Lichen blue (train) — */
  --train: #3a5b6b;
  --train-soft: #4d7180;
  --train-bg: #dde7eb;

  /* — Difficulty palette: sage / honey / terracotta — */
  --c-facile: #5b7a3a;
  --c-moyen: #c08a3e;
  --c-difficile: #a55540;
  --c-poi: #7d54b3;

  /* — Source badges, harmonized warm — */
  --src-osm-bg: #ece6d6;        --src-osm-fg: #6c6557;
  --src-pnc-bg: #dfead0;        --src-pnc-fg: #3d5921;
  --src-pnrgca-bg: #f1ddbf;     --src-pnrgca-fg: #87521a;
  --src-cd48-bg: #e1d6ec;       --src-cd48-fg: #5d3d8a;
  --src-cd11-bg: #d8e3e7;       --src-cd11-fg: #3a5b6b;
  --src-cd81-bg: #d4dec3;       --src-cd81-fg: #466824;
  --src-cd66-bg: #efd8cd;       --src-cd66-fg: #8d432a;
  --src-pymed-bg: #d2e0e3;      --src-pymed-fg: #2e596a;
  --src-pdipr32-bg: #e6ddc6;    --src-pdipr32-fg: #745d30;
  --src-pdipr34-bg: #d7e1d2;    --src-pdipr34-fg: #46684a;

  /* Les couples bg/fg ci-dessus tiennent tous au moins 4.5:1 (AA texte
     normal) : ces badges sont en 10-11px, ils n'entrent pas dans la tolerance
     « texte large ». cd81 (4.47) et pdipr32 (4.36) passaient tout juste
     dessous et ont ete assombris a teinte constante. */

  /* — Geometry — */
  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-xl: 28px;
  --r-2xl: 36px;

  /* — Shadows: very diffuse, warm tone — */
  --shadow-xs: 0 1px 2px rgba(40, 36, 28, 0.04);
  --shadow-sm: 0 2px 8px rgba(40, 36, 28, 0.05);
  --shadow-md: 0 8px 24px rgba(40, 36, 28, 0.07);
  --shadow-lg: 0 20px 48px rgba(40, 36, 28, 0.10);
  --shadow-xl: 0 -16px 40px rgba(40, 36, 28, 0.10);

  /* — Motion: organic easing — */
  --ease-organic: cubic-bezier(0.32, 0.72, 0.27, 1);
  --ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --t-fast: 200ms;
  --t-base: 320ms;
  --t-slow: 480ms;

  /* — Layout — */
  --header-h: 60px;
  --tabs-h: 50px;
  --safe-bottom: env(safe-area-inset-bottom, 0);

  /* — Typography stacks — */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* — Liquid glass (floating dock, filter drawer) — */
  --glass: rgba(250, 247, 240, 0.68);
  --glass-strong: rgba(250, 247, 240, 0.85);
  --glass-brd: rgba(255, 255, 255, 0.62);
  --glass-shadow: 0 10px 30px rgba(40, 36, 28, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.75);
  --ease-spring: cubic-bezier(0.34, 1.35, 0.5, 1);
}

:root {
  --t-step: 520ms;
  --ease-step: cubic-bezier(0.22, 0.94, 0.26, 1);
  --ease-liquid: cubic-bezier(0.34, 1.42, 0.44, 1);
  --sheen: linear-gradient(100deg, transparent 32%, rgba(255, 255, 255, 0.62) 50%, transparent 68%);
}

:root {
  --car: #b06a2c;
  --car-soft: #c78a4f;
  --car-bg: #f6ead9;
  --car-border: #e3c9a6;
}

@media (prefers-contrast: more) {
  :root { --text-muted: #4a453b; --text-faint: #4a453b; }
}
