Ciao, in generale puoi usare flex box applicando display:flex e align-items:center al genitore. Nel tuo caso però, per ottenere un risultato soddisfacente, dovresti applicare flex su tutti gli elementi coinvolti nella gerarchia, cioè <ul> <li> e <a>.

Prova a rimuovere i vari display:block e float:left per tali elementi, nonché rimuovere quel margin-bottom:10px che hai messo al logo (presumo che disturbi il centraggio) e applicare quindi qualcosa del genere:
codice:
#mainmenu ul,
#mainmenu li {
   display: flex;
   align-items: stretch;
}
#mainmenu a {
   display: flex;
   align-items: center;
}
Fai sapere.