$side-padding:3em;

body, html{
  position: relative;
  width: 100%;
  height:100%;
  font-family: sans-serif;
  font-style: normal;
  margin:0;
  padding:0;
}

body{
  overflow:hidden;
}

#root{
  display: flex;
  flex-direction: column;
  width: 100vw;
  height:100vh;
  %layout-element{
    width:100vw;
    box-sizing:border-box;
  }
  header[role="banner"]{
    flex: 0 0 auto;
    @extend %layout-element;
    padding:1em $side-padding 0 $side-padding;
  }
  section[role="main-content"]{
    flex:1 1 auto;
    @extend %layout-element;
    overflow: hidden;
    >.wrapper{
      padding:0 $side-padding 0 $side-padding;
      height:100%; max-height:100%;
      overflow-y: hidden;
      overflow-x: hidden;
    }
    .main-content-layout{
      max-height: 100%;
      >header,
      >section,
      >nav{
        max-height: 100%;
        padding-top:1em;
        padding-bottom:1em;
      }

      >section,
      >nav{
        overflow-x: hidden;
        overflow-y: auto;
      }
    }
  }
  footer[role="tools"]{
    flex:0 0 auto;
    @extend %layout-element;
    // padding-bottom: 1em;
    // >*{
    //   padding:0.5em 1em;
    // }
  }
}
