The html structure looks OK... I would advise using a class on your main element instead of styling directly - you don't want to get into the habit if styling html elements in your css, as you'll need to be able to use them in different contexts in a bigger project.
I'm only looking on mobile atm so it's hard to tell exactly what your css is doing... It seems very long. I'm surprised to see so many breakpoints and bits of css repeated in each breakpoint.
Usually the way we write layouts is all mobile styles (and any styles that span all breakpoints) first. Then only change what you need to as the screen size increases (inside one or two min-width media queries) Its unusual to see so many mqs and hard to understand because they are in reverse order (desktop to mobile)
@DanEme89
Posted
@grace-snow Thanks for the review i appreciate your feedback, media queries is something i definitely need to improve on!, I will add a class to main too.