border-top: 0 !important;
You need to add !important, which tells the styling to take priority over previous styling.
Might be worth reading up on how css targets elements and what takes priority: this post explains it better than I can:
What are the priorities among CSS selectors
As a note: I seem to remember running into some problems in certain browsers if border styling is set differently, e.g if you add a style to all borders and then try to overwrite with individual border settings, e.g border-top - I'm sorry I can't remember the exact details but something to keep in mind if you have other border problems.
UPDATE:
I have simplified the css to remove the nested css and unecessary duplicate selections, check here http://jsfiddle.net/VWQct/24/ . Is this what you were trying to achieve?