Я бы попытался дать верхнему и нижнему полю значение в% вместо пикселей, тогда он сможет определить свое собственное пространство, и вы избежите перекрытия.
Может быть, поэкспериментируйте примерно так:
@media screen and (max-width: 800px) {
.button {
display:block;
margin: 1% auto;
}
А также, я не знаю, нужен ли вам z-index для того, что у вас уже есть на странице, но вам нужно будет дать ему реальный значение для его работы:
синтаксис z-индекса: авто | число | начальное | наследование;