No hay manera de que el contenido sea más grande que el body.
Lo que probablemente está pasando es de que estás usando una pocisión absoluta que está sacando del universo a tu contenido. En general es una mala práctica. Muy mala.
Cuando el contenido es poco busca usar un sticky footer.
Y específicamente para tu problema busca usar el viewport height.
https://www.google.com.mx/search?q=viewport+height+css
Pero puede ser tan fácil como poner la imagen de fondo con background-image.
Trata quitando también el margin y el padding de esos elementos.
Como comentario aparte.
Usa html semántico.
Listo, no hacen falta explicaciones ni anidados extra.
La etiqueta main puede no estar soportada por todos los navegadores, pero no te afecta. Es simplemente un contenedor.