Схлопывание родителя, если у дочерних элементов указан float?
У вас недвусмысленно стоит:.price {
	float: left;
}
Допишите.product:after,
#sales:after {
	content: "";
	display: block;
	clear: both;
}
Вам следует понять, что такое last-child (хотя, вроде, и по названию можно догадаться), и чем это отличается от last-of-type..product:last-of-type { 
	border-bottom-color: transparent;
}
Можете почитать материал на хабре habrahabr.ru/post/189118