#lum-veil{position:fixed;inset:0;z-index:2147483000;pointer-events:none;-webkit-backdrop-filter:none;backdrop-filter:none}.lum-ctl{position:fixed;right:22px;bottom:84px;z-index:2147483600;font-family:var(--fm,system-ui)}.lum-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--hair,rgba(120,180,250,.18));background:rgba(14,26,44,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--gold-l,#F0CE82);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .25s,border-color .2s}.lum-btn:hover{transform:translateY(-2px);border-color:var(--gold-l,#F0CE82)}.lum-btn:focus-visible{outline:2px solid var(--gold-l,#F0CE82);outline-offset:3px}.lum-panel{position:absolute;right:0;bottom:56px;width:214px;background:rgba(11,20,34,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--hair,rgba(120,180,250,.18));border-radius:14px;padding:14px 16px;box-shadow:0 18px 48px rgba(0,0,0,.55)}.lum-panel[hidden]{display:none}.lum-h{font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-l,#F0CE82);margin:0 0 10px;font-weight:600}.lum-range{width:100%;accent-color:var(--gold-l,#F0CE82);cursor:pointer}.lum-presets{display:flex;gap:6px;margin-top:12px}.lum-presets button{flex:1;font-size:0.6875rem;padding:6px 4px;border-radius:8px;border:1px solid var(--hair,rgba(120,180,250,.18));background:transparent;color:rgba(245,247,250,.82);cursor:pointer;transition:background .2s,border-color .2s}.lum-presets button:hover{border-color:var(--gold-l,#F0CE82);background:rgba(240,206,130,.1)}@media (max-width:640px){.lum-ctl{bottom:96px;right:16px}}
/* ============ Impression : lecture en pleine lumiere ============ */
@media print{
html,body{background:#fff!important;color:#111!important}
body::before,body::after{display:none!important}
.subland,.grain,#preloader,#nav,.nav,.nav.nx,#nezBar,#secrail,#ckn,#cmdk,#homeFab,.lum-ctl,.scrollcue,.diapo,.pgh-art,.cart-btn,.nx-mega,.pole-subnav,.ttg i,.cta-band,#cta-band,.flip-hint{display:none!important}
main:not(#_),section:not(#_),article:not(#_),footer:not(#_),header:not(#_){background:#fff!important;box-shadow:none!important;clip-path:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-color:#ccc!important;text-shadow:none!important}
.reveal{opacity:1!important;transform:none!important;transition:none!important}
h1:not(#_),h2:not(#_),h3:not(#_),h4:not(#_),h5:not(#_),b:not(#_),strong:not(#_),dt:not(#_){color:#000!important;text-shadow:none!important;-webkit-text-fill-color:#000!important;background:none!important}
p:not(#_),li:not(#_),span:not(#_),td:not(#_),th:not(#_),i:not(#_),em:not(#_),small:not(#_),dd:not(#_),figcaption:not(#_),blockquote:not(#_),caption:not(#_),label:not(#_),div:not(#_){color:#222!important;text-shadow:none!important}
h1 em:not(#_),h2 em:not(#_),h3 em:not(#_){color:#7a5c14!important}
a:not(#_){color:#1B4E8C!important;text-decoration:underline}
main a[href^="http"]::after{content:" (" attr(href) ")";font-size:.72em;color:#666!important}
.card:not(#_),[class*="card"]:not(#_),[class*="panel"]:not(#_),.pgh-kpi:not(#_){background:#fff!important;border:1px solid #bbb!important;box-shadow:none!important}
table{border-collapse:collapse!important}
td:not(#_),th:not(#_){border:1px solid #999!important;background:#fff!important}
.foot-desc:not(#_):not(#__),footer p:not(#_):not(#__),footer a:not(#_):not(#__){color:#222!important}
img{max-width:100%!important}
*{animation:none!important}
}

/* Ch231 : variateur reactive - le pilote JS existe desormais (u_cd226c00eb4b.js), le masque universel est leve */

/* iOS safe-area : les commandes flottantes remontent au-dessus de l'indicateur d'accueil et s'ecartent des bords arrondis. No-op sur les appareils sans zone sure. */
@supports(bottom:env(safe-area-inset-bottom)){.lum-ctl:not(#_){margin-bottom:env(safe-area-inset-bottom);margin-right:env(safe-area-inset-right)}}

/* Ch231b : etat selectionne des prereglages du variateur — sans cette regle, seul l'anneau de focus distingue le niveau actif */
.lum-presets button[aria-pressed="true"]{border-color:var(--gold-l,#F0CE82);background:rgba(240,206,130,.14);color:var(--gold-l,#F0CE82);font-weight:600}

/* ===== Ch234 : trois familles d'encre restee sombre-sur-sombre ou claire-sur-clair ======
   Mesure au pixel peint (le controle axe ne voit pas ces cas : il n'evalue pas le fond
   reellement peint sous un degrade ou une image). */

/* 1. Rail de sommaire : .axl est un <b>, donc capture par la regle generale
   « html.et-jlight b{color:#10161F} » — encre quasi noire sur la pastille bleu nuit
   du rail, 1,02:1, sur toutes les pages de carnet. Le rail garde son encre claire. */
html.et-jlight #secrail b:not(#_):not(#__),html.et-jlight #secrail .axl:not(#_):not(#__),
html.et-plight #secrail b:not(#_):not(#__),html.et-plight #secrail .axl:not(#_):not(#__){color:rgba(245,247,250,.92)!important}

/* 2. Bandeau precedent/suivant (nav.pgr) : les regles claires posees jadis visaient
   .pgr-t et .pgr-dir, deux classes qui n'existent pas dans ce balisage — les vraies
   sont .ttl et .dir. Le titre restait blanc sur carte claire (1,15:1). */
html.et-plight .pgr .ttl:not(#_):not(#__),html.et-jlight .pgr .ttl:not(#_):not(#__){color:#10161F!important}
html.et-plight .pgr .dir:not(#_):not(#__),html.et-jlight .pgr .dir:not(#_):not(#__){color:#6B500F!important}

/* 3. Filtres de la boutique : seule la puce active (fond dore) avait une encre claire ;
   les puces inactives gardaient l'encre du theme sombre sur fond creme (1,24:1). */
html.et-plight .chip:not(.on):not(#_):not(#__){color:#2A3648!important;border-color:rgba(26,35,48,.28)!important}
html.et-plight .chip:not(.on):hover:not(#_):not(#__){color:#10161F!important;border-color:rgba(26,35,48,.5)!important}

/* 4. Boutique : la barre de segments (.seg) souffrait du meme mal que les puces de
   categorie — seule l'option active avait une encre claire, les autres restaient en
   encre de theme sombre sur creme (1,3:1). */
html.et-plight .seg button:not(.on):not(#_):not(#__){color:#2A3648!important;border-color:rgba(26,35,48,.28)!important}
html.et-plight .seg button:not(.on):hover:not(#_):not(#__){color:#10161F!important;border-color:rgba(26,35,48,.5)!important}

/* ===== Ch235 : voile de lisibilite du heros de page (header.pghero) =================
   Le voile vertical existant part de rgba(14,22,38,.24) en haut. Sur les photos a ciel
   clair (raffinerie de jour, entrepot, station), le fil d'Ariane et le surtitre tombent
   a 2,0:1 et le titre a 2,84:1 — mesure sur les pixels de glyphe reellement peints,
   ombre portee comprise, pas sur la valeur CSS. Defaut present dans les DEUX themes.
   On ajoute un voile horizontal ancre du cote du texte : la photo garde sa presence a
   droite, la colonne de texte gagne un fond. z-index -1 : le voile passe au-dessus de
   l'image de fond de l'element mais reste sous le contenu en flux. */
header.pghero:not(#_){position:relative}
/* Le crochet est ::before, pas ::after : s_fa541870c6.css reserve deja ::after au filet
   dore de 1 px en haut du heros (height:1px) — un voile pose la est ecrase a un trait.
   Recette reprise du precedent pose sur pole-enerchimie-en (isolation + z-index -1),
   generalisee aux deux themes puisque le defaut existe dans les deux. */
header.pghero:not(#_){isolation:isolate}
header.pghero:not(#_)::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;
  opacity:1!important;filter:none!important;
  background:linear-gradient(90deg,rgba(6,11,20,.72) 0%,rgba(6,11,20,.58) 38%,rgba(6,11,20,.26) 68%,rgba(6,11,20,.06) 100%),
             linear-gradient(180deg,rgba(6,11,20,.34) 0%,rgba(6,11,20,.10) 42%,rgba(6,11,20,.30) 100%)}
/* le fil d'Ariane du heros avait recu text-shadow:none — c'est justement lui qui portait
   sa lisibilite sur photo. On la lui rend. */
header.pghero .bcrumb span:not(#_),header.pghero .bcrumb a:not(#_),
header.pghero .crumb span:not(#_),header.pghero .crumb a:not(#_){text-shadow:0 1px 10px rgba(0,0,0,.65)!important}

/* ===== Ch238 : les tuiles restees hors du verre rejoignent la famille =================
   Constat mesure avant travaux : la famille de 80 classes du bloc tuiles-immersion (ch.141)
   est bien vitree partout — fond transparent, lavis, flou d'arriere-plan, filet fin. Mais
   dix classes qui sont visuellement des tuiles n'y avaient jamais ete inscrites et gardaient
   un fond plein : cartes de comparaison, indicateurs de heros et de projets, cartes contact,
   cartes d'application. (Les .hpcard de l'accueil ont ete ecartees a la contre-epreuve :
   ce sont des boutons d'appel a l'action colores, pas des tuiles — voir MAINTENANCE ch.238.) On leur applique LES MEMES valeurs que
   la famille, pas un second systeme : harmoniser, c'est rejoindre l'existant. */
html:where([data-eh~=eh10]):not(.ehz) :is(.cmp-c,.ppj-kpi,.pgh-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel):not(#_):not(#__):not(#___):not(#____){
  background-color:transparent!important;
  background-image:linear-gradient(180deg,rgba(252,250,246,.56) 0%,rgba(252,250,246,.40) 100%)!important;
  border-color:rgba(26,35,48,.12)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 20px 40px -30px rgba(30,24,10,.42)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.35)!important;backdrop-filter:blur(18px) saturate(1.35)!important}
html:not(.et-plight):not(.et-jlight):where([data-eh~=eh10]):not(.ehz) :is(.cmp-c,.ppj-kpi,.pgh-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel):not(#_):not(#__):not(#___):not(#____){
  background-image:linear-gradient(180deg,rgba(9,15,27,.66) 0%,rgba(9,15,27,.54) 100%)!important;
  border-color:rgba(255,255,255,.15)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 22px 46px -30px rgba(0,0,0,.6)!important}
/* le texte secondaire de ces tuiles suit la meme regle d'eclaircissement que la famille */
html:not(.et-plight):not(.et-jlight):where([data-eh~=eh10]):not(.ehz) :is(.cmp-c,.ppj-kpi,.pgh-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel) :is(p,li,dd,span):not(#_):not(#__):not(#___):not(#____){
  color:#D9E2EE!important;-webkit-text-fill-color:#D9E2EE!important}
@media print{ :is(.cmp-c,.ppj-kpi,.pgh-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel):not(#_):not(#__):not(#___):not(#____){background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;border-color:#bbb!important} }

/* Ch238 : etiquettes de la carte reseau (texte SVG). En theme clair, leur encre restait
   celle du theme sombre — blanc a 78 % sur une carte pale, 2,74:1 : les points s'affichaient,
   pas les noms de villes. Defaut jamais vu jusqu'ici parce que le banc de mesure lisait
   color et non fill sur le texte SVG ; l'angle mort est comble au meme chapitre. */
html.et-plight .avnet-lab:not(#_):not(#__),html.et-jlight .avnet-lab:not(#_):not(#__){fill:#25314A!important;color:#25314A!important}


/* Ch238 : les indicateurs du heros (.pgh-kpi) sont poses sur la photo, pas sur une section.
   Le verre clair de la famille n'y suffit pas : blanc gras mesure a 2,7:1 sur les zones
   claires de l'image — defaut anterieur (deja signale au ch.234) que le passage au verre
   rendait systematique. Ils gardent le verre, mais teinte nuit dans les deux themes,
   comme le heros lui-meme qui reste photographique en clair comme en sombre. */
header.pghero :is(.pgh-kpi):not(#_):not(#__):not(#___):not(#____):not(#_____),
html.et-plight header.pghero :is(.pgh-kpi):not(#_):not(#__):not(#___):not(#____):not(#_____),
html.et-jlight header.pghero :is(.pgh-kpi):not(#_):not(#__):not(#___):not(#____):not(#_____){
  background-color:transparent!important;
  background-image:linear-gradient(180deg,rgba(9,15,27,.64) 0%,rgba(9,15,27,.52) 100%)!important;
  border-color:rgba(255,255,255,.20)!important}

/* ============================ Chapitre 239 ============================
   Revue de contraste au banc exact : encre lue dans la feuille de style, sol lu au
   pixel sur la capture, opacite de chaque pixel de glyphe mesuree par difference
   blanc/noir. 21 810 elements passes en revue sur 160 pages et deux themes.
   Les correctifs ci-dessous traitent les familles ou le texte tombait sous 3:1. */

/* 239.1 — Bandeau de tete des carnets. Le voile valait 24 % en haut : sur une photo
   claire (feuillage, casque orange, ciel), le retour, le selecteur de langue et la
   marque tombaient entre 1,75 et 2,55 pour 1. Le voile est pose en ::before pour ne
   pas se battre avec le raccourci background des pages, qui est en !important. */
header.jtop:not(#_){isolation:isolate}
header.jtop:not(#_)::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  opacity:1!important;filter:none!important;
  background:linear-gradient(180deg,rgba(6,11,20,.60) 0%,rgba(6,11,20,.54) 100%)}

/* 239.2 — Rail de sections. Le libelle de la section active restait ouvert en
   permanence, large de 340 px : mesure a 1180, 1280, 1366, 1440 et 1600 px, la
   pastille recouvrait le texte de l'article a chaque fois. L'etat actif se lit
   toujours a la pastille et a sa couleur ; le libelle ne s'ouvre plus qu'au survol
   ou au clavier. */
#secrail a.on:not(:hover):not(:focus-visible) .axl:not(#_):not(#__){max-width:0!important;opacity:0!important;margin-left:0!important}

/* 239.3 — Panneaux de verre poses sur la photo du heros. Le verre laissait passer un
   ciel clair : « Vous etes... », « Trajectoire de capital », les sous-titres de
   l'echelle et les intitules du fil de chantiers se mesuraient entre 1,01 et 1,51.
   Le verre est conserve ; c'est ce qui le traverse qui est assombri, plus une encre
   claire et un halo pour affranchir ces libelles du hasard de l'image. */
.hero .router:not(#_):not(#__),.hero aside.snap:not(#_):not(#__),.hero /* Les deux jumeaux divergeaient : le fil anglais avait un fond nuit, le francais un
   verre blanc a 55 %. L'encre claire posee au 239.9 devenait illisible sur le francais
   (2,59). Les deux reprennent le fond nuit de la version anglaise — parite retablie. */
#chantiers-nav:not(#_):not(#__){
  background-color:transparent!important;
  background-image:linear-gradient(180deg,rgba(10,16,28,.93) 0%,rgba(10,16,28,.86) 100%)!important;
  border-color:rgba(255,255,255,.16)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.2) brightness(.42)!important;
  backdrop-filter:blur(10px) saturate(1.2) brightness(.42)!important}
.hero .router-h:not(#_):not(#__),.hero .snap-h:not(#_):not(#__),
.hero .ladder .step i:not(#_):not(#__),.hero #chantiers-nav .cn-lbl:not(#_):not(#__){
  color:#DCE6F4!important;-webkit-text-fill-color:#DCE6F4!important;
  text-shadow:0 1px 2px rgba(4,8,16,.95),0 0 10px rgba(4,8,16,.8)!important}

/* 239.4 — Plancher de lisibilite pour la famille de verre du ch.238. Une tuile posee
   sur une photo heritait du contraste de l'image : encre claire sur zone claire en
   sombre, encre foncee sur zone foncee en clair. On ne change ni la teinte ni la
   transparence : on tonalise ce que le verre laisse passer, vers la nuit en theme
   sombre, vers le jour en theme clair. La photo reste lisible derriere. */
html:not(.et-plight):not(.et-jlight):where([data-eh~=eh10]):not(.ehz) :is(.cmp-c,.ppj-kpi,.pgh-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel):not(#_):not(#__):not(#___):not(#____){
  -webkit-backdrop-filter:blur(18px) saturate(1.35) brightness(.5)!important;
  backdrop-filter:blur(18px) saturate(1.35) brightness(.5)!important}
html:is(.et-plight,.et-jlight):where([data-eh~=eh10]):not(.ehz) :is(.cmp-c,.ppj-kpi,.fp-card,.ct-card,.dx-card,.epw-card,.app-card,.app-panel):not(#_):not(#__):not(#___):not(#____){
  -webkit-backdrop-filter:blur(18px) saturate(1.15) brightness(1.5)!important;
  backdrop-filter:blur(18px) saturate(1.15) brightness(1.5)!important}

/* 239.5 — Chiffres a degrade de la brochure. Le motif clip sur le texte etait pale ;
   pose sur le fond creme du theme clair, « 250 kb/d » se mesurait a 1,00 pour 1 —
   litteralement invisible. En theme clair les chiffres reprennent une encre pleine. */
html:is(.et-plight,.et-jlight) .bx233:not(#_):not(#__){
  background-image:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;
  color:#7A570E!important;-webkit-text-fill-color:#7A570E!important}

/* 239.6 — Renforcements poses dans une bande sombre. La regle generale du theme clair
   (b,strong,h1,h2,h3 en #10161F) frappait aussi le texte des bandeaux restes nuit :
   « le format » se mesurait a 1,21 sur paiements-etats. */
html:is(.et-plight,.et-jlight) .pgh-main .pgl strong:not(#_):not(#__),
html:is(.et-plight,.et-jlight) .pgh-main .pgl b:not(#_):not(#__){
  color:#F2C879!important;-webkit-text-fill-color:#F2C879!important}

/* 239.7 — Deux encres bleues trop sombres pour le fond nuit qui les porte :
   le numero des cartes ESG (#1B4E8C sur #0D1423) et le sur-titre de section de
   societe.html (#5AA7F0 sur une photo de sable). */
html:not(.et-plight):not(.et-jlight) .esg-card .v:not(#_):not(#__){color:#5AA7F0!important}
html:not(.et-plight):not(.et-jlight) .sk:not(#_):not(#__){color:#9CC7F6!important;text-shadow:0 1px 2px rgba(4,8,16,.9),0 0 10px rgba(4,8,16,.7)!important}

/* 239.8 — correction de ma propre erreur, posee quelques minutes plus tot dans ce meme
   chapitre : la regle .sk ci-dessus etait ecrite sans condition de theme. Un bleu clair
   pose sur le creme du theme clair : 1,27 pour 1 sur ar.html, la ou il n'y avait aucun
   defaut avant mon passage. Elle est desormais reservee au theme sombre. Rappel utile :
   une encre claire ne se pose jamais sans dire sur quel fond. */

/* 239.9 — Fil de chantiers de projets.html. Le selecteur du 239.3 le cherchait dans le
   heros ; il vit en realite dans .pjwrap. Intitules et liens restaient a 1,22 et 1,40. */
/* Les deux jumeaux divergeaient : le fil anglais avait un fond nuit, le francais un
   verre blanc a 55 %. L'encre claire posee au 239.9 devenait illisible sur le francais
   (2,59). Les deux reprennent le fond nuit de la version anglaise — parite retablie. */
#chantiers-nav:not(#_):not(#__){
  background-color:transparent!important;
  background-image:linear-gradient(180deg,rgba(10,16,28,.93) 0%,rgba(10,16,28,.86) 100%)!important;
  border-color:rgba(255,255,255,.16)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.2) brightness(.42)!important;
  backdrop-filter:blur(10px) saturate(1.2) brightness(.42)!important}
#chantiers-nav .cn-lbl:not(#_):not(#__){color:#DCE6F4!important;-webkit-text-fill-color:#DCE6F4!important;
  text-shadow:0 1px 2px rgba(4,8,16,.95),0 0 10px rgba(4,8,16,.8)!important}
#chantiers-nav a:not(#_):not(#__){color:#F2F6FC!important;-webkit-text-fill-color:#F2F6FC!important;
  text-shadow:0 1px 2px rgba(4,8,16,.9)!important}

/* 239.10 — Le lien du chapeau de la FAQ, or fonce sur une texture de sable : 1,10 avant
   le renfort du voile, 1,68 apres. L'or clair du theme sombre, avec halo, le porte au-dela
   du seuil sans changer la couleur de la marque. */
.hero .lead a:not(#_):not(#__){color:#F0CE82!important;-webkit-text-fill-color:#F0CE82!important;
  text-shadow:0 1px 2px rgba(4,8,16,.92),0 0 10px rgba(4,8,16,.75)!important;
  text-decoration-color:rgba(240,206,130,.6)!important}

/* 239.11 — Tuiles .gtt-c du pole GreenTech : meme verre que la famille du ch.238 mais
   jamais inscrites dedans. En theme clair, le vert d'accent tombait a 2,31 sur la photo. */
.gtt-c:not(#_):not(#__){
  -webkit-backdrop-filter:blur(18px) saturate(1.2) brightness(.5)!important;
  backdrop-filter:blur(18px) saturate(1.2) brightness(.5)!important}
.gtt-c em:not(#_):not(#__),.gtt-c span:not(#_):not(#__),.gtt-c p:not(#_):not(#__){
  color:#8FE9C4!important;-webkit-text-fill-color:#8FE9C4!important}

/* ============================ Chapitre 241 ============================
   Etalonnage des encres restees dans la bande 3,0-4,5 apres le ch.239. Aucune n'etait
   invisible ; toutes passaient sous le seuil AA pour du petit texte. Les valeurs
   ci-dessous visent 6:1 sur leur fond habituel, marge prise pour les fonds tramés. */

/* 241.1 — signature de la marque dans la barre, theme clair (4,25) */
html:is(.et-plight,.et-jlight) .nav .brand-tx small:not(#_):not(#__):not(#___),
html:is(.et-plight,.et-jlight) .nav-in .brand-tx small:not(#_):not(#__):not(#___){color:#39424F!important}

/* 241.2 — etiquette de partage (3,81) */
html:is(.et-plight,.et-jlight) .share-k:not(#_):not(#__):not(#___){color:#454F62!important}

/* 241.3 — sens de pagination des communiques et de la FAQ (3,88) */
html:is(.et-plight,.et-jlight) .pgr .dir:not(#_):not(#__):not(#___){color:#55400C!important}

/* 241.4 — note ESG et liens bleus des sections en theme sombre (3,53) */
html:not(.et-plight):not(.et-jlight) .esg-note a:not(#_):not(#__):not(#___),
html:not(.et-plight):not(.et-jlight) .epw a:not(#_):not(#__):not(#___){color:#9CC7F6!important}

/* 241.5 — intitules des cartes ESG en theme sombre (3,82) */
html:not(.et-plight):not(.et-jlight) .esg-card .k:not(#_):not(#__):not(#___){color:#A7B4C8!important}

/* 241.6 — vert des etiquettes de norme en theme sombre (3,70) */
html:not(.et-plight):not(.et-jlight) .tag b:not(#_):not(#__):not(#___){color:#8FE9C4!important}

/* 241.7 — bleu des liens de section en theme clair (3,27 sur la boutique) */
html:is(.et-plight,.et-jlight) body > section a:not(#_):not(#__):not(#___){color:#10406F!important}

/* 241.8 — sur-titre rose des cartes de la brochure (4,35 clair / 4,41 sombre).
   Premiere tentative fautive, corrigee ici : j'avais fonce le rose pour le theme clair
   sans verifier le fond. Ces cartes restent nuit dans les deux themes — le rose fonce y
   est tombe a 1,78, bien pire que le defaut d'origine. Meme erreur qu'au 239.7 : une
   encre ne se choisit pas sans regarder ce qu'il y a derriere. Rose clair partout. */
html .adx .eyebrow:not(#_):not(#__):not(#___){color:#E9A8D4!important}

/* 241.9 — liens or du corps de page en theme clair (3,89 sur carrieres) */
html:is(.et-plight,.et-jlight) main a:not(#_):not(#__):not(#___)[style*="gold"],
html:is(.et-plight,.et-jlight) .pgl a:not(#_):not(#__):not(#___),
html:is(.et-plight,.et-jlight) main p a:not(#_):not(#__):not(#___){color:#5E4409!important}

/* 241.10 — etiquettes sourdes sur fond nuit : sur-titres de suite, partage et legendes
   de tableau restaient entre 3,35 et 4,03 avec l'encre --muted. */
html:not(.et-plight):not(.et-jlight) :is(.pmore-k,.share-k,caption,.esg-sub):not(#_):not(#__):not(#___){color:#AEBBCF!important}

/* 241.11 — derniers ecarts de la bande, releves un a un : lien d'alerte des carrieres,
   sous-titre HSE, liens bleus de paragraphe et vert des etiquettes, tous entre 3,89 et
   4,29 — sous le seuil pour du petit texte, jamais illisibles. */
html:is(.et-plight,.et-jlight) .b111-note a:not(#_):not(#__):not(#___){color:#4F3A08!important}
html:not(.et-plight):not(.et-jlight) .esg-hse .esg-sub:not(#_):not(#__):not(#___){color:#C6D2E4!important}
html:not(.et-plight):not(.et-jlight) main p a:not(#_):not(#__):not(#___){color:#9CC7F6!important}
html:not(.et-plight):not(.et-jlight) .tag b:not(#_):not(#__):not(#___){color:#B4F2D8!important}

/* 241.12 — deux reliquats qui resistaient a une specificite de trois : le lien d'alerte
   des carrieres, servi par une regle de page, et les mentions en petit du theme clair. */
html:is(.et-plight,.et-jlight) .b111-note a:not(#_):not(#__):not(#___):not(#____):not(#_____){color:#4F3A08!important}
html:is(.et-plight,.et-jlight) small:not(#_):not(#__):not(#___):not(#____){color:#454F62!important}

/* ————————————————————————————————————————————————————————————
   Ch585 — le mini-site arabe et la page 404 gardaient sable-texture.webp
   comme fond de page et comme fond de bande de titre. Ces neuf pages ne
   chargent pas nav_a.css : le champ de lumiere du 573 et le panneau de
   verre du 585 leur sont donnes ici. Les regles en ligne de ces pages
   portent !important ; la specificite ci-dessous les depasse.
   ———————————————————————————————————————————————————————————— */
html .rootland:not(#_):not(#__):not(#___){
  background:
    radial-gradient(46% 50% at 12% 16%, rgba(219,174,74,.44), transparent 64%),
    radial-gradient(42% 48% at 88% 10%, rgba(90,167,240,.38), transparent 62%),
    radial-gradient(56% 58% at 82% 88%, rgba(31,164,150,.36), transparent 64%),
    radial-gradient(50% 54% at 18% 92%, rgba(224,162,78,.30), transparent 62%),
    radial-gradient(34% 38% at 52% 50%, rgba(120,90,220,.16), transparent 64%),
    #0A1220 !important;
}
/* le mini-site arabe se declare dark-only (supported-color-schemes: dark) :
   son champ reste sombre dans les deux themes, sans quoi le blanc du titre
   tomberait a 3.0 sur un fond creme — mesure au pixel, chapitre 585. */
html.et-plight:not([lang="ar"]) .rootland:not(#_):not(#__):not(#___),
html.et-jlight:not([lang="ar"]) .rootland:not(#_):not(#__):not(#___){
  background:
    radial-gradient(46% 50% at 12% 16%, rgba(219,174,74,.20), transparent 64%),
    radial-gradient(42% 48% at 88% 10%, rgba(90,167,240,.16), transparent 62%),
    radial-gradient(56% 58% at 82% 88%, rgba(31,164,150,.15), transparent 64%),
    radial-gradient(50% 54% at 18% 92%, rgba(224,162,78,.13), transparent 62%),
    rgba(250,247,241,.72) !important;
}
html[lang="ar"] body div.hero:not(#_):not(#__),
html[lang="ar"] header.pghero:not(#_):not(#__){
  background:
    linear-gradient(256deg,rgba(255,255,255,.115) 0%,rgba(255,255,255,.038) 24%,rgba(255,255,255,0) 47%),
    radial-gradient(74% 130% at 95% -10%, rgba(219,174,74,.22), transparent 62%),
    radial-gradient(68% 122% at 2% 2%, rgba(90,167,240,.19), transparent 60%),
    radial-gradient(88% 142% at 21% 114%, rgba(31,164,150,.16), transparent 64%),
    linear-gradient(180deg, rgba(7,12,21,.58) 0%, rgba(7,12,21,.50) 44%, rgba(7,12,21,.72) 100%)
    !important;
  -webkit-backdrop-filter:blur(26px) saturate(1.5) !important;
  backdrop-filter:blur(26px) saturate(1.5) !important;
  border-bottom:1px solid rgba(255,255,255,.11) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.17),
    inset 0 -1px 0 rgba(7,12,21,.55),
    0 26px 64px -34px rgba(7,12,21,.75) !important;
}
/* Le voile creme du theme clair (.82/.90) lavait le champ derriere le panneau
   de verre : le backdrop-filter le captait et le blanc du titre tombait a 3.4
   (7.2 avant le 585 — c etait bien une regression, mesuree, pas supposee).
   Le mini-site arabe etant dark-only, son voile reste sombre partout. */
html[lang="ar"].et-plight .rootland:not(#_):not(#__)::after,
html[lang="ar"].et-jlight .rootland:not(#_):not(#__)::after{
  background:linear-gradient(180deg,rgba(7,12,21,.54) 0%,rgba(7,12,21,.66) 100%) !important}
/* Sur ces pages le panneau ne peut pas compter sur son arriere-plan : le champ
   n entre pas dans la racine de backdrop du heros. En theme clair la fumee doit
   donc se suffire a elle-meme. Valeurs mesurees au pixel. */
html[lang="ar"].et-plight body div.hero:not(#_):not(#__),
html[lang="ar"].et-jlight body div.hero:not(#_):not(#__),
html[lang="ar"].et-plight header.pghero:not(#_):not(#__),
html[lang="ar"].et-jlight header.pghero:not(#_):not(#__){
  background:
    linear-gradient(256deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.03) 24%,rgba(255,255,255,0) 47%),
    radial-gradient(74% 130% at 95% -10%, rgba(219,174,74,.20), transparent 62%),
    radial-gradient(68% 122% at 2% 2%, rgba(90,167,240,.17), transparent 60%),
    radial-gradient(88% 142% at 21% 114%, rgba(31,164,150,.15), transparent 64%),
    linear-gradient(180deg, rgba(7,12,21,.92) 0%, rgba(7,12,21,.88) 44%, rgba(7,12,21,.96) 100%)
    !important;
}
/* Ch585 — meme retrait du badge sur les neuf pages hors nav_a.css. */
html header.pghero:not(#_):not(#__) > .hero-cap:not(#_),
html body div.hero:not(#_):not(#__) > .hero-cap:not(#_){display:none !important}
/* Ch589 — meme correction pour les pages hors nav_a.css. */
@media(max-width:768px){
  html body:where([data-eh~=eh1]):not(#ehz) #ckn:not(#_):not(#__):not(#___){
    bottom:calc(62px + env(safe-area-inset-bottom)) !important;
    z-index:96 !important}
}
/* Ch590 — meme champ pour la 404 et le mini-site arabe (qui reste sombre). */
.rootland:not(#_):not(#__):not(#___){
  background:
    linear-gradient(112deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.012) 22%, rgba(255,255,255,0) 44%),
    radial-gradient(46% 50% at 12% 16%, rgba(219,174,74,.50), transparent 64%),
    radial-gradient(42% 48% at 88% 10%, rgba(90,167,240,.44), transparent 62%),
    radial-gradient(56% 58% at 82% 88%, rgba(31,164,150,.42), transparent 64%),
    radial-gradient(50% 54% at 18% 92%, rgba(224,162,78,.36), transparent 62%),
    radial-gradient(48% 50% at 64% 40%, rgba(120,90,220,.34), transparent 66%),
    radial-gradient(44% 46% at 30% 62%, rgba(46,134,222,.28), transparent 66%),
    #0A1220 !important;
}
html.et-plight:not([lang="ar"]) .rootland:not(#_):not(#__):not(#___),
html.et-jlight:not([lang="ar"]) .rootland:not(#_):not(#__):not(#___){
  display:block !important;
  background:
    radial-gradient(46% 50% at 12% 16%, rgba(219,174,74,.20), transparent 64%),
    radial-gradient(42% 48% at 88% 10%, rgba(90,167,240,.17), transparent 62%),
    radial-gradient(56% 58% at 82% 88%, rgba(31,164,150,.15), transparent 64%),
    radial-gradient(50% 54% at 18% 92%, rgba(224,162,78,.14), transparent 62%),
    rgba(250,247,241,.72) !important;
}

/* 591 : le champ clair laisse passer le motif du fond ; les notes en petit
   corps de .b111 y perdaient 0,15 et passaient sous 4,5. Le remede est leur
   couleur, pas le champ — mesure au coeur des glyphes, chapitre 591. */
html.et-plight:not([lang="ar"]) .b111-lead:not(#_):not(#__):not(#___),
html.et-jlight:not([lang="ar"]) .b111-lead:not(#_):not(#__):not(#___),
html.et-plight:not([lang="ar"]) .b111-c p:not(#_):not(#__):not(#___),
html.et-jlight:not([lang="ar"]) .b111-c p:not(#_):not(#__):not(#___){
  color:#4A5568 !important;
  -webkit-text-fill-color:#4A5568 !important;
}

/* 591 : la note des cartes .exp-c tombait a 4,26 en theme sombre — mesure
   au coeur des glyphes, anterieure au 590. Couleur relevee. */
html:not(.et-plight):not(.et-jlight) .exp-c p:not(#_):not(#__),
html:not(.et-plight):not(.et-jlight) .exp-items span:not(#_):not(#__),
html:not(.et-plight):not(.et-jlight) .exp-note:not(#_):not(#__){
  color:#ACB8CC !important;
  -webkit-text-fill-color:#ACB8CC !important;
}

/* 591 : quatre notes en petit corps heritent de --muted #7C8AA2 en theme
   sombre et mesurent 4,31 a 4,38 au coeur des glyphes — sous le seuil
   depuis leur ecriture, sans rapport avec le champ. Relevees a #93A1B8. */
html:not(.et-plight):not(.et-jlight) .exp-lede:not(#_):not(#__),
html:not(.et-plight):not(.et-jlight) .avk-note:not(#_):not(#__),
html:not(.et-plight):not(.et-jlight) .ppj-note:not(#_):not(#__),
html:not(.et-plight):not(.et-jlight) .c7l:not(#_):not(#__){
  color:#93A1B8 !important;
  -webkit-text-fill-color:#93A1B8 !important;
}

/* 592 : audit — le jeton clair #5A6678 vit sur 15 pages en six familles de
   selecteurs. Le 591 n en avait releve qu une (.b111) ; la mesure trouve
   .cmp-cap a 4,48 sur clients. Toute la famille passe a #4A5568. */
html.et-plight:not([lang="ar"]) .cmp-hint:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) table.cmpt td:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .secc span:not(.secc-k):not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .slac span:not(.sla-v):not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .docl li:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .cmp-cap:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .slac em:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) table.cmpt tbody th small:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) #diapo-cap .dc-zo:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .pe-lead:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .pe-c p:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .pe-st p:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) table.pet td.pe-n:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .pe-cap:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-plight:not([lang="ar"]) .bcrumb a:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .cmp-hint:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) table.cmpt td:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .secc span:not(.secc-k):not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .slac span:not(.sla-v):not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .docl li:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .cmp-cap:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .slac em:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) table.cmpt tbody th small:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) #diapo-cap .dc-zo:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .pe-lead:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .pe-c p:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .pe-st p:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) table.pet td.pe-n:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .pe-cap:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______),
html.et-jlight:not([lang="ar"]) .bcrumb a:not(#_):not(#__):not(#___):not(#____):not(#_____):not(#______){
  color:#4A5568 !important;
  -webkit-text-fill-color:#4A5568 !important;
}
