link_nounderline – такое название модификатора не подходит. Кнопка переключения языков без подчёркивания просто не должна иметь класс langs__switcher_active. Ещё этот модификатор используется в подвале. Ситуация спорная в целом, но я бы рекомендовал исключать подчёркивание в классе link. А модификатором его добавлять. Большинство ссылок идут без стандартного подчёркивания.
small – хороший подход. Но выше существует блок с названием text. С точки зрения БЭМ, вместо small нужен блок и модификатор этого блока для типографики. Например, text text_size_small.
hint_small -> hint_size_small. Это кей-велью модификатор, а не булевый. Булевые модификаторы это только группы «да/нет». Например, hint_active и hint_inactive. Либо аналогичный пример с _disabled.
Итог:
БЭМ оч хороший, нравится.
Семантика
<p class="text langs__switcher langs__switcher_lang_ru langs__switcher_active">Ru</p> – мы редко модифицируем активные элементы. С точки зрения семантики это не совсем корректно делать переключатель параграфом. Лучше оставить это ссылкой, как сделано у следующего элемента навигации.
Я увидел попытки добавить заголовок hidden для улучшения семантики голосовых утилит. Но не вижу аналогичного заголовка h3, например, в блоке places.
<title>Document</title> заменить на более валидное название.
Итог:
Семантика хорошая, нравится использование множества тегов в уместных местах: article, figure/figcaption, small, двойной nav. Правильная иерархия заголовков.
Можно подумать о такой структуре nav -> ul -> li -> a, но это холивар. Просто подсвечиваю.
CSS:
Обрати особое внимание на unused CSS-variables. В остальном CSS-переменные это круто.
Комменты про адаптив – да, солидарен с Айгуль. Надо это учесть и адаптив скорректировать.