Блок с margin-top отталкивается не от родителя?
Margin collapsing (схлопывание внешних отступов)
Я не знаю почему это происходит, но display:inline-block; у ребенка помогает)
Слетит выравнивание по центру. Восстановить можно с помощью   text-align:center; у родителя.
Все это костыли, думаю есть более элегантное решение.
UPD: display:inline-block; можно задать родителю.