Плавающие элементы не увеличивают высоту своих родителей. Это вызывает эффект, который вы видите.
Вы должны добавить элемент уровня блока с clear: left;
после последнего плавающего элемента:
<li>
<div class="img-section"><img /></div>
<div class="text-section">...</div>
<br style="clear: left;" />
</li>
Обычно для этой цели используется <br>
.