/*
Theme Name: cslpv
Theme URI: https://cslp06.org
Description: Thème sur-mesure du vérificateur des régimes alimentaires en restauration rapide (marque proposée : VérifMenu — à valider). Code pur, écrit de zéro pour ce site.
Author: VérifMenu
Version: 0.3.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: cslpv
*/

/* == Fonts self-hosted (P-086) — woff2 sous-réglés latin, aucun CDN == */
@font-face{font-family:'Bricolage Grotesque';src:url('fonts/bricolage-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Bricolage Grotesque';src:url('fonts/bricolage-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Bricolage Grotesque';src:url('fonts/bricolage-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Literata';src:url('fonts/literata-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Literata';src:url('fonts/literata-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Literata';src:url('fonts/literata-400italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}

/* == Socle == */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondpage);color:var(--encre);font-family:var(--policetexte);font-size:1.0625rem;line-height:1.65}
h1,h2,h3,h4{font-family:var(--policetitres);font-weight:700;line-height:1.15;color:var(--encre);margin:0 0 var(--espacedeux)}
h1{font-size:clamp(1.7rem,4.5vw,2.6rem);font-weight:800}
h2{font-size:clamp(1.35rem,3vw,1.9rem)}
h3{font-size:1.2rem}
p{margin:0 0 var(--espacedeux)}
a{color:var(--accent)}
a:hover{color:var(--accentfonce)}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.lienevasion{position:absolute;left:-999px;top:0;background:var(--fondcarte);color:var(--encre);padding:.6rem 1rem;z-index:99}
.lienevasion:focus{left:.5rem}

/* == En-tête : nav à recherche centrale (matrice — aucun CTA pill) == */
.entetesite{background:var(--fondcarte);border-bottom:1px solid var(--filet)}
.entetesite > div{max-width:var(--largeurpage);margin:0 auto;padding:.65rem var(--espacedeux);display:flex;align-items:center;gap:var(--espacedeux);flex-wrap:wrap}
.marquesite{display:flex;align-items:center;min-height:44px;flex:0 0 auto}
.marquesite img,.marquesite svg{height:1.6rem;width:auto;max-width:min(60vw,18rem);display:block}
.zonerecherche{flex:1 1 16rem;order:0;display:flex}
.zonerecherche form{display:flex;width:100%;max-width:26rem;margin:0 auto}
.champenseigne{flex:1;min-height:44px;border:1.5px solid var(--filet);border-right:0;border-radius:var(--arrondi) 0 0 var(--arrondi);background:var(--fondpage);color:var(--encre);font-family:var(--policetitres);font-weight:500;font-size:1rem;padding:.35rem .8rem}
.champenseigne::placeholder{color:var(--encredouce);opacity:1}
.champenseigne:focus{border-color:var(--accent);outline:none}
.boutonchercher{min-height:44px;min-width:44px;border:0;border-radius:0 var(--arrondi) var(--arrondi) 0;background:var(--accent);color:var(--texteaccent);font-family:var(--policetitres);font-weight:700;padding:0 .9rem;cursor:pointer}
.boutonchercher:hover{background:var(--accentfonce)}
.menuregimes{margin-left:auto}
.menuregimes ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}
.menuregimes a{display:flex;align-items:center;min-height:44px;padding:.2rem .75rem;text-decoration:none;color:var(--encre);font-family:var(--policetitres);font-weight:500;border-bottom:3px solid transparent}
.menuregimes a:hover,.menuregimes .current-menu-item a{border-bottom-color:var(--accent);color:var(--accent)}
.boutonmenu{display:none}
@media (max-width:760px){
  .boutonmenu{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin-left:auto;background:none;border:1.5px solid var(--filet);border-radius:var(--arrondi);color:var(--encre);font-family:var(--policetitres);font-weight:700;cursor:pointer}
  .menuregimes{display:none;flex-basis:100%;margin-left:0}
  .menuregimes.menuouvert{display:block}
  .menuregimes ul{flex-direction:column;gap:0}
  .menuregimes a{border-bottom:1px solid var(--filet);border-left:3px solid transparent}
  .menuregimes a:hover{border-left-color:var(--accent)}
  .zonerecherche{order:2;flex-basis:100%}
}

/* == Fil d'Ariane == */
.filariane{max-width:var(--largeurpage);margin:0 auto;padding:.6rem var(--espacedeux);font-size:.85rem;font-family:var(--policetitres);color:var(--encredouce)}
.filariane ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.filariane li+li::before{content:'›';margin-right:.35rem;color:var(--encredouce)}
.filariane a{color:var(--encredouce)}
.filariane a:hover{color:var(--accent)}

/* == Blocs de page == */
main{display:block}
.colonnepage{max-width:var(--largeurpage);margin:0 auto;padding:var(--espacetrois) var(--espacedeux)}
.colonnelecture{max-width:var(--largeurlecture);margin:0 auto;padding:var(--espacetrois) var(--espacedeux)}

/* == Hero recherche (section 1 de la home) == */
.herorecherche{background:var(--fondcarte);border-bottom:1px solid var(--filet);padding:var(--espacequatre) 0}
.herodouble{display:grid;grid-template-columns:1.35fr .9fr;gap:var(--espacequatre);align-items:start;padding-top:0;padding-bottom:0}
.herotexte h1{margin:0 0 var(--espacedeux);font-size:clamp(1.9rem,3.6vw,2.7rem)}
.chapeau{max-width:34rem;margin:0 0 var(--espacetrois);color:var(--encredouce);font-size:1.05rem}
.herorecherche form{display:flex;max-width:30rem}
.herorecherche .champenseigne{font-size:1.1rem;min-height:52px}
.herorecherche .boutonchercher{min-height:52px}
.lignedate{font-size:.85rem;font-family:var(--policetitres);color:var(--encredouce);margin-top:var(--espacedeux)}

/* == Fiche verdict (composant cœur) == */
.ficheverdict{background:var(--fondcarte);border:1px solid var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux);display:flex;flex-direction:column;gap:.55rem}
.ficheverdict h3{margin:0;font-size:1.05rem}
.ficheverdict h3 a{color:var(--encre);text-decoration:none}
.ficheverdict h3 a:hover{color:var(--accent)}
.pictostatut{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--policetitres);font-weight:700;font-size:.95rem;color:var(--encre)}
.pictostatut svg{flex:0 0 auto}
.ficheverdict[data-statut="verifie"] .pictostatut{color:var(--accent)}
.verdictdate{font-family:var(--policetitres);font-size:.83rem;color:var(--encredouce)}
.sourceverdict{font-size:.83rem;color:var(--encredouce)}
.sourceverdict a{color:var(--accent)}
.notefranchise{font-style:italic;font-size:.85rem;color:var(--encredouce);border-left:3px solid var(--accentclair);padding-left:.7rem;margin:0}

/* verdict en bandeau (haut de hub/satellite) */
.bandeauverdict{background:var(--accentclair);border:1px solid var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux) var(--espacetrois);margin-bottom:var(--espacetrois)}
.bandeauverdict .pictostatut{font-size:1.1rem}

/* == Derniers verdicts (section 2) == */
.derniersverdicts{padding:var(--espacetrois) 0}
.derniersverdicts > h2,.derniersverdicts > p{text-align:center}
.listeverdicts{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:var(--espacedeux);margin:var(--espacetrois) 0 0;padding:0;list-style:none}

/* == Grille enseignes × régimes (section 3) == */
.grilleenseignes{padding:var(--espacetrois) 0}
.blocenseigne{background:var(--fondcarte);border:1px solid var(--filet);border-radius:var(--arrondi);overflow:hidden;display:flex;flex-direction:column}
.corpsenseigne{padding:var(--espacedeux)}
.imageenseigne{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--fondpage);border-bottom:1px solid var(--filet)}
.blocenseigne h3{margin-bottom:.5rem}
.blocenseigne ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.blocenseigne li a{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.12rem;min-height:44px;padding:.35rem .7rem;border:1.5px solid var(--filet);border-radius:var(--arrondi);text-decoration:none;font-family:var(--policetitres);font-weight:500;font-size:.9rem;color:var(--encre)}
.nomregime{font-weight:700}
.etatregime{font-size:.72rem;font-weight:500;color:var(--encredouce);letter-spacing:.01em}
.blocenseigne li a[data-statut=verifie]{border-color:var(--accent)}
.blocenseigne li a[data-statut=verifie] .etatregime{color:var(--accent)}
.blocenseigne li a[data-statut=partiel]{border-color:var(--accentclair)}
.blocenseigne li a[data-statut=inconnu]{border-style:dashed}
.blocenseigne li a:hover{border-color:var(--accent);color:var(--accent)}
.listeenseignes{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:var(--espacedeux);margin-top:var(--espacetrois)}

/* == Tableau comparatif enseigne × produit == */
.cadretableau{overflow-x:auto;border:1px solid var(--filet);border-radius:var(--arrondi);background:var(--fondcarte);margin:var(--espacetrois) 0}
.tableauregime{border-collapse:collapse;width:100%;min-width:34rem;font-size:.95rem}
.tableauregime caption{text-align:left;font-family:var(--policetitres);font-weight:700;padding:.8rem 1rem;border-bottom:1px solid var(--filet)}
.tableauregime th{font-family:var(--policetitres);font-weight:700;text-align:left;background:var(--accentclair)}
.tableauregime th,.tableauregime td{padding:.6rem .9rem;border-bottom:1px solid var(--filet);vertical-align:top}
.tableauregime tr:last-child td{border-bottom:0}
.tableauregime .pictostatut{font-size:.88rem}
.tableauregime tfoot td{font-size:.83rem;color:var(--encredouce);font-style:italic}

/* == Méthode (section 4) == */
.blocmethode{background:var(--fondcarte);border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);padding:var(--espacequatre) 0}
.blocmethode ol{counter-reset:etape;list-style:none;margin:var(--espacetrois) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--espacetrois)}
.blocmethode ol li{counter-increment:etape;padding-top:.4rem}
.blocmethode ol li::before{content:counter(etape);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--accent);color:var(--texteaccent);font-family:var(--policetitres);font-weight:800;border-radius:var(--arrondi);margin-bottom:.8rem}
.blocmethode ol li strong{display:block;font-family:var(--policetitres);margin-bottom:.3rem}

/* == Alerte e-mail par enseigne (section 5) == */
.alerteenseigne{padding:var(--espacequatre) 0;text-align:center}
.alerteenseigne .surtitre{margin-bottom:1rem}
.formalerte{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;max-width:34rem;margin:var(--espacetrois) auto 0}
.formalerte select,.formalerte input[type=email]{min-height:48px;border:1.5px solid var(--filet);border-radius:var(--arrondi);background:var(--fondcarte);color:var(--encre);font-family:var(--policetitres);font-size:1rem;padding:.35rem .8rem;flex:1 1 10rem}
.formalerte button{min-height:48px;border:0;border-radius:var(--arrondi);background:var(--accent);color:var(--texteaccent);font-family:var(--policetitres);font-weight:700;font-size:1rem;padding:0 1.3rem;cursor:pointer;flex:1 1 100%}
.formalerte button:hover{background:var(--accentfonce)}
@media (min-width:560px){.formalerte button{flex:0 0 auto}}

/* == Sondages rémunérés (section 6, silo secondaire) == */
.blocsondages{border-top:1px solid var(--filet);padding:var(--espacetrois) 0;font-size:.95rem}
.blocsondages h2{font-size:1.2rem}
.blocsondages ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--espacedeux)}
.blocsondages a{color:var(--encredouce)}
.blocsondages a:hover{color:var(--accent)}

/* == Gabarits éditoriaux == */
.pagepilier .infolecture,.fichesatellite .infolecture{font-family:var(--policetitres);font-size:.85rem;color:var(--encredouce);margin-bottom:var(--espacetrois)}
.sommairepage{background:var(--fondcarte);border:1px solid var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux) var(--espacetrois);margin-bottom:var(--espacetrois)}
.sommairepage h2{font-size:1rem;margin-bottom:.5rem}
.sommairepage ol{margin:0;padding-left:1.2rem}
.datemaj{display:inline-block;background:var(--accentclair);color:var(--encre);font-family:var(--policetitres);font-weight:500;font-size:.83rem;border-radius:var(--arrondi);padding:.15rem .6rem;margin-bottom:var(--espacedeux)}
.hubenseigne .entetehub{border-bottom:1px solid var(--filet);margin-bottom:var(--espacetrois);padding-bottom:var(--espacedeux)}
.contenupage h2{margin-top:var(--espacetrois)}
.contenupage blockquote{border-left:3px solid var(--accent);margin:var(--espacetrois) 0;padding:.2rem 0 .2rem var(--espacetrois);font-style:italic}

/* == Formulaire de signalement == */
.formsignal{max-width:34rem}
.champsignal{margin-bottom:var(--espacedeux);display:flex;flex-direction:column;gap:.35rem}
.champsignal label{font-family:var(--policetitres);font-weight:700;font-size:.95rem}
.champsignal input,.champsignal select,.champsignal textarea{min-height:48px;border:1.5px solid var(--filet);border-radius:var(--arrondi);background:var(--fondcarte);color:var(--encre);font-family:var(--policetexte);font-size:1rem;padding:.55rem .8rem}
.champsignal textarea{min-height:9rem;resize:vertical}
.champsignal input:focus,.champsignal select:focus,.champsignal textarea:focus{border-color:var(--accent);outline:none}
.aidechamp{font-size:.83rem;color:var(--encredouce)}
.champcache{position:absolute !important;left:-9999px !important;height:1px;width:1px;overflow:hidden}
.boutonsignal{min-height:48px;border:0;border-radius:var(--arrondi);background:var(--accent);color:var(--texteaccent);font-family:var(--policetitres);font-weight:700;font-size:1.05rem;padding:0 1.6rem;cursor:pointer}
.boutonsignal:hover{background:var(--accentfonce)}
.messageconfirmation{background:var(--accentclair);border:1px solid var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux);font-family:var(--policetitres)}

/* == Pied de page == */
.piedpage{background:var(--fondcarte);border-top:1px solid var(--filet);margin-top:var(--espacequatre);font-size:.9rem;color:var(--encredouce)}
.piedpage > div{max-width:var(--largeurpage);margin:0 auto;padding:var(--espacetrois) var(--espacedeux)}
.piedpage nav ul{list-style:none;margin:0 0 var(--espacedeux);padding:0;display:flex;flex-wrap:wrap;gap:var(--espacedeux)}
.piedpage a{color:var(--encredouce)}
.piedpage a:hover{color:var(--accent)}
.mentionpied{margin:0}

/* == Divers == */
.resultatsrecherche article{border-bottom:1px solid var(--filet);padding:var(--espacedeux) 0}
.resultatsrecherche h2{font-size:1.15rem;margin-bottom:.3rem}
.barrepages{display:flex;gap:.5rem;justify-content:center;padding:var(--espacetrois) 0;font-family:var(--policetitres)}
.barrepages a,.barrepages span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1.5px solid var(--filet);border-radius:var(--arrondi);text-decoration:none}
.barrepages .current{background:var(--accent);color:var(--texteaccent);border-color:var(--accent)}

/* == Procédés repris de la référence (P-203), adaptés au sujet == */
/* Sur-titre en pastille : annonce la nature de la section avant le titre. */
.surtitre{display:inline-block;margin:0 0 .7rem;padding:.28rem .75rem;border-radius:999px;background:var(--accentclair);color:var(--accentfonce);font-family:var(--policetitres);font-weight:700;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}

/* Colonne droite du hero : l'état réel du suivi, seule preuve visible d'emblée. */
.cartepreuve{background:var(--fondpage);border:1px solid var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux)}
.entetepreuve{margin:0 0 var(--espacedeux);padding-bottom:.65rem;border-bottom:1px solid var(--filet);font-family:var(--policetitres);font-weight:700;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--encredouce)}
.listepreuve{list-style:none;margin:0;padding:0;display:grid;gap:var(--espacedeux)}
.listepreuve li{display:flex;align-items:baseline;gap:.75rem}
.chiffrepreuve{min-width:2.2rem;font-family:var(--policetitres);font-weight:800;font-size:1.9rem;line-height:1;color:var(--accent)}
.libellepreuve{font-size:.92rem;color:var(--encredouce)}
.notepreuve{margin:var(--espacedeux) 0 0;padding-top:.85rem;border-top:1px solid var(--filet);font-size:.82rem;color:var(--encredouce)}

/* Barre de résumé pleine largeur : respiration + définition de la marque. */
.barreresume{margin:0;padding:var(--espacedeux);text-align:center;background:var(--fondpage);border-bottom:1px solid var(--filet);font-size:.95rem;color:var(--encredouce)}
.barreresume strong{color:var(--encre);font-family:var(--policetitres);font-weight:700}

/* Titre de section et son action, sur la même ligne. */
.entetesection{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--espacetrois);flex-wrap:wrap}
.entetesection > div{max-width:46rem}
.entetesection h2{margin-bottom:.5rem}
.entetesection p{margin:0;color:var(--encredouce)}
.actionsection{display:inline-flex;align-items:center;min-height:44px;padding:0 1.15rem;border-radius:var(--arrondi);background:var(--accent);color:var(--texteaccent);font-family:var(--policetitres);font-weight:700;font-size:.9rem;text-decoration:none;white-space:nowrap}
.actionsection:hover{background:var(--accentfonce)}
.actionsection::after{content:" \2192"}
.verdictvide{grid-column:1/-1;color:var(--encredouce);background:var(--fondcarte);border:1px dashed var(--filet);border-radius:var(--arrondi);padding:var(--espacedeux)}

/* Une seule rupture sombre dans la page — elle pose l'autorité de la méthode. */
.blocsombre{background:var(--encre);border-top:0;border-bottom:0}
.blocsombre h2{color:var(--fondcarte)}
.blocsombre p,.blocsombre ol li{color:#c6ccd0}
.blocsombre ol li strong{color:var(--fondcarte)}
.blocsombre .surtitre{background:rgba(236,223,232,.14);color:#e7d8e4}
.blocsombre ol li::before{background:var(--accentclair);color:var(--accentfonce)}
.lienmethode{color:var(--fondcarte);text-decoration-color:var(--accentclair);text-underline-offset:.25em}
.lienmethode:hover{color:var(--accentclair)}

@media (max-width:60rem){
  .herodouble{grid-template-columns:1fr;gap:var(--espacetrois)}
  .entetesection{align-items:flex-start}
}

/* == Tableaux écrits dans le contenu (récapitulatifs des piliers) ==
   Les rédacteurs produisent un <table> nu : c'est ici qu'il prend sa forme.
   Le conteneur défile seul en petit écran, la page ne défile jamais de côté. */
.contenupage table{width:100%;border-collapse:collapse;margin:var(--espacetrois) 0;font-size:.94rem;background:var(--fondcarte);border:1px solid var(--filet);border-radius:var(--arrondi)}
.contenupage thead th{font-family:var(--policetitres);font-weight:700;text-align:left;background:var(--accentclair);color:var(--encre)}
.contenupage th,.contenupage td{padding:.6rem .9rem;border-bottom:1px solid var(--filet);vertical-align:top}
.contenupage tbody tr:last-child td{border-bottom:0}
.contenupage table a{color:var(--accent)}
@media (max-width:44rem){
  .contenupage table{display:block;overflow-x:auto;white-space:nowrap}
  .contenupage td,.contenupage th{white-space:normal;min-width:8rem}
}

/* == Bloc de fait daté (P-100) — le relevé chiffré en tête de pilier ==
   Écrit par le rédacteur sous la forme <p class="fact" id="…">. Sans cette règle,
   le fait central de la page se lisait comme un paragraphe ordinaire. */
.contenupage .fact{background:var(--accentclair);border-left:4px solid var(--accent);border-radius:0 var(--arrondi) var(--arrondi) 0;padding:var(--espacedeux);margin:var(--espacetrois) 0;font-size:1.02rem;color:var(--encre)}
.contenupage .fact strong{font-family:var(--policetitres);font-weight:700}
.contenupage .fact time{font-variant-numeric:tabular-nums}
.blocsombre .fact{background:rgba(236,223,232,.12);color:var(--fondcarte)}

/* ================================================================== */
/* DIRECTION « DOSSIER D'INSPECTION » — validée par Mathias 21/08/2026  */
/* Le site doit avoir l'air d'un rapport de contrôle, pas d'un blog :   */
/* angles droits, filets marqués, données à chasse fixe, statuts en     */
/* tampons, points de conduite entre un libellé et sa valeur.           */
/* ================================================================== */

@font-face{font-family:'JetBrains Mono';src:url('fonts/mono.woff2') format('woff2');font-weight:500 700;font-style:normal;font-display:swap}

/* Trame de fond : deux filets très pâles, comme un papier réglé. Discret mais présent. */
body{background-image:linear-gradient(var(--trame) 1px,transparent 1px);background-size:100% 2.25rem;background-attachment:local}

/* --- Bandeau de relevé : la ligne d'identification en tête de document --- */
.enteterelevé{display:flex;justify-content:space-between;align-items:center;gap:var(--espacedeux);flex-wrap:wrap;
  padding:.55rem .9rem;border:1px solid var(--filetfort);border-bottom-width:2px;background:var(--fondcarte);
  font-family:var(--policedonnees);font-weight:500;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--encredouce)}
.numerorelevé{color:var(--encre);font-weight:700}
.enteterelevé .marquerelevé{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent);font-weight:700}

/* --- Tampon de statut : l'élément signature du site --- */
.tamponstatut{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;
  border:2px solid var(--accent);box-shadow:inset 0 0 0 1px var(--fondcarte),0 0 0 1px var(--accent);
  background:var(--fondcarte);color:var(--accent);
  font-family:var(--policedonnees);font-weight:700;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;
  transform:rotate(-1.2deg)}
.tamponstatut[data-statut=non],.tamponstatut[data-statut=inconnu]{border-color:var(--filetfort);color:var(--encredouce);box-shadow:inset 0 0 0 1px var(--fondcarte),0 0 0 1px var(--filetfort)}
.tamponstatut[data-statut=inconnu]{border-style:dashed}
.tamponstatut svg{flex:0 0 auto}

/* --- Ligne de fiche : LIBELLÉ ······················ VALEUR --- */
.lignesfiche{list-style:none;margin:var(--espacedeux) 0 0;padding:0;display:grid;gap:.15rem}
.lignesfiche li{display:flex;align-items:baseline;gap:.5rem;font-family:var(--policedonnees);font-size:.8rem;line-height:1.9}
.lignesfiche .libellefiche{color:var(--encredouce);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.lignesfiche .pointsfiche{flex:1;border-bottom:1px dotted var(--filetfort);transform:translateY(-.25rem);min-width:1.5rem}
.lignesfiche .valeurfiche{color:var(--encre);font-weight:700;text-align:right;white-space:nowrap}
.lignesfiche .valeurfiche[data-vide=oui]{color:var(--encredouce);font-weight:500}

/* --- Cartouche de verdict en tête de fiche --- */
.cartoucheverdict{border:1px solid var(--filetfort);border-top:3px solid var(--accent);background:var(--fondcarte);
  padding:var(--espacetrois);margin:0 0 var(--espacetrois)}
.cartoucheverdict .hautcartouche{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--espacetrois);flex-wrap:wrap}
.cartoucheverdict h2{font-size:1rem;margin:0 0 .2rem;font-family:var(--policedonnees);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--encredouce)}

/* --- Bloc de preuve : la capture de la source officielle --- */
.blocpreuve{margin:var(--espacetrois) 0;border:1px solid var(--filetfort);background:var(--fondcarte)}
.blocpreuve figcaption{display:block;padding:.5rem .8rem;border-bottom:1px solid var(--filet);
  font-family:var(--policedonnees);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--encredouce);word-break:break-all}
.blocpreuve img{display:block;width:100%;height:auto;border-top:1px solid var(--filet)}
.blocpreuve .sourcepreuve{padding:.5rem .8rem;border-top:1px solid var(--filet);font-family:var(--policedonnees);font-size:.72rem;color:var(--encredouce)}

/* --- Image de tête d'article --- */
.imagearticle{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border:1px solid var(--filetfort);margin:0 0 var(--espacetrois);background:var(--fondpage)}

/* --- Schémas explicatifs fabriqués --- */
.schemabloc{margin:var(--espacetrois) 0;border:1px solid var(--filetfort);background:var(--fondcarte);padding:var(--espacedeux)}
.schemabloc svg{display:block;width:100%;height:auto}
.schemabloc .legendeschema{margin:.7rem 0 0;font-family:var(--policedonnees);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--encredouce)}

/* --- FAQ dépliante : de vraies questions/réponses, pas des titres empilés --- */
.blocfaq{margin:var(--espacetrois) 0;border-top:2px solid var(--filetfort)}
.questionfaq{border-bottom:1px solid var(--filet);background:var(--fondcarte)}
.questionfaq summary{display:flex;align-items:flex-start;gap:.75rem;padding:.95rem 1rem;cursor:pointer;list-style:none;
  font-family:var(--policetitres);font-weight:700;font-size:1.02rem;color:var(--encre)}
.questionfaq summary::-webkit-details-marker{display:none}
.questionfaq summary::before{content:"+";flex:0 0 1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--accent);color:var(--accent);font-family:var(--policedonnees);font-weight:700;font-size:.95rem;line-height:1}
.questionfaq[open] summary::before{content:"\2212"}
.questionfaq summary:hover{background:var(--accentclair)}
.questionfaq summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.reponsefaq{padding:0 1rem 1.05rem 3.1rem;color:var(--encredouce)}
.reponsefaq p:last-child{margin-bottom:0}

/* --- Angles droits partout : on efface les arrondis de la version précédente --- */
.blocenseigne,.ficheverdict,.cartepreuve,.cadretableau,.contenupage table,.blocpreuve,.schemabloc{border-radius:0}
.blocenseigne{border-color:var(--filet)}
.blocenseigne li a,.actionsection,.boutonchercher,.champenseigne,.formalerte select,.formalerte input[type=email],.formalerte button{border-radius:0}
.surtitre{border-radius:0;font-family:var(--policedonnees);letter-spacing:.1em;border:1px solid var(--accent);background:transparent;color:var(--accent)}
.blocsombre .surtitre{border-color:var(--accentclair)}

/* --- Les chiffres et les dates passent à la chasse fixe --- */
.chiffrepreuve,.verdictdate,.lignedate,.entetepreuve,.libellepreuve,.filariane,.infolecture{font-family:var(--policedonnees)}
.chiffrepreuve{font-weight:700;font-size:1.6rem}
.libellepreuve{font-size:.8rem;letter-spacing:.02em}
.verdictdate{font-size:.76rem;letter-spacing:.03em;text-transform:uppercase}
.notecartouche{margin:var(--espacedeux) 0 0;padding-top:.8rem;border-top:1px solid var(--filet);font-size:.95rem;color:var(--encredouce)}
.lienssource{margin:.7rem 0 0;font-family:var(--policedonnees);font-size:.78rem;letter-spacing:.03em}
.lienssource a{color:var(--accent)}
.entetehub h1{margin-top:var(--espacetrois)}

/* Cartes de verdict de hauteur égale : la grille rangeait des fiches de tailles
   très différentes (une source longue faisait sauter toute la ligne). */
.listeverdicts > li{display:flex}
.ficheverdict{flex:1;height:100%}
.ficheverdict h3{margin-bottom:.35rem}
.ficheverdict .sourceverdict{margin-top:auto;padding-top:.6rem;font-size:.84rem}
.ficheverdict .verdictdate{margin-bottom:.2rem}

/* Petits écrans : une valeur longue (« KFC France — page officielle… ») ne tient pas
   sur la même ligne que son libellé. On empile, et les points de conduite disparaissent. */
@media (max-width:36rem){
  .lignesfiche li{flex-direction:column;align-items:flex-start;gap:.05rem;line-height:1.55;margin-bottom:.55rem}
  .lignesfiche .pointsfiche{display:none}
  .lignesfiche .valeurfiche{white-space:normal;text-align:left}
  .enteterelevé{font-size:.68rem}
  .tamponstatut{transform:none;font-size:.8rem}
  .blocpreuve figcaption{word-break:break-word}
  .reponsefaq{padding-left:1rem}
}

/* ================================================================== */
/* AÉRATION DU CONTENU — les fiches restaient des pavés de texte       */
/* ================================================================== */

/* Vignette dans les cartes de verdict : une carte sans image est un pavé de plus. */
.ficheverdict{padding:0;overflow:hidden}
.vignetteverdict{display:block;line-height:0}
.vignetteverdict img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-bottom:1px solid var(--filet)}
.corpsverdict{display:flex;flex-direction:column;gap:.5rem;padding:var(--espacedeux);flex:1}
.ficheverdict .sourceverdict{margin-top:auto}

/* Respiration générale du texte long */
.contenupage p{line-height:1.78;margin-bottom:1.35rem}
.contenupage li{line-height:1.72;margin-bottom:.45rem}
.contenupage h2{margin-top:var(--espacequatre);padding-top:var(--espacedeux);border-top:2px solid var(--filetfort);font-size:clamp(1.35rem,2.4vw,1.7rem)}
.contenupage h3{margin-top:var(--espacetrois);font-size:1.12rem}
.contenupage h2 + p{font-size:1.06rem}

/* Chapô : le premier paragraphe porte la réponse, il doit se détacher du reste. */
.contenupage > p:first-of-type,.contenupage article > p:first-of-type{font-size:1.16rem;line-height:1.65;color:var(--encre);
  border-left:3px solid var(--accent);padding-left:1.1rem;margin-bottom:var(--espacetrois)}

/* Citations d'enseigne : repérées et détachées automatiquement (voir cslpv_aerer). */
.citationenseigne{margin:var(--espacetrois) 0;padding:1.1rem 1.3rem;background:var(--fondcarte);
  border:1px solid var(--filet);border-left:3px solid var(--accent);font-size:1.04rem;line-height:1.7;color:var(--encre)}
.citationenseigne::before{content:"Ce que l’enseigne écrit";display:block;margin-bottom:.5rem;
  font-family:var(--policedonnees);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--encredouce)}

/* Listes : puces en losange, la forme de la marque */
.contenupage ul:not([class]){list-style:none;padding-left:0}
.contenupage ul:not([class]) > li{position:relative;padding-left:1.5rem}
.contenupage ul:not([class]) > li::before{content:"\25C6";position:absolute;left:0;top:.05em;color:var(--accent);font-size:.7em}
.contenupage ol:not([class]){padding-left:1.4rem}
.contenupage ol:not([class]) > li::marker{font-family:var(--policedonnees);font-weight:700;color:var(--accent)}

/* Le bloc « ce que l'enseigne ne dit pas » : un manque doit se voir */
.contenupage .manque{margin:var(--espacetrois) 0;padding:1.1rem 1.3rem;border:1px dashed var(--filetfort);background:transparent}
.contenupage .manque::before{content:"Ce qui n’est pas publié";display:block;margin-bottom:.5rem;
  font-family:var(--policedonnees);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--encredouce)}

@media (max-width:36rem){
  .contenupage h2{margin-top:var(--espacetrois)}
  .contenupage > p:first-of-type,.contenupage article > p:first-of-type{font-size:1.08rem;padding-left:.85rem}
}

/* Cartouche : une source longue en nowrap poussait toutes les lignes hors du cadre,
   et les valeurs disparaissaient à droite. La valeur peut désormais revenir à la ligne. */
.cartoucheverdict{overflow-wrap:anywhere}
.lignesfiche li{flex-wrap:nowrap;align-items:baseline;padding-left:0}
.lignesfiche li::before{content:none}
.lignesfiche .libellefiche{flex:0 0 auto}
.lignesfiche .valeurfiche{white-space:normal;text-align:right;max-width:62%;line-height:1.5}
.lignesfiche .pointsfiche{min-width:1rem}

/* == Filtres par régime — rangée de pastilles qui défile (procédé mobile, P-203) == */
.filtresregimes{display:flex;gap:.5rem;margin-top:var(--espacetrois);padding-bottom:.35rem;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.filtresregimes::-webkit-scrollbar{display:none}
.pastilleregime{flex:0 0 auto;min-height:40px;padding:0 1rem;border:1.5px solid var(--filet);border-radius:0;
  background:var(--fondcarte);color:var(--encre);cursor:pointer;
  font-family:var(--policedonnees);font-weight:500;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}
.pastilleregime:hover{border-color:var(--accent);color:var(--accent)}
.pastilleregime.pastilleactive{background:var(--accent);border-color:var(--accent);color:var(--texteaccent);font-weight:700}
.pastilleregime:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.blocenseigne[hidden]{display:none!important}

@media (max-width:48rem){
  /* En-tête compact : la recherche du bandeau faisait doublon avec celle du hero
     et mangeait deux lignes en haut de l'écran. Sur mobile, logo + menu suffisent. */
  .entetesite .zonerecherche{display:none}
  .entetesite > div{padding:.55rem var(--espacedeux)}

  /* Vignettes moins hautes : en 4:3 sur 390 px, chaque carte mangeait 292 px d'écran. */
  .vignetteverdict img{aspect-ratio:16/9}
  .imageenseigne{aspect-ratio:16/9}

  /* Le sur-titre collait au titre de section : il lui faut PLUS d'air, pas moins. */
  .surtitre{margin-bottom:.95rem}
  .entetesection{gap:var(--espacedeux)}
  .actionsection{width:100%;justify-content:center}
}
.filtresregimes[hidden]{display:none}
