I am new to this forum, so apologies if I don't follow all the rules.
I had a look at your problem last night.
If you comment out all the header stuff so that your page starts with the "topcontent" you will see that the 20px or so gap still appears at the top. The problem is not in the header. Get rid of the -20px margin, that is moving the header further down the page.
I also saw that the h2 tag has a margin poking out the top of the block. I also saw that something there had a 2% top margin. these could be causing the gap.
I didn't get any further as when I reloaded the page I found that you had updated it, and was now a complete mess. I assumed that you were working on it Live, so I left you to it. Sorry if that was an incorrect assumption.
Personally, I always work locally using Virtual Box etc
Anyway I hope this helps you get to the bottom of it, Steve