* {
  box-sizing: border-box; 
}
#body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  margin: 0;
}
#main {
  display: flex;
  flex: 1 0 auto;
}
#main > article {
  flex: 1;
}
#main > nav, 
#main > aside {
  flex: 0 0 20vw;
  background: #1e3d59;
}
#main > nav {
  order: -1;
}
header, footer {
 
  height: 5vh;
}
header, footer, article, nav, aside {
  padding: .5em;
}
article {
  background-color: #f5f0e1;
}

