Daj jej (stopce) "clear:both" albo jeszcze lepiej przed zamknięciem diva klasy "main" jakiś elementem z tym stylem (clear:both)
Otóż

floaty są jak klej... jak coś ma floata to wszystko po nim się będzie starało do tego przyklejać

Jak dasz clear:both (ew. left lub right) to kasujesz "przyklejanie" się elementów od tego dalej

HTH!

EDIT:
Najlepszym w ogóle nawykiem jest tzw. zamykanie "floatów" przykład:
<!-- JAKIŚ KOD... -->
<div class="blok_z_float">(...)
</div> <div class="blok_z_float">(...)
</div> <div style="clear:both"></div> <!-- To jest właśnie "zamykanie floatów" ;) --> <!-- JAKIŚ KOD... -->
Po elementach z float, najlepiej jeszcze w ich kontenerze należy "zamknąć" floaty - dlaczego? właśnie dlatego by kod poniżej nie był przesuwany przez ten wyżej oraz po to by element kontenera miał poprawną wysokość w DOM. Często jest tak, że element, w którym znajdują się tylko elementy mające float ma niepoprawną wysokość.