Olá Vinicius, tudo bem? Obrigada por compartilhar sua dúvida conosco.
Quando usamos o display:none em um elemento, ele fica oculto na página, independente do tamanho da tela. Porém, quando usamos o @media query, estamos definindo um estilo específico para quando a tela atinge determinada largura. Então, se você colocou o display:none na classe container__titulo no arquivo header.css, isso significa que esse elemento ficará oculto em todas as larguras de tela. Mas, se você adicionou o display:block em um @media query, isso significa que esse elemento só será exibido quando a tela atingir a largura definida no @media query.
Quanto à sua segunda pergunta, se você já definiu a classe .opcao com um display:block em algum lugar do seu código, não é necessário definir novamente em outro lugar. O estilo definido anteriormente será aplicado em todas as ocorrências da classe .opcao.
Espero ter ajudado a esclarecer sua dúvida. Se ainda tiver alguma questão, fique à vontade para perguntar. Bons estudos!