First off, you have too much code there. If you just set the parameters that stay the same (padding, color, text-decoration, height) inside an
a.nav rule, it will set it for all states. You only need to change the values for the state where they're different, in this case :hover.
Code:
a.nav {
color: #333;
padding: 5px;
text-decoration: none;
height: 26px;
}
a.nav:hover {
color: #988D52;
background: #E1D7B3;
}
It looks to me that the wrong height is caused by the extra padding-top: 5px; parameter you have added. If you use the code above, it should work ok.