Проблем не вижу. У тебя все блоки ровные. Первая линия 50%, вторую надо подсчитать, средняя 54.125%, боковые по 22.9375%. Бутстрап тебе в данном случае будет абузой. Сделай контейнер disaplay:flex, flex-wrap: wrap. Первым двум потомкам задай flex: 0 0 50%, остальным flex: 0 0 22.9375% flex: 0 0 54.125%; А пользуясь брейкпоинтами задавай соответствующие размеры в зависимости от размера окна.
https://codepen.io/Profesor08/pen/MBEqBJ