Olii div'ы - это блочные элементы, соотвественно, элементы после них начинаются с новой строки.
Используйте инлайн-блоки, флексы или флоат, если он оправдан.
Большому контейнеру-обертке не стоит задавать высоту вообще (да и остальным, по возможности тоже) , пусть он растягивается по содержимому.
Вместо странных margin обычно удобнее использовать позиционирование.
Почитайте, хорошая статейка
https://csswizardry.com/2012/11/code-smells-in-css/