Не знаю как подобное сделать на чистом js, но я бы такое реализовал при помощи роутера (Роутер можно легко сделать самому при помощи url api), то есть каждая такая страница - новая страница, кнопка назад просто ведёт назад по страницам.
По другому в голову не приходит если честно.
@media screen and (max-width: /*Это будет означать ширину экрана на котором применятся стили*/) {
.content {
/*Тут стили которые применятся при указаной ширине экрана*/
}
}