/* charte.tero.be — brand/tokens.css · v1.0.0 · 2026-10-21
   Généré depuis /brand/tokens.json (DTCG). Ne pas éditer à la main : éditer tokens.json puis régénérer.
   Noms alignés sur assets/css/charte.css (--bg, --fg, --accent…) et sur regles.html § 2 (--tero-*). */
:root {
  /* neutres [MESURÉ] */
  --tero-black: #000000;
  --tero-white: #ffffff;
  --tero-surface: #f6f4f4;
  --tero-line: #d9d9d9;
  --tero-line-soft: #e5e6e5;
  --tero-ink-soft: #323232;
  --tero-ink-deep: #212121;
  --tero-muted: #b9b9b9;
  --tero-ink-muted: #5f5f5f;
  --ui-border-strong: #767676;
  /* sept couleurs de marque [MESURÉ] */
  --tero-teal: #007864;
  --tero-petrol: #004b69;
  --tero-terracotta: #b93815;
  --tero-sand: #fad282;
  --tero-rose: #d7b4b4;
  --tero-cyan: #00b7ff;
  --tero-pink: #ff1d58;
  --tero-deep: #0d1f30; --tero-dark-bg: #0b1a28;
  /* rôles — mode clair */
  --bg: var(--tero-white); --bg-alt: var(--tero-surface); --fg: var(--tero-black); --fg-2: var(--tero-ink-soft); --fg-3: var(--tero-ink-muted);
  --border: var(--tero-line-soft); --hairline: var(--tero-line); --border-control: var(--ui-border-strong);
  --accent: var(--tero-teal); --accent-ink: var(--tero-white); --accent-text: var(--tero-teal); --accent-text-deep: var(--tero-sand);
  --deep: var(--tero-deep); --deep-fg: var(--tero-white); --deep-accent: var(--tero-sand);
  --danger: var(--tero-terracotta); --success: var(--tero-teal); --info: var(--tero-petrol);
  --focus: #000000; --focus-halo: #ffffff; --focus-ring-width: 2px; --focus-ring-offset: 2px; --focus-halo-width: 4px;
  /* piliers (3) — regles 1.1.0 */
  --pillar-hospitality: #007864;
  --pillar-leisure: #004b69;
  --pillar-sport-events: #b93815;
  --pillar: var(--pillar-hospitality);
  /* typographie */
  --f-display: 'Almarose', 'Almarose Fallback', ui-sans-serif, system-ui, sans-serif; --f-script: 'WildYouth', var(--f-display);
  --fw-regular: 400; --fw-medium: 500; --fw-semibold: 600; --fw-bold: 700; --fw-black: 900; /* 800 interdit */
  --t-label: .75rem; --t-meta: .875rem; --t-body: 1rem; --t-lead: 1.125rem; --t-h3: 1.25rem;
  --t-h2: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); --t-h1: clamp(2.5rem, 1.4rem + 5vw, 5.5rem); --t-mega: clamp(3.5rem, 1rem + 12vw, 11rem);
  --lh-body: 1.65; --lh-title: 1.06; --lh-label: 1.2; --ls-title: -.022em; --ls-label: .2em; --ls-eyebrow: .18em; --w-text: 62ch;
  /* espace, rayons, ombre, mouvement */
  --s1: .5rem; --s2: 1rem; --s3: 1.5rem; --s4: 2.5rem; --s5: 4rem; --s6: 6rem; --s7: 9rem;
  --section: clamp(4rem, 3rem + 5vw, 8rem); --gutter: clamp(1.25rem, 4vw, 3.5rem); --tap-target: 44px;
  --r-s: .5rem; --r-card: .75rem; --r-m: var(--r-card); --r-plate: 1.25rem; --r-l: var(--r-plate); --r-pill: 999px;
  --shadow-soft: 0 1px 2px rgba(0,0,0,.06); --shadow-float: 0 10px 30px rgba(0,0,0,.06);
  --ease: cubic-bezier(.23, 1, .32, 1); --dur-feedback: 180ms; --dur-min: 150ms; --dur-max: 250ms; --dur-reveal: 600ms;
  --w-page: 1180px;
  /* logos : tailles minimales et respiration */
  --logo-tero-ratio: 2.535; --logo-tero-min-width: 88px; --logo-tero-x: .265; /* X = .265 × largeur */ --logo-tero-clearance-min: .5; --logo-tero-clearance: 1;
  --mono-tero-ratio: .684; --mono-tero-min-height: 16px;
  --logo-koen-ratio: 3.142; --logo-koen-min-width: 104px; --logo-koen-x: .229; --logo-koen-max-vs-tero: .6; --symbol-koen-ratio: 1.037; --symbol-koen-min-height: 16px;
}
/* mode sombre : prefers-color-scheme ou [data-theme=dark] ; [data-theme=light] force le clair */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --bg: var(--tero-dark-bg); --bg-alt: var(--tero-deep); --fg: var(--tero-white); --fg-2: var(--tero-line); --fg-3: var(--tero-muted);
  --border: rgba(255,255,255,.16); --hairline: rgba(255,255,255,.22); --border-control: var(--ui-border-strong);
  --accent: var(--tero-sand); --accent-ink: var(--tero-black); --accent-text: var(--tero-sand);
  --focus: var(--tero-sand); --focus-halo: #000000; color-scheme: dark;
} }
:root[data-theme="dark"] {
  --bg: var(--tero-dark-bg); --bg-alt: var(--tero-deep); --fg: var(--tero-white); --fg-2: var(--tero-line); --fg-3: var(--tero-muted);
  --border: rgba(255,255,255,.16); --hairline: rgba(255,255,255,.22); --border-control: var(--ui-border-strong);
  --accent: var(--tero-sand); --accent-ink: var(--tero-black); --accent-text: var(--tero-sand);
  --focus: var(--tero-sand); --focus-halo: #000000; color-scheme: dark;
}
/* piliers */
[data-pillar="hospitality"] { --pillar: var(--pillar-hospitality); --pillar-on: #ffffff; --pillar-text: #007864; }
[data-pillar="leisure"] { --pillar: var(--pillar-leisure); --pillar-on: #ffffff; --pillar-text: #004b69; }
[data-pillar="sport-events"] { --pillar: var(--pillar-sport-events); --pillar-on: #ffffff; --pillar-text: #b93815; }
/* marques : trois variables, scellées au domaine. --brand-accent-text absente = l'accent ne porte jamais de texte. */
[data-brand="tero-lieux"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="tero-lodges"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="malle-poste"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="river-house"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="house17"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="foresthouse"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="eventhouse-waterloo"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="terblock"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="lime-jhsp"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="river-woods"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="tero-team-building"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="teroir"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="knokke-out"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="bistro-17"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="bistro-pilko"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="nest-zwin"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
[data-brand="tero-padel-club"] { --brand-accent: #ff2e82; --brand-accent-on: #000000; /* accent-text non fourni : liens en encre soulignés */ }
[data-brand="tero-padel-academy"] { --brand-accent: #ff2e82; --brand-accent-on: #000000; /* accent-text non fourni : liens en encre soulignés */ }
[data-brand="tero-studio"] { --brand-accent: #7c8f7a; --brand-accent-on: #000000; /* accent-text non fourni : liens en encre soulignés */ }
[data-brand="garisart"] { --brand-accent: #aac440; --brand-accent-on: #000000; /* accent-text non fourni : liens en encre soulignés */ }
[data-brand="immorun"] { --brand-accent: #263062; --brand-accent-on: #ffffff; --brand-accent-text: #263062; }
[data-brand="batirun"] { --brand-accent: #c0001e; --brand-accent-on: #ffffff; --brand-accent-text: #c0001e; }
[data-brand="bouwrun"] { --brand-accent: #c0001e; --brand-accent-on: #ffffff; --brand-accent-text: #c0001e; }
[data-brand="buildandrun"] { --brand-accent: #575756; --brand-accent-on: #ffffff; --brand-accent-text: #575756; }
[data-brand="impactrun"] { --brand-accent: #183f3c; --brand-accent-on: #ffffff; --brand-accent-text: #183f3c; }
[data-brand="terotrail"] { --brand-accent: #2b4336; --brand-accent-on: #ffffff; --brand-accent-text: #2b4336; }
[data-brand="bpp"] { --brand-accent: #a56933; --brand-accent-on: #000000; --brand-accent-text: #8e5525; }
[data-brand="12km-anderlecht"] { --brand-accent: #007864; --brand-accent-on: #ffffff; --brand-accent-text: #007864; }
/* état de focus opposable (A3) */
:focus-visible { outline: var(--focus-ring-width) solid var(--focus); outline-offset: var(--focus-ring-offset); box-shadow: 0 0 0 var(--focus-halo-width) var(--focus-halo); }
@media (prefers-reduced-motion: reduce) { :root { --dur-feedback: 0ms; --dur-min: 0ms; --dur-max: 0ms; --dur-reveal: 0ms; } }
