1. для
.index-header {}
не стоит задавать высоту, либо min-height, либо отступами (это элементарная защита от переполнения контентом)
2. зачем лишний блок делать `.upper-header`? Градиент можно сразу к `.index-header` селектору применить.
3. Лишняя обёртка `.index-logo > h1`, можно сразу `h1.index-logo`, а лучше сразу `h1.logo`, а ещё лучше не использовать заголовок первого уровня для логотипа (для СЕО не очень), а делать ссылкой на главную страницу, люди привыкли, что логотип — ссылка на главную, деже на главной (для перезагрузки страницы, например) `a.logo` Наилучший вариант я считаю.
4. Зачем опять лишняя обёртка `div.user-block`? Что мешает делать сразу `a.user-block`?
5. По спеке в форме обязательный атрибут `action` должен быть
6. В форме вместо кнопке добавить `type="submit"` для отправки формы ентером
7. ну и про БЭМ имеет смысл почитать))
В целом — норм, молодец!) Продолжай практиковаться и у тебя всё получится.