28/28 Прошел на 100%. Покритикуйте пожалуйста. Подскажите где ошибки или как оптимизировать код)

html, 

body {
margin: 0;
padding: 0;
}

body {
width: 380px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1;
}

.main-menu {
margin: 0;
padding: 0;
list-style: none;
position: relative;

}
.main-menu li {
display: block;
background: red;
width: 200px;
background: #2980b9;
border-bottom: 2px solid #2c3e50;

}
.main-menu li a{
padding: 10px 15px;
display: block;
color: white;
text-decoration: none;
}
.main-menu .sub-menu {
padding: 0;
top:41px;
left: 180px;
display: block;
list-style: none;
position: absolute;
}
.main-menu .sub-menu li {
background: #1abc9c;
border-bottom: 2px solid #2ecc71;
}
.main-menu .opened {
background: #1abc9c;
}

Если условие кратности пяти для вас не принципиально, то других замечаний не имею.

Ну как бы все имеет просто только при top:41px; смог подогнать выпадающее меню на нужные координаты. Если оставлять top: 40px то меню заезжает на нижний бордер основного меню.А что тогда можно сделать чтобы код подходил по всем условиям?

Вроде сам допер. Вот исправленный код. Так пойдет?
html,
body {
margin: 0;
padding: 0;
}

body {
width: 380px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1;
}

.main-menu {
margin: 0;
padding: 0;
list-style: none;

}
.main-menu li {
position: relative;
display: block;
background: red;
width: 200px;
background: #2980b9;
border-bottom: 2px solid #2c3e50;

}
.main-menu li a{
padding: 10px 15px;
display: block;
color: white;
text-decoration: none;
}
.main-menu .sub-menu {
padding: 0;
top: 0;
left:180px;
display: block;
list-style: none;
position: absolute;
z-index: 10;
}
.main-menu .sub-menu li {
background: #1abc9c;
border-bottom: 2px solid #2ecc71;
}
.main-menu .opened {
background: #1abc9c;
}

Да, так и надо было сделать. Не хотите пояснить, почему так?

Как я понимаю потому-что в первом варианте относительное позиционирование задал для всего меню и всплывающее меню позиционировалось относительно него. А во-втором уже исправил позиционирование относительно списка первого уровня. Еще пришлось задать z-index всплывающему меню так как оно было перекрыто списком верхнего уровня. Вроде так я думаю…))

1 лайк