I’m pretty sure, it’s your headlines in the divs alignleft/alignright. They are “styled” with float:left and float:right, but you don’t really want them to float.
However, I’m not sure how to work around that with a simple explanation ;)… try to replace these two floats with the following…
Replace float:left in div.leftalign with…
display: inline;
text-align: left;
…and float:right in div.rightalign with:
display: inline;
text-align: right;
Maybe that’s enough to fix it.