It is hard to test when everything looks ok so I may not be able to give a specific fix. There are many different ways to approach a project and I can only say what approach I would take.
I would say as a general rule don’t apply any styles or classes to the body section. Keep the body section as clean as possible and add the “Footer” directly under the body. I would also usually have the nav directly under the body too.
If you do put the nav and footer inside another div be careful how many styles you apply to the div so it doesn’t get out of control.
If you need styles applied across lots of sections create a div block and put all the sections that need to pick up the same styles in that div instead of adding styles to the body. I think there is a better chance your footer will behave correctly when it is not wrapped inside other elements that have styles attached to them.
Here is a screenshot of an example structure that I would usually go with. Obviously this would not be a quick fix and some rework may be required but you should end up with a cleaner project which is less prone to being incorrectly displayed by the multitude of browsers and devices that exist. Some browsers are better than others at interpreting code that doesn’t exactly conform to best practices which can lead to websites working on one device but not on another.