Это такое забавное поведение у margin, когда он отступает не от родителя, а вместе с родителем. В Вашем случае у H1 заголовка margin не сброшен, он и отталкивает весь родительский блок.
margin-top: 0;
для H1 решит Вашу проблему
.hero-content h1 {
margin-top: 0;
font-size: 60px;
margin-bottom: -3px;
}