Olá Bernardo, boa tarde!!
*Idendificando o Problema: *
De acordo com a sua pergunta, você quer saber porque quando diminuiu o tamanho de tela, o cabeçalho não acompanha o tamanho de tela. Vamos lá!!
*Solução do Problema: *
No seu elemento .caixa, você esta adicionando uma largura fixa de 940px no css, fazendo com que mesmo diminuindo o tamanho da tela, ele permanecerá com uma largura de 940px.
Par resolver isso, substitua o valor 940px para 100%. Assim ele irá colocar o elemento .caixa para ter uma largura que ocupe 100% do espaço disponivel independente do tamanho de tela, pois se a tela for 400px, o 100% da .caixa será 400px.
// Tire o margin, pois agora o elemento ocupa 100%
.caixa {
width: 100%;
position: relative;
// E se você quiser espaços nas bordas laterais, coloque um padding.
padding: 0 32px;
}
*Conclusão: *
Você precisa se atentar a valores de tamanhos fixos, porque mesmo se a tela diminuir ou aumentar, ele vai manter aquele mesmo tamanho (porque ele é um valor absoluto, como os tipos px, pt e etc.).
Para assuntos responsivos, o melhor caso é usar de valores relativos como o %, em, rem, vw, vh e etc.
*Despedida: *
Tenha um bom estudo!!