This was done in vanilla HTML, CSS and Javascript. If I had to do it all over again I would do it in a framework like React and use something like Tailwind to speed up the whole process.
I could use advice on the mobile menu. I feel like there is a better way to accomplish it programatically in JS or React.