hidden nasconde il layer ma rimane nella pagina, quindi ingombra spazio.
per toglierlo devi usare

display:none;
e
display:block;