Прежде всего хочу сказать, что в вашем коде есть намёк на
БЕМ и вы даже используете SCSS, но при этом вы вообще не используете переиспользование БЭМ-классов. Почитайте, пожалуйста, об этой методологии и избавьтесь от каши в стилях.
Ответ на ваш вопрос:
https://dimox.name/press_footer_bottom_with_css/
<body>
<header>
<!-- Ваш хедер -->
</header>
<main>
<!-- Основной контент страницы -->
</main>
<footer>
<!-- Ваш футер -->
</footer>
</body>
*, *::before, *::after {
margin: 0;
padding: 0;
}
html {
height: 100%;
}
body {
height: 100%;
display: flex;
flex-direction: column;
}
body {
flex: 1; /* Расширяет основной контент на все доступное пространство */
}
header, footer {
flex-shrink: 0; /* Предотвращает сжатие хедера и футера */
}