У вас сначала лейзилоад вставляет картинку 1*1 в base64, она растягивается до ширины контента 369 и так как она квадратная, то высота тоже 369. https://habrastorage.org/webt/jr/gf/y_/jrgfy_wbxzq...
Потом подгружается нормальная картинка, у нее уже другие пропорции и меняется высота.
Прописывайте какой то max-height картинке
лучше своими стилями перебить.
А если в bootstrap тогда скачать https://getbootstrap.com/docs/4.4/getting-started/... все установить, и менять/добавлять в переменных например $grid-breakpoints: и $container-max-widths: в файле scss/_variables.scss потом собрать.
если main-header имеет display: flex; такого быть не должно.
Гуглите margin-collapse.
+ тег a это строчный елемент, у строчных margin работает только по горизонтали
используйте popover https://getbootstrap.com/docs/4.3/components/popovers/ который будет генерироваться перед закрывающимся тегом body и на js показываться в нужном месте. Там можно указать где генерировать, можно сделать перед вашим .content.
Эта библиотека есть отдельно от bootstrap