Hola:
La verdad no entiendo nada, por un lado:
display:none quita el elemento definitivamente. El espacio que ocupaba, según sea el caso, es ocupado por los elementos adyacentes como si el elemento ya no existiera.
Y por otro:
la propiedad visibility determina la visibilidad de un elemento, en tu caso es visible.
¿Quieres hacer visible algo que no está?
Saludos.