Подскажите, как оптимизировать код. 27 задание

<!DOCTYPE html>
Испытание: строим сетку
Header
  <div class="menu">
    Menu
  </div>
  <div class="promo">
    <div class="promo1">Promo 1</div>
    <div class="promo2">Promo 2</div>
  </div>
</div>
<div class="columns">
  <div class="left-column column">Left</div>
  <div class="main-column column">Main</div>
  <div class="right-column column">Right</div>
</div>
<div class="footer">
  Footer
</div>
html,

body {
margin: 0;
padding: 0;
}

body {
width: 450px;
height: 335px;

font-size: 10px;
font-family: “Arial”, sans-serif;
color: white;
}

/*
Используемые цвета:
#34495e – мокрый асфальт
#c0392b – красный
#3498db – синий
*/

.header {
width: 450px;
background-color: #34495e;
height: 160px;
padding-top:10px;
}

.head {
background-color: #c0392b;
width:350px;
height: 35px;
margin-top: 9px;
margin-bottom: 10px;
margin: auto;
padding: 5px;
box-sizing: border-box;
}

.menu {
width: 450px;
background-color: #3498db;
height: 35px;
margin-top: 10px;
padding-top: 5px;
padding-left: 55px;
box-sizing: border-box;
}

.promo1,
.promo2{
background-color: #c0392b;
margin-top: 10px;
width: 170px;
height: 60px;
padding: 5px;
box-sizing: border-box;
}

.promo1 {
float: left;
margin-left: 50px;
}

.promo2 {
float: right;
margin-right: 50px;
}

.column {
background-color: #3498db;
height: 110px;
margin-top: 10px;
padding: 5px;
box-sizing: border-box;
margin-bottom: 10px;
}

.left-column,
.main-column{
float: left;
}

.right-column {
float: left;
width: 70px;
margin-left: 10px;
}

.left-column {
margin-left: 50px;
width: 70px;
}

.main-column {
margin-left: 10px;
width: 190px;
}

.footer {
background-color: #34495e;
clear: both;
height: 40px;
padding-top: 5px;
padding-left: 55px;
box-sizing: border-box;
}

Сетка сделана неверно.
Должна центрироваться, растягиваться по вертикали…
Чтобы правильно сделать сетку – должно быть понятно как всё работает в предыдущем задании (26/32).

По этому испытанию на форуме очень много написано – ищите…
Или спрашивайте…

Получиться должно примерно так:
Сетки 27/32 (100%) Пожалуйста, оцените код.

Спасибо