Так у Вас main наслаивается на header, а footer на main. footer выше main, а main своим фоном закрашивает header. Без background-color фон прозрачный, и красный томатный заголовок просвечивает. UPD Проще понять, посмотря на пример: https://jsfiddle.net/Ivanq/bhok6cev/3/. Здесь задана прозрачность, и видно, что на что наслаивается.