Глядя на разметку, я думаю, что вы должны попытаться добавить div, чтобы окружить каждый ряд div. Вы перемещаете элементы влево, и у вас нет ни одного элемента внизу с clear: both; значение установлено. Пример:
<div id="row1" class="rowWrapper">
<div id="program-dayoutdoor" class="program-wrapper">
CONTENT
</div>
<div id="program-daycamp" class="program-wrapper">
CONTENT
</div>
</div>
Тогда в вашем CSS вам понадобится стиль, подобный следующему
.rowWrapper {
clear: both;
height: WHATEVER_HEIGHT_YOU_NEED_PER_A_ROW
}
Я не уверен, что это решит вашу проблему, но это только начало. Это будет гарантировать, что при каждом изменении строк строки не будут пытаться переместиться друг на друга.
Кроме того, убедитесь, что размеры в обоих классах одинаковы, что, очевидно, даст эффект.
Надеюсь, это поможет,
Метрополис
EDIT
Хорошо, я думаю, что вижу вашу проблему. Начиная с вашего CSS есть это для этих элементов
body.page-slug-program div#program-daycamp {
background-position:0 -141px;
margin-left:-32px;
}
Но на полях слева налево отходит и background-position = -390px -341px;
Это означает, что ваш CSS должен изменяться где-то посередине.