Основной косяк в том, что ты просто не понимаешь, что ты делаешь.
Задавая фон для чего-либо, то ты задаешь фон области, которая может растягиваться в зависимости от контента. Соответсно, чтобы этого не происходило, необходимо убрать свойства типа background-size:cover\contain и задавать размеры и поведение вручную.
Ну или можно воспользоваться псевдоэлементами для создания фона с привязкой к какому-либо блоку, но с независимым поведением фона за счет, скажем, процентного отступа. Короче, вариантов решений хватает, осталось только разобраться в стилях.