/* the article is a light page in both themes, so these apply in both (hero rules stay light-only).
   generated from the contrast audit for case-studies/luxury-home.html: text that failed WCAG AA on its real background, lifted toward ink only as far as needed (hue kept). Regenerate with theme/_qa. */
html[data-theme] .cs-finding .cs-finding-num { color: rgb(122, 110, 92); }   /* 1.51:1  "01" */
html[data-theme] .viz-journey-stage-header .viz-journey-stage-num { color: rgb(113, 112, 118); }   /* 1.74:1  "1" */
html[data-theme] .cs-intervention .cs-intervention-num { color: rgb(116, 115, 121); }   /* 1.75:1  "01" */
html[data-theme] .cs-channels-inner .cs-roas-footnote { color: rgb(108, 108, 111); opacity: 1; }   /* 1.82:1  "Performance data verified " */
html[data-theme] .cs-channels-inner .cs-channels-eyebrow { color: rgb(108, 108, 111); opacity: 1; }   /* 1.88:1  "Channel Architecture · Nov" */
html[data-theme] .lh-pipeline-hd .cs-eyebrow { color: rgb(130, 108, 74); }   /* 1.99:1  "Channel Architecture" */
html[data-theme] .cs-channel-matrix.cs-stack th { color: rgb(113, 113, 115); opacity: 1; }   /* 2.02:1  "Dimension" */
html[data-theme] .cs-channel-matrix.cs-stack .ch-col { color: rgb(113, 113, 115); opacity: 1; }   /* 2.02:1  "Google Ads" */
html[data-theme] .cs-roas-comparison.cs-stack th { color: rgb(113, 113, 115); opacity: 1; }   /* 2.02:1  "Metric" */
html[data-theme] .cs-mid-hook .cs-mid-hook-link { color: rgb(130, 108, 73); }   /* 2.02:1  "See what it covers →" */
html[data-theme] .viz-journey-stage-header .viz-journey-stage-role { color: rgb(113, 113, 115); opacity: 1; }   /* 2.02:1  "Create Demand" */
html[data-theme] .is-highlighted .period-before { color: rgb(113, 112, 120); }   /* 2.09:1  "3.1×" */
html[data-theme] .cs-roas-comparison.cs-stack .period-before { color: rgb(115, 115, 123); }   /* 2.09:1  "Google only" */
html[data-theme] .is-priority .row-label { color: rgb(113, 113, 116); opacity: 1; }   /* 2.21:1  "Funnel Role" */
html[data-theme] .cs-channel-matrix.cs-stack .row-label { color: rgb(113, 113, 116); opacity: 1; }   /* 2.21:1  "Audience Strategy" */
html[data-theme] .viz-foundation .viz-foundation-label { color: rgb(105, 105, 116); }   /* 2.42:1  "First-Party Data Foundatio" */
html[data-theme] .cs-result .cs-result-lbl { color: rgb(109, 108, 110); opacity: 1; }   /* 2.5:1  "Peak Cross-Channel ROAS" */
html[data-theme] .cs-author-authority .cs-author-eyebrow { color: rgb(108, 108, 112); opacity: 1; }   /* 2.7:1  "About the strategist" */
html[data-theme] .viz-foundation .viz-foundation-desc { color: rgb(105, 105, 110); opacity: 1; }   /* 2.8:1  "Purchase history from Klav" */
html[data-theme] .ch-value .ch-tag { color: rgb(113, 112, 127); }   /* 3:1  "Conversion" */
html[data-theme] .cs-author-id-text .cs-author-org { color: rgb(186, 72, 34); }   /* 3.06:1  "MESAscale" */
html[data-theme] .viz-journey-tactics .viz-journey-tactic { color: rgb(115, 115, 120); opacity: 1; }   /* 3.48:1  "In-stream + non-skippable " */

/* second pass: rules that needed !important to win over the page's own selectors */
html[data-theme] .cs-roas-comparison.cs-stack .period-before { color: rgb(115, 115, 123) !important; }   /* 2.09:1  "Google only" */
html[data-theme] .ch-value .ch-tag { color: rgb(113, 112, 127) !important; }   /* 3:1  "Conversion" */
