No he mirado el código, pero tiene toda la pinta de ser un problema causado por el colapsamiento de CSS.
Léase:
http://www.sitepoint.com/web-foundat...apsing-margins En concreto la sección «
Collapsing Margins Between Parent and Child Elements» que es tu caso, aunque todo el artículo es de interés, sobre todo para entender el porqué ocurre.