/* D807-ULTIMATE-V2 — Doctrine Yacine
 * Light only · No dark-on-dark · No white-on-white · No background banners
 * Owned: WEVIA Master · Version 2.0 · 2026-05-15
 * Pattern guard for prod pages — minimal additive layer
 */

:root {
  --d807-bg: #ffffff;
  --d807-bg-soft: #f8f9fb;
  --d807-text: #1a1f3a;
  --d807-text-soft: #5a6480;
  --d807-text-muted: #8b94a7;
  --d807-border: #e5e7eb;
  --d807-primary: #4f46e5;
  --d807-success: #22c55e;
  --d807-warn: #f59e0b;
  --d807-error: #ef4444;
}

/* PATTERN 1 : Body global light */
html[data-d807-theme],
html[data-d807-theme] body {
  background: var(--d807-bg) !important;
  color: var(--d807-text);
}

/* PATTERN 2 : Anti dark-on-dark inside light containers */
[data-d807-light] [style*="color:#000"],
[data-d807-light] [style*="color:black"],
[data-d807-light] [style*="color: #000"],
[data-d807-light] [style*="color:#1a"],
[data-d807-light] [style*="color: #1a"] {
  /* Allowed when bg is light — no-op */
}

/* Force readable text on common light backgrounds */
[style*="background:#fff"] [style*="color:#fff"],
[style*="background:#f"] [style*="color:#f"],
[style*="background-color:#fff"] [style*="color:#fff"] {
  color: var(--d807-text) !important;
}

/* Force readable text on common dark backgrounds */
[style*="background:#000"] [style*="color:#000"],
[style*="background:#1"] [style*="color:#1"],
[style*="background:#2"] [style*="color:#2"],
[style*="background-color:#000"] [style*="color:#000"] {
  color: #ffffff !important;
}

/* === D807-ROOTFIX (2026-05-17) : SAME-ELEMENT white-on-white + dark-on-dark === */
/* Les regles ci-dessus sont DESCENDANTES (espace) = ne matchent pas un seul   */
/* element ayant background ET color. Ces regles SAME-ELEMENT corrigent ca.    */

/* WHITE-ON-WHITE : element unique avec bg clair (#f..) ET texte blanc/clair */
[style*="background:#f"][style*="color:white"],
[style*="background:#f"][style*="color:#fff"],
[style*="background:#f"][style*="color: white"],
[style*="background:#f"][style*="color: #fff"],
[style*="background: #f"][style*="color:white"],
[style*="background: #f"][style*="color:#fff"],
[style*="background-color:#f"][style*="color:white"],
[style*="background-color:#f"][style*="color:#fff"],
[style*="background:#fff"][style*="color:rgba(255"],
[style*="background:#faf7f5"][style*="color:white"] {
  color: var(--d807-text) !important;
}

/* DARK-ON-DARK : element unique avec bg sombre (#0../#1../#2..) ET texte sombre */
[style*="background:#0"][style*="color:#0"],
[style*="background:#0"][style*="color:#1"],
[style*="background:#0"][style*="color:black"],
[style*="background:#1"][style*="color:#0"],
[style*="background:#1"][style*="color:#1"],
[style*="background:#1"][style*="color:black"],
[style*="background:#2"][style*="color:#1"],
[style*="background: #0"][style*="color:#0"],
[style*="background: #1"][style*="color:#1"],
[style*="background-color:#0"][style*="color:#0"],
[style*="background-color:#1"][style*="color:#1"] {
  color: #ffffff !important;
}

/* CSS-CLASS white-on-white : footer/section a une classe + style inline color:white */
/* alors que le D807 sub_filter a deja force le bg en clair */
footer[style*="color:white"], footer[style*="color: white"],
footer[style*="color:#fff"], footer[style*="color: #fff"],
section[style*="background:#f"][style*="color:white"],
[class*="footer"][style*="color:white"],
[class*="footer"][style*="color:#fff"] {
  color: var(--d807-text-soft) !important;
}
/* descendants of these footers stay readable (links keep their own color) */
footer[style*="color:white"] a:not([style*="color"]),
[class*="footer"][style*="color:white"] a:not([style*="color"]) {
  color: var(--d807-primary) !important;
}
/* D830 : boutons/badges bg colore-moyen (#2.. #1.. #3..) + texte sombre = mauvais contraste */
button[style*="background:#2"][style*="color:#1"],
button[style*="background:#2"][style*="color:#0"],
button[style*="background: #2"][style*="color:#1"],
button[style*="background:#3"][style*="color:#1"],
button[style*="background:#1"][style*="color:#1b1b1b"],
a[style*="background:#2"][style*="color:#1"],
[role="button"][style*="background:#2"][style*="color:#1"],
.btn[style*="background:#2"][style*="color:#1"] {
  color: #ffffff !important;
}
/* === END D830 === */

/* D831 : RACINE contraste — bg clair (#f..) + texte clair/pale = illisible */
/* Force texte sombre lisible. Couvre white-on-white ET pale-on-white.       */
[style*="background:#f"][style*="color:#f"],
[style*="background:#f"][style*="color:#e"],
[style*="background:#f"][style*="color:#d"],
[style*="background:#f"][style*="color:#c"],
[style*="background:#f"][style*="color:#9"],
[style*="background:#f"][style*="color:#8"],
[style*="background:#f"][style*="color:white"],
[style*="background:#f"][style*="color: #f"],
[style*="background:#f"][style*="color: #e"],
[style*="background:#f"][style*="color: #9"],
[style*="background:#f"][style*="color: white"],
[style*="background: #f"][style*="color:#f"],
[style*="background: #f"][style*="color:#e"],
[style*="background: #f"][style*="color:white"],
[style*="background-color:#f"][style*="color:#f"],
[style*="background-color:#f"][style*="color:white"] {
  color: #1B1B1B !important;
}
/* badges/labels avec accent pale sur bg clair → garder l accent mais assombrir */
[style*="background:#fef"][style*="color:#ea"],
[style*="background:#fef"][style*="color:#d9"],
[style*="background:#fef3c7"][style*="color:#"],
[style*="background:#f5f3ff"][style*="color:#c"],
[style*="background:#f5f0eb"][style*="color:#88"],
[style*="background:#fafbfc"][style*="color:#9"] {
  color: #1B1B1B !important;
}
/* pink/magenta dark-on-dark (#db2777 bg + #9d174d txt) */
[style*="background:#db2777"][style*="color:#9d"],
[style*="background:#db"][style*="color:#9"] {
  color: #ffffff !important;
}
/* === END D831 === */

/* D832 : RACINE — body/html/section avec background radial-gradient SOMBRE */
/* D807 forçait color #1B1B1B mais laissait le radial-gradient dark = dark-on-dark */
/* On force le fond clair AUSSI sur radial-gradient (L2 ne couvrait que linear). */
html[data-d807-theme], html[data-d807-theme] body,
body[style*="radial-gradient"], html[style*="radial-gradient"],
[style*="background:radial-gradient"], [style*="background: radial-gradient"] {
  background: #faf7f5 !important;
  background-image: none !important;
  background-color: #faf7f5 !important;
}
/* CSS-rule radial-gradient dark dans <style> de la page (cas weval-master-data body) */
/* Force via la regle la plus specifique possible sur body/html */
body:not(.in-iframe body) { background-image: none !important; }
html:not(.in-iframe) body { background: #faf7f5 !important; background-image: none !important; }
/* sections/containers avec radial dark inline */
section[style*="radial-gradient"], div[style*="radial-gradient"],
header[style*="radial-gradient"], main[style*="radial-gradient"] {
  background: #ffffff !important;
  background-image: none !important;
  color: #1B1B1B !important;
}
/* === END D832 === */

/* D833 : RACINE — gradients rgba(NN,NN,NN) sombre + CSS-var fond redefinies dark */
/* Cause: .stat-tile{background:var(--bg2)} ou --bg2=linear-gradient(rgba(27,27,27,0.9)) */
/* Neutralise les fonds gradient rgba sombre inline */
[style*="rgba(27"], [style*="rgba(20"], [style*="rgba(15"],
[style*="rgba(10"], [style*="rgba(0,"], [style*="rgba(30"],
[style*="rgba(40"], [style*="rgba(17"], [style*="rgba(18"] {
  background-image: none !important;
}
/* Cartes/tiles/panels: forcer fond clair + texte lisible (couvre var(--bg*) dark) */
[class*="stat-tile"], [class*="kpi-card"], [class*="metric-card"],
[class*="stat-card"], [class*="info-card"], [class*="data-card"],
[class*="num-card"], [class*="count-card"], [class*="tile"] {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #e5e7eb !important;
}
[class*="stat-tile"] *, [class*="kpi-card"] *, [class*="metric-card"] *,
[class*="stat-card"] *, [class*="tile"] * {
  background-image: none !important;
}
/* labels/values dans ces cartes: forcer contraste lisible si trop pale/sombre */
[class*="stat-tile"] [class*="l"], [class*="stat-tile"] [class*="lbl"],
[class*="kpi-card"] [class*="label"], [class*="tile"] [class*="label"] {
  color: #5a6480 !important;
}
/* === END D833 === */

/* D836 : SYSTÉMIQUE — éléments légitimement DARK (bg sombre) gardent texte CLAIR */
/* Cause: D807 forçait color:#1B1B1B même sur .kpi-biz-bar{bg:linear-gradient(#1a1a1a)} */
/* = dark-on-dark. Fix: bg sombre → texte #fff (respecter scheme dark de l'élément) */

/* gradient sombre (linear/radial) sur un élément → son texte + descendants = blanc */
[style*="linear-gradient"][style*="#1a1a"], [style*="linear-gradient"][style*="#0a0"],
[style*="linear-gradient"][style*="#1a1a1a"], [style*="linear-gradient"][style*="#2d2d"],
[style*="radial-gradient"][style*="#0f1c"], [style*="radial-gradient"][style*="#0a0"],
[class*="kpi-biz"], [class*="hero-dark"], [class*="dark-bar"], [class*="dark-strip"] {
  color: #ffffff !important;
}
[class*="kpi-biz"] *, [class*="hero-dark"] *, [class*="dark-bar"] * {
  color: #ffffff !important;
}
/* CSS-rule based: élément avec background gradient sombre dans <style> page */
/* On cible par classe commune des barres/strips/badges dark */
.kpi-biz-bar, .kpi-biz-bar *, .kpi-biz-item, .kpi-biz-item *,
.kpi-biz-grid, .kpi-biz-grid *, .badge-canon, .badge-canon *,
.hero-strip-dark, .hero-strip-dark *, .dark-header, .dark-header * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
/* exception: liens gardent une couleur visible sur fond dark */
.kpi-biz-bar a, [class*="kpi-biz"] a, [class*="hero-dark"] a {
  color: #a5d8ff !important;
  -webkit-text-fill-color: #a5d8ff !important;
}
/* === END D836 === */

/* D838 : spécificité ÉCRASANTE pour battre d700-universal-contrast-guard */
/* d700 force [class*="kpi"] → foncé. On gagne avec html body + double sélecteur */
html body .kpi-biz-bar, html body .kpi-biz-bar *,
html body .kpi-biz-item, html body .kpi-biz-item *,
html body .kpi-biz-grid, html body .kpi-biz-grid *,
html body [class*="kpi-biz"], html body [class*="kpi-biz"] *,
html body [class*="hero-dark"], html body [class*="hero-dark"] *,
html body [class*="dark-bar"], html body [class*="dark-bar"] *,
html body .badge-canon, html body .badge-canon * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
html body .kpi-biz-bar a, html body [class*="kpi-biz"] a {
  color: #a5d8ff !important;
  -webkit-text-fill-color: #a5d8ff !important;
}
/* Généralise: TOUT élément dont le bg calculé est sombre (gradient #1a/#0a/#2d)
   et qui a une classe → texte blanc, spécificité html body écrasante */
html body [class][style*="linear-gradient"][style*="#1a1a"],
html body [class][style*="linear-gradient"][style*="#2d2d"],
html body [class][style*="radial-gradient"][style*="#0f1c"] {
  color: #ffffff !important;
}
/* === END D838 === */

/* D843 : RACINE — d812-max-priority force padding:20px!important sur
   [class*="kpi/card/panel"] → cellules status panel 76px = 36px utiles
   = texte tronqué. ID spécificité écrase d812. */
html body #wevia-status-panel,
html body #wevia-status-panel .panel-body,
html body #wevia-status-panel .panel-section,
html body #wevia-status-panel .kpi-grid-3 {
  padding: 0 !important;
}
html body #wevia-status-panel { padding: 14px !important; }
html body #wevia-status-panel .kpi-cell {
  padding: 12px 10px !important;
  min-width: 0 !important;
}
html body #wevia-status-panel .kpi-num,
html body #wevia-status-panel .kpi-lbl {
  padding: 0 !important;
  border: 0 !important;
  margin: 0 !important;
  width: auto !important;
  background: transparent !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
html body #wevia-status-panel .kpi-num { font-size: 16px !important; margin-bottom: 4px !important; }
html body #wevia-status-panel .kpi-lbl { font-size: 10px !important; }
/* grille prend toute la largeur dispo du panneau (420 - 28 padding) */
html body #wevia-status-panel .kpi-grid-3 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}
/* === END D843 === */
/* === END D807-ROOTFIX === */

/* PATTERN 3 : Anti background banner behind text — supprime fonds saturés derrière chiffres */
.d807-no-banner,
[data-d807-no-banner] {
  background: transparent !important;
  background-color: transparent !important;
}

/* PATTERN 4 : Standard cards */
.d807-card {
  background: var(--d807-bg);
  border: 1px solid var(--d807-border);
  border-radius: 12px;
  padding: 16px;
  color: var(--d807-text);
}

.d807-kpi-value {
  font-size: 22px;
  font-weight: 800;
  color: var(--d807-text);
}

.d807-kpi-label {
  font-size: 11px;
  color: var(--d807-text-soft);
  font-weight: 600;
}

/* PATTERN 5 : Status badges */
.d807-badge-ok { background: var(--d807-success); color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 10px; }
.d807-badge-warn { background: var(--d807-warn); color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 10px; }
.d807-badge-err { background: var(--d807-error); color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 10px; }

/* PATTERN 6 : Anti text-shadow blink/glow that may flicker */
.d807-no-blink, [data-d807-no-blink] { animation: none !important; }



/* === D835 SITE-WIDE (2026-05-17) : slate-pale text + hero-title + CTA indigo/indigo === */
/* Pattern réel #1: texte slate-300/400 pâle (#cbd5e1 #cad5e2 rgb(203,213,225)...) sur fond clair = illisible */
html body p, html body li, html body span, html body td, html body div, html body label,
html body figcaption, html body blockquote{
  /* si la couleur calculée est slate pâle, on ne peut pas tester en CSS pur,
     mais on cible les valeurs littérales pâles fréquentes */
}
[style*="color:#cbd5e1"], [style*="color: #cbd5e1"],
[style*="color:#cad5e2"], [style*="color: #cad5e2"],
[style*="color:#94a3b8"], [style*="color: #94a3b8"],
[style*="color:#cdd5e0"], [style*="color: #cdd5e0"],
[style*="color:rgb(203"], [style*="color: rgb(203"],
[style*="color:#9ca3af"], [style*="color: #9ca3af"],
[style*="color:#d1d5db"], [style*="color: #d1d5db"]{
  color:#3a4456 !important;
}
/* paragraphes/FAQ génériques: garantir couleur lisible si fond clair */
html body section p, html body .faq p, html body article p,
html body [class*="faq"] p, html body [class*="answer"]{
  color:#2a3142 !important;
}
/* Pattern réel #2: hero-title blanc/blanc (gradient-clip cassé par guards) */
html body .hero-title, html body h1.hero-title, html body .hero h1{
  -webkit-text-fill-color:#1a1f2e !important;
  color:#1a1f2e !important;
  background:none !important;
  -webkit-background-clip:initial !important;
  background-clip:initial !important;
}
/* si le hero a un fond sombre, alors texte clair (cas inverse) */
html body header.hero[style*="background:#0"] .hero-title,
html body header.hero[style*="background:#1"] .hero-title,
html body .hero[style*="dark"] .hero-title{
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
/* Pattern réel #3: liens/CTA fg indigo foncé sur bg indigo (55,48,163 sur 99,102,241) */
a[class*="banner-ct"], a[class*="banner-cta"], a[class*="-cta"],
a[style*="background:#6366f1"], a[style*="background: #6366f1"],
a[style*="background:rgb(99"], a[style*="background: rgb(99"]{
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
/* skip-link (accessibilité) lisible */
html body .d472-skip-link, html body [class*="skip-link"]{
  color:#ffffff !important; background:#1e293b !important;
}
/* Pattern réel #4: fond blanc moche derrière texte/chiffres sur page non-blanche
   -> rendre transparent les wrappers blancs serrés autour de texte seul */
html body :not(input):not(textarea):not(button):not([class*="card"]):not([class*="panel"]):not([class*="modal"])[style*="background:#fff"]:not([style*="border"]),
html body :not(input):not(textarea):not(button)[style*="background: #fff"]:not([style*="border"]){
  background:transparent !important;
}
/* Pattern #5: anti-clignotage texte (animations/transitions de couleur au load = flicker) */
html body h1, html body h2, html body h3, html body p, html body span, html body a, html body .vm-card{
  animation-name:none !important;
}
html body *{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
/* === END D835 SITE-WIDE === */






/* === D836 GOLIVE v2 (2026-05-17) : id-boost specificity — bat d812/d507/weval-master-theme === */
/* :not(#_d836_) ajoute une spécificité niveau-ID -> gagne tout !important class-level quel que soit l'ordre */
/* 1. skip-link */
html body a#d472-skip-link:not(#_d836_), html body .d472-skip-link:not(#_d836_){
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; background:#1e293b !important;
}
/* 2+3. CTA bannières indigo/indigo -> texte blanc */
html body a.weval-em-banner-cta:not(#_d836_), html body a.wv-gartner-banner-cta:not(#_d836_),
html body .weval-em-banner-cta:not(#_d836_), html body .wv-gartner-banner-cta:not(#_d836_),
html body a[class*="banner-cta"]:not(#_d836_){
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
html body a.weval-em-banner-cta:not(#_d836_) *, html body a.wv-gartner-banner-cta:not(#_d836_) *,
html body a[class*="banner-cta"]:not(#_d836_) *{
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
/* 4. hero-title blanc/blanc -> foncé lisible (bat d507 body header.hero h1) */
html body h1.hero-title:not(#_d836_), html body .hero-title:not(#_d836_),
html body header.hero h1:not(#_d836_), html body .hero h1:not(#_d836_){
  color:#1a1f2e !important; -webkit-text-fill-color:#1a1f2e !important;
  background:none !important; background-image:none !important;
  -webkit-background-clip:initial !important; background-clip:initial !important;
}
html body h1.hero-title:not(#_d836_) b, html body h1.hero-title:not(#_d836_) strong,
html body .hero-title:not(#_d836_) .accent, html body .hero-title:not(#_d836_) em{
  color:#4338ca !important; -webkit-text-fill-color:#4338ca !important;
}
/* 5. span.contact-value adresses */
html body span.contact-value:not(#_d836_), html body .contact-value:not(#_d836_){
  color:#1a1f2e !important; -webkit-text-fill-color:#1a1f2e !important;
}
/* 6. "Simuler vos gains" : <a href=/demo-agents.html style=background:#3730A3> texte=bg -> texte blanc */
html body a[href*="demo-agents"]:not(#_d836_),
html body a[style*="background:#3730A3"]:not(#_d836_),
html body a[style*="background: #3730A3"]:not(#_d836_),
html body a[style*="background:#3730a3"]:not(#_d836_),
html body a[href*="simul"]:not(#_d836_), html body a[class*="roi-cta"]:not(#_d836_),
html body a[class*="gain"]:not(#_d836_), html body .hero-cta:not(#_d836_){
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
html body a[href*="demo-agents"]:not(#_d836_) *,
html body a[style*="background:#3730A3"]:not(#_d836_) *{
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
/* === END D836 GOLIVE v2 === */



/* === D837 DEMO-AGENTS (2026-05-18) : titres forcés couleur-fond + badges indigo/indigo === */
/* clair/clair: titres forcés en rgb(250,247,245) (couleur du fond) -> foncé lisible, id-boost bat le !important guard */
html body h1:not(#_d837_), html body h2:not(#_d837_), html body h3:not(#_d837_),
html body h4:not(#_d837_):not(.fc *):not(.cd *):not(.kpi *), html body [class*="-title"]:not(#_d837_):not(.fc *):not(.cd *):not(.kpi *){
  color:#1a1f2e !important; -webkit-text-fill-color:#1a1f2e !important;
}
html body h2[style*="250, 247, 245"]:not(#_d837_), html body h3[style*="250, 247, 245"]:not(#_d837_),
html body h2[style*="250,247,245"]:not(#_d837_), html body h3[style*="250,247,245"]:not(#_d837_){
  color:#1a1f2e !important; -webkit-text-fill-color:#1a1f2e !important;
}
/* texte vert pâle (74,222,128) sur fond clair -> vert foncé lisible */
html body strong[style*="74, 222, 128"]:not(#_d837_), html body [style*="color:#4ade80"]:not(#_d837_){
  color:#15803d !important; -webkit-text-fill-color:#15803d !important;
}
/* dark/dark: badges Agent X fond indigo #3730A3 + texte foncé -> texte blanc */
html body div[style*="background:#3730A3"]:not(#_d837_), html body div[style*="background: #3730A3"]:not(#_d837_),
html body button[style*="background:#3730A3"]:not(#_d837_),
html body [style*="background:#3730A3"]:not(#_d837_), html body [style*="background:#3730a3"]:not(#_d837_){
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
html body [style*="background:#3730A3"]:not(#_d837_) *{ color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
/* liens indigo/indigo (bp class, See the gaps, Book 30 min) -> blanc ou foncé selon fond */
html body a.bp:not(#_d837_), html body a[class*="bp"]:not(#_d837_){
  color:#ffffff !important; -webkit-text-fill-color:#ffffff !important;
}
html body a.b[style*="background:rgba(250"]:not(#_d837_){
  color:#1a1f2e !important; -webkit-text-fill-color:#1a1f2e !important;
}
/* === END D837 DEMO-AGENTS === */

/* End D807-ULTIMATE-V2 */
/* === D853 : .hero-title invisible (gradient cassé -webkit-text-fill-color:transparent
   gradient cream/blanc sur fond blanc). Guerre de guards (d507/d700 battus).
   Spécificité ID max + neutralisation fill transparent. === */
html body h1.hero-title,
html body h1.hero-title.text-gradient,
html body .hero-title,
html body .hero-title.text-gradient,
html body .hero-title * {
  -webkit-text-fill-color: #1B1B1B !important;
  color: #1B1B1B !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
/* === END D853 === */

/* D860: FORCE ALL hero/page titles dark on light bg */
.wr-hero-title, .wr-hero-inner h1, .wr-hero-inner h2, .wr-hero-inner .hero-title,
.hero-section h1, .hero-section h2, .hero-title, h1.hero-title,
[class*=hero] h1, [class*=hero] h2, [class*=hero] h3,
.wr-hero-inner *, .hero-section *,
h1[class*=title], h2[class*=title],
.page-title, .main-title, .site-title {
  color: #1B1B1B !important;
  -webkit-text-fill-color: #1B1B1B !important;
  background-image: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
}
/* D860: carousel/slide titles */
.carousel-3d-slide h2, .carousel-3d-slide h3, .carousel-3d-slide .title,
[class*=slide] h2, [class*=slide] h3, [class*=card] h2, [class*=card] h3 {
  color: #1B1B1B !important;
  -webkit-text-fill-color: #1B1B1B !important;
}
/* D860: accent on hero */
.wr-hero-title .accent, .hero-title .accent, .hero-title b, .hero-title strong {
  color: #4338ca !important;
  -webkit-text-fill-color: #4338ca !important;
}


/* D860-FIX: homepage hero-title + stat-number WHITE ON WHITE */
.hero-title, h1.hero-title, .hero-title.text-gradient,
.hero-title span, .hero-title b, .hero-title strong {
  color: #1a1f2e !important;
  -webkit-text-fill-color: #1a1f2e !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}
.hero-subtitle {
  color: #4a5468 !important;
  -webkit-text-fill-color: #4a5468 !important;
}
.stat-number, .sp-stat-number, [class*=stat-number],
.stat-value, [class*=stat-val], .counter, [class*=counter] {
  color: #1a1f2e !important;
  -webkit-text-fill-color: #1a1f2e !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
}
.stat-label, .sp-stat-label, [class*=stat-label] {
  color: #4a5468 !important;
  -webkit-text-fill-color: #4a5468 !important;
}
.service-hero-title {
  color: #1a1f2e !important;
  -webkit-text-fill-color: #1a1f2e !important;
}
.service-hero-subtitle {
  color: #4a5468 !important;
  -webkit-text-fill-color: #4a5468 !important;
}




/* === D993 v2 — Fix contrast EXACT selectors (Playwright DOM verified) === */
/* Source: real DOM inspection 2026-05-20 — chains verified */

/* --- aec-100-catalog.html: section.ag-section.dark cards --- */
section.ag-section.dark .ag-domain-card h5,
.ag-section.dark .ag-domain-card h5,
div.ag-domains .ag-domain-card h5 {
  color: #f9fafb !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  -webkit-text-fill-color: #f9fafb !important;
}
section.ag-section.dark .ag-domain-card .cnt,
.ag-section.dark .ag-domain-card .cnt,
div.ag-domains .ag-domain-card .cnt {
  color: #d1d5db !important;
  -webkit-text-fill-color: #d1d5db !important;
}
/* "Tous les agents" purple card - text dark sur purple */
.ag-domain-card[style*="background:#6d28d9"] h5,
.ag-domain-card[style*="background:#7c3aed"] h5,
.ag-domain-card[style*="rgb(109"] h5,
.ag-section .ag-domain-card.all h5,
.ag-section .ag-domain-card.purple h5 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
.ag-domain-card[style*="background:#6d28d9"] .cnt,
.ag-domain-card[style*="background:#7c3aed"] .cnt,
.ag-domain-card[style*="rgb(109"] .cnt,
.ag-section .ag-domain-card.all .cnt,
.ag-section .ag-domain-card.purple .cnt {
  color: #e9d5ff !important;
  -webkit-text-fill-color: #e9d5ff !important;
}

/* --- cybersecurity-propale-showcase.html: .cy-soc-step --- */
.cy-soc .cy-soc-step h4,
.cy-soc-pipe .cy-soc-step h4,
div.cy-soc-step h4,
.cy-section .cy-soc-step h4 {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}
.cy-soc .cy-soc-step p,
.cy-soc-pipe .cy-soc-step p,
div.cy-soc-step p,
.cy-section .cy-soc-step p {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}

/* --- KPI stream labels white-transparent on white bg --- */
.wai-stream-card .wai-stream-lbl,
div.wai-stream-lbl,
.wai-stream .wai-stream-lbl {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
  opacity: 1 !important;
}
.wai-stream-card .wai-stream-trend.up,
div.wai-stream-trend.up {
  color: #166534 !important;
  -webkit-text-fill-color: #166534 !important;
}
.wai-stream-card .wai-stream-trend.down,
div.wai-stream-trend.down {
  color: #991b1b !important;
  -webkit-text-fill-color: #991b1b !important;
}

/* End D993 v2 */

/* === D993 v3 GLOBAL — Surgical contrast fix multi-pages (Playwright DOM diagnostic) === */
/* Affected pages: aec-catalog, all *-propale-showcase, wevia-potential, etc. */
/* Root cause: d-opus137-contrast.css mass-transform forcing white on selectors that have light bg */
/* Spec MAX (html body...) to beat html body [class*="-step"][class*="cy-"] (0,2,1) */

/* === KPI Stream Labels (wai-stream-card) - white-on-white invisible === */
html body .wai-stream-card .wai-stream-lbl,
html body div.wai-stream-card div.wai-stream-lbl,
html body section .wai-stream-card .wai-stream-lbl,
html body .wai-stream .wai-stream-lbl {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
  opacity: 1 !important;
}
html body .wai-stream-card .wai-stream-trend.up,
html body div.wai-stream-card div.wai-stream-trend.up {
  color: #166534 !important;
  -webkit-text-fill-color: #166534 !important;
}
html body .wai-stream-card .wai-stream-trend.down,
html body div.wai-stream-card div.wai-stream-trend.down {
  color: #991b1b !important;
  -webkit-text-fill-color: #991b1b !important;
}

/* === Sector eyebrows (rt-/hs-/sf-/io-/es-/cl-/ar-/bc-/cd-/df-/ed-) === */
html body div.rt-eyebrow, html body .rt-eyebrow,
html body div.hs-eyebrow, html body .hs-eyebrow,
html body div.sf-eyebrow, html body .sf-eyebrow,
html body div.io-corner,  html body .io-corner,
html body div.io-hero-tag, html body .io-hero-tag,
html body div.sf-hero-tag, html body .sf-hero-tag,
html body div.cy-hero-tag, html body .cy-hero-tag,
html body div.ed-eyebrow,  html body .ed-eyebrow {
  color: #0e7490 !important;
  -webkit-text-fill-color: #0e7490 !important;
}

/* === ESG status DONE / Q1-Q2 quarters === */
html body span.status, html body .esg-roadmap span.status,
html body .es-roadmap span.status, html body span.es-status,
html body div.qtr, html body .es-qtr div.qtr {
  color: #047857 !important;
  -webkit-text-fill-color: #047857 !important;
}

/* === Hero h4 IoT === */
html body h4.hero, html body section .io-pred h4.hero,
html body section [class*="io-"] h4.hero {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}

/* === Cloud souveraineté LI (data residency list) === */
html body section.cl-section ul li,
html body .cl-residency li,
html body section [class*="cl-"] ul.cl-list li {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

/* === AEC catalog: .cnt counters on dark cards === */
html body section.ag-section.dark .ag-domain-card .cnt,
html body section.ag-section .ag-domain-card .cnt,
html body div.ag-domains .ag-domain-card .cnt {
  color: #d1d5db !important;
  -webkit-text-fill-color: #d1d5db !important;
}

/* === Hospitality revmat cells === */
html body .hs-revmat .hs-revmat-cell,
html body div.hs-revmat div.hs-revmat-cell {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}

/* === Stack pills (agro/staffing/etc) === */
html body div.stack, html body .stack-pill, html body span.stack,
html body section [class*="-pred"] div.stack,
html body section .stack-row div.stack {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}

/* === Cyber MITRE techniques strong (already in inline fix v3 but global safety) === */
html body strong[style*="#67e8f9"], html body strong[style*="cyan"] {
  color: #0e7490 !important;
  -webkit-text-fill-color: #0e7490 !important;
}

/* === Hero H1 / titres dégradés blanc sur blanc (force fallback) === */
html body section.cy-section h1.cy-hero,
html body section.es-section h1, html body section.io-section h1,
html body section.hs-section h1, html body section.sf-section h1,
html body section.rt-section h1, html body section.cl-section h1 {
  color: #0f172a;
}

/* === Footer links secteurs === */
html body footer a, html body .footer-links a, html body .secteur-links a {
  color: #0e7490 !important;
}

/* === End D993 v3 GLOBAL === */
