Запомните одну вещь. Если в своем коде вам пришлось использовать отрицательные отступы, то значит что-то уже не так.
В курсе несколько раз упоминается о необходимости сброса внешних и внутренних отступов у списка. Обратите свое внимание на это.
Отступы между ссылками подменю будут меньше чем отступы ссылок в основном меню.
Также вам нужно будет добавить отступы сверху и снизу для списка подменю: .main-menu ul { }
Отступы - это часть базового оформления. Теги, предназначенные для оформления текста, имеют свои нигде не прописанные стили. Это как бонус. Например, css-файл по каким-то причинам не загрузился, но кое-какое оформление все равно присутствует. У списка есть маркеры или нумерация, заголовки все равно выделены полужирным, отступы есть…
Поэтому, если вы верстаете меню, то сброс стилей является обязательным.
Просмотрите свой код. Вы обнуляете отступы у списков, а у ссылок зачем обнулять? Их и так нет.
Тег ul является блочным по умолчанию. Запись display: block; здесь не требуется. Сброс маркеров вы могли написать в правиле для списка, не создавая отдельное правило для пунктов меню.