Hola:
Con visibility se reserva el espacio cuando es hidden, pero con display: none, no... por esa razón, seguramente sea conveniente que en vez de usar visibility uses display (block/none)... recuerda que con display: inline conviertes a tu elemento de bloque en uno "en línea"...
Saludos