/* VARIABLES */

$body-fonts: Arial, Verdana, sans-serif;

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* end of reset, beginning of non-reset rules */

a {
  color: rgb(0, 102, 204);
  &.disabled {
    text-decoration: none;
    color: rgba(102,102,102,1);
  }
}

b {
  font-weight: 700;
}

i, em {
  font-style: italic;
}

code {
  font-family: monospace;
  color: rgba(0,96,0,1);
}

body {
  background-color: rgb(247, 247, 247);
  font-family: $body-fonts;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 1 0 1 5;
}

#header-left {
  display: flex;
  justify-content: flex-start;
}

#header-left img#sites-logo {
  padding-top: 7;
}

#header-left h2 {
  margin: 9 0 0 10;
  font-size: 24px;
  font-weight: bold;
  display: inline-block;
}

#header-left a {
  color: black;
  text-decoration: none;
}

#main-wrapper {
  display: flex;
}

#sidebar-left {
  flex: 0 auto;
  font-size: 12px;
  line-height: 1.33em;
  min-width: 160px;
  width: 160px;

  > div {
    background-color: white;
    margin: 0 5px 6px 5px;
    padding: 0 0 0 5px;

    h4 {
      font-weight: 700;
      color: rgba(72,72,72,1);
      margin-bottom: 1px;
      padding: 3px 0 2px 0;
      font-size: 13px;
    }

    li {
      margin: 1px 0;
      padding: 2px 0 0 0;
      line-height: 1.33em;

      &.selected {
        font-weight: bold;
        a {
          color: #000;
        }
      }

    }

    a {
      color: #06c;
        text-decoration: none;
    }
  }
  > div:first-of-type {
    > ul > li:first-of-type {
      margin-top: 0;
    }
  }

  .license {
    margin: 0 5px 6px 5px;
    padding: 11px 5px 5px 5px;
    background-color: #fff;
    color: rgb(94, 106, 114);
    font-size: 10px;
    line-height: normal;

    a {
      text-decoration: underline;
    }
  }
}

#main-content {
  background-color: white;
  border-style: solid;
  border-width: 1px;
  border-color: rgb(215, 215, 215);
  font-size: 13.333px;
  font-family: $body-fonts;
  flex: 1 100%;
  line-height: 1.3;
  margin-right: 5px;
  padding: 20px;

  a:visited {
    color: rgb(71, 18, 100);
  }

  p, blockquote {
    margin-bottom: 13.33px;
  }

  blockquote {
    margin-top: -12px;
  }

  .sites-codeblock, .sites-codesnippet-block {
    background-color: rgb(239, 239, 239);
    border: 1px solid #d3d3d3;
    color: rgb(0, 96, 0);
    font-family: monospace;
    padding: 8px 0 8px 16px;
    line-height: 1;
  }

  #title-crumbs {
    padding: 6px 0 0 10px;

    + h3 {
      margin-top: 6px;
    }
  }

  h1 {
    margin: 10px 0 1.4em;
    font-size: 22px;
    font-weight: 700;

    a {
      color: #000;
    }
  }

  h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 1.2em 0 .8em 0;
  }

  h3 {
    font-size: 16px;
    font-weight: 700;
    margin: 1.2em 0 .7em 0;
  }


  h4 {
    font-weight: 700;
    margin: 1.2em 0 .6em 0;

    a {
      color: #000;
    }

    i a {
      font-weight: 400;
      color: rgba(0,102,204,1);
    }
  }

  p {
    margin-top: 1.4em;
  }

  ul {
    display: block;
    list-style-type: disc;
    margin-top: 1em;
    margin-bottom: 1em;
    padding-left: 40px;

    li {
      margin-top: 5px;
      margin-bottom: 5px;
    }

    ul {
      list-style-type: circle;
      margin-top: 0;
      margin-bottom: 0;

      ul {
        list-style-type: square;
      }
    }
  }

  ol {
    list-style-type: decimal;
    padding-left: 40px;
    margin: 1em 0;

    li {
      margin: 5px 0;
      p {
        margin: .5em 0;
      }
    }

    ul {
      list-style-type: circle;
      margin-top: 0;
      margin-bottom: 0;
    }
  }

  table {
    border-width: 1px;
    border-style: solid;
    border-color: rgb(136, 136, 136);

    td {
      border-style: solid;
      border-width: 1px;
      border-color: rgb(136, 136, 136);
      padding: 1px 5px 3px 5px;
    }
  }

  div.two-column-container {
    display: flex;
    align-items: flex-start;

    > div.column {
      flex: 50%;
      margin: 0;
      padding-right: 30px;
    }
  }
}
