¿No le tendrá un margen superior a la primera caja (div) de su html. Esto es, al primer hijo de body?
Si fuese así, cambie el margen de ese elemento por un padding superior al body de igual valor.
Por cierto, tiene una contraindicación en:
Cita: background: url(../img/fondoa.jpg) no-repeat center ;
background-position:top;
la primera regla sería para situar la imagen en el centro de la ventana (vertical y horizontal)
Con la 2ª la reescribe para ponerla al centro en x y arriba en y.
Y para evitar alguna sorpresa en alguna versión de algún navegador, mejor dejar un espacio entre el cierre de paréntesis y el repeat.