Но как заставить именно legend подчиниться стилизации?
Дело не в legend, а вот в этом:
fieldset написала display: flex;
flex не работает с fieldset.
Их просто нужно заменить на div и тогда заработает флекс или позиционировать legend абсолютом или инлайн-блоками (по-старинке, в общем).
Задайте ширину хедеру.
Relative для img в вашем коде вообще не имеет смысла.
p.s. Делайте песочницу с кодом в которой видно проблему.
Картинки можно вставлять любые аналогичных размеров либо использовать заглушки https://placeholder.com/
И прикрепляйте картинки "как надо".
Нужно ли картинку оборачивать div'ом - зависит от картинки, на сколько она соответствует предполагаемым размерам, нужно ли её обрезать/масштабировать. И что будет при адаптиве. Часто размерами блока проще манипулировать, чем картинкой.
FinLivb, про верстку я написала.
Даже со скринами.
Погуглите "чек-лист верстки".
Там будет куча маразматических критериев, но нормальные тоже будут.
Но главный из них "сайт должен нормально отображаться на разных устройствах и в разных браузерах".
Выше скрин, что это не так даже в популярном браузере.
Мой личный совет: многие заказчики смотрят на внешний вид сайта, даже если ищут того, кто будет писать код. Поэтому брать шаблоны, которые устарели лет на 10 не стоит.
Грамматические ошибки туда же. Одно дело опечатки/ошибки на форумах или быстрой в личной переписке, а другое, когда вы показываете это как портфолио. Я никогда не возьму на работу человека, который в резюме пишет, что знает "Exel".
И то и другое позволяет быстро отсеять ненужных кандидатов. До просмотра кода дело просто не дойдет.
Следующим ходом идет валидатор. Пока это чистая верстка без CMS и других отягощений, код должен быть валидным.
А потом уже можно посмотреть на семантику, доступность, лишний код и т.д.