/*
  Le système graphique du site, pour ses vingt-trois pages : l'accueil dans ses deux
  langues, les pages de contenu, les pages légales et la page 404 — et le bandeau de
  consentement, qui s'affiche par-dessus chacune d'elles.

  Avant, tout ceci vivait dans le <style> de l'accueil, et les autres pages tenaient d'une
  seconde feuille (Inter, d'autres noms de jetons, d'autres boutons) : chaque clic depuis
  l'accueil changeait de police, de couleur de texte, d'en-tête et de pied de page. Une
  feuille, servie une fois et gardée un an par le navigateur (build_landing.py la nomme
  avec une version), et chaque page n'écrit plus que ce qui lui est propre.

  Ordre : polices · jetons · base · cadre · icônes · titres · boutons · en-tête · pied
  de page · bandeau de consentement · assistant · modes (mouvement réduit, impression,
  contraste forcé).
*/

/* ── 1. Polices ──────────────────────────────────────────────────
   Bricolage Grotesque (texte) et JetBrains Mono (chiffres, étiquettes), variables,
   servies d'ici : chargées chez Google, elles enverraient l'adresse de chaque visiteur
   avant tout consentement, et la politique de sécurité (font-src 'self') les refuserait.
   Licence OFL 1.1. Les sous-ensembles latin-ext ne partent que si un caractère en a
   besoin (unicode-range). */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolage-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolage-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Les polices de secours, ajustées aux mesures des vraies (chasse, hauteurs d'ascendante
   et de descendante, mesurées dans Chrome sur un paragraphe type) : le texte posé en
   Arial ou Menlo pendant le chargement occupe la même place, et rien ne bouge quand la
   police arrive. Bricolage est 3 % plus large qu'Arial ; JetBrains Mono est à 0,3 % de
   Menlo. */
@font-face{font-family:'Bricolage Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Roboto');size-adjust:103%;ascent-override:90.3%;descent-override:26.2%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Menlo'),local('Consolas'),local('Roboto Mono'),local('Courier New');size-adjust:99.7%;ascent-override:102.3%;descent-override:30.1%;line-gap-override:0%}

/* ── 2. Jetons ───────────────────────────────────────────────────
   Bleu 600 pour l'action, encre slate 900, vert 700 pour « ça a marché ». Chaque couleur
   existe aussi en canaux (--x-rgb) pour les transparences, et les rayons suivent une base
   de 0,75 rem. */
:root{
  color-scheme:only light;
  --bg:#F8FAFC;--fg:#0F172A;--card:#FFFFFF;
  --primary:#2563EB;--primary-fg:#FFFFFF;--primary-soft:#DBEAFE;--primary-strong:#1D4ED8;
  --muted:#F1F5F9;--muted-fg:#475569;
  --signal:#047857;--danger:#B91C1C;--accent:#EFF6FF;--border:#E2E8F0;
  --bg-rgb:248 250 252;--fg-rgb:15 23 42;--card-rgb:255 255 255;--primary-rgb:37 99 235;
  --muted-rgb:241 245 249;--signal-rgb:4 120 87;--border-rgb:226 232 240;
  --on-dark:248 250 252;

  --font-sans:'Bricolage Grotesque','Bricolage Fallback',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,SFMono-Regular,Menlo,monospace;

  --r-sm:.45rem;--r-md:.6rem;--r-lg:.75rem;--r-xl:1.05rem;--r-2xl:1.35rem;--r-3xl:1.65rem;
  --shadow-sm:0 1px 3px rgb(var(--fg-rgb)/.08);
  --shadow-md:0 6px 16px -8px rgb(var(--fg-rgb)/.18);
  --shadow-lg:0 24px 60px -30px rgb(var(--fg-rgb)/.3);
  --dur:.15s;--dur-slow:.3s;

  --hdr-h:4rem;
  /* L'espace entre deux sections, qui se resserre sur un téléphone : 3,5 rem à 320 px,
     6 rem à partir de 1600 px. */
  --sec-pad:clamp(3.5rem,2rem + 4vw,6rem);
  /* 1280 px au plus, et des marges qui s'élargissent avec l'écran (24 → 40 → 48 px). */
  --gutter:24px;
}
@media (min-width:768px){:root{--gutter:40px}}
@media (min-width:1024px){:root{--gutter:48px}}

/* ── 3. Base ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0 solid var(--border)}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 1rem);-webkit-text-size-adjust:100%;line-height:1.5}
body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;cursor:pointer}
h1,h2,h3{font-size:inherit;font-weight:inherit;text-wrap:balance}
p{text-wrap:pretty}
b,strong{font-weight:600}
small{font-size:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}
.ftr :focus-visible{outline-color:var(--bg)}
[hidden]{display:none!important}
html[lang=en] .f,html[lang=fr] .e{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;top:-100px;left:1rem;z-index:100;padding:.75rem 1rem;border-radius:0 0 var(--r-md) var(--r-md);background:var(--fg);color:var(--bg);font-weight:600}
.skip:focus{top:0}
.mono{font-family:var(--font-mono)}
.wrap{width:min(100% - 2*var(--gutter),1280px);margin-inline:auto}

/* ── 4. Icônes et points ─────────────────────────────────────── */
.i{width:1rem;height:1rem;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.i--xs{width:.75rem;height:.75rem}
.i--sm{width:.875rem;height:.875rem}
.i--md{width:1.25rem;height:1.25rem}
.i--lg{width:1.5rem;height:1.5rem}
.dot{display:inline-block;width:.375rem;height:.375rem;flex-shrink:0;border-radius:999px;background:var(--signal)}
.dot--lg{width:.5rem;height:.5rem}
.dot--primary{background:var(--primary)}

/* ── 5. Titres, chapeaux, étiquettes ─────────────────────────────
   Échelle de lecture : 16 px pour le corps, 18 → 20 px pour les chapeaux, 15 px pour le
   secondaire, jamais moins de 12 px — en rem, pour suivre la taille choisie dans le
   navigateur. */
.h2{font-size:2.25rem;line-height:1.1;font-weight:800;letter-spacing:-.025em}
@media (min-width:768px){.h2{font-size:3rem;line-height:1}}
.h2--sm{font-size:1.875rem;line-height:1.2}
@media (min-width:768px){.h2--sm{font-size:2.25rem;line-height:1.1}}
.lead{font-size:1.125rem;line-height:1.6;color:var(--muted-fg)}
@media (min-width:768px){.lead{font-size:1.25rem}}
.kicker{font-family:var(--font-mono);font-size:.8125rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--primary)}
.kicker--muted{font-weight:500;color:var(--muted-fg)}
.sec{padding-block:var(--sec-pad)}
.sec__head{display:flex;flex-direction:column;gap:1rem;max-width:42rem}
/* Une petite étiquette en capitales : statut, canal, mention. */
.tag{display:inline-flex;align-items:center;gap:.375rem;border-radius:999px;padding:.25rem .625rem;font-family:var(--font-mono);font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;background:var(--muted);color:var(--muted-fg)}
.tag--ok{background:rgb(var(--signal-rgb)/.12);color:var(--signal)}
.tag--primary{background:rgb(var(--primary-rgb)/.1);color:var(--primary)}

/* ── 6. Boutons ──────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.625rem 1.5rem;border-radius:999px;background:var(--primary);color:var(--primary-fg);font-weight:600;line-height:1.5rem;white-space:nowrap;transition:background-color var(--dur),border-color var(--dur),color var(--dur)}
.btn:hover{background:var(--primary-strong)}
.btn--sm{min-height:2.5rem;padding:.5rem 1rem;font-size:.9375rem;line-height:1.5rem}
.btn--lg{min-height:3.25rem;padding:.875rem 1.5rem;font-size:1rem}
.btn--ghost{background:var(--card);color:var(--fg);border:1px solid var(--border)}
.btn--ghost:hover{border-color:var(--primary);color:var(--primary)}
.btn .i{transition:transform var(--dur)}
.btn:hover .i{transform:translateX(2px)}
/* Un bouton rond ou en pastille, dans la même famille que .btn. */
.pill{display:inline-flex;align-items:center;gap:.375rem;min-height:2.25rem;border:1px solid var(--border);border-radius:999px;background:var(--card);padding:.375rem .75rem;font-size:.9375rem;line-height:1.375rem;font-weight:500;transition:border-color var(--dur),background-color var(--dur),color var(--dur)}
.pill:hover{border-color:rgb(var(--fg-rgb)/.4)}
.pill[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--primary-fg)}

/* ── 7. En-tête ──────────────────────────────────────────────── */
.hdr{position:sticky;top:0;z-index:40;border-bottom:1px solid rgb(var(--border-rgb)/.7);background:rgb(var(--bg-rgb)/.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--hdr-h)}
@media (min-width:768px){.hdr__in{gap:1.5rem}}
.logo{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:700;letter-spacing:-.025em;white-space:nowrap}
.logo__mark{width:1.75rem;height:1.75rem;flex-shrink:0}
/* Sous 360 px (petits iPhone), le mot « Agent Rewire » ne tient plus à côté de la langue
   et du bouton : la marque reste, le mot part. */
@media (max-width:359px){.hdr .logo__word{display:none}}
.hdr__nav ul{display:flex;align-items:center;gap:1.75rem;font-size:.9375rem;line-height:1.5rem;font-weight:500;color:var(--muted-fg)}
.hdr__nav a{display:inline-block;padding-block:.25rem;transition:color var(--dur)}
.hdr__nav a:hover,.hdr__nav a[aria-current]{color:var(--fg)}
.hdr__nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--primary);text-decoration-thickness:2px;text-underline-offset:6px}
.hdr__end{display:flex;align-items:center;gap:.5rem}
/* La langue : un seul bouton, celui de l'autre langue. La page courante est marquée
   aria-current par build_landing.py, et ce lien-là n'a pas à être montré. */
.lang{display:flex}
.lang a{display:inline-flex;align-items:center;min-height:2.25rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);padding:.375rem .75rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.25rem;font-weight:600;transition:border-color var(--dur),color var(--dur)}
.lang a:hover{border-color:var(--primary);color:var(--primary)}
.lang a[aria-current]{display:none}
@media (max-width:479px){.cta-more{display:none}}
/* Sous 1024 px, les liens passent derrière un bouton « Menu » et s'ouvrent en panneau
   sous la barre — site.js ouvre et ferme ; sans script, ils restent visibles en ligne. */
.hdr__menu{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--fg)}
.hdr__menu .i--close,.hdr[data-open] .hdr__menu .i--open{display:none}
.hdr[data-open] .hdr__menu .i--close{display:block}
@media (max-width:1023px){
  .hdr__nav{display:none;position:absolute;inset-inline:0;top:100%;border-bottom:1px solid var(--border);background:var(--bg);padding:.5rem 0 .75rem;box-shadow:var(--shadow-md)}
  .hdr[data-open] .hdr__nav,html.no-js .hdr__nav{display:block}
  .hdr__nav ul{flex-direction:column;align-items:stretch;gap:0;padding-inline:var(--gutter);font-size:1.0625rem}
  .hdr__nav a{display:block;padding:.75rem 0}
  .hdr__nav li+li{border-top:1px solid var(--border)}
  html.no-js .hdr__nav{position:static;box-shadow:none;border:0;padding:0;flex-basis:100%}
  html.no-js .hdr__in{flex-wrap:wrap;height:auto;padding-block:.75rem}
  html.no-js .hdr__nav ul{flex-direction:row;flex-wrap:wrap;gap:.25rem 1rem;font-size:.9375rem}
  html.no-js .hdr__nav li+li{border:0}
}
@media (min-width:1024px){.hdr__menu{display:none}}

/* ── 8. Pied de page (bande sombre) ──────────────────────────── */
.ftr{background:var(--fg);color:var(--bg)}
.ftr__in{display:flex;flex-direction:column;gap:2.5rem;padding-block:var(--sec-pad)}
.ftr__cta{display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:1024px){.ftr__cta{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.ftr__cta > div{display:flex;flex-direction:column;gap:1rem;max-width:42rem}
.ftr__cta p{font-size:1.125rem;line-height:1.6;color:rgb(var(--on-dark)/.7)}
@media (min-width:768px){.ftr__cta p{font-size:1.25rem}}
.ftr__cta .btn{flex-shrink:0;align-self:flex-start}
.ftr__bottom{display:flex;flex-direction:column;gap:1.5rem;border-top:1px solid rgb(var(--on-dark)/.15);padding-top:2rem;font-size:.9375rem;line-height:1.5rem;color:rgb(var(--on-dark)/.7)}
@media (min-width:768px){.ftr__bottom{flex-direction:row;align-items:center;justify-content:space-between}}
.ftr__bottom .logo{color:var(--bg)}
.ftr__links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.ftr__links a,.ftr__map a,[data-cookies]{display:inline-block;padding-block:.125rem;transition:color var(--dur)}
.ftr__links a:hover,.ftr__map a:hover,.ftr [data-cookies]:hover{color:var(--bg)}
.ftr__map{display:grid;gap:.5rem;font-size:.875rem;line-height:1.8;color:rgb(var(--on-dark)/.55)}
.ftr__map b{color:rgb(var(--on-dark)/.8)}
.ftr__map a{text-decoration:underline;text-decoration-color:rgb(var(--on-dark)/.25);text-underline-offset:3px}
/* Le bouton « Cookies » du pied de page : un lien parmi les autres, stylé ici et non par
   le script, pour qu'il n'apparaisse jamais en bouton gris le temps que consent.js arrive.
   Sans identifiant de mesure, consent.js pose html.no-consent et le bouton disparaît. */
[data-cookies]{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none}
html.no-consent .ftr__links li:has([data-cookies]){display:none}

/* ── 9. Bandeau de consentement (consent.js) ─────────────────── */
.consent{position:fixed;inset-inline:var(--gutter);bottom:max(1rem,env(safe-area-inset-bottom));z-index:1000;max-width:34rem;max-height:calc(100dvh - 2rem);overflow:auto;margin-inline:auto;padding:1.125rem 1.25rem;border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--card);color:var(--fg);box-shadow:var(--shadow-lg);font-size:.9375rem;line-height:1.5;animation:consent-in var(--dur-slow) ease-out both}
@media (min-width:768px){.consent{inset-inline:auto var(--gutter);margin:0;padding:1.25rem 1.5rem}}
.consent h2{margin-bottom:.375rem;font-size:1.0625rem;line-height:1.5rem;font-weight:700}
.consent p{margin-bottom:.875rem;color:var(--muted-fg)}
.consent p a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.consent__row{display:flex;flex-wrap:wrap;gap:.625rem;justify-content:flex-end}
@media (max-width:479px){.consent__row .btn{flex:1 1 45%}}
@keyframes consent-in{from{transform:translateY(12px)}to{transform:none}}

/* ── 10. Assistant du site (chat.js) ─────────────────────────────
   Un bouton en bas à droite, une fenêtre au-dessus de lui ; plein écran sur un
   téléphone. Masqué tant que le bandeau de consentement est là : ils occupent le même
   coin, et le bandeau passe d'abord. */
.chat-launch{position:fixed;right:var(--gutter);bottom:max(1rem,env(safe-area-inset-bottom));z-index:900;display:flex;align-items:center;gap:.625rem;max-width:calc(100vw - 2*var(--gutter));padding:.625rem .875rem .625rem .625rem;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--card);color:var(--fg);text-align:left;box-shadow:var(--shadow-lg);transition:transform var(--dur),border-color var(--dur)}
.chat-launch:hover{border-color:var(--primary);transform:translateY(-1px)}
.chat-launch__mark{width:2.25rem;height:2.25rem;flex-shrink:0}
.chat-launch__txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.chat-launch__t{font-size:.9375rem;font-weight:600}
.chat-launch__s{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--muted-fg)}
.chat-launch[aria-expanded=true],body:has(> .consent) .chat-launch{display:none}
.chat{position:fixed;inset:0;z-index:950;display:flex;flex-direction:column;background:var(--card);color:var(--fg);animation:consent-in var(--dur-slow) ease-out both}
.chat[hidden]{display:none}
@media (min-width:640px){
  .chat{inset:auto var(--gutter) max(1rem,env(safe-area-inset-bottom)) auto;width:24rem;height:min(38rem,calc(100dvh - 6rem));border:1px solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);overflow:hidden}
}
@media (max-width:639px){html.chat-open{overflow:hidden}}
.chat__hd{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem .875rem 1.25rem;padding-top:max(.875rem,env(safe-area-inset-top));border-bottom:1px solid var(--border)}
.chat__title{font-size:1.0625rem;line-height:1.5rem;font-weight:700}
.chat__sub{font-size:.8125rem;line-height:1.25rem;color:var(--muted-fg)}
.chat__x{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:999px;color:var(--muted-fg);transition:background-color var(--dur),color var(--dur)}
.chat__x:hover{background:var(--muted);color:var(--fg)}
.chat__note{padding:.5rem 1.25rem;background:rgb(var(--muted-rgb)/.6);font-size:.75rem;line-height:1.125rem;color:var(--muted-fg)}
.chat__note a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.chat__log{flex:1;display:flex;flex-direction:column;gap:.625rem;overflow-y:auto;overscroll-behavior:contain;padding:1rem 1.25rem}
.chat__intro{font-size:.9375rem;line-height:1.5;color:var(--muted-fg)}
.chat__msg{max-width:85%;padding:.625rem .875rem;border-radius:var(--r-xl);font-size:.9375rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.chat__msg a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.chat__msg--me{align-self:flex-end;border-bottom-right-radius:var(--r-sm);background:var(--primary);color:var(--primary-fg)}
.chat__msg--me a{color:inherit}
.chat__msg--agent{align-self:flex-start;border-bottom-left-radius:var(--r-sm);background:var(--muted)}
.chat__msg--note{align-self:stretch;max-width:none;border:1px dashed var(--border);color:var(--muted-fg)}
.chat__book{display:flex;width:max-content;margin-top:.625rem;text-decoration:none!important;color:var(--primary-fg)!important}
.chat__typing{display:flex;gap:.25rem;align-self:flex-start;padding:.875rem 1rem;border-radius:var(--r-xl);background:var(--muted)}
.chat__typing[hidden]{display:none}
.chat__typing>span:not(.sr-only){width:.4rem;height:.4rem;border-radius:50%;background:var(--muted-fg);animation:chat-dot 1.2s infinite ease-in-out}
.chat__typing>span:nth-child(2){animation-delay:.15s}
.chat__typing>span:nth-child(3){animation-delay:.3s}
@keyframes chat-dot{0%,80%,100%{opacity:.3;transform:none}40%{opacity:1;transform:translateY(-3px)}}
.chat__chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.25rem .75rem}
.chat__chips[hidden]{display:none}
.chat__chip{padding:.375rem .75rem;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:.875rem;line-height:1.25rem;transition:border-color var(--dur),color var(--dur)}
.chat__chip:hover{border-color:var(--primary);color:var(--primary)}
.chat__form{display:flex;align-items:flex-end;gap:.5rem;padding:.75rem 1rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));border-top:1px solid var(--border)}
.chat__in{flex:1;min-height:2.75rem;max-height:8.25rem;resize:none;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg);color:var(--fg);font:inherit;font-size:1rem;line-height:1.5}
.chat__in:focus{outline:2px solid var(--primary);outline-offset:0;border-color:transparent}
.chat__send{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:999px;background:var(--primary);color:var(--primary-fg);transition:background-color var(--dur)}
.chat__send:hover{background:var(--primary-strong)}
.chat__send:disabled{opacity:.5;cursor:wait}

/* ── 11. Modes ───────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media print{
  :root{--bg:#fff;--fg:#000;--muted-fg:#333;--border:#999}
  html{scroll-padding-top:0}
  body{background:#fff;color:#000}
  .hdr,.skip,.consent,.chat-launch,.chat,.lang,.hdr__menu,.btn,[data-cookies],.ftr__cta,.ftr__map{display:none!important}
  .ftr{background:none;color:#000;border-top:1px solid #000}
  .ftr__bottom{color:#000}
  .ftr__bottom .logo{color:#000}
  a[href^="http"]:not(.btn)::after{content:" (" attr(href) ")";font-size:.85em;color:#333}
  h1,h2,h3{break-after:avoid}
  table,figure,li,.card,.tile{break-inside:avoid}
}
@media (forced-colors:active){
  .btn,.pill,.lang a,.hdr__menu{border:1px solid ButtonText;forced-color-adjust:none;background:ButtonFace;color:ButtonText}
  .btn:not(.btn--ghost),[aria-pressed=true]{background:Highlight;color:HighlightText}
  .dot{border:1px solid CanvasText}
  .consent,.chat{border:2px solid CanvasText}
  .chat-launch{border:2px solid ButtonText}
  .chat__send{border:1px solid ButtonText;forced-color-adjust:none;background:ButtonFace;color:ButtonText}
  .chat__msg{border:1px solid CanvasText}
}
