I’m sorry to say, but a 200 line CSS file isn’t something that many people will want to pick through. You should try to reduce it to just the pertinent parts, so that just enough remains to demonstrate the issue (I reckon you could do it in less than 20 lines).
That said, if the hover is adding border-bottom: 4px solid white;
, try putting border-bottom: 4px solid transparent;
on the default/un-hovered state. This should neutralise the jump – the logic being that the border will be there all the time but it will only turn white when a button is hovered.