Para centrar elementos basta con especificarle un width y asignarle margenes automáticos..
Y para cambiar el orden de aparición de los elementos te recomiendo flexbox, usando la propiedad order:
Código CSS:
Ver original.contenedor{
width:90%;
max-width:960px;
margin:0 auto;
display:flex;
flex-wrap:wrap;
flex-direction:row;
align-items:flex-start;
justify-content:space-between;
}
.titulo{
width:100%;
}
.menu{
width:50%;
}
.texto{
width:50%;
}
@media screen and (max-width:650px){
.titulo{
order:2;
}
.menu{
width:100%;
order:1;
}
.texto{
width:100%;
order:3;
}
}
Con eso debería ser suficiente..
Demo
Saludos
PD: Mas info sobre
Flexbox