даже закрытое меню сдвигает футер
-конечно, visiblity ведь элемент никуда не девает из потока.
если волнует дыра снизу то Overflow должно помочь.
а если волнует что пункты меню не видно - тогда надо js делать, проверять что все входит. если нет, двигать куда-то, скролл внутрь ставить и тд