I have a feeling that most of the problems here are being caused by explicitly defining heights (where instead, height should automatically adjust with the content inside of a container), and floating where there doesn’t have to be any floats (ie: .left2).
Instead of using .bottomcontent4 and .bottomcontent5 where you will have to redefine all of the properties, you could create a .bottomcontent class that shares those properties. You would not have to set the height of this class, because the height would be dependent on elements inside those containers.