Испытание: строим сетку. Прошу критики.

Результат сходится на 100%, но мне кажется, в коде много лишнего. Буду рад, если кто-то подскажет более рациональный вариант. Заранее спасибо)

<head>
    <title>Испытание: строим сетку</title>
    <meta charset="utf-8">
</head>
<body>
    <div class="container clearfix">
        <div class="header layout-positioner">Header</div>
        <div class="menu">Menu</div>
        <div class="layout-positioner ">
            <div class="layout-promo promo1">Promo 1</div>
            <div class="layout-promo promo2">Promo 2</div>
        </div>
    </div>
    <div class="layout-positioner">
        <div class="layout-column column1">Left</div>
        <div class="layout-column column2">Main</div>
        <div class="layout-column column3">Right</div>
    </div>
    <div class="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;
}

.clearfix:after {
content: “”;
display: table;
clear: both;
}

.layout-positioner {
width: 350px;
margin: 0px auto;
}

.container {
padding: 10px 0px;
background: #34495e;
}

.header {
min-height:30px;
width: 345px;
padding-left: 5px;
Padding-top: 5px;
margin: auto;
background: #c0392b;
}

.menu {
min-height:30px;
padding-left: 55px;
Padding-top: 5px;
margin: 10px 0px;
background: #3498DB;

}

.layout-promo {
min-height: 55px;
width: 165px;
padding-left: 5px;
Padding-top: 5px;
background: #c0392b;
}

.promo1 {
float: left;
margin-right: 10px;
}

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

.layout-column {
min-height: 105px;
padding-left: 5px;
Padding-top: 5px;
margin: 10px 10px 10px 0px;
background: #3498DB;
float: left;
}

.column1 {
width: 65px;
}

.column2 {
width: 185px;
}

.column3 {
width: 65px;
margin-right: 0px;
}

.footer {
height: 30px;
padding-left: 55px;
Padding-top: 5px;
background: #34495e;
clear: both;
}

Не отцентрировано .menu и .footer. В блоке с тремя колонками не хватает распорки, из-за чего для футера дополнительно прописано clear: both;

Спасибо!