/**
* Link Styles
*/


a:link {
    color: #09C;
    text-decoration: underline;
}

a:visited {
    color: #639;
}

a:hover,
a:focus,
a:active {
    color: #09C;
}

/**
* Cover Styles
*/


#cover {
    width: 10.5in;
    height: 13.25in;
    background-color: orange;
}

#cover-top {
    background-color: black;
    width: 100%;
    height: 3in;
    padding-top: 70px;
    margin-bottom: 10px;
}

#cover-image {
    background-color: black;
    width: 100%;
    height: 5in;
    padding: 0px;
    margin: 20px 0px 8px 0px;
}

#cover-bottom {
    background-color: black;
    width: 100%;
    height: 3.7in;
    padding: 40px 0px 40px 0px;
    margin-top: 8px;
}

#cover a:link,
#cover a:visited,
#cover a:hover {
 text-decoration: none;
}

#main {
    width: 950px;
    overflow: visible;
    page-break-before: always;
}

#footer {
    width: 8.5in;
    height: .75in;
    margin-top: .25in;
    color: #333;
    font: 10pt/14pt Roboto, Arial, Helvetica, sans-serif;
}


.title {
    color: white;
    font: 84px/90px Roboto, Arial, Helvetica, sans-serif;
    padding: 40pt 20pt 15pt 50pt;
    text-align: left;
}

.subtitle {
    color: white;
    font: 60px/70px Roboto, Arial, Helvetica, sans-serif;
    padding: 40pt 5pt 40pt 60pt;
    text-align: left;
}

.right {
    text-align: right;
}

.white {
    color: white;
}

.padding {
    padding: 20pt 20pt 0pt 60pt;
}

.cover-text {
    font: 20px/25px Roboto, Arial, Helvetica, sans-serif;
    color: white;
    padding: 5pt 5pt 5pt 60pt;
    text-align: left;
}

.small {
    font-size: 65%;
    font-weight: 700;
}

/**
* Heading Styles
*/

h1 {
    color: #333;
    font: 22pt/24pt Roboto, Arial, Helvetica, sans-serif;
    padding: 10pt 0pt 0pt 0pt;
    text-align: left;
}

h2 {
    color: #693;
    font: 20pt/22pt Roboto, Arial, Helvetica, sans-serif;
    padding: 8pt 0pt 0pt 0pt;
    text-align: left;
    page-break-after: avoid;
}

h3 {
    color: #333;
    font: bold 18pt/20pt Roboto, Arial, Helvetica, sans-serif;
    padding: 4pt 0pt 0pt 0pt;
    text-align: left;
    page-break-after: avoid;
}

h4 {
    color: #607D8B;
    font: bold 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
    padding: 4pt 0pt 0pt 0pt;
    text-align: left;
    page-break-after: avoid;
}


h5 {
    color: #333;
    font: italic 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
    padding: 0pt 0pt 0pt 0pt;
    text-align: left;
    page-break-after: avoid;
}


/**
* Use h6 ONLY for table of contents
*/

h6 {
    color: #333;
    font: bold 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
    padding: 10pt 0pt 0pt 0pt;
    text-align: left;
    page-break-before: always;
}

/**
* Body Styles
*/

body {
    color: #333;
    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
    margin: 0;
    padding: 5pt 5pt 5pt 10pt;
}

p {
    color: #333;
    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
    margin: 0;
    padding: 5pt 0pt 1pt 0pt;
}

li {
    color: #333;
    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
    margin: 0;
    padding: 2pt 50pt 2pt 0pt;
}

sup {
    font-weight: 800;
    font-size: 10pt;
}

code {
    font-family: "Lucida Console";
  }

/**
* Table Styles
*/


table {
    border: 1px solid gray;
    border-collapse: collapse;
    margin: 10px 0px 10px 0px;
    width: 100%;
    overflow: visible;
}

td {
    border: 1px solid gray;
    color: #333;
    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
    padding: 5pt;
    overflow: visible;
}

th {
    background-color: #CCC;
    border: 1px solid gray;
    color: #333;
    font: bold 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
    padding: 5pt;
    overflow: visible;
}

p.table_footnote {
    color: #333;
    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
    margin: 0;
    padding: 5pt 5pt 5pt 5pt;
}

li.table_list {
    color: #333;
    font: 16pt/20t Roboto, Arial, Helvetica, sans-serif;
    margin-left: -10pt;
    padding: 2pt 0pt 2pt 0pt;
}


/**
* Used in the footer
*/

table.noborder {
    border: 0px;
    margin: 10px 0px 10px 0px;
    width: 100%;
}

td.noborder {
    border: 0px;
    color: #333;
    font: 10pt/12pt Roboto, Arial, Helvetica, sans-serif;
    padding: 10px 0px 5px 0px;
}



/**
* TOC Styles
*/

#toc a:link,
#toc a:visited,
#toc a:hover {
 color: black;
 text-decoration: none;
}

#toc p.toc_h1 a:link,
#toc p.toc_h1 a:visited,
#toc p.toc_h1 a:hover {
 color: #99CC00;
}

#toc {
    width: 950px;
}

#toc_left {
    float: left;
    padding-top:15px;
    padding-bottom:15px;
    width: 470px;
}

#toc_right {
    float: right;
    padding-top:15px;
    padding-bottom:15px;
    width: 470px;
}

p.toc_h1 {
    color: #99CC00;
    font: 20pt/22pt Roboto, Arial, Helvetica, sans-serif;
    padding: 15px 0px 0px 0px;
}

p.toc_h2 {
    color: black;
    font: 18pt/20pt Roboto, Arial, Helvetica, sans-serif;
    margin-left: 20px;
    padding: 15px 0px 0px 0px;
}

p.toc_h3 {
    color: black;
    font: 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
    margin-left: 45px;
    padding: 10px 0px 0px 0px;
}

p.toc_h4 {
    color: black;
    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
    margin-left: 85px;
    padding: 10px 0px 0px 0px;
}

p.toc_h5 {
    color: black;
    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
    margin-left: 105px;
}

/**
* Note Styles
*/


div.note 
    {
        border-left: 20px solid #0099cc;
        padding-left: 10px;
        margin: 5px 40px 5px 5px;
    }

div.tip 
    {
        border-left: 4px solid #93c47d;
        padding-left: 10px;
        margin: 5px 40px 5px 5px;
    }

div.warning 
    {
        border-left: 4px solid red;
        padding-left: 10px;
        margin: 5px 40px 5px 5px;
    }

/**
* Media Styles
*/

@media print {

    @page {
        margin: 1in;
    }

 }
