Тут дело в том, что задавать высоту body - зло. Высота, наоборот, задаётся скорее мелким элементам страницы. То есть есть у вас например:
body
section
img
/section
section
div
button
/div
/section
/body
Вот здесь уместно было бы задать высоту для img и если очень хочется - для button . Всё остальное регулируется через padding, margin, flex, .... но не через жёсткие размеры.
В таком случае вы просто в медиа-запросах уменьшаете высоту элементам, а всё остальное само подстраивается