2.
Чаще всего не надо 2 раза писать меню.
Меню одно и меняется только его положение выстраивание с помощью CSS (например, flex).
Делается кнопочка, бутербродик, скрытая на десктопах, видимая на мобильных.
На мобильных меню сначала скрыто и открывается по кнопочке.
У Вас нет изменения цвета с красного на зеленый.
Есть 2 блока, один красный, другой зеленый и у них меняется display. (Правда в Вашем коде появления красного блока я не добилась)
display не анимируется с помощью transition, только opacity, либо JS/JQ.
.first()
Возвращает первый элемент из всех выбранных. Эквивалентно .eq(0). Метод имеет один вариант использования:
.first():jQueryv:1.4
Метод не имеет параметров.
Примеры использования:
$("div").first() вернет первый div-элемент на странице.
$("div.bigBlock").first() вернет первый div-элемент с классом bigBlock.
Звезды говорят, что наверное меню сделано маркированным списком.
Поэтому, они советуют убрать margin и padding для ul и li.
А также задать display:block для a.
Возможно, еще пошаманить с высотой, но этого звездам уже совсем не видно.
В общем случае, лучше не ставить высоту и ширину, а плясать от размера текста. Тогда есть шанс, что все будет прилично выглядеть при увеличенном шрифте и на всех устройствах без особых танцев с бубнами.