<noindex>
<div class="mobile-menu">
<div class="mobile-head"></div> <!-- бургер, логотип, etc -->
<div class="mobile-body"></div> <!-- меню, поиск, телефоны, etc -->
</div>
</noindex>
Суть: после определенной ширины браузера, например, 1024, показываем нашу менюшку, по клику на "бургер" - меняем класс у body, например, mobile-open, через который меняем бэкграунд бургера на крестик, а также показываем само мобильное меню:
.mobile-body {
width: 100%;
height: 100vh;
padding-bottom: 70px; //"волшебное число", даем отступ снизу, чтобы можно было прокручивать полностью менюшку
background: #fff;
position: fixed;
top: 50px; //50px - высота mobile-head, обычно хватает для телефонов
left: -100%;
transition: left 0.3s;
overflow: auto;
display: block;
}
body.menu-open .mobile-body {
left: 0;
}