В первую очередь мы смотрим в дизайн и пытаемся понять, кто «диктует» различия у одинаковых или схожих блоков. Тут, похоже, есть две «темы», которые модифицируют подложку (цвет фона) у родительского блока и цвет текста у заголовка. Возможно (без дизайна тут можно бесконечно гадать), что по-БЭМ это будет выглядеть как-то так:
<header class="header header_theme_dark">
<div class="header__heading">
<h1 class="heading heading_size_xxl heading_theme_dark">
Hello kitty
</h1>
</div>
</header>
<header class="header header_theme_light">
<div class="header__heading">
<h1 class="heading heading_size_xxl heading_theme_light">
Hello kitty
</h1>
</div>
</header>
— у .header_theme_* описан цвет «подложки» (background-color), а .heading_theme_* в свою очередь «знает», какой нужно задавать цвет текста (color).