/**
* 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;
}

/**
* 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,
#toc_left_2 {
    float: left;
    padding-top:15px;
    padding-bottom:15px;
    width: 470px;
}

#toc_right,
#toc_right_2 {
    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;
    }

 }