Да, не срабатывает, точнее, срабатывает частично, т.к. ссылки - это СТРОЧНЫЕ элементы, они не могут воспринять вертикальные отступы. Для этого задают им display: block - и тогда всё начинает работать. Кроме того, у Вас 2 селектора, которые содержат аналогичные свойства и дублируют друг друга: .main-menu > li > a и .sub-menu a. Для чего? Замените .main-menu > li > a на .main-menu a, тогда становится не нужен .sub-menu a. И добавьте в .main-menu a { display: block; padding: 10px 15px;} (только не забудьте убрать в этом случае padding из li). К тому же, не рекомендуется делать такие огромные по вложенности селекторы - .main-menu .opened .sub-menu li: вполне будет достаточно .sub-menu li; Или: .main-menu .opened .sub-menu - можно заменить на .main-menu .sub-menu, иначе, когда будете делать более сложные проекты, замучаетесь переопределять свойства - придётся делать такой же огромный по вложенности селектор, чтобы перебить необходимое свойство ниже.