Сделайте ему обертку с display: flex, justify content: center.
На счет второго вопроса, после присвоения position: fixed блоки выпадают из потока и соседние блоки их не воспринимают. Можно задать соседним блокам отступы, которые компенсировали бы размеры ваших футера и хедера.