article, aside, figcaption, figure,
footer, header, main, nav, section { 
   display: block;
}

address, article, aside, blockquote, body, cite, 
div, dl, dt, dd, em, figcaption, figure, footer, 
h1, h2, h3, h4, h5, h6, header, html, img, 
li, main, nav, nav a, ol, p, section, span, ul,
table, tr, td, th, col, colgroup {
   margin: 0;
   padding: 0;
   border: 0;
   font-size: 100%;
   background: transparent;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;  
}


/* Set the default page element styles */

body {
   line-height: 1.2em;
}

ul, ol {
   list-style: none;
}

nav ul {
   list-style: none;
   list-style-image: none;
}

nav a {
   text-decoration: none;
}

/* ===============================
   Mobile Styles: 0px to 640px 
   ===============================
*/
@media only screen and (max-width: 640px) {

   
   a#navicon {
      display: block;
   }
   
   header nav ul {
      display: none;
   }
   
   header nav ul li {
      font-size: 1em;
      line-height: 1.3em;
      height: 1.3em;
   }
   
   a#navicon:hover+ul, header nav ul:hover {
      display: block;
   }
   
   section h1 {
      font-size: 1.5em;
   }
   
   section p {
      font-size: 0.9em;
   }
}

/* =============================================
   Tablet and Desktop Styles: greater than 640px
   =============================================
*/
@media only screen and (min-width: 641px) {

   body header nav ul {
      display: -webkit-flex;
      display: flex;
      -webkit-flex-flow: row nowrap;
      flex-flow: row nowrap;
      -webkit-justify-content: center;
      justify-content: center;
   }
   
   body header nav ul li {
      -webkit-flex: 0 1 auto;
      flex: 0 1 auto;
   }
}
