<header>
  Header
</header>
<main>
  Main
</main>
<aside>
  Sidebar
</aside>
<footer>
  Footer
</footer>
body {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 10vw 30vw 10vw;
  grid-gap: 1em;
}

header,
footer {
  grid-column: 1 / span 5;
}

main {
  grid-column: 1 / span 3;
}

aside {
  grid-column: span 2;
}

@media (max-width: 700px) {
  
  main,
  aside {
    grid-column: 1 / span 5;
  }
  
}

/* Demo Specific Styles */
body {
  margin: 0 auto;
  max-width: 56em;
  padding: 1em 0;
}

header,
main,
aside,
footer {
  background: #eaeaea;
  display: flex;
  align-items: center;
  justify-content: center;
}

header,
footer {
  height: 10vw;;
}
Rerun