Сетки: Испытание [27/32]. Грамотность кода

Одно из самых интересных испытаний пока что, пришлось всё писать с нуля почти, отсюда и возможны ошибки, а потому и вопрос к более опытным верстальщикам: подскажите, пожалуйста, насколько грамотен код? Визуально всё совпало на “ура”, а вот в практичности написанного сомневаюсь.
Постаралась вынести всевозможные повторы (цвет фона, отступы), правда, не уверена, что можно так лихо группировать header’ы и другие элементы. Буду очень рада услышать мысли по поводу кода.

<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="wrapper">
            <div class="header">Header</div>
            <div class="wide-elem menu">Menu</div>
            <div class="promo promo1">Promo 1</div>
            <div class="promo promo2">Promo 2</div>
        </div>
        <div class="content left">Left</div>
        <div class="content main">Main</div>
        <div class="content right">Right</div>
        <div class="wide-elem footer">Footer</div>
    </body>
</html>

html,
body {
    margin: 0;
    padding: 0;
}

body {
    width: 450px;
    height: 335px;
    font-family: "Arial", sans-serif;
    font-size: 10px;
    color: white;
}

.wrapper,
.footer {
    background: #34495e;
}

.header, 
.promo1,
.promo2 {
    background: #c0392b;
}

.menu,
.left,
.main,
.right {
    background: #3498DB;
}

.wide-elem {
    width: 340px;
    height: 25px;
    padding: 5px 55px;
}

.wrapper {
    width: 450px;
    height: 150px;
    display: table;
}

.header {
    float: left;
    width: 340px;
    height: 25px;
    margin: 10px 50px;
    padding: 5px 5px;
}

.menu {
    float: left;
}

.promo {
    width: 160px;
    height: 50px;
    padding: 5px 5px;
}

.promo1 {
    float: left;
    margin: 10px 5px 10px 50px;
}

.promo2 {
    float: right;
    margin: 10px 50px 10px 5px;
}

.content {
    height: 100px;
    padding: 5px 5px; 
}

.left {
    float: left;
    width: 60px;
    margin: 10px 5px 5px 50px;
}

.main {
    float: left;
    width: 180px;
    margin: 10px 5px;
}

.right {
    float: right;
    width: 60px;
    margin: 10px 50px 10px 5px;
}

.footer {    
    float: left;
}

Здесь много ошибок.
Центровщика нет. Только одна обертка - и то почему-то display: table;
Фиксированные высоты у блоков.
Почитайте несколько тем на форуме по этому заданию, чтобы разобраться.
А свойства вы очень хорошо сгруппировали.

Прокомментируйте пожалуйста мой код на грамотность?

<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="wrapp">
            <header class="">Header</header>
        </div>
        <div class="menu">Menu</div>
        <div class="promo">
            <div class="clearfix">
                <div class="Promo-1">Promo 1</div>
                <div class="Promo-1">Promo 2</div>
            </div>
        </div>
        <div class="content clearfix">
            <div class="bar">Left</div>
            <main class="bar">Main</main>
            <div class="bar">Right</div>
        </div>
        <footer>Footer</footer>
    </body>
</html>

html,
body {
margin: 0;
padding: 0;
}

body {
width: 450px;
height: 335px;
font-family: “Arial”, sans-serif;
font-size: 10px;
color: white;
}

.wrapp{
width:100%;
height:55px;
background-color:#34495e;
border-top:1px solid #34495e;
box-sizing:border-box;
}
header{
width:340px;
height:25px;
margin:9px auto 10px;
background-color:#c0392b;
padding:5px;
}
.menu{
width:450px;
height:35px;
background-color:#3498DB;
padding:5px 0 0 55px;
box-sizing:border-box;
}
.promo{
width:100%;
padding-top:10px;
height:80px;
background-color:#34495e;
box-sizing:border-box;
}
.Promo-1{
float:left;
background-color:#c0392b;
width:160px;
height:50px;
margin-right:10px;
padding:5px;
}
.Promo-1:last-child{
margin-right:0;
}

.clearfix{
width: 350px;
margin: 0 auto;
}
.clearfix::after{
display:block;
content:"";
clear:both;
}
.bar{
float:left;
height:100px;
width:60px;
background-color:#3498DB;
margin-right:10px;
padding:5px;
}
.bar:last-child{
margin-right:0;
}
main.bar{
width:180px;
}
.content{
padding:10px 0;
}
footer{
width:100%;
height:35px;
padding:5px 0 0 55px;
background-color:#34495e;
box-sizing:border-box;

}

html-код не видно. Кнопка для вставки </>.
К css тоже есть вопросы.