Basically it’s because width:100%; is used on that particular DIV. So I suspect that upon loading the site, that div will only take up 100% of the VIEWPORT, not of the SITE.
Since the site is too wide for smaller screens (and since the header contains code that says the site should be loaded at zoom level 1 initially), you won’t see everything at first. However, that div with the 100% width will be set to fill the full width of the screen (which is less than the site width) and then when you zoom out, it keeps that width.
I would suggest to look into responsive solutions, or to try and get rid of that 100% width and see if that solves it.