Почему если тут
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_topnav
в первом @media screen and (max-width: 600px) {
вместо ".topnav a.icon" написать селектор ".topnav .icon" (без a) кнопка не появляется? Казалось бы оба селектора выбирают один и тот же элемент.