완벽한 해결방법은 아니지만,
현 상황을 기준으로, footer가 46px를 차지하고 있으므로 마지막 본문의 article에 margin-bottom: 46px를 적용합니다.
body에 padding-bottom을 주는 방법도 있으나, 잘 먹히지 않아 개발자도구만 보고 간단히 뜯어보기에는 오래걸릴것 같아 한번 연구해보시면 될것 같습니다.
더불어 개별 article 들을 통틀어 상위 div로 묶고, 그 부분에 margin-bottom: 46px를 준다면 더 좋을것 같습니다.
article:nth-last-child() {
margin-bottom: 46px;
}
https://codepen.io/catgarret/pen/yLLqyyG