/*
 * GTGF contrastfase E6 — Kennisartikel-sjabloon (single-gtgf_brief.php, geldt voor alle 45
 * sportartikelen via dit ene gedeelde bestand). Alles hieronder is live geverifieerd op
 * /kenniscentrum/beginnen-met-krachttraining/ met de gecorrigeerde contrastscanner (0
 * overtredingen na deze fix, zie de notitie). Geen van de bestaande bestanden is aangepast.
 *
 * Twee terugkerende patronen:
 *
 * A) Een eigen, bedoelde !important-kleurregel op een donkere kaart verliest van een generieke
 *    regel die ELKE p/h2/strong in het hele artikel raakt, met gelijke of hogere specificiteit
 *    (".v169600-article-apply__copy p/h2", de knoplabels, ".v1706-article-brief__title strong").
 *
 * B) Een sitebrede "muted tekst voor lichte achtergronden"-regel
 *    (var(--vp95-muted) = #55514c, uit quality-editorial-v160000.css / site-contrast-flow-
 *    v159995.css) of een sitebrede "cascade-authority"-regel (cascade-authority-v172900.css)
 *    bevat een ID-selector (resp. #planner-results en #main-content) als één van de opties in
 *    een buitenste :is()-lijst. Per CSS-specificiteitsregels telt zo'n :is() mee met de
 *    specificiteit van zijn meest specifieke optie, ongeacht welke tak daadwerkelijk matcht —
 *    dus deze regels hebben ID-niveau-specificiteit op ELK element dat de lijst raakt, ook via
 *    een heel andere, klasse-gebaseerde tak. Geen enkel aantal herhaalde klassen wint daarvan;
 *    alleen een selector met minstens even hoge (ID-niveau) specificiteit kan winnen. Zelfde
 *    valkuil, zelfde omzeiling (:is(#anker, .echte-klasse) met een verzonnen, nergens bestaand
 *    anker-id) als bij contrastfase-e2-recepten.css.
 *
 * Onderdelen (achtergrond → bevestigde live meting vóór de fix → bron van de bedoelde kleur):
 *
 * 1) ".v169600-article-apply__copy p" (introtekst "Volgende stap"-sectie, bg #10100f): verliest
 *    zowel van patroon A (".v1696-article-page .v159975-article-content p{color:#312d28}",
 *    knowledge-command-center-v169600.css) als — bevestigd via live matches()-onderzoek — van
 *    patroon B (var(--vp95-muted)). Ratio was 2,42:1. Bedoelde kleur: rgba(255,255,255,.68)
 *    (dezelfde v169600-regel die dit al goed bedoelde).
 *
 * 2) ".v169600-article-apply__copy h2" (kop "Kennis telt pas als je er iets mee doet.", bg
 *    #10100f): verliest van patroon A via
 *    "body.gtgf-v14.gtgf-v1600-article .v159975-article-content :is(h2,h3,h4,strong)"
 *    (quality-editorial-v160000.css, 3 klassen tegen 2 voor de bestaande h2-regel). Ratio was
 *    1,01:1. Bedoelde kleur: #ffffff (dezelfde v169600-regel die dit al goed bedoelde).
 *
 * 3) ".v169600-article-apply__actions a strong" (knoplabels) en ".v1706-article-brief__title
 *    strong" (kop "Weet eerst waarom je dit leest."): zelfde patroon-A-regel als (2) raakt ook
 *    strong. Het pijltje ("→", een <b>) in dezelfde knoppen verliest via een ANDERE, eveneens
 *    patroon-A-achtige regel (quality-contrast-premium-v164610.min.css,
 *    "main :is(.section--paper,...) :is(h1,h2,h3,h4,h5,strong,b,label,legend,summary)") — de
 *    "Volgende stap"-sectie zit binnen .section--paper. Beide bevestigd via live matches()-
 *    onderzoek; ratio was 1,01:1 voor strong en b. De oranje "is-primary"-knop heeft al een
 *    eigen, hogere-specificiteit !important-regel (#0b0b0b op oranje) en blijft met opzet
 *    buiten deze fix.
 *
 * 4) ".v145-article-hero__intro", ".v159975-article-facts small" (SPORT/LEESTIJD/ONDERBOUWING)
 *    en ".v1594-article-details small" (Onderwerp/Niveau/Status/Bewijskracht/Onderbouwing/
 *    Gepubliceerd/Gecontroleerd) — in de zwarte hero-sectie (bg #070806). Verliezen van patroon
 *    B. Ratio's 2,55:1. Bedoelde kleuren: rgba(255,255,255,.72) resp. rgba(255,255,255,.52) en
 *    rgba(255,255,255,.30) (bestaande, deels niet-!important regels in knowledge-command-center-
 *    v169600.css en knowledge-editorial-v1594.css).
 *
 * 5) ".gtgf-article-action.v157-action li" (de vijf stappen onder "Dit kun je deze week doen").
 *    Deze kaart heeft hier een eigen oranje achtergrond (bg #ff5a00, niet de standaard papieren
 *    achtergrond van dit onderdeel). Verliest van patroon B. Ratio was 2,52:1. De bijbehorende
 *    kop ("Dit kun je deze week doen") is met #111/rgb(20,18,16) wél leesbaar op dit oranje
 *    (ratio ruim boven 4,5:1) via een bestaande regel (".gtgf-article-action *{color:#111}",
 *    knowledge-premium-v159975.css) — dezelfde kleur is hier hergebruikt voor de listitems.
 *
 * 6) ".gtgf-article-research__body p" (twee alinea's in het "ONDERBOUWD & TOEGEPAST"-blok
 *    verderop op de pagina, bg #0a0a0a). Verliest van patroon B. Ratio was 2,51:1. Bedoelde
 *    kleur: rgba(255,255,255,.68) (bestaande, niet-!important regel in knowledge-editorial-
 *    v1594.css). De oranje eyebrow ("ONDERBOUWD & TOEGEPAST", een directe p.eyebrow van
 *    .gtgf-article-research zelf, dus niet geraakt door deze selector) blijft met opzet
 *    ongemoeid — dat overlapt met het al-gemelde, voor fase 1 bewaarde paletvraagstuk
 *    (rapport.md punt 4: het oranje merkaccent haalt zelf ook geen 4,5:1).
 *
 * 7) ".v159975-read-intro span" (badge "KERN") en ".v159975-read-intro small" ("Lees eerst de
 *    conclusie…"), bg wit. Dit zijn geen kaarten met een eigen donkere achtergrond — de regel
 *    die hier wint (cascade-authority-v172900.css, #main-content :is(...)) is zelf de bug: hij
 *    bundelt deze twee met een aantal écht-donkere-achtergrond-onderdelen elders op de site
 *    onder één lichte kleur (rgb(198,204,198), bedoeld voor een donkere achtergrond), zonder
 *    uitzondering voor dit onderdeel dat hier altijd op een witte achtergrond staat. Ratio was
 *    1,63:1 voor beide. Hersteld naar var(--kp-orange) (#ff5a00) voor de span (bevestigd via de
 *    bestaande, niet-!important regel in knowledge-premium-v159975.css — consistent met het
 *    "KERN"-label als accentkleur) en var(--kp-muted) (#6f6960) voor de small (bestaande, niet-
 *    !important regel, zelfde bestand). De small haalt daarmee ruim 4,5:1 op wit; de span
 *    (#ff5a00 op wit, 3,13:1) NIET — dat is dezelfde, al-gemelde en voor fase 1 bewaarde
 *    paletbeperking als bij punt 6 (rapport.md punt 4), niet apart opnieuw opgelost. Dit
 *    herstelt het onderdeel naar zijn eigen bedoelde ontwerp (net zo leesbaar als de andere
 *    oranje badges op deze pagina, zoals "STARTERSGIDS"), zonder de sitebrede oranje-accent-
 *    vraag hier alvast zelf te beslissen.
 *
 * 8) ".v157-week-bars b" (dagletters Ma/Di/Wo/…) en ".v157-week-bars small" (sessietype, bv.
 *    "herstel"/"kracht") in de wekelijkse staafgrafiek (".v157-visual.v157-visual--week", bg
 *    #080808) — gevonden bij het testen van een tweede artikel
 *    (/kenniscentrum/trainingsweek-slim-indelen/), niet aanwezig op het eerste testartikel.
 *    Zelfde twee patronen: b verliest van patroon A (quality-contrast-premium-v164610.min.css,
 *    zelfde regel als punt 3), small verliest van patroon B. Ratio's 1,05:1 resp. 2,53:1.
 *    Bedoelde kleur voor beide: #ffffff (de eigen, niet-!important regel in v15-platform.css
 *    die dit al goed bedoelde). Andere ".v157-visual"-varianten (sleep-trend, zone-strip,
 *    interval-lines, e.a.) zijn niet getest en kunnen hetzelfde probleem hebben — niet in deze
 *    fix meegenomen, wel een aandachtspunt voor de volgende scanronde.
 *
 * Geverifieerd op twee artikelen (/beginnen-met-krachttraining/: 33→0 oplosbare overtredingen;
 * /trainingsweek-slim-indelen/: 47→6, de resterende 6 zijn stuk voor stuk hetzelfde al-gemelde
 * oranje-accent-vraagstuk uit rapport.md punt 4) met de gecorrigeerde contrastscanner, via
 * tijdelijke in-memory CSS-injectie — niets op de live site opgeslagen of gewijzigd.
 *
 * Alleen op de artikeldetailpagina's (is_singular('gtgf_brief')).
 *
 * Uitzetten: define( 'GTGF_CONTRASTFASE_E6', false ); in wp-config.php.
 */

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v169600-article-apply__copy) p {
  color: rgba(255, 255, 255, .68) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, .68) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v169600-article-apply__copy) h2 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v169600-article-apply__actions a:not(.is-primary) strong {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v169600-article-apply__actions a:not(.is-primary) b {
  color: #ff5a00 !important;
  -webkit-text-fill-color: #ff5a00 !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v1706-article-brief__title strong {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v145-article-hero__intro) {
  color: rgba(255, 255, 255, .72) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, .72) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v159975-article-facts) small {
  color: rgba(255, 255, 255, .52) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, .52) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v1594-article-details) small {
  color: rgba(255, 255, 255, .30) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, .30) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .gtgf-article-action.v157-action) li {
  color: rgb(17, 17, 17) !important;
  -webkit-text-fill-color: rgb(17, 17, 17) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .gtgf-article-research__body) p {
  color: rgba(255, 255, 255, .68) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, .68) !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v159975-read-intro) span {
  color: #ff5a00 !important;
  -webkit-text-fill-color: #ff5a00 !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v159975-read-intro) small {
  color: #6f6960 !important;
  -webkit-text-fill-color: #6f6960 !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v157-week-bars b {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v157-week-bars) small {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/*
 * 9) Veralgemeniseerd naar de hele ".v157-visual"-familie (dertien datablokvarianten met een
 *    figure.v157-visual-wrapper, allemaal in inc/knowledge-v157.php: week, zones, interval,
 *    concurrent, monitor, fuel, hydration, sleep, energy, traffic, recovery, pacing,
 *    environment). Punt 8 hierboven (".v157-week-bars b/small") was de eerste, toevallig
 *    gevonden instantie van dit patroon; live gescand op elf van de twaalf overige varianten
 *    (op tien van elf artikelen: "environment" rendert de figure niet op de live pagina, kon
 *    niet worden geverifieerd) bleek exact hetzelfde bugpaar zich te herhalen, telkens met
 *    dezelfde bedoelde kleur (wit) en dezelfde twee winnende regels als bij punt 3/8:
 *    - <b> en <strong>: verliezen van patroon A (quality-contrast-premium-v164610.min.css,
 *      "main :is(.section--paper,...) :is(h1,h2,h3,h4,h5,strong,b,label,legend,summary)"),
 *      bevestigd via live matches()-onderzoek — geen ID in deze selector, dus geen ID-truc nodig.
 *    - <small>: verliest van patroon B (var(--vp95-muted), bevat #planner-results), bevestigd via
 *      hetzelfde live matches()-onderzoek — hier wél de ID-truc nodig.
 *    Ratio's vóór fix: 1,01–1,05:1 voor b/strong, 2,53–2,55:1 voor small — op elke geteste
 *    variant identiek aan punt 8. Live geverifieerd vóór/na op vier artikelen (zones, concurrent,
 *    traffic, pacing): allemaal naar 0 overtredingen binnen de ".v157-visual"-figure. Twee
 *    varianten (sleep, recovery) hebben geen <b>/<strong>/<small> in hun opmaak en waren al vrij
 *    van overtredingen. Deze twee generieke regels dekken zo alle twaalf geverifieerde varianten
 *    in twee regels, in plaats van twaalf losse selectors — inclusief ".v157-week-bars" uit punt
 *    8 (overlapt met die eerdere, al even brede regels; geen conflict, zelfde kleur).
 *
 *    Bij het scannen van het pacing-artikel in volle breedte kwamen ook zes ándere, NIET in deze
 *    fix meegenomen overtredingen naar boven die niet op de eerder geteste artikelen voorkwamen:
 *    de "PIJLERARTIKEL"- en "ONDERBOUWD & TOEGEPAST"-eyebrows (kleur #bd3e00, 3,68:1 resp.
 *    3,63:1), de gerelateerde-artikelenkaarten (#ff5a00, 2,92:1) en een "Help GTGF beter
 *    maken"-link (#d94e08, 3,66:1) — dit zijn stuk voor stuk varianten van hetzelfde, al gemelde
 *    en voor fase 1 bewaarde oranje-merkaccentvraagstuk (rapport.md punt 4), dus bewust niet
 *    hier meegenomen. Eén overtreding was dat niet: een grijze tekst in een feedback-widget
 *    ("optioneel, alleen als je een reactie wil geven…", 4,24:1) — een nieuw, op zichzelf staand
 *    en nog niet onderzocht element, buiten de scope van deze CSS-fix gelaten.
 */

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v157-visual b {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
.v157-visual strong {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root
:is(#gtgf-cf-e6-anker, .v157-visual) small {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
