Grid Only Layout

With body + main>div display: grid.

Main Content

HTML5 Semantic Structure

body {
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
}
body>*>div {
    max-width: 100ch;
    margin: 0 auto;
}
@media screen and (min-width: 600px) {
    main>div {
        display: grid;
        grid-template-columns: 1fr 3fr;
    }
    aside {
        grid-column: 1 / 2;
    }
    main>div>div {
        grid-column: 2 / -1;
    }
}