Hallo Kralle,
warum body { max-width: 960px;}
Das ist der Klassiker. Aber vielleicht liege ich damit ja auch falsch. 60em sind bei Default-Font (16px=1em) das Gleiche, und wenn Du das lieber willst, dann nimm es. Ich weiß nur nicht, was dann beim Zoomen (=Variation der Root-Textgröße) passiert.
Und was ist mit dem zweiten Problem?
Mit Flexbox kaum zu lösen. Die Menüelemente sind zu breit. Man kann das für breite Viewports zwar korrigieren, aber wenn Du das Fenster etwas schmaler machst, hängen sie wieder rechts raus. Mit flex-wrap, flex-grow:0 und justify-content:space-between kriegt man einiges hin, aber da kommst Du irgendwann in die Limits der Flexbox.
Ggf. kannst Du mit weiteren media Breaks etwas retten. Oder mit display:grid. Oder mir fehlt einfach die richtige Idee.
Rolf
sumpsi - posui - obstruxi