Как можно оптимизировать этот код ? 100% но есть ощущения что можно сделать проще

    Html:
                <div class="header-main">
                <div class="layout-position">
                    <div class="header">Header</div>
                 </div>
                 <div class="menu">
                    <div class="menu-layout-position">Menu
                    </div>
                </div>
                <div class="layout-position">
                    <div class="promo1">Promo 1</div>
                    <div class="promo2">Promo 2</div>
               </div>
               </div>
            </div> <!-- Закрываем див header-main -->
            <div class="main-main">
                <div class="layout-position">
                    <div class="left">Left</div>
                    <div class="main">Main</div>
                    <div class="right">Right</div>
                </div>
            </div> <!-- Закрываем див main-main -->
            <div class="footer">
                <div class="layout-position">
            Footer
                </div>
            </div>

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

body {
width: 450px;
height: 335px;
font-family: “Arial”, sans-serif;
font-size: 10px;
color: white;
}
.header-main {
background: #34495e;
padding: 10px 0;
}
.header {
min-height: 25px;
background: #c0392b;
padding: 5px;
margin-bottom: 10px;
}
.menu {
min-height: 25px;
background: #3498DB;
padding: 5px;
margin-bottom: 10px;
}
.promo1 {
min-height: 50px;
background: #c0392b;
float: left;
width: 160px;
padding: 5px;
margin-right: 10px;
}
.promo2 {
min-height: 50px;
background: #c0392b;
float: right;
width: 160px;
padding: 5px;
}
.menu-layout-position {
min-height: 15px;
padding-left: 10px ;
width: 350px;
margin: 0 auto;

}
.left {
width: 60px;
min-height: 100px;
float: left;
background: #3498DB;
margin-right: 10px;
padding: 5px;
}
.main-main {
margin: 10px 0;
}
.main {
width: 180px;
min-height: 100px;
float: left;
background: #3498DB;
margin-right: 10px;
padding: 5px;
}
.right {
width: 60px;
min-height: 100px;
float: right;
background: #3498DB;
padding: 5px;
}
.layout-position {
width: 350px;
margin: 0 auto;
}
.layout-position::after {
display: table;
content: “”;
clear: both;
}
.footer {
min-height: 30px;
background: #34495e;
padding: 5px 0 0 10px;
}

Общие стили трех колонок могли сгруппировать. Не стоит обнулять внутренние отступы справа и снизу.

Может и глупый вопрос и я чего то не понял из курса . но к чему это может привести ?

Контент не должен прилипать к границам блока. Сейчас там одно слово, поэтому вы не видите смысла. Добавьте больше текста в блок, чтобы понять, что имеется в виду.