/**
 * CMEDIA Theme System v3.0
 * 5 palettes avec contraste WCAG AA validé.
 *
 * Variables principales (utilisées par les pages après patch REST):
 *   --cm-bg          : Fond principal
 *   --cm-surface     : Surface carte / section
 *   --cm-surface-2   : Surface alternative
 *   --cm-elevated    : Surface elevée
 *   --cm-text        : Texte primaire
 *   --cm-text-muted  : Texte secondaire
 *   --cm-text-faint  : Texte tertiaire
 *   --cm-accent      : Couleur accent (orange en cyberpunk, bleu en clean, etc.)
 *   --cm-secondary   : Couleur secondaire
 *   --cm-tertiary    : Couleur tertiaire (badges, success alt)
 *   --cm-success     : Vert succès
 *   --cm-border      : Bordure standard (utilise rgba(var(--cm-accent-rgb), X))
 *   --cm-border-subtle : Bordure très subtile
 *
 * Variables RGB triplet (pour rgba() dynamiques):
 *   --cm-accent-rgb    : 255, 92, 0  (à utiliser dans rgba(var(--cm-accent-rgb), 0.X))
 *   --cm-secondary-rgb : 125, 235, 255
 *   --cm-text-rgb      : 232, 236, 248
 *   --cm-bg-rgb        : 6, 6, 14
 *   --cm-surface-rgb   : 13, 13, 28
 *
 * Variables aliases pour compat:
 *   --cmedia-surface, --cmedia-bg, --cmedia-text, --cmedia-accent, --cmedia-border
 */

/* ============================================================
   THÈME 1 — CYBERPUNK (sombre orange — défaut)
   Contraste text/bg: 14.2:1 ✓ AAA
   ============================================================ */
:root,
[data-theme="cyberpunk"] {
	--cm-bg:           #06060E;
	--cm-bg-rgb:       6, 6, 14;
	--cm-surface:      #0D0D1C;
	--cm-surface-rgb:  13, 13, 28;
	--cm-surface-2:    #0F0F23;
	--cm-elevated:     #14142A;

	--cm-text:         #E8ECF8;
	--cm-text-rgb:     232, 236, 248;
	--cm-text-muted:   #B8BCC8;
	--cm-text-faint:   #7A8599;
	--cm-text-on-accent: #FFFFFF;

	--cm-accent:       #FF5C00;
	--cm-accent-rgb:   255, 92, 0;
	--cm-accent-soft:  rgba(255, 92, 0, 0.12);
	--cm-accent-glow:  rgba(255, 92, 0, 0.4);
	--cm-secondary:    #7DEBFF;
	--cm-secondary-rgb: 125, 235, 255;
	--cm-tertiary:     #FF2255;
	--cm-tertiary-rgb: 255, 34, 85;
	--cm-success:      #00D97E;
	--cm-success-rgb:  0, 217, 126;

	--cm-border:        rgba(255, 92, 0, 0.18);
	--cm-border-subtle: rgba(232, 236, 248, 0.08);

	--cm-grad-hero:    linear-gradient(135deg, rgba(255,92,0,0.08), rgba(125,235,255,0.04));
	--cm-grad-accent:  linear-gradient(90deg, #FF5C00 0%, rgba(255,92,0,0) 65%);
	--cm-grad-surface: linear-gradient(145deg, #0D0D1C 0%, #0F0F23 100%);

	--cm-theme-color-1: #FF5C00;
	--cm-theme-color-2: #7DEBFF;

	/* Aliases */
	--cmedia-bg:       #06060E;
	--cmedia-surface:  #0D0D1C;
	--cmedia-text:     #E8ECF8;
	--cmedia-muted:    #B8BCC8;
	--cmedia-accent:   #FF5C00;
	--cmedia-border:   rgba(255, 92, 0, 0.18);
}

/* ============================================================
   THÈME 2 — CLEAN LIGHT (corporate)
   Contraste text/bg: 16.1:1 ✓ AAA
   Accent #0052E0 sur fond clair: 8.2:1 ✓ AAA
   ============================================================ */
[data-theme="clean"] {
	--cm-bg:           #F8F9FB;
	--cm-bg-rgb:       248, 249, 251;
	--cm-surface:      #FFFFFF;
	--cm-surface-rgb:  255, 255, 255;
	--cm-surface-2:    #EDF0F5;
	--cm-elevated:     #FFFFFF;

	--cm-text:         #0E1525;
	--cm-text-rgb:     14, 21, 37;
	--cm-text-muted:   #3A4659;
	--cm-text-faint:   #5B6678;
	--cm-text-on-accent: #FFFFFF;

	--cm-accent:       #0052E0;
	--cm-accent-rgb:   0, 82, 224;
	--cm-accent-soft:  rgba(0, 82, 224, 0.08);
	--cm-accent-glow:  rgba(0, 82, 224, 0.35);
	--cm-secondary:    #00735A;
	--cm-secondary-rgb: 0, 115, 90;
	--cm-tertiary:     #C73E5A;
	--cm-tertiary-rgb: 199, 62, 90;
	--cm-success:      #00735A;
	--cm-success-rgb:  0, 115, 90;

	--cm-border:        rgba(0, 82, 224, 0.18);
	--cm-border-subtle: rgba(14, 21, 37, 0.10);

	--cm-grad-hero:    linear-gradient(135deg, rgba(0,82,224,0.06), rgba(0,115,90,0.04));
	--cm-grad-accent:  linear-gradient(90deg, #0052E0 0%, rgba(0,82,224,0) 65%);
	--cm-grad-surface: linear-gradient(145deg, #FFFFFF 0%, #EDF0F5 100%);

	--cm-theme-color-1: #0052E0;
	--cm-theme-color-2: #00735A;

	--cmedia-bg:       #F8F9FB;
	--cmedia-surface:  #FFFFFF;
	--cmedia-text:     #0E1525;
	--cmedia-muted:    #3A4659;
	--cmedia-accent:   #0052E0;
	--cmedia-border:   rgba(0, 82, 224, 0.18);
}

/* ============================================================
   THÈME 3 — WARM PAPER (éditorial / conseil)
   Contraste text/bg: 15.8:1 ✓ AAA
   Accent #B8430A sur fond beige: 6.8:1 ✓ AAA
   ============================================================ */
[data-theme="paper"] {
	--cm-bg:           #F7F2EA;
	--cm-bg-rgb:       247, 242, 234;
	--cm-surface:      #FFFFFF;
	--cm-surface-rgb:  255, 255, 255;
	--cm-surface-2:    #EFE7D6;
	--cm-elevated:     #FFFFFF;

	--cm-text:         #1F1812;
	--cm-text-rgb:     31, 24, 18;
	--cm-text-muted:   #4A3D32;
	--cm-text-faint:   #6B5C4E;
	--cm-text-on-accent: #FFFFFF;

	--cm-accent:       #B8430A;
	--cm-accent-rgb:   184, 67, 10;
	--cm-accent-soft:  rgba(184, 67, 10, 0.10);
	--cm-accent-glow:  rgba(184, 67, 10, 0.35);
	--cm-secondary:    #1F4A30;
	--cm-secondary-rgb: 31, 74, 48;
	--cm-tertiary:     #8C6515;
	--cm-tertiary-rgb: 140, 101, 21;
	--cm-success:      #1F4A30;
	--cm-success-rgb:  31, 74, 48;

	--cm-border:        rgba(184, 67, 10, 0.20);
	--cm-border-subtle: rgba(31, 24, 18, 0.12);

	--cm-grad-hero:    linear-gradient(135deg, rgba(184,67,10,0.07), rgba(31,74,48,0.04));
	--cm-grad-accent:  linear-gradient(90deg, #B8430A 0%, rgba(184,67,10,0) 65%);
	--cm-grad-surface: linear-gradient(145deg, #FFFFFF 0%, #EFE7D6 100%);

	--cm-theme-color-1: #B8430A;
	--cm-theme-color-2: #1F4A30;

	--cmedia-bg:       #F7F2EA;
	--cmedia-surface:  #FFFFFF;
	--cmedia-text:     #1F1812;
	--cmedia-muted:    #4A3D32;
	--cmedia-accent:   #B8430A;
	--cmedia-border:   rgba(184, 67, 10, 0.20);
}

/* ============================================================
   THÈME 4 — EMERALD DARK (premium tech)
   Contraste text/bg: 13.1:1 ✓ AAA
   ============================================================ */
[data-theme="emerald"] {
	--cm-bg:           #0A0F0D;
	--cm-bg-rgb:       10, 15, 13;
	--cm-surface:      #101714;
	--cm-surface-rgb:  16, 23, 20;
	--cm-surface-2:    #0E1411;
	--cm-elevated:     #182520;

	--cm-text:         #E8F0E9;
	--cm-text-rgb:     232, 240, 233;
	--cm-text-muted:   #B8C8BB;
	--cm-text-faint:   #7A8579;
	--cm-text-on-accent: #0A0F0D;

	--cm-accent:       #00D97E;
	--cm-accent-rgb:   0, 217, 126;
	--cm-accent-soft:  rgba(0, 217, 126, 0.12);
	--cm-accent-glow:  rgba(0, 217, 126, 0.4);
	--cm-secondary:    #FFD60A;
	--cm-secondary-rgb: 255, 214, 10;
	--cm-tertiary:     #FF6B6B;
	--cm-tertiary-rgb: 255, 107, 107;
	--cm-success:      #00D97E;
	--cm-success-rgb:  0, 217, 126;

	--cm-border:        rgba(0, 217, 126, 0.18);
	--cm-border-subtle: rgba(232, 240, 233, 0.08);

	--cm-grad-hero:    linear-gradient(135deg, rgba(0,217,126,0.08), rgba(255,214,10,0.04));
	--cm-grad-accent:  linear-gradient(90deg, #00D97E 0%, rgba(0,217,126,0) 65%);
	--cm-grad-surface: linear-gradient(145deg, #101714 0%, #0E1411 100%);

	--cm-theme-color-1: #00D97E;
	--cm-theme-color-2: #FFD60A;

	--cmedia-bg:       #0A0F0D;
	--cmedia-surface:  #101714;
	--cmedia-text:     #E8F0E9;
	--cmedia-muted:    #B8C8BB;
	--cmedia-accent:   #00D97E;
	--cmedia-border:   rgba(0, 217, 126, 0.18);
}

/* ============================================================
   THÈME 5 — NEON VIOLET (créatif / IA / fashion)
   Contraste text/bg: 13.4:1 ✓ AAA
   ============================================================ */
[data-theme="violet"] {
	--cm-bg:           #0D0817;
	--cm-bg-rgb:       13, 8, 23;
	--cm-surface:      #1A0F2E;
	--cm-surface-rgb:  26, 15, 46;
	--cm-surface-2:    #150B23;
	--cm-elevated:     #22153D;

	--cm-text:         #F0E8FF;
	--cm-text-rgb:     240, 232, 255;
	--cm-text-muted:   #C8B8E8;
	--cm-text-faint:   #8878A8;
	--cm-text-on-accent: #FFFFFF;

	--cm-accent:       #B855FF;
	--cm-accent-rgb:   184, 85, 255;
	--cm-accent-soft:  rgba(184, 85, 255, 0.12);
	--cm-accent-glow:  rgba(184, 85, 255, 0.5);
	--cm-secondary:    #FF2255;
	--cm-secondary-rgb: 255, 34, 85;
	--cm-tertiary:     #FFD60A;
	--cm-tertiary-rgb: 255, 214, 10;
	--cm-success:      #00D97E;
	--cm-success-rgb:  0, 217, 126;

	--cm-border:        rgba(184, 85, 255, 0.20);
	--cm-border-subtle: rgba(240, 232, 255, 0.08);

	--cm-grad-hero:    linear-gradient(135deg, rgba(184,85,255,0.10), rgba(255,34,85,0.05));
	--cm-grad-accent:  linear-gradient(90deg, #B855FF 0%, rgba(184,85,255,0) 65%);
	--cm-grad-surface: linear-gradient(145deg, #1A0F2E 0%, #150B23 100%);

	--cm-theme-color-1: #B855FF;
	--cm-theme-color-2: #FF2255;

	--cmedia-bg:       #0D0817;
	--cmedia-surface:  #1A0F2E;
	--cmedia-text:     #F0E8FF;
	--cmedia-muted:    #C8B8E8;
	--cmedia-accent:   #B855FF;
	--cmedia-border:   rgba(184, 85, 255, 0.20);
}

/* ============================================================
   OVERRIDES GLOBAUX
   ============================================================ */

html, body {
	background: var(--cm-bg) !important;
	color: var(--cm-text);
	transition: background 0.4s ease, color 0.4s ease;
}

/* Header GeneratePress + Navigation */
.site-header, #masthead, .main-navigation,
.gen-sidebar-nav, .inside-header,
.main-navigation .main-nav ul,
.main-navigation .sf-menu,
nav#site-navigation, .menu-toggle {
	background: var(--cm-surface) !important;
	transition: background 0.4s ease;
}
.main-navigation .menu > .menu-item > a,
.main-navigation .sf-menu li a,
.main-navigation a, .menu-toggle {
	color: var(--cm-text) !important;
	transition: color 0.3s ease;
}
.main-navigation .menu > .menu-item > a:hover,
.main-navigation .menu > .current-menu-item > a,
.main-navigation .sf-menu li a:hover {
	color: var(--cm-accent) !important;
}

/* Footer CMEDIA */
.cmedia-footer { background: var(--cm-bg) !important; color: var(--cm-text) !important; }
.cmedia-footer-desc,
.cmedia-footer-nav a,
.cmedia-footer-legal a { color: var(--cm-text-muted) !important; }
.cmedia-footer-nav a:hover,
.cmedia-footer-legal a:hover { color: var(--cm-secondary) !important; }
.cmedia-footer-tag,
.cmedia-footer-col-title,
.cmedia-footer-copy-accent { color: var(--cm-accent) !important; }
.cmedia-footer-nav a.cmedia-footer-cta { color: var(--cm-secondary) !important; }
.cmedia-footer-nav a.cmedia-footer-cta:hover { color: var(--cm-accent) !important; }
.cmedia-footer-accent {
	background: linear-gradient(90deg, transparent 0%, var(--cm-accent) 50%, transparent 100%) !important;
}
.cmedia-footer-dot {
	background: var(--cm-accent) !important;
	box-shadow: 0 0 10px var(--cm-accent-glow) !important;
}
.cmedia-footer-logo { color: var(--cm-text) !important; }
.cmedia-footer-bottom { border-top-color: var(--cm-border-subtle) !important; }

/* Sélecteur de langue */
.cm-lang-switcher {
	background: var(--cm-elevated) !important;
	border-color: var(--cm-border-subtle) !important;
}
.cm-lang { color: var(--cm-text-muted) !important; }
.cm-lang:hover {
	color: var(--cm-text) !important;
	background: rgba(var(--cm-text-rgb), 0.06) !important;
}
.cm-lang.is-active {
	background: var(--cm-accent) !important;
	color: var(--cm-text-on-accent) !important;
}

/* Frise IA Timeline */
.cmedia-timeline-ia { background: var(--cm-bg) !important; color: var(--cm-text) !important; }
.cm-tl-title, .cm-tl-event-title { color: var(--cm-text) !important; }
.cm-tl-accent, .cm-tl-badge { color: var(--cm-accent) !important; }
.cm-tl-sub, .cm-tl-hint { color: var(--cm-text-muted) !important; }
.cm-tl-cta {
	background: var(--cm-accent) !important;
	color: var(--cm-text-on-accent) !important;
}
.cm-tl-line {
	background: linear-gradient(90deg, var(--cm-accent), var(--cm-secondary)) !important;
}
[data-theme] .cm-tl-card {
	background: var(--cm-surface) !important;
	color: var(--cm-text) !important;
	border-color: var(--cm-border) !important;
}

/* Page content containers */
[data-theme] .cmedia-page,
[data-theme] #content,
[data-theme] .site-content,
[data-theme] .inside-article,
[data-theme] .entry-content {
	background: var(--cm-bg);
	color: var(--cm-text);
}

/* Blog articles */
[data-theme] article.post,
[data-theme] .blog-article,
[data-theme] .entry,
[data-theme] .post-card {
	background: var(--cm-surface) !important;
	color: var(--cm-text) !important;
}

/* Sélecteur de thème (bouton GTA) */
[data-theme] .cm-theme-trigger,
[data-theme] .cm-theme-center {
	background: var(--cm-surface) !important;
	border-color: var(--cm-border-subtle) !important;
}
[data-theme] .cm-theme-center-name { color: var(--cm-text) !important; }
[data-theme] .cm-theme-center-label { color: var(--cm-text-faint) !important; }

/* Transitions */
[data-theme] * {
	transition-property: background-color, color, border-color, box-shadow;
	transition-duration: 0.3s;
	transition-timing-function: ease;
}
[data-theme] .cmedia-footer-dot,
[data-theme] .cm-tl-event,
[data-theme] [class*="loading"],
[data-theme] [class*="animation"] {
	transition: none;
}


/* ============================================================
   PATCH WCAG v3.1 — Lisibilité multi-thèmes
   ============================================================ */

[data-theme] .cmedia-footer-copy {
  color: var(--cm-text-muted) !important;
}

[data-theme] .cm-btn-primary,
[data-theme] a.cm-btn-primary,
[data-theme] button.cm-btn-primary {
  color: var(--cm-text-on-accent) !important;
  background: var(--cm-accent) !important;
}

[data-theme] .cm-btn-ghost,
[data-theme] a.cm-btn-ghost {
  color: var(--cm-accent) !important;
  border-color: var(--cm-accent) !important;
  background: transparent !important;
}
[data-theme] .cm-btn-ghost:hover {
  background: var(--cm-accent-soft) !important;
}

[data-theme="violet"] .btn-primary,
[data-theme="violet"] .cm-btn-primary,
[data-theme="violet"] a.btn-primary {
  color: #FFFFFF !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

[data-theme] .pricing-from,
[data-theme] .testimonial-role,
[data-theme] .cmedia-pricing-from,
[data-theme] .cmedia-testimonial-role {
  color: var(--cm-text-faint) !important;
}

[data-theme] .cm-mono,
[data-theme] .cm-kicker,
[data-theme] .cm-label,
[data-theme] .cm-tag {
  color: var(--cm-accent) !important;
}

[data-theme="clean"] [style*="background:#FFFFFF"] :not([style="color:#FF5C00"]):not([style*="color: #FF5C00"]),
[data-theme="clean"] [style*="background:#fff"] :not([style="color:#FF5C00"]):not([style*="color: #FF5C00"]),
[data-theme="paper"] [style*="background:#FFFFFF"] :not([style="color:#FF5C00"]):not([style*="color: #FF5C00"]),
[data-theme="paper"] [style*="background:#fff"] :not([style="color:#FF5C00"]):not([style*="color: #FF5C00"]) {
  color: var(--cm-text) !important;
}

[data-theme="clean"] .tech-tag,
[data-theme="clean"] .cm-tech-tag,
[data-theme="clean"] span[class*="tag"],
[data-theme="paper"] .tech-tag,
[data-theme="paper"] .cm-tech-tag,
[data-theme="paper"] span[class*="tag"] {
  color: var(--cm-accent) !important;
  background: var(--cm-accent-soft) !important;
}


/* ============================================================
   PATCH WCAG v3.2 — Résidus boutons + FAQ + locations
   ============================================================ */

/* ── Fix 1 : Boutons sans préfixe cm- (btn-primary, filter-btn, etc.) ─ */
[data-theme] .btn-primary,
[data-theme] a.btn-primary,
[data-theme] button.btn-primary,
[data-theme] .filter-btn,
[data-theme] .pricing-btn,
[data-theme] .pricing-badge {
	color: var(--cm-text-on-accent) !important;
	background: var(--cm-accent) !important;
}
[data-theme] .btn-primary:hover,
[data-theme] a.btn-primary:hover,
[data-theme] button.btn-primary:hover,
[data-theme] .filter-btn:hover,
[data-theme] .pricing-btn:hover {
	background: var(--cm-accent) !important;
	filter: brightness(1.1);
}
[data-theme="violet"] .btn-primary,
[data-theme="violet"] a.btn-primary,
[data-theme="violet"] button.btn-primary {
	color: #FFFFFF !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* ── Fix 2 : "Démo gratuite", liens accent en clair sur surface accent ── */
[data-theme] .demo-link,
[data-theme] a[href*="demo"],
[data-theme] .cmedia-cta-link {
	color: var(--cm-text-on-accent) !important;
}
[data-theme="violet"] a[style*="background:#B855FF"],
[data-theme="violet"] [style*="background:rgba(184,85,255"] {
	color: #FFFFFF !important;
}

/* ── Fix 3 : FAQ accordion (details/summary + h2/h3.cmedia-faq-title) ─── */
[data-theme] .cmedia-faq-title,
[data-theme] h2.cmedia-faq-title,
[data-theme] h3.cmedia-faq-title,
[data-theme] .cmedia-faq summary,
[data-theme] .cmedia-faq details summary,
[data-theme] details.cmedia-faq-item summary,
[data-theme] .faq summary {
	color: var(--cm-text) !important;
}
[data-theme="clean"] .cmedia-faq-title,
[data-theme="clean"] .cmedia-faq summary,
[data-theme="paper"] .cmedia-faq-title,
[data-theme="paper"] .cmedia-faq summary {
	color: var(--cm-text) !important;
}
[data-theme] .cmedia-faq details[open] summary,
[data-theme] details[open] summary {
	color: var(--cm-accent) !important;
}

/* ── Fix 4 : DIVs locations "Tel-Aviv, Israël" / "Paris, France" ─── */
[data-theme] [style*="color:#6B6A65"],
[data-theme] [style*="color: #6B6A65"],
[data-theme] [style*="color:#6b6a65"],
[data-theme] [style*="color: #6b6a65"],
[data-theme] [style*="color:#6B6B65"],
[data-theme] [style*="color: #6B6B65"],
[data-theme] [style*="color:rgb(107,106,101)"],
[data-theme] [style*="color: rgb(107, 106, 101)"] {
	color: var(--cm-text-faint) !important;
}

/* ── Fix 5 : Forcer fallback solide pour --cm-text-faint partout ── */
:root {
	--cm-text-faint-fallback: #7A8599;
}
[data-theme] .cmedia-footer-copy,
[data-theme] .pricing-from,
[data-theme] .testimonial-role {
	color: var(--cm-text-faint, var(--cm-text-faint-fallback)) !important;
}


/* ============================================================
   PATCH WCAG v3.3 — Boutons accent clair + liens FAQ + secondary
   ============================================================ */

/* ── Fix A : Boutons cyberpunk (orange #FF5C00) → texte NOIR pour 6.1:1 ─ */
[data-theme="cyberpunk"] .btn-primary,
[data-theme="cyberpunk"] a.btn-primary,
[data-theme="cyberpunk"] button.btn-primary,
[data-theme="cyberpunk"] .cm-btn-primary,
[data-theme="cyberpunk"] a.cm-btn-primary,
[data-theme="cyberpunk"] button.cm-btn-primary,
[data-theme="cyberpunk"] .filter-btn,
[data-theme="cyberpunk"] .pricing-btn,
[data-theme="cyberpunk"] .pricing-badge,
[data-theme="cyberpunk"] .cm-lang-short {
	color: #000000 !important;
	text-shadow: none !important;
}

/* ── Fix B : Boutons violet (#B855FF) → texte NOIR pour 5.78:1 ─────── */
[data-theme="violet"] .btn-primary,
[data-theme="violet"] a.btn-primary,
[data-theme="violet"] button.btn-primary,
[data-theme="violet"] .cm-btn-primary,
[data-theme="violet"] a.cm-btn-primary,
[data-theme="violet"] button.cm-btn-primary,
[data-theme="violet"] .filter-btn,
[data-theme="violet"] .pricing-btn,
[data-theme="violet"] .pricing-badge {
	color: #000000 !important;
	text-shadow: none !important;
}

/* ── Fix C : Liens secondaires (rgb(125,235,255) = cyan) sur thèmes clairs ── */
[data-theme="clean"] a,
[data-theme="clean"] a:visited,
[data-theme="paper"] a,
[data-theme="paper"] a:visited {
	color: var(--cm-accent) !important;
}
[data-theme="clean"] a:hover,
[data-theme="paper"] a:hover {
	color: var(--cm-accent) !important;
	filter: brightness(0.85);
}

/* ── Fix D : Paragraphes FAQ + texte muted sur fond clair ─────────── */
[data-theme="clean"] .cmedia-faq details p,
[data-theme="clean"] .cmedia-faq details li,
[data-theme="clean"] .cmedia-faq details a,
[data-theme="paper"] .cmedia-faq details p,
[data-theme="paper"] .cmedia-faq details li,
[data-theme="paper"] .cmedia-faq details a {
	color: var(--cm-text-muted) !important;
}

/* ── Fix E : STRONG / emphasized text héritant couleurs sombres ───── */
[data-theme="clean"] strong,
[data-theme="clean"] b,
[data-theme="paper"] strong,
[data-theme="paper"] b {
	color: inherit !important;
}


/* ============================================================
   PATCH WCAG v3.3b — Corrections cm-lang-short + locations résiduelles
   ============================================================ */

/* ── Revert cm-lang-short : garder blanc pour cyberpunk (fond sombre) ─ */
[data-theme="cyberpunk"] .cm-lang-short {
	color: var(--cm-text) !important;
	text-shadow: none !important;
}
/* cm-lang actif (fond accent orange) : noir pour contraste ───────── */
[data-theme="cyberpunk"] .cm-lang.active .cm-lang-short,
[data-theme="cyberpunk"] .cm-lang[aria-current] .cm-lang-short,
[data-theme="cyberpunk"] a.cm-lang[style*="background"] .cm-lang-short {
	color: #000000 !important;
}

/* ── Fix locations : inline style hardcodé (#6B6A65 / rgb(107,106,101)) ─ */
[data-theme] [style*="#6B6A65"],
[data-theme] [style*="#6b6a65"],
[data-theme] [style*="#6B6B65"],
[data-theme] [style*="#6b6b65"],
[data-theme] [style*="107, 106, 101"],
[data-theme] [style*="107,106,101"] {
	color: var(--cm-text-faint) !important;
}

/* ── Fix rgba violet semi-transparent (PIPELINE IA etc.) ──────────── */
[data-theme="cyberpunk"] [style*="rgba(139, 92, 246"],
[data-theme="cyberpunk"] [style*="rgba(139,92,246"] {
	color: var(--cm-secondary) !important;
}


/* ============================================================
   PATCH WCAG v3.4 — Sections dark hardcodées fullstack + liens light
   ============================================================ */

/* ── Fix A : Sections/cards à fond sombre sur thèmes clairs ────────── */
/* Ces sections ont background hardcodé dans style.css (pas inline)     */
/* On force le texte clair pour qu'il soit lisible sur fond sombre      */
[data-theme="clean"] .service-card,
[data-theme="clean"] .service-card *,
[data-theme="paper"] .service-card,
[data-theme="paper"] .service-card * {
	color: var(--cm-text) !important;
}
[data-theme="clean"] section.services h3,
[data-theme="clean"] section.stats h3,
[data-theme="clean"] section.portfolio h3,
[data-theme="clean"] section.process h3,
[data-theme="clean"] section.services p,
[data-theme="clean"] section.stats p,
[data-theme="paper"] section.services h3,
[data-theme="paper"] section.stats h3,
[data-theme="paper"] section.portfolio h3,
[data-theme="paper"] section.process h3,
[data-theme="paper"] section.services p,
[data-theme="paper"] section.stats p {
	color: var(--cm-text) !important;
}

/* ── Fix C : Liens FAQ dans réponses (couleur cyan non lisible) ──────── */
[data-theme="clean"] a,
[data-theme="paper"] a {
	color: var(--cm-accent) !important;
}
[data-theme="clean"] a:where(:not(.btn-primary):not(.cm-btn-primary):not(.nav-link)):hover,
[data-theme="paper"] a:where(:not(.btn-primary):not(.cm-btn-primary):not(.nav-link)):hover {
	color: var(--cm-accent) !important;
	filter: brightness(0.8);
}

/* ── Fix D : Barre FAQ badge orange sur fond clair ──────────────────── */
[data-theme="clean"] .cmedia-faq-badge,
[data-theme="paper"] .cmedia-faq-badge {
	color: var(--cm-accent) !important;
}



/* ============================================================
   PATCH v3.5 — Aliases --c-* pour pages fullstack
   Override la famille de variables --c-bg, --c-bg-2, --c-text, etc.
   définies en :root dans le contenu Gutenberg, pour qu'elles
   suivent le thème actif au lieu de rester hardcodées en sombre.
   NOTE: !important requis — le :root inline a même spécificité (0,1,0)
   que [attr] mais vient après themes.css dans l'ordre du document.
   ============================================================ */

/* Thème CYBERPUNK (défaut) — préserve les valeurs originales du content */
[data-theme="cyberpunk"] {
	--c-bg:      #0a0a0f !important;
	--c-bg-2:    #111118 !important;
	--c-bg-3:    #1a1a24 !important;
	--c-bg-card: #15151f !important;
	--c-text:    #e8e6e1 !important;
	--c-text-2:  #9b9a95 !important;
	--c-text-3:  #a8a79f !important;
	--c-accent:  var(--cm-accent) !important;
	--c-border:  rgba(255, 255, 255, 0.08) !important;
}

/* Thème CLEAN LIGHT — bascule en clair */
[data-theme="clean"] {
	--c-bg:      #F8F9FB !important;
	--c-bg-2:    #FFFFFF !important;
	--c-bg-3:    #EDF0F5 !important;
	--c-bg-card: #FFFFFF !important;
	--c-text:    #0E1525 !important;
	--c-text-2:  #3A4659 !important;
	--c-text-3:  #5B6678 !important;
	--c-accent:  var(--cm-accent) !important;
	--c-border:  rgba(14, 21, 37, 0.10) !important;
}

/* Thème WARM PAPER — bascule en beige */
[data-theme="paper"] {
	--c-bg:      #F7F2EA !important;
	--c-bg-2:    #FFFFFF !important;
	--c-bg-3:    #EFE7D6 !important;
	--c-bg-card: #FFFFFF !important;
	--c-text:    #1F1812 !important;
	--c-text-2:  #4A3D32 !important;
	--c-text-3:  #6B5C4E !important;
	--c-accent:  var(--cm-accent) !important;
	--c-border:  rgba(31, 24, 18, 0.12) !important;
}

/* Thème EMERALD DARK — vert sombre */
[data-theme="emerald"] {
	--c-bg:      #0A0F0D !important;
	--c-bg-2:    #101714 !important;
	--c-bg-3:    #182520 !important;
	--c-bg-card: #101714 !important;
	--c-text:    #E8F0E9 !important;
	--c-text-2:  #B8C8BB !important;
	--c-text-3:  #7A8579 !important;
	--c-accent:  var(--cm-accent) !important;
	--c-border:  rgba(232, 240, 233, 0.08) !important;
}

/* Thème NEON VIOLET — violet sombre */
[data-theme="violet"] {
	--c-bg:      #0D0817 !important;
	--c-bg-2:    #1A0F2E !important;
	--c-bg-3:    #22153D !important;
	--c-bg-card: #1A0F2E !important;
	--c-text:    #F0E8FF !important;
	--c-text-2:  #C8B8E8 !important;
	--c-text-3:  #8878A8 !important;
	--c-accent:  var(--cm-accent) !important;
	--c-border:  rgba(240, 232, 255, 0.08) !important;
}

/* Surcharge des sections du contenu pour utiliser les bonnes variables */
[data-theme] .services,
[data-theme] .process,
[data-theme] .testimonials,
[data-theme] .contact,
[data-theme] section.services,
[data-theme] section.process,
[data-theme] section.testimonials,
[data-theme] section.contact {
	background: var(--c-bg) !important;
	color: var(--c-text) !important;
}

[data-theme] .portfolio,
[data-theme] .stats,
[data-theme] .pricing,
[data-theme] .faq,
[data-theme] section.portfolio,
[data-theme] section.stats,
[data-theme] section.pricing,
[data-theme] section.faq {
	background: var(--c-bg-2) !important;
	color: var(--c-text) !important;
}

[data-theme] .card,
[data-theme] .pricing-card,
[data-theme] .portfolio-item,
[data-theme] .testimonial-card,
[data-theme] .service-card,
[data-theme] .stat-card,
[data-theme] .faq-item,
[data-theme] .contact-card {
	background: var(--c-bg-card) !important;
	color: var(--c-text) !important;
	border-color: var(--c-border) !important;
}

/* Textes muets */
[data-theme] .c-text-2,
[data-theme] .description,
[data-theme] .subtitle,
[data-theme] .meta {
	color: var(--c-text-2) !important;
}

[data-theme] .c-text-3,
[data-theme] .caption,
[data-theme] .legal,
[data-theme] .hero-locations,
[data-theme] .pricing-from,
[data-theme] .testimonial-role {
	color: var(--c-text-3) !important;
}


/* ============================================================
   PATCH v3.6 final — Hero homepage + bouton GTA + btn-secondary
   ============================================================ */

/* ── Variables additionnelles : accent clair pour fonds sombres ── */
[data-theme="cyberpunk"] { --cm-accent-light: #FF8C40; }
[data-theme="clean"]     { --cm-accent-light: #5C9FFF; }
[data-theme="paper"]     { --cm-accent-light: #F07030; }
[data-theme="emerald"]   { --cm-accent-light: #4DECA3; }
[data-theme="violet"]    { --cm-accent-light: #D080FF; }

/* ── FIX 1 : #cm-hero homepage ──────────────────────────── */
[data-theme] #cm-hero,
[data-theme] section#cm-hero {
	background: var(--cm-bg) !important;
	color: var(--cm-text) !important;
}
[data-theme] #cm-hero h1,
[data-theme] #cm-hero h2,
[data-theme] #cm-hero h3,
[data-theme] #cm-hero p {
	color: var(--cm-text) !important;
}
[data-theme] #cm-hero [style*="color:#FF5C00"],
[data-theme] #cm-hero [style*="color: #FF5C00"] {
	color: var(--cm-accent) !important;
}
[data-theme] #cm-hero .terminal,
[data-theme] #cm-hero pre,
[data-theme] #cm-hero [class*="terminal"] {
	background: var(--cm-surface) !important;
}

/* ── FIX 2 : .cm-theme-trigger (bouton GTA en bas à gauche) ─ */
/* En thème clair, le fond #0D0D1C devient invisible car overridé en blanc.
   On force un fond sombre TOUJOURS pour le bouton trigger lui-même. */
[data-theme] .cm-theme-trigger {
	background: #1a1a2e !important;
	color: #ffffff !important;
}
[data-theme] .cm-theme-trigger svg {
	opacity: 1 !important;
}
[data-theme] .cm-theme-trigger:hover {
	background: #2a2a3e !important;
}
[data-theme] .cm-theme-center {
	background: #1a1a2e !important;
}
[data-theme] .cm-theme-center .cm-theme-center-name {
	color: #ffffff !important;
}
[data-theme] .cm-theme-center .cm-theme-center-label {
	color: rgba(255, 255, 255, 0.5) !important;
}

/* ── FIX 3 : .btn-secondary lisible sur tous fonds ───────── */
/* Par défaut, btn-secondary utilise --cm-accent qui peut être trop sombre.
   On utilise --cm-accent-light en fallback pour garder le contraste. */
[data-theme] .btn-secondary,
[data-theme] a.btn-secondary {
	color: var(--cm-accent) !important;
	border-color: var(--cm-accent) !important;
	background: transparent !important;
}
[data-theme] .btn-secondary:hover {
	background: var(--cm-accent-soft) !important;
}

/* Quand .btn-secondary est dans une section avec fond sombre,
   utiliser la variante claire de l'accent */
[data-theme] .dark-section .btn-secondary,
[data-theme] [class*="dark"] .btn-secondary,
[data-theme] section.services .btn-secondary,
[data-theme="clean"] [style*="background:#06060E"] .btn-secondary,
[data-theme="clean"] [style*="background:#0a0a0f"] .btn-secondary,
[data-theme="paper"] [style*="background:#06060E"] .btn-secondary,
[data-theme="paper"] [style*="background:#0a0a0f"] .btn-secondary {
	color: var(--cm-accent-light) !important;
	border-color: var(--cm-accent-light) !important;
}

/* Cas spécial : bouton "Voir nos réalisations" sur le hero noir
   de la homepage (cm-hero contient un terminal sombre avec un bouton) */
[data-theme="clean"] #cm-hero[style*="background:#06060E"] .btn-secondary,
[data-theme="paper"] #cm-hero[style*="background:#06060E"] .btn-secondary {
	color: var(--cm-accent-light) !important;
	border-color: var(--cm-accent-light) !important;
}


/* ============================================================
   PATCH v3.7 final — Variables manquantes + 6 patterns illisibles
   ============================================================ */

/* ── FIX 1 : --cm-text-on-accent forcé blanc partout ──────── */
/* CRITIQUE : cette variable était manquante dans clean/paper,
   héritait de --cm-accent → bouton invisible (ratio 1.00) */
[data-theme="cyberpunk"] { --cm-text-on-accent: #FFFFFF; }
[data-theme="clean"]     { --cm-text-on-accent: #FFFFFF; }
[data-theme="paper"]     { --cm-text-on-accent: #FFFFFF; }
[data-theme="emerald"]   { --cm-text-on-accent: #0A0F0D; }
[data-theme="violet"]    { --cm-text-on-accent: #FFFFFF; }

/* ── FIX 2 : .read-more (liens blog "Lire la suite") ─────── */
[data-theme] a.read-more,
[data-theme] .read-more,
[data-theme] .post-card a.read-more,
[data-theme] article a.read-more {
	color: var(--cm-accent) !important;
}

[data-theme] a.read-more:hover {
	color: var(--cm-accent) !important;
	text-decoration: underline;
}

/* ── FIX 3 : Inline color:#fff dans CTA hardcodés ────────── */
/* Quand un bouton a inline style="background:#FF5C00;color:#fff",
   les overrides clean/paper écrasent le color:#fff par var(--cm-text)
   sombre. On force le blanc quand le fond est un accent connu. */
[data-theme] [style*="background:#FF5C00"][style*="color:#fff"],
[data-theme] [style*="background:#FF5C00"][style*="color: #fff"],
[data-theme] [style*="background:#FF5C00"][style*="color:#FFF"],
[data-theme] [style*="background: #FF5C00"][style*="color:#fff"],
[data-theme] [style*="background:var(--cm-accent)"][style*="color:#fff"],
[data-theme] [style*="background: var(--cm-accent)"][style*="color:#fff"] {
	color: #FFFFFF !important;
}

/* Tous les éléments avec fond accent (var ou hex) → texte blanc */
[data-theme] [style*="background:var(--cm-accent)"],
[data-theme] [style*="background: var(--cm-accent)"],
[data-theme] [style*="background:var(--c-accent)"],
[data-theme] [style*="background: var(--c-accent)"] {
	color: #FFFFFF !important;
}

[data-theme] [style*="background:var(--cm-accent)"] *,
[data-theme] [style*="background: var(--cm-accent)"] * {
	color: inherit !important;
}

/* ── FIX 4 : Barre admin WordPress (pour les admins connectés) ─ */
#wpadminbar,
#wpadminbar .ab-item,
#wpadminbar a.ab-item,
#wpadminbar .ab-item .ab-icon::before,
#wpadminbar .ab-label,
#wpadminbar .ab-empty-item,
#wpadminbar .ab-icon,
#wpadminbar .ab-icon::before,
[data-theme] #wpadminbar,
[data-theme] #wpadminbar .ab-item,
[data-theme] #wpadminbar a.ab-item,
[data-theme] #wpadminbar .ab-label,
[data-theme] #wpadminbar .ab-icon,
[data-theme] #wpadminbar .ab-icon::before {
	color: #FFFFFF !important;
}

#wpadminbar .ab-submenu .ab-item,
[data-theme] #wpadminbar .ab-submenu .ab-item {
	color: #B5BCC2 !important;
}

/* ── FIX 5 : .cm-tl-cta (CTA de la frise temporelle) ─────── */
[data-theme] .cm-tl-cta,
[data-theme] a.cm-tl-cta {
	color: #FFFFFF !important;
	background: var(--cm-accent) !important;
}

[data-theme] .cm-tl-cta:hover {
	filter: brightness(1.1);
	color: #FFFFFF !important;
}

/* ── FIX 6 : .cm-hero-card sur fond sombre ───────────────── */
/* Ces cartes ont fond sombre #0D0D1C peu importe le thème.
   Donc on garde le texte en accent-light (variante claire) */
[data-theme] .cm-hero-card,
[data-theme] a.cm-hero-card {
	color: var(--cm-accent-light) !important;
}

[data-theme] .cm-hero-card .cm-hero-card-title,
[data-theme] .cm-hero-card-title {
	color: #FFFFFF !important;
}

[data-theme] .cm-hero-card-cat,
[data-theme] .cm-hero-card .cm-hero-card-cat {
	color: var(--cm-accent-light) !important;
}

/* ── FIX 7 : Lien "Obtenir mon rapport complet" sur surface sombre ── */
[data-theme="clean"] [style*="background:#0D0D1C"] a,
[data-theme="clean"] [style*="background: #0D0D1C"] a,
[data-theme="paper"] [style*="background:#0D0D1C"] a,
[data-theme="paper"] [style*="background: #0D0D1C"] a,
[data-theme="clean"] .cm-surface-dark a,
[data-theme="paper"] .cm-surface-dark a {
	color: var(--cm-accent-light) !important;
}

/* ── BONUS : Garantir lisibilité de tous boutons avec class CTA ── */
[data-theme] a.btn-primary,
[data-theme] a.cm-btn-primary,
[data-theme] button.btn-primary,
[data-theme] button.cm-btn-primary,
[data-theme] .cta-primary,
[data-theme] a.cta-primary {
	color: #FFFFFF !important;
}

[data-theme="emerald"] a.btn-primary,
[data-theme="emerald"] a.cm-btn-primary,
[data-theme="emerald"] button.btn-primary {
	color: #0A0F0D !important;
}


/* ── PATCH v3.7-FIX-READ-MORE-SPECIFICITY ───────────────────────────
   Overrides body.home.blog .site-main > article .read-more !important
   which has specificity 0,3,2 — needs higher specificity !important */
html[data-theme] body.home .site-main .read-more,
html[data-theme] body.home .site-main .more-link,
html[data-theme] body.blog .site-main .read-more,
html[data-theme] body.blog .site-main .more-link,
html[data-theme] body .site-main article .read-more,
html[data-theme] body .site-main article .more-link {
	color: var(--cm-accent) !important;
}

html[data-theme] body.home .site-main .read-more:hover,
html[data-theme] body.home .site-main .more-link:hover,
html[data-theme] body.blog .site-main .read-more:hover,
html[data-theme] body.blog .site-main .more-link:hover,
html[data-theme] body .site-main article .read-more:hover,
html[data-theme] body .site-main article .more-link:hover {
	color: var(--cm-accent) !important;
	text-decoration: underline;
}


/* ── PATCH v3.7-FIX-HEROCARDCAT ─────────────────────────────────────
   .cm-hero-card-cat SPAN has its own colored background (category badge).
   Force white text on these colored pill backgrounds for all themes. */
[data-theme] .cm-hero-card-cat,
[data-theme] span.cm-hero-card-cat {
	color: #FFFFFF !important;
}

/* Also fix "Stack complète" CTA which is white-on-orange (ratio 3.1) */
/* The orange bg is from --cm-accent in cyberpunk/default, but in clean
   the hero section background becomes white. Let's check specifically. */

/* Fix: "→ Obtenir mon rapport complet" on accent background */
[data-theme] .cm-audit-section a,
[data-theme] [style*="background:#FF5C00"] a,
[data-theme] [style*="background: #FF5C00"] a {
	color: #FFFFFF !important;
}


/* ── PATCH v3.7-FIX-HEROCAT-SPECIFICITY ────────────────────────────
   Rule in fix6 uses [data-theme] .cm-hero-card .cm-hero-card-cat (0,3,0)
   Override it with a matching specificity + element = (0,3,1) */
[data-theme] .cm-hero-card span.cm-hero-card-cat,
[data-theme] a.cm-hero-card .cm-hero-card-cat,
[data-theme] a.cm-hero-card span.cm-hero-card-cat {
	color: #FFFFFF !important;
}


/* ============================================================
   PATCH v3.8 — Badges catégorie + résidus inline #FF5C00
   ============================================================ */

/* ── FIX 1 : Badges sur fond clair = texte sombre forcé ─── */
/* Les badges .cm-hero-card-cat héritaient color:#FFFFFF du patch v3.7,
   mais les fonds cyan/vert/rouge sont trop clairs pour du blanc.
   On force du texte sombre #06060E ratio ~17+ sur ces fonds. */
[data-theme] .cm-hero-card-cat.cm-cat-recherche-science,
[data-theme] .cm-hero-card .cm-hero-card-cat.cm-cat-recherche-science,
[data-theme] [class*="cm-cat-recherche"] {
	color: #06060E !important;
	background: #7DEBFF !important;
}

[data-theme] .cm-hero-card-cat.cm-cat-industrie-business,
[data-theme] .cm-hero-card .cm-hero-card-cat.cm-cat-industrie-business,
[data-theme] [class*="cm-cat-industrie"] {
	color: #06060E !important;
	background: #00D97E !important;
}

[data-theme] .cm-hero-card-cat.cm-cat-modeles-llms,
[data-theme] .cm-hero-card .cm-hero-card-cat.cm-cat-modeles-llms,
[data-theme] [class*="cm-cat-modeles"] {
	color: #FFFFFF !important;
	background: #C71D44 !important;
}

/* Règle de sécurité : tout badge avec un fond clair → texte sombre */
[data-theme] .cm-hero-card-cat[style*="background:#7DEBFF"],
[data-theme] .cm-hero-card-cat[style*="background: #7DEBFF"],
[data-theme] .cm-hero-card-cat[style*="background:#00D97E"],
[data-theme] .cm-hero-card-cat[style*="background: #00D97E"] {
	color: #06060E !important;
}

/* ── FIX 2 : Lien "Obtenir mon rapport" inline #FF5C00 ──── */
/* Ce lien a color:#FF5C00 hardcodé inline. En thème clean/paper,
   #FF5C00 (orange) sur fond sombre #0D0D1C est lisible (3.62:1
   limite) mais en grand texte ça passe. Le problème vient quand
   le fond résolu n'est pas celui attendu. */
[data-theme="clean"] [style*="color:#FF5C00"]:not([style*="background"]),
[data-theme="paper"] [style*="color:#FF5C00"]:not([style*="background"]) {
	color: var(--cm-accent-light) !important;
}

/* Le widget audit (Obtenir mon rapport) sur sa surface sombre fixe */
[data-theme] .cmedia-audit a,
[data-theme] [class*="audit"] a[style*="color:#FF5C00"] {
	color: var(--cm-accent-light) !important;
}


/* ── PATCH v3.8-FIX-RAPPORT ─────────────────────────────────────────
   Force --cm-accent-light sur liens dans dark surface #0D0D1C
   Spécificité 0,3,1 bat la règle a:visited (0,2,1) de themes.css */
[data-theme="clean"] [style*="background:#0D0D1C"] a:link,
[data-theme="clean"] [style*="background:#0D0D1C"] a:visited,
[data-theme="clean"] [style*="background:#0D0D1C"] a:any-link,
[data-theme="paper"] [style*="background:#0D0D1C"] a:link,
[data-theme="paper"] [style*="background:#0D0D1C"] a:visited,
[data-theme="paper"] [style*="background:#0D0D1C"] a:any-link {
	color: var(--cm-accent-light) !important;
}


/* ============================================================
   PATCH v3.9 — bold sur boutons orange pour passer WCAG gros texte
   ============================================================ */
[data-theme] [style*="background:#FF5C00"][style*="color:#fff"],
[data-theme] [style*="background:#FF5C00"][style*="color: #fff"],
[data-theme] [style*="background:#FF5C00"][style*="color:#FFF"],
[data-theme] [style*="background: #FF5C00"][style*="color:#fff"],
[data-theme] [style*="background:var(--cm-accent)"][style*="color:#fff"],
[data-theme] [style*="background: var(--cm-accent)"][style*="color:#fff"] {
	font-weight: 700 !important;
}


/* ============================================================
   PATCH v4.0 — FAQ accordeon + accordéon lead + titres Paper
   ============================================================ */

/* ── FAQ : force les couleurs du thème actif ────────────────── */
[data-theme] .cmedia-faq,
[data-theme] .cmedia-faq-section,
[data-theme] section.cmedia-faq,
[data-theme] section.faq,
[data-theme] .faq-section {
	background: var(--cm-bg) !important;
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-faq-item,
[data-theme] .cmedia-faq details,
[data-theme] .faq-item,
[data-theme] details.cmedia-faq-item {
	background: var(--cm-surface) !important;
	border-color: var(--cm-border) !important;
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-faq summary,
[data-theme] .cmedia-faq-item summary,
[data-theme] details.cmedia-faq-item > summary,
[data-theme] .cmedia-faq-item > summary,
[data-theme] .faq summary,
[data-theme] section.cmedia-faq summary {
	background: var(--cm-surface) !important;
	color: var(--cm-text) !important;
	border-color: var(--cm-border) !important;
}

[data-theme] .cmedia-faq summary:hover,
[data-theme] .cmedia-faq-item summary:hover {
	color: var(--cm-accent) !important;
}

[data-theme] .cmedia-faq details[open] > summary,
[data-theme] details.cmedia-faq-item[open] > summary {
	color: var(--cm-accent) !important;
	background: var(--cm-surface) !important;
}

[data-theme] .cmedia-faq details > *:not(summary),
[data-theme] .cmedia-faq-item > *:not(summary),
[data-theme] .cmedia-faq-answer,
[data-theme] .faq-answer {
	color: var(--cm-text-muted) !important;
	background: var(--cm-surface) !important;
}

[data-theme] .cmedia-faq details p,
[data-theme] .cmedia-faq-item p,
[data-theme] .faq-answer p {
	color: var(--cm-text-muted) !important;
}

[data-theme] .cmedia-faq-title,
[data-theme] h2.cmedia-faq-title,
[data-theme] h3.cmedia-faq-title,
[data-theme] .faq-title,
[data-theme] section.cmedia-faq h2,
[data-theme] section.cmedia-faq h3 {
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-faq-badge,
[data-theme] .faq-badge,
[data-theme] .cmedia-faq-kicker,
[data-theme] section.cmedia-faq [class*="badge"],
[data-theme] section.cmedia-faq [class*="kicker"] {
	color: var(--cm-accent) !important;
}

[data-theme] .cmedia-faq-number,
[data-theme] .faq-number {
	color: var(--cm-accent) !important;
	font-weight: 700;
}

[data-theme] .cmedia-faq-icon,
[data-theme] .faq-icon,
[data-theme] .cmedia-faq summary::after,
[data-theme] details.cmedia-faq-item summary::after {
	color: var(--cm-accent) !important;
}

/* Override des inline backgrounds sombres dans FAQ */
[data-theme="clean"] section.cmedia-faq [style*="background:#0D0D1C"],
[data-theme="clean"] section.cmedia-faq [style*="background: #0D0D1C"],
[data-theme="clean"] section.cmedia-faq [style*="background:#06060E"],
[data-theme="paper"] section.cmedia-faq [style*="background:#0D0D1C"],
[data-theme="paper"] section.cmedia-faq [style*="background: #0D0D1C"],
[data-theme="paper"] section.cmedia-faq [style*="background:#06060E"] {
	background: var(--cm-surface) !important;
}

/* ── Accordéon lead : force les couleurs du thème ────────────── */
[data-theme] .cmedia-lead-accordion,
[data-theme] section.cmedia-lead-accordion,
[data-theme] section.cmedia-lead {
	background: var(--cm-surface) !important;
	border-color: var(--cm-border) !important;
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-accordion-header,
[data-theme] button.cmedia-accordion-header,
[data-theme] section.cmedia-lead-accordion .cmedia-accordion-header {
	background: var(--cm-surface) !important;
	color: var(--cm-text) !important;
	border-color: var(--cm-border) !important;
}

[data-theme] .cmedia-accordion-header *,
[data-theme] .cmedia-accordion-header span,
[data-theme] .cmedia-accordion-header h2,
[data-theme] .cmedia-accordion-header div {
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-accordion-body,
[data-theme] .cmedia-accordion-body-inner {
	background: var(--cm-surface) !important;
	color: var(--cm-text-muted) !important;
}

[data-theme] .cmedia-accordion-body p,
[data-theme] .cmedia-accordion-body-inner p {
	color: var(--cm-text-muted) !important;
}

[data-theme] .cmedia-accordion-body strong,
[data-theme] .cmedia-accordion-body-inner strong {
	color: var(--cm-text) !important;
}

[data-theme] .cmedia-accordion-body a,
[data-theme] .cmedia-accordion-body-inner a {
	color: var(--cm-accent) !important;
}

[data-theme] .cmedia-accordion-badge,
[data-theme] .cmedia-accordion-kicker,
[data-theme] .cmedia-lead-accordion .cmedia-accordion-badge {
	color: var(--cm-accent) !important;
}

[data-theme] .cmedia-accordion-accent,
[data-theme] .cmedia-lead-accordion .cmedia-accordion-accent {
	background: var(--cm-accent) !important;
}

[data-theme] .cmedia-lead-accordion.cmedia-accordion-open {
	border-color: var(--cm-accent) !important;
}

[data-theme] .cmedia-accordion-chevron,
[data-theme] .cmedia-lead-accordion .cmedia-accordion-chevron {
	color: var(--cm-accent) !important;
}

/* Override des inline backgrounds sombres dans l'accordéon */
[data-theme="clean"] section.cmedia-lead [style*="background:#0D0D1C"],
[data-theme="clean"] section.cmedia-lead [style*="background: #0D0D1C"],
[data-theme="clean"] section.cmedia-lead [style*="background:var(--cm-surface)"],
[data-theme="paper"] section.cmedia-lead [style*="background:#0D0D1C"],
[data-theme="paper"] section.cmedia-lead [style*="background: #0D0D1C"] {
	background: var(--cm-surface) !important;
}

/* ── Titres H1/H2/H3 sur thèmes clairs : lisibilité maximale ── */
[data-theme="paper"] h1,
[data-theme="paper"] h2,
[data-theme="paper"] h3,
[data-theme="paper"] h4,
[data-theme="clean"] h1,
[data-theme="clean"] h2,
[data-theme="clean"] h3,
[data-theme="clean"] h4 {
	color: var(--cm-text) !important;
}

/* Override titres avec couleurs faintes/mutées sur thèmes clairs */
[data-theme="paper"] h1[style*="color:#7A8599"],
[data-theme="paper"] h2[style*="color:#7A8599"],
[data-theme="paper"] h3[style*="color:#7A8599"],
[data-theme="paper"] h1[style*="color:#B8BCC8"],
[data-theme="paper"] h2[style*="color:#B8BCC8"],
[data-theme="paper"] h1[style*="--cm-text-faint"],
[data-theme="paper"] h2[style*="--cm-text-faint"],
[data-theme="paper"] h2[style*="--cm-text-muted"],
[data-theme="paper"] [style*="color:var(--cm-text-faint)"]:is(h1,h2,h3),
[data-theme="paper"] [style*="color:var(--cm-text-muted)"]:is(h1,h2,h3),
[data-theme="clean"] h1[style*="color:#7A8599"],
[data-theme="clean"] h2[style*="color:#7A8599"],
[data-theme="clean"] h3[style*="color:#7A8599"],
[data-theme="clean"] [style*="color:var(--cm-text-faint)"]:is(h1,h2,h3),
[data-theme="clean"] [style*="color:var(--cm-text-muted)"]:is(h1,h2,h3) {
	color: var(--cm-text) !important;
}

/* Mais préserver les accents inline dans les titres */
[data-theme="paper"] h1 [style*="color:var(--cm-accent)"],
[data-theme="paper"] h2 [style*="color:var(--cm-accent)"],
[data-theme="paper"] h3 [style*="color:var(--cm-accent)"],
[data-theme="paper"] h1 [style*="color:#FF5C00"],
[data-theme="paper"] h2 [style*="color:#FF5C00"],
[data-theme="clean"] h1 [style*="color:var(--cm-accent)"],
[data-theme="clean"] h2 [style*="color:var(--cm-accent)"],
[data-theme="clean"] h3 [style*="color:var(--cm-accent)"],
[data-theme="clean"] h1 [style*="color:#FF5C00"],
[data-theme="clean"] h2 [style*="color:#FF5C00"] {
	color: var(--cm-accent) !important;
}


/* ============================================================
   PATCH v4.0b — Override variables CSS sur composants isolés
   (cm-audit-app, sections qui redéfinissent les vars cyberpunk)
   ============================================================ */

/* Force les variables du thème actif sur .cm-audit-app */
[data-theme="paper"] .cm-audit-app,
[data-theme="paper"] .cm-tool,
[data-theme="paper"] .cm-tool-inner {
	--cm-text: #1F1812 !important;
	--cm-bg: #F7F2EA !important;
	--cm-surface: #FFFFFF !important;
	--cm-surface-2: #F0EAE0 !important;
	--cm-text-muted: #5C4A32 !important;
	--cm-text-faint: #9A8470 !important;
	--cm-border: rgba(184, 67, 10, 0.18) !important;
	--cm-accent: #B8430A !important;
	--cm-accent-rgb: 184, 67, 10 !important;
}

[data-theme="clean"] .cm-audit-app,
[data-theme="clean"] .cm-tool,
[data-theme="clean"] .cm-tool-inner {
	--cm-text: #0E1525 !important;
	--cm-bg: #F8F9FB !important;
	--cm-surface: #FFFFFF !important;
	--cm-surface-2: #F0F3F8 !important;
	--cm-text-muted: #4A5568 !important;
	--cm-text-faint: #8896A8 !important;
	--cm-border: rgba(14, 100, 220, 0.15) !important;
	--cm-accent: #0E64DC !important;
	--cm-accent-rgb: 14, 100, 220 !important;
}

/* Applique aussi sur les éléments qui héritent des vars sombres */
[data-theme="paper"] .cm-audit-app h1,
[data-theme="paper"] .cm-audit-app h2,
[data-theme="paper"] .cm-audit-app h3,
[data-theme="paper"] .cm-tool h1,
[data-theme="paper"] .cm-tool h2,
[data-theme="paper"] .cm-tool h3 {
	color: #1F1812 !important;
}

[data-theme="clean"] .cm-audit-app h1,
[data-theme="clean"] .cm-audit-app h2,
[data-theme="clean"] .cm-audit-app h3,
[data-theme="clean"] .cm-tool h1,
[data-theme="clean"] .cm-tool h2,
[data-theme="clean"] .cm-tool h3 {
	color: #0E1525 !important;
}

/* Override générique : tout élément qui force --cm-text cyberpunk en inline */
[data-theme="paper"] [style*="--cm-text:#E8ECF8"],
[data-theme="paper"] [style*="--cm-text: #E8ECF8"],
[data-theme="clean"] [style*="--cm-text:#E8ECF8"],
[data-theme="clean"] [style*="--cm-text: #E8ECF8"] {
	--cm-text: var(--cm-text) !important;
}
