Как задать футеру черный фон на всю ширину экрана?
footer {
    background-color: #231f20;
    color: white;
    display: block;
    height: 400px;
    left: 0;
    position: absolute;
    width: 100%;
}
а для того чтобы выровнять содержимое, добавь внутрь wrapper, например:<footer>
<div style="width:900px; margin:0 auto;">
..content..
</div>
</footer>
Вообще, в твоем случае лучше поменять структуру, сделать типа такой:<body>
    <header></header>
    <main></main>
    <footer></footer>
</body>
и прописать нужные стили отдельно для header, main и footer
Вот так? Если да, то измените атрибут min widht (или удалите)body {
    margin: 0 auto;
    padding: 0;
    background-color: #f2f2f2;
    font-family: sans-serif;
    min-width: 1200px;
    max-width: none;
    width: 100%;