Ciao aswreee, non ho guardato nel dettaglio il tuo codice, ma se il tuo div "principale" deve avere altezza eguale al 100%, sarà necessario aggiungere al css

codice:
html, body {height:100%}
sarebbe bene anche azzerare tutti i margini e padding ripristinandoli solo dove servano (* {margin:0; padding:0)}