@font-face { font-family: 'Nunito Sans'; src: url('/polices/nunito-sans-variable.woff2') format('woff2'); font-weight: 200 1000; font-display: swap; }
@font-face { font-family: 'Be Vietnam Pro'; src: url('/polices/be-vietnam-pro-600.woff2') format('woff2'); font-weight: 600; font-display: swap; }

:root {
  --encre: #1B1B1B; --encre-douce: #474d57; --fond: #F5F6F9; --voile: #E5EAF3; --bleu: #1555A3; --bleu-fonce: #0f417d;
  --azur: #568ED2; --trait: #c9d0dc; --blanc: #fff;
  --texte: 'Nunito Sans', 'Segoe UI', Arial, sans-serif; --titre: 'Be Vietnam Pro', 'Segoe UI', Arial, sans-serif;
  --espace-1: 24px; --espace-2: 40px; --espace-3: 64px;
}
body { font-family: var(--texte); font-size: 17px; line-height: 1.6; color: var(--encre); background: var(--fond); }
h1, h2, h3 { font-family: var(--titre); font-weight: 600; line-height: 1.22; color: var(--encre); }
h1 { font-size: clamp(30px, 4.4vw, 44px); margin: 8px 0 14px; letter-spacing: -0.01em; }
h2 { font-size: clamp(23px, 2.6vw, 29px); margin: var(--espace-2) 0 14px; }
h3 { font-size: 20px; margin: 26px 0 8px; }
p, li, dd { max-width: 68ch; }
a { color: var(--bleu); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--bleu-fonce); text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--azur); outline-offset: 2px; border-radius: 6px; }
strong { font-weight: 700; }

.saut-contenu { position: absolute; left: -9999px; top: 0; background: var(--blanc); padding: 10px 14px; z-index: 50; }
.saut-contenu:focus { left: 12px; top: 12px; }

/* en-tête */
.entete { background: var(--blanc); border-bottom: 1px solid var(--voile); position: relative; z-index: 20; }
.entete-barre { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 20px; }
.entete-logo { display: inline-flex; align-items: center; padding: 6px 0; }
.entete-logo img { display: block; height: 48px; width: auto; }
.entete-ouvrir { display: none; }
.entete-liste { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.entete-groupe { position: relative; }
.entete-titre { font: 600 17px/1 var(--texte); color: var(--encre); background: none; border: 0; padding: 14px 14px; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.entete-titre:hover, .entete-groupe:focus-within > .entete-titre { background: var(--voile); }
.entete-titre.est-ici { color: var(--bleu); }
.entete-fleche { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.entete-panneau { position: absolute; top: 100%; right: 0; padding-top: 8px; display: none; min-width: 280px; }
.entete-sous { list-style: none; margin: 0; padding: 10px; background: var(--blanc); border: 1px solid var(--voile); border-radius: 16px; box-shadow: 0 14px 34px rgba(21, 40, 72, .14); }
.entete-sous a { display: block; padding: 10px 14px; border-radius: 10px; color: var(--encre); text-decoration: none; white-space: normal; }
.entete-sous a:hover, .entete-sous a:focus-visible { background: var(--fond); color: var(--bleu); }
.entete-sous a[aria-current="page"] { color: var(--bleu); font-weight: 700; }
.entete-groupe:hover > .entete-panneau, .entete-groupe:focus-within > .entete-panneau, .entete-groupe.ouvert > .entete-panneau { display: block; }
.entete-groupe.calme > .entete-panneau { display: none; }
@media (max-width: 880px) {
  .entete-barre { min-height: 64px; }
  .entete-logo img { height: 38px; }
  .avec-js .entete-ouvrir { display: inline-flex; align-items: center; gap: 10px; font: 600 17px/1 var(--texte); color: var(--encre); background: var(--fond); border: 1px solid var(--trait); border-radius: 999px; padding: 0 18px; min-height: 46px; cursor: pointer; }
  .entete-ouvrir-trait, .entete-ouvrir-trait::before, .entete-ouvrir-trait::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
  .entete-ouvrir-trait::before, .entete-ouvrir-trait::after { content: ''; position: absolute; left: 0; }
  .entete-ouvrir-trait::before { top: -6px; } .entete-ouvrir-trait::after { top: 6px; }
  .avec-js .entete-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--blanc); border-bottom: 1px solid var(--trait); box-shadow: 0 18px 30px rgba(21, 40, 72, .12); max-height: calc(100vh - 64px); overflow-y: auto; }
  .avec-js .entete.deplie .entete-nav { display: block; }
  .sans-js .entete-barre { flex-wrap: wrap; }
  .entete-liste { flex-direction: column; gap: 0; padding: 8px 18px 18px; }
  .entete-titre { width: 100%; justify-content: space-between; padding: 14px 4px; border-radius: 0; border-bottom: 1px solid var(--voile); }
  .entete-titre:hover, .entete-groupe:focus-within > .entete-titre { background: none; }
  .entete-panneau { position: static; padding-top: 0; min-width: 0; }
  .entete-sous { border: 0; box-shadow: none; padding: 4px 0 10px; }
  .entete-groupe > .entete-panneau, .entete-groupe.calme > .entete-panneau { display: block; }
  .entete-titre { pointer-events: none; color: var(--encre-douce); font-size: 16px; padding: 14px 0 4px; border-bottom: 0; }
  .entete-fleche { display: none; }
}

.ligne-independance { margin: 0; max-width: none; background: var(--voile); color: var(--encre-douce); font-size: 16px; line-height: 1.45; padding: 9px 0; }
.ligne-independance .container { display: block; }

/* accueil */
.bandeau-accueil { background: linear-gradient(120deg, #1555A3, #3270BB); color: var(--blanc); padding: var(--espace-2) 0 var(--espace-3); }
@media (max-width: 600px) { .bandeau-accueil { padding-bottom: 32px; } .accueil-reperes { padding-top: 28px; } }
.bandeau-interieur { text-align: center; }
.bandeau-accueil h1 { color: var(--blanc); margin-top: 0; }
.bandeau-sous { margin: 0 0 28px; color: #eef3fb; font-size: 19px; }
.bandeau-interieur .bandeau-sous { margin-inline: auto; }
.bandeau-outil .bandeau-sous { max-width: none; }
.bandeau-accueil .verif { margin-inline: auto; text-align: left; }
.accueil-reperes { padding-top: var(--espace-2); }
.repere { margin: 0 0 18px; display: flex; flex-direction: column; gap: 4px; }
.repere-chiffre { font-family: var(--titre); font-weight: 600; font-size: 38px; color: var(--bleu); line-height: 1.1; }
.repere-texte { color: var(--encre-douce); }

/* vérificateur */
.verif { background: var(--blanc); color: var(--encre); border-radius: 22px; padding: 28px clamp(18px, 4vw, 36px); max-width: 640px; box-shadow: 0 18px 40px rgba(12, 35, 70, .16); }
.colonne-outil .verif, .bloc-outil .verif, .calcul { box-shadow: none; border: 1px solid var(--trait); max-width: none; }
@media (min-width: 700px) { .verif-choix { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.verif-ou { margin: 0 0 6px; color: var(--encre-douce); font-size: 16px; }
.verif-question { display: block; font-family: var(--titre); font-weight: 600; font-size: 23px; line-height: 1.3; margin: 0 0 18px; }
.verif-choix { display: grid; gap: 12px; }
.verif-bouton { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; min-height: 58px; padding: 14px 22px; text-align: left; font: 600 18px/1.3 var(--texte); color: var(--encre); background: var(--blanc); border: 1px solid var(--trait); border-radius: 999px; cursor: pointer; transition: border-color .15s, background .15s; }
.verif-bouton:hover { border-color: var(--bleu); background: #f3f7fd; }
.verif-precision { font-weight: 400; font-size: 16px; color: var(--encre-douce); }
.verif-autre { margin: 16px 0 0; font-size: 16px; }
.verif-indice { margin: -10px 0 14px; color: var(--encre-douce); font-size: 16px; }
.verif-saisie, .verif-liste { width: 100%; max-width: 260px; min-height: 52px; font: 600 20px var(--texte); color: var(--encre); padding: 10px 16px; border: 1px solid var(--trait); border-radius: 12px; background: var(--blanc); }
.verif-liste { max-width: 100%; font-size: 17px; }
.verif-saisie:focus { border-color: var(--bleu); }
.verif-erreur { min-height: 1.4em; margin: 8px 0 0; color: #9b2c2c; font-size: 16px; }
.verif-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
.verif-suivant { font: 600 17px var(--texte); min-height: 50px; padding: 0 26px; border-radius: 999px; border: 1px solid var(--bleu); background: var(--bleu); color: var(--blanc); cursor: pointer; }
.verif-recommencer { font: 600 17px var(--texte); min-height: 50px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--trait); background: var(--blanc); color: var(--encre); cursor: pointer; }
.verif-recommencer:hover { border-color: var(--bleu); color: var(--bleu); }
.verif-suivant:hover { background: var(--bleu-fonce); }
.verif-retour, .lien-bouton { font: 600 17px var(--texte); min-height: 50px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--trait); background: var(--blanc); color: var(--encre); cursor: pointer; }
.verif-retour:hover, .lien-bouton:hover { border-color: var(--bleu); color: var(--bleu); }
.verif-recommencer { background: var(--blanc); color: var(--bleu); }
.verif-recommencer:hover { background: #f3f7fd; }
.verif-reponse { margin-top: 18px; font-size: 19px; }
.verif-attente { margin: 0; color: var(--encre-douce); font-size: 17px; }
.verif-classe { font-family: var(--titre); font-weight: 600; font-size: clamp(30px, 5vw, 40px); line-height: 1.15; color: var(--bleu); margin: 0 0 8px; }
.verif-ligne { margin: 0 0 10px; }
.verif-villes { list-style: none; padding: 0; margin: 12px 0; border-top: 1px solid var(--voile); }
.verif-villes li { padding: 10px 0; border-bottom: 1px solid var(--voile); max-width: none; }
.verif-officiel { margin: 18px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.verif-officiel a { display: inline-flex; align-items: center; min-height: 50px; padding: 8px 26px; border-radius: 999px; background: var(--bleu); color: var(--blanc); font: 600 17px var(--texte); text-decoration: none; }
.verif-officiel a:hover, .verif-officiel a:focus-visible { background: var(--bleu-fonce); color: var(--blanc); }
.verif-officiel-site { font-size: 16px; color: var(--encre-douce); }
.verif-etape[hidden], [hidden] { display: none !important; }

/* calcul du malus */
.calcul { background: var(--blanc); border-radius: 22px; padding: 28px clamp(18px, 4vw, 36px); max-width: 720px; }
.calcul-champs { display: grid; gap: 18px; }
.calcul-champ label { display: block; font-weight: 700; margin-bottom: 6px; }

/* pages intérieures */
.entete-page { padding-top: 18px; }
.zfe-reperes { padding-top: var(--espace-2); }
.sous-titre { font-size: 19px; color: var(--encre-douce); margin: 0 0 var(--espace-1); }
.chapo, .chapo-fixe { font-size: 19px; }
.fil ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; font-size: 16px; color: var(--encre-douce); }
.fil li + li::before { content: '›'; margin-right: 6px; color: var(--trait); }
.colonne-outil { margin-bottom: var(--espace-2); }
.faits { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 28px; margin: 0 0 var(--espace-1); padding: 0; }
.fait { padding: 16px 0; border-top: 1px solid var(--trait); }
.fait dt { font-size: 16px; color: var(--encre-douce); margin-bottom: 4px; }
.fait dd { margin: 0; font-weight: 600; font-size: 18px; }
.source-ligne, .table-note { font-size: 16px; color: var(--encre-douce); }
.photo-bandeau { max-width: 1180px; margin: 0 auto var(--espace-1); padding-inline: 24px; }
.photo-section { max-width: 1180px; margin: var(--espace-3) auto var(--espace-1); padding-inline: 24px; }
.photo-section img { display: block; width: 100%; height: clamp(150px, 22vw, 260px); object-fit: cover; border-radius: 18px; }
.photo-bandeau img { display: block; width: 100%; height: clamp(160px, 26vw, 300px); object-fit: cover; border-radius: 18px; }
.liste-villes { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--trait); }
.liste-villes > li { display: flex; flex-wrap: wrap; gap: 4px 16px; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--trait); max-width: none; }
.liste-villes a, .liste-villes strong { font-weight: 700; }
.liste-villes span { color: var(--encre-douce); }
.liste-classes { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.liste-classes li { background: var(--blanc); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; }
.liste-classes a { font-weight: 700; }
.liste-classes span { color: var(--encre-douce); font-size: 16px; }
.liste-simple { padding-left: 1.2em; }
.liste-simple li { margin-bottom: 8px; }
.suite { margin-top: 16px; }
.suite a { font-weight: 700; }
.prose-section h2 { margin-top: var(--espace-2); }
.questions .question h3 { font-size: 19px; }
.autres-classes { margin: var(--espace-2) 0; }
.texte-legal { padding-bottom: var(--espace-2); }

/* tableaux */
.table-cadre { overflow-x: auto; background: var(--blanc); border-radius: 16px; border: 1px solid var(--voile); }
table { width: 100%; border-collapse: collapse; font-size: 17px; }
caption.table-titre { text-align: left; font-family: var(--titre); font-weight: 600; font-size: 20px; padding: 14px 16px 4px; }
th, td { text-align: left; vertical-align: top; padding: 12px 16px; border-bottom: 1px solid var(--voile); }
thead th { font-size: 16px; color: var(--encre-douce); font-weight: 700; background: var(--blanc); position: sticky; top: 0; }
tbody tr:last-child > * { border-bottom: 0; }
tbody th { font-weight: 600; }
td .couleur, td .agglo, th .agglo { display: block; font-size: 16px; color: var(--encre-douce); font-weight: 400; }
.table-etroite { max-width: 520px; }
.baremes { display: grid; gap: 0 32px; }
.suite-ville { display: block; color: var(--encre-douce); font-size: 16px; margin-top: 2px; }
@media (min-width: 860px) { .baremes { grid-template-columns: 1fr 1fr; align-items: start; } }
.tables-duo { row-gap: 16px; }
.table-villes th a { font-weight: 700; }
@media (max-width: 640px) {
  .col-masquable { display: none; }
  th, td { padding: 10px 12px; }
  table { font-size: 16px; }
}
.telechargement { font-size: 16px; color: var(--encre-douce); margin: 16px 0; }
.reutiliser { margin: 0 0 var(--espace-2); }
.reutiliser summary { cursor: pointer; color: var(--bleu); font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; }
.extrait { white-space: pre-wrap; word-break: break-all; background: var(--blanc); border: 1px solid var(--voile); border-radius: 12px; padding: 14px; font: 16px/1.5 var(--texte); }
.mention-impression { display: none; }

/* carte */
.carte { margin: 0 auto; max-width: 640px; }
.carte-svg { display: block; width: 100%; height: auto; }
.carte-terre { fill: var(--voile); stroke: #b7c3d6; stroke-width: 1; }
.carte-zone { fill: var(--azur); stroke: var(--blanc); stroke-width: 1.5; }
.carte-zone-amendes { fill: var(--bleu); }
.carte-zone-tap { fill: transparent; }
.carte-nom { font: 600 13px var(--texte); fill: var(--encre); }
.carte-point:hover .carte-zone, .carte-point:focus .carte-zone { fill: var(--bleu-fonce); }
.carte-point:hover .carte-nom { fill: var(--bleu); text-decoration: underline; }
.carte-legende { font-size: 16px; color: var(--encre-douce); margin-top: 10px; }
.pastille { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #a9c6ea; margin: 0 4px 0 10px; vertical-align: middle; }
.pastille-amendes { background: var(--bleu); margin-left: 0; }
.region h3 { font-size: 19px; }

/* pied */
.pied { background: var(--voile); margin-top: var(--espace-3); padding: var(--espace-2) 0 var(--espace-1); }
.pied-intitule { font-weight: 700; margin: 0 0 6px; }
.pied-liens { list-style: none; margin: 0 0 22px; padding: 0; }
.pied-liens li { border-bottom: 1px solid #cfd7e4; max-width: none; }
.pied-liens a { display: block; padding: 11px 0; color: var(--encre); text-decoration: none; }
.pied-liens a:hover, .pied-liens a:focus-visible { color: var(--bleu); text-decoration: underline; }
.pied-marque-etat { font-size: 16px; color: var(--encre-douce); }
.pied-legal { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 16px; color: var(--encre-douce); }
.pied-legal a { color: var(--encre-douce); }
.page-vide { min-height: 40vh; }

@media print {
  .entete-nav, .entete-ouvrir, .pied, .imprimer-non, .fil, .saut-contenu { display: none !important; }
  body { background: #fff; font-size: 12pt; }
  .table-cadre { border: 0; overflow: visible; }
  thead th { position: static; }
  .bloc-table { break-inside: avoid; page-break-inside: avoid; }
  #voitures { break-after: page; }
  .ligne-independance { background: none; padding: 0; }
  .mention-impression { display: block; position: fixed; bottom: 0; left: 0; right: 0; font-size: 9pt; color: #444; }
  a { color: inherit; text-decoration: none; }
}

/* bandeau des pages outil */
.bandeau-outil { background: linear-gradient(120deg, #1555A3, #3270BB); color: var(--blanc); padding: 18px 0 var(--espace-2); }
.bandeau-outil h1, .bandeau-outil .fil, .bandeau-outil .fil a { color: var(--blanc); }
.bandeau-outil .fil li + li::before { color: #b9cdea; }
.bandeau-outil .verif, .bandeau-outil .calcul { box-shadow: 0 18px 40px rgba(12, 35, 70, .16); border: 0; max-width: none; }
.bandeau-outil + .container { padding-top: var(--espace-1); }
/* ligne ville */
.ligne-ville { display: grid !important; grid-template-columns: minmax(130px, 200px) minmax(0, 1fr) minmax(0, 260px); gap: 4px 20px; align-items: baseline; }
.ligne-ville-regle { color: var(--encre) !important; }
.ligne-ville-zone { display: block; font-size: 15px; color: var(--encre-douce); }
.ligne-ville-amende { font-weight: 400; color: var(--encre-douce); }
.liste-villes .ligne-ville-amende-oui { font-weight: 600; color: var(--bleu-fonce); }
.ligne-ville-titres { font-size: 15px; color: var(--encre-douce); }
.ligne-ville-titres span { font-weight: 600; }
.ligne-ville-suite { grid-column: 2 / -1; color: var(--encre); }
.ligne-ville-suite-tete { font-weight: 600; }
.ligne-ville-amende-tete { color: var(--encre-douce); font-weight: 400; }
@media (min-width: 761px) { .liste-villes:has(.ligne-ville-titres) .ligne-ville-amende-tete { display: none; } }
@media (max-width: 760px) { .ligne-ville { grid-template-columns: 1fr; } .ligne-ville-suite { grid-column: auto; } .ligne-ville-titres { display: none !important; } }
.liste-options { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--trait); }
.liste-options li { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 4px 20px; padding: 12px 0; border-bottom: 1px solid var(--trait); max-width: none; }
.liste-options a, .liste-options strong { font-weight: 700; }
@media (max-width: 760px) { .liste-options li { grid-template-columns: 1fr; } }
.pastille-classe { display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-right: 8px; vertical-align: -1px; border: 1px solid rgba(0,0,0,.18); }
.pastille-0 { background: #2e9e4f; } .pastille-1 { background: #7b4fb3; } .pastille-2 { background: #f2c230; }
.pastille-3 { background: #ee8a2b; } .pastille-4 { background: #8c2338; } .pastille-5 { background: #8c8f94; }
/* tableaux empilés sur téléphone */
@media (max-width: 640px) {
  .table-pile thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .table-pile, .table-pile tbody, .table-pile tr, .table-pile th, .table-pile td { display: block; width: 100%; }
  .table-pile tr { padding: 10px 14px; border-bottom: 1px solid var(--trait); }
  .table-pile tbody tr:last-child { border-bottom: 0; }
  .table-pile th, .table-pile td { border: 0; padding: 3px 0; }
  .table-pile td[data-libelle]::before { content: attr(data-libelle) " : "; color: var(--encre-douce); font-weight: 400; }
  .table-pile td .couleur { display: inline; margin-left: 6px; }
  .table-villes tr { padding: 8px 14px; }
  .table-villes th, .table-villes td { padding: 1px 0; }
  .table-villes td[data-libelle="Source"] { font-size: 15px; }
  .carte-nom { font-size: 18px; }
  .pied-liens { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
  .pied-liens a { padding: 8px 0; font-size: 16px; }
  }

@media (min-width: 700px) { .faits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.calcul-champ label { display: flex; align-items: flex-end; min-height: 40px; }

th .couleur { display: block; font-size: 16px; color: var(--encre-douce); font-weight: 400; }
.bandeau-outil .calcul { color: var(--encre); }
.bandeau-outil .fil a:hover { color: #fff; }
@media (max-width: 699px) and (min-width: 340px) { .faits-court { grid-template-columns: repeat(2, minmax(0, 1fr)); } .faits-court .fait dd { font-size: 16px; } }

.prose .table-cadre { margin: 12px 0; }
main { overflow-x: clip; }

.plus-loin { margin: var(--espace-2) 0; border-top: 1px solid var(--trait); border-bottom: 1px solid var(--trait); }
.plus-loin > summary { cursor: pointer; font-weight: 700; color: var(--bleu); padding: 16px 0; min-height: 44px; }
.plus-loin[open] > summary { border-bottom: 1px solid var(--voile); }
.bareme-complet { margin: 0 0 var(--espace-2); }
.grille-co2 { columns: 4 130px; column-gap: 48px; column-rule: 1px solid var(--voile); margin: 0 0 20px; padding: 18px 24px; background: var(--blanc); border: 1px solid var(--voile); border-radius: 16px; }
@media (max-width: 600px) { .grille-co2 { column-gap: 28px; padding: 14px 16px; font-size: 15px; } }
.grille-co2 > div { display: flex; justify-content: space-between; gap: 12px; break-inside: avoid; padding: 5px 0; border-bottom: 1px solid var(--voile); font-variant-numeric: tabular-nums; }
.grille-co2 dt { color: var(--encre-douce); }
.grille-co2 dd { margin: 0; }

.raccourcis { font-size: 16px; line-height: 1.9; margin: 0 0 var(--espace-1); max-width: none; }
.raccourcis a { font-weight: 600; }
.faits-bandeau { margin-bottom: 22px; }
.faits-bandeau .fait { border-top-color: rgba(255, 255, 255, .35); }
.faits-bandeau dt { color: #d6e3f5; }
.faits-bandeau dd { color: #fff; }
@media (min-width: 700px) { .faits-bandeau { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.calcul-case { display: flex; align-items: center; gap: 12px; }
.calcul-case input { width: 24px; height: 24px; flex: none; }
.calcul-case label { min-height: 44px; display: flex; align-items: center; font-weight: 600; margin: 0; }
@media (max-width: 600px) { .bandeau-outil .container { display: flex; flex-direction: column; } .bandeau-outil .faits-bandeau { order: 5; margin: 22px 0 0; } }

.bandeau-outil .fil, .bandeau-outil .fil [aria-current] { color: #fff; }
.bandeau-outil .fil a { color: #e8f0fb; }
.action-principale { display: inline-flex; align-items: center; min-height: 50px; padding: 0 26px; border-radius: 999px; background: var(--bleu); color: #fff; font-weight: 700; text-decoration: none; }
.action-principale:hover, .action-principale:focus-visible { background: var(--bleu-fonce); color: #fff; }

@media (max-width: 600px) { .page-tableau .chapo-fixe { font-size: 17px; margin-bottom: 8px; } .page-tableau h1 { font-size: 26px; } .page-tableau #voitures h2 { margin-top: 12px; } }
.carte-zone-report { fill: var(--blanc); stroke: var(--bleu); stroke-width: 2.5; }
.pastille-report { background: var(--blanc); box-shadow: inset 0 0 0 2.5px var(--bleu); }
.carte-zone:not(.carte-zone-amendes):not(.carte-zone-report) { fill: #a9c6ea; }

@media (min-width: 700px) { .faits:not(.faits-bandeau) .fait:last-child:nth-child(odd):not(:nth-child(3)) { grid-column: 1 / -1; } }
a { hyphens: none; }

@media (min-width: 700px) { .faits:not(.faits-bandeau):has(> .fait:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.outils-tableau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: var(--espace-1) 0 0; }
.outils-tableau + .plus-loin { margin-top: var(--espace-1); }
.outils-tableau .telechargement { margin: 0; }
.outils-tableau .reutiliser { flex-basis: auto; margin: 0; }
.outils-tableau .reutiliser > summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; color: var(--bleu); font-weight: 400; text-decoration: underline; }
.outils-tableau .lien-bouton { min-height: 44px; padding: 0; border: 0; border-radius: 0; background: none; color: var(--bleu); font: 400 16px var(--texte); text-decoration: underline; }
.outils-tableau .reutiliser[open] { flex-basis: 100%; }
.villes-intro { margin: 0 0 12px; }
.mots-liste { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px 24px; margin: 0; }
.mots-liste dt { font-weight: 600; margin-top: 10px; }
.mots-liste dd { margin: 0; }
@media (min-width: 760px) { .mots-liste { grid-template-columns: 200px minmax(0, 1fr); } .mots-liste dt { margin-top: 0; } }
.sans-plaque { margin: 0 0 var(--espace-1); }
.sans-plaque a { font-weight: 600; }
.suite-classe { margin-top: 16px; }
.verif-recap { margin: 0 0 6px; color: var(--encre-douce); font-size: 16px; }

/* calcul du malus, en deux questions */
@media (min-width: 700px) { [data-etape="chiffres"] .calcul-champs { grid-template-columns: repeat(2, minmax(0, 260px)); } }
.calcul-affiner { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--voile); }
.calcul-affiner summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 600; color: var(--bleu); }
.calcul-affiner summary:hover { color: var(--bleu-fonce); }
.calcul-affiner .calcul-champs { margin-top: 12px; }
.faits-suite { margin: 24px 0 0; }
/* tableaux secondaires sur téléphone : la classe à droite de chaque ligne */
@media (max-width: 640px) {
  .table-compacte thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .table-compacte, .table-compacte tbody { display: block; width: 100%; }
  .table-compacte tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--trait); }
  .table-compacte tbody tr:last-child { border-bottom: 0; }
  .table-compacte th, .table-compacte td { display: block; border: 0; padding: 0; }
  .table-compacte th { grid-column: 1; font-size: 15px; font-weight: 400; color: var(--encre-douce); }
  .table-compacte td:nth-of-type(1) { grid-column: 1; }
  .table-compacte td:nth-of-type(2) { grid-column: 1; font-size: 15px; color: var(--encre-douce); }
  .table-compacte td:nth-of-type(3) { grid-column: 2; grid-row: 1 / span 3; text-align: right; }
  .table-compacte td .couleur { display: block; margin: 2px 0 0; }
}
@media (max-width: 699px) and (min-width: 340px) { .faits-ville .fait:first-child { grid-column: 1 / -1; } .faits-ville .fait { padding: 12px 0; } }
.domaine { white-space: nowrap; }
.verif-changer { font: inherit; color: var(--bleu); background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.verif-changer:hover, .verif-changer:focus-visible { color: var(--bleu-fonce); }
.bloc-repli { margin-top: 0; margin-bottom: 0; }
.bloc-repli + .bloc-repli .repli-table { border-top: 0; margin-top: 0; }
.repli-table > summary h2 { display: inline; margin: 0; color: inherit; }
.repli-table > summary:hover { color: var(--bleu-fonce); }
.repli-table[open] > .table-cadre { margin-top: var(--espace-1); }
.verif-classe .pastille-classe { width: .7em; height: .7em; vertical-align: 0; margin-right: 12px; }
.verif-note { font-size: 16px; color: var(--encre-douce); }
.table-villes td.amendes-oui { font-weight: 600; color: var(--bleu-fonce); }
@media (max-width: 640px) {
  .table-pile.table-zfe-court tr { padding: 10px 14px; }
  .table-zfe-court th { padding-bottom: 4px; }
  .table-zfe-court td[data-libelle="Crit'Air interdites"]::before { content: "Interdites : "; }
}
