Hi Mark,
That style block at the top comes from the ASP.NET Menu control. Some of that stuff may be caused by having something in theme.skin that refers to <asp:Menu
I would look there and remove anything you see that starts with <asp:Menu runat="server"... That should get rid of some of what is in that style block. If you are using .NET 3.5 it may be coming from the /App_Themes/default/theme.skin file rather than the one in your skin folder, so I would check both of those.
It appears this site is running under .NET 3.5 because that style block goes away in .NET 4 (unless you have it specifically configured to render in .NET 3.5 mode which can be done in .NET 4). But then in .NET 4 there is a different problem where it adds style to the menu from javascript.
In either case you can override those styles from your own CSS by adding the !important qualifier to your style rules as needed.
like if that bottom rule padding:0 is what is causing the problem, you could add this in your CSS and override it:
ul.art-menu { padding-top: 5px !important; }
it is a matter of figuring out which thing is conflicting with your style rule and then making your own setting more important.
The article The Trouble With ASP.NET Menu provides some information related to this.
Hope that helps,
Joe