Hola
Torus
Con visibility:hidden el elemento no se vé, pero sigue ocupando el mismo espacio (se vé el hueco vacío) Con display:none el elemento no se muestra y no deja ningún hueco.
Puedes ver la diferencia cambiando las propiedades en este sencillo ejemplo:
<p>Párrafo 1</p>
<p style="display:none">Párrafo 2</p>
<p>Párrafo 3</p>
Saludos,