Well, here's a big problem:
Trying to imagine what HTML looks like based on CSS is insane. Especially when it has stuff like "#menu .menu". Huh?
Posting the pertinent HTML would be excellent.
In lieu of HTML, it looks like the only thing explicitly defining the size of your menu is
#menu {
left: 388px; top: 8px; width: 915px;
width: 1140px;
position:relative;
z-index:100;
height:32px;
}
#menu .menu {
margin:auto;
position:absolute;
width: 1140px;
}
(width: 1140px)
Make that a bit smaller and it should work fine. If it wraps, or does something funky, then I would imagine either: A) you have too many menu options or B) your font is set way too large. However:
#menu span {
text-transform:uppercase;
font:14px 'Trebuchet MS', Arial, Helvetica, Sans-serif;
color:#fff;
}
Makes it seem like you've got a fairly reasonable font size.
One last note for thought:
Using pixels is *typically* poor practice. It locks a user into a look that you deem acceptable. If they have their size set larger (for vision impaired, etc.), the changes won't take affect. Using "ems" is a better idea. It's not too hard to pick up on, and I highly recommend it.
Just google "design with em not px" to get some info.
Hope this helps,
-rockerest
p.s.
Pixels do have their place in many parts of web design, but for things like a nav bar, or other general sizes, ems are the way to go (even for absolute positioning! [which is not good practice either]).