Если я правильно понял, что вам нужно, то добавьте
vertical-align: middle; к тексту кнопки:
.menu-button a {
font-weight: 800;
font-size: 15px;
color: #fff;
text-transform: uppercase;
text-decoration: none;
line-height: 40px;
vertical-align: middle;
}
Кстати
line-height: 40px; вообще не работает, пока вы не укажите для тега a -
display:inline-block;.
Если вам прямо нужно получить текст высотой 15px и чтобы родитель при этом был ровно 40 пикселей без указания его размеров, то финальный css будет такой:
.menu-button a {
font-weight: 800;
font-size: 15px;
color: #fff;
text-transform: uppercase;
text-decoration: none;
line-height: 15px;
display:inline-block;
vertical-align: middle;
}