1. Разобраться в CSS
2.
display: inline-block; вот это нахер.
3. Либо родителю добавить
display:flex;flex-direction:column; → иметь дело с последствиями.
UPD: после дополнения вопроса словами
речь про нормальный перенос > и >>
Псевдоэлементы должны быть смещены влево и быть не
:before, а
:after.