Nie przepraszaj za nieczytelność kodu, tylko skoro już wiesz, że jest nieczytelny to staraj się go poprawić :)
Spójrz:
ol > li > ul > li:hover > a
{
color: #0a2b42;
}
prawidłowo te selektory powinny mieć swoje klasy, żeby uniknąć takiego zagnieżdżania.
Jeśli Twoje <li> oraz w nich <a> mają takie same style to proponowałabym dać po prostu klasę ogólną dla każdego <li> np menu-item i dla <a> menu-link i wtedy Twój kod wyglądałby tak:
.menu-link {
color: #0a2b42;
}
co jest sporo łatwiejsze to rozgryzienia niż ten kod podany wyżej :)
Więc bardzo polecam pododawać klasy i po nich stylować (nie po selektorach i nie po id).
Dodatkowo nie używaj tutaj <ol> bo nigdzie nie masz chyba ponumerowanej listy, to po prostu są <ul>.
A co do Twojego problemu to:
<li><a>Pętle</a></li>
<ol>
<li><a href="#">While</a></li>
<li><a href="#">For</a></li>
</ol>
źle zamknąłeś tag <li> - powienien być po tagu </ol> i dalej już chyba powinieneś sobie poradzić, skoro udało Ci się zrobić już takie rozwijane menu :) Tak w ogóle to kolejne elementy mają być pod napisem "Pętle" pokazywane, czy obok?