@import url(https://fonts.googleapis.com/css?family=Source+Code+Pro:500,700|Open+Sans:400,600);

html, code, kbd, pre, samp {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

html, body {
    height: 100%;
    -webkit-overflow-scrolling: touch;
}

p, ul, pre, h1, h2, h3, h4, h5, h6, h7, h8 {
    margin: 1em 0;
}

p {
    display: block;
}

h1, h2, h3, h4, h5, h6, h7, h8 {
    font-weight: bold;
}

pre {
    border-radius: 0;
    border: 0 !important;;
    font-size: 14px;
}

/* customizing bootstrap nav bar */
.navbar {
    margin-bottom: 0px;
    padding-right: 110px;
}
.navbar .container {
    margin: 10px;
}
.navbar-default a {
    color: #c0d3db !important;
    font-size: 18px !important;
    text-decoration: none;
}
.navbar-default, .navbar-static-top {
    background-color: #286b86;
    border: 0px;
}
a.navbar-brand {
    color: white !important;
    font-size: 19px !important;
}
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus {
    background-color: transparent;
    color: white;
}
.navbar-nav>li.active>a {
    color: white !important;
}
.navbar-nav>li>a:hover {
    background-color: #db4800 !important;
    color: white !important;
}
.navbar-nav>li>a {
    color: #c0d3db;
}
.navbar-default .navbar-toggle .icon-bar {
    background-color: white;
}
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
    background-color: #db4800;
}

@media (min-width: 768px) {
    .container {
        width: auto;
    }
}

/* specific to index.html */

@media (max-width: 999px) {
    .doc-embed {
        width: 100% !important;
    }
    #fork-me {
        display: none;
    }

    .navbar {
        padding-right: 0px;
    }
}

#band {
    background: #4298b8 no-repeat 50% 30%;
    height: 400px;
}

.svg #band {
    background-image: url(../img/groovy-logo-white.svg);
}

.no-svg #band {
    background-image: url(../img/groovy-logo-white.png);
}

@media (max-width: 1010px) {
    #band {
        background-size: 90%;
        height: 300px;
    }
}

@media (max-width: 690px) {
    #band {
        background-size: 80%;
        height: 200px;
    }
}

@media (max-width: 475px) {
    #band {
        background-size: 70%;
        height: 100px;
    }
}

#they-use-groovy {
    width: 100%;
    background-color: #db4800;
    margin-bottom: 20px;
    text-align: center;
}

#they-use-groovy .item {
    text-align: center;
    color: white;
}

#logos-holder {
    display: inline-block;
    padding: 0px;
    margin: 0px;
    text-align: center;
}

#logos-holder .logo {
    padding: 0px;
    margin: 0px;
    display: inline-block;
    width: 105px;
    height: 87px;
    background-size: 95%;
    background-repeat: no-repeat;
    background-position: 50% 50%;
}

@media (min-width: 330px) {
    #logos-holder {
        width: 320px;
    }
}

@media (min-width: 475px) {
    #logos-holder {
        width: 420px;
    }
}

@media (min-width: 690px) {
    #logos-holder {
        width: 630px;
    }
}

@media (min-width: 1010px) {
    #logos-holder {
        width: 940px;
    }
}

.centered {
    text-align: center;
}

.event-img {
    margin: -20px -20px 20px -20px;
    background-repeat: no-repeat;
    background-position: 50% top;
    height: 180px;
}

.event-logo {
    height: 180px;
    float: right;
}

@media (max-width: 1010px) {
    .event-logo {
        height: ;
    }

}

@media (max-width: 690px) {
    .event-logo {
        height: 60px;
    }}

@media (max-width: 475px) {
    .event-logo {
        display: none;
    }
}

article .content time {
    font-weight: bold;
}

.doc-embed {
    border: 0;
    border-right: 1px solid #e7e7e7;
    width: 88%;
    height: 100vh;
    min-height: 100%;
}

.download-table {
    width: 100%;
    text-align: center;
}

.download-table td {
    width: 20%;
}

#mc-embedded-subscribe {
    width: 200px;
    font-weight: bold;
}

#mc-embedded-subscribe:hover {
    background-color: #F2F2F2;
    font-weight: bold;
}

#footer .colset-3-footer .col-1 h1, #footer .colset-3-footer .col-2 h1, #footer .colset-3-footer .col-3 h1 {
    font-size: 15px !important;
}

.anchor-link:before {
    content: ' # ';
    color: lightgray;
}

.anchor-link:hover:before {
    color: orange;
}

code, kbd, pre, samp {
    font-family: "Source Code Pro", "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;
}

#contribute-btn {
    position: absolute;
    right: 15px;
}

@media (max-width: 767px) {
    #contribute-btn {
        width: 100%;
        position: relative;
        margin-top: 30px;
        right: 0px;
    }

    #contribute-btn button {
        width: 100%;
        right: 15px;
    }
}

@media (min-width: 1200px) {
    #contribute-btn {
        top: 25px;
        right: 15px;
    }
}

#big-download-button {
    float: right;
    font-size: 20px;
    padding: 10px;
    margin: 6px 0px 6px 12px;
    border: 2px solid #db4800;
    border-radius: 6px;
    background-color: #db4800;
    color: white;
}

#big-download-button:hover {
    background-color: #e6e6e6;
    color: #db4800;
}

.colset-3-footer .col-1, .colset-3-footer .col-2, .colset-3-footer .col-3 {
    min-width: 180px;
    float: left;
}

.colset-3-footer .col-3 {
    min-width: 220px;
}

.colset-3-article article {
    float: left;
}

.col1, .col2 {
    min-width: 300px;
    float: left;
}

@media (max-width: 988px) {
    .col1, .col2 {
        width: 98% !important;
        max-width: 98%;
    }

    .colset-3-article article {
        width: 98% !important;
        max-width: 98%;
    }
}

body, html {
    font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    padding: 0;
    margin: 0;
    color: #343437;
    line-height: 25px;
    font-weight: normal;
    font-size: 14px;
}

a {
    color: #db4800;
    text-decoration: underline;
}

a:hover {
    color: #db4800;
    text-decoration: none
}

h1 {
    font-size: 2.125em;
    margin: .67em 0
}

h2 {
    font-size: 1.6875em;
    font-weight: bold;
}

h3, #toctitle, .sidebarblock > .content > .title {
    font-size: 1.375em;
    font-weight: bold;
}

h4 {
    font-size: 1.125em;
    font-weight: bold;
}

h5 {
    font-size: 1.125em;
    font-weight: bold;
    color: #db4800;
}

h6 {
    font-size: 1.08em;
    font-weight: normal;
    color: #db4800;
}

h7 {
    font-weight: bold;
    color: #245f78;
}

h8 {
    color: #245f78;
}

#footer {
    background: #f2f2f2;
    text-align: center;
    font-size: 14px;
    padding: 20px 0 30px;
    margin-top: 30px;
    color: #AAA
}

#footer .col-right {
    float: right;
    width: 300px;
    text-align: right;
    padding-top: 10px
}

#footer .colset-3-footer {
    color: #222;
    font-size: 14px
}

#footer .colset-3-footer:before, #footer .colset-3-footer:after {
    content: " ";
    display: table
}

#footer .colset-3-footer:after {
    clear: both
}

#footer .colset-3-footer .col-1, #footer .colset-3-footer .col-2, #footer .colset-3-footer .col-3 {
    width: 18%;
    padding: 20px 0 30px;
    padding-right: 3%;
    float: left;
    text-align: left
}

#footer .colset-3-footer .col-3 {
    width: 24%;
}

#footer .colset-3-footer .col-1 h1, #footer .colset-3-footer .col-2 h1, #footer .colset-3-footer .col-3 h1 {
    font-weight: 600;
    font-size: 15px;
    line-height: 30px;
    margin: 0
}

#footer .colset-3-footer .col-1 ul, #footer .colset-3-footer .col-2 ul, #footer .colset-3-footer .col-3 ul {
    list-style-type: none;
    margin: 0;
    padding: 0
}

#footer .colset-3-footer .col-1 ul li, #footer .colset-3-footer .col-2 ul li, #footer .colset-3-footer .col-3 ul li {
    margin: 0;
    padding: 0
}

#footer .colset-3-footer .col-1 ul li a, #footer .colset-3-footer .col-2 ul li a, #footer .colset-3-footer .col-3 ul li a {
    color: #343437;
    text-decoration: none
}

#footer .colset-3-footer .col-1 ul li a:hover, #footer .colset-3-footer .col-2 ul li a:hover, #footer .colset-3-footer .col-3 ul li a:hover {
    text-decoration: underline
}

#footer .second a {
    color: #db4800
}

.row {
    position: relative;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 5%
}

.row:before, .row:after {
    content: " ";
    display: table
}

.row:after {
    clear: both
}

.band {
    background: #4298b8;
    height: 400px;
    margin-bottom: 20px;
    color: white
}

.band .item {
    text-align: center
}

.band .item:before, .band .item:after {
    content: " ";
    display: table
}

.band .item:after {
    clear: both
}

#content {
    background: white
}

#content .row:before, #content .row:after {
    content: " ";
    display: table
}

#content .row:after {
    clear: both
}

#content .row > h1 {
    font-size: 34px;
    line-height: 40px;
    font-weight: 200;
    text-align: center;
    margin: 0;
    padding: 20px 0
}

#content hr.row, #content hr.divider {
    border: 0 none;
    border-top: 1px solid #EEE;
    margin: 0 5%;
    margin-top: 40px
}

#content hr.divider {
    margin: 0;
    margin-top: 40px;
    margin-bottom: 30px
}

#content .colset-2-its:before, #content .colset-2-its:after {
    content: " ";
    display: table
}

#content .colset-2-its:after {
    clear: both
}

#content .colset-2-its > h1 {
    padding-bottom: 15px;
    margin-top: 15px;
    margin-bottom: 0
}

#content .colset-2-its > p {
    margin-top: 0;
    padding-bottom: 5px;
    text-align: center;
    color: #222;
    font-size: 15px
}

#content .colset-2-its .col1, #content .colset-2-its .col2 {
    float: left;
    width: 48%;
    padding-right: 1%;
    padding-left: 1%;
}

#content .colset-2-its .col2 {
    padding-left: 1%;
    padding-right: 1%;
}

#content .colset-2-its article {
    padding: 10px 0
}

#content .colset-2-its article:before, #content .colset-2-its article:after {
    content: " ";
    display: table
}

#content .colset-2-its article:after {
    clear: both
}

#content .colset-2-its article .icon {
    display: block;
    width: 80px;
    height: 80px;
    background-image: url(/img/icons-colset-2-its.png);
    float: left;
    margin-top: 12px;
    margin-right: 15px
}

#content .colset-2-its article .icon.icon-1 {
    background-position: 0 0
}

#content .colset-2-its article .icon.icon-2 {
    background-position: 0 -80px
}

#content .colset-2-its article .icon.icon-3 {
    background-position: 0 -160px
}

#content .colset-2-its article .icon.icon-4 {
    background-position: 0 -240px
}

#content .colset-2-its article .icon.icon-5 {
    background-position: 0 -320px
}

#content .colset-2-its article .icon.icon-6 {
    background-position: 0 -400px
}

#content .colset-2-its article > h1 {
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 0;
    line-height: 30px
}

#content .colset-2-its article p {
    margin: 0;
    line-height: 24px;
    font-size: 14px
}

#content .colset-3-article {
    padding-top: 30px;
    padding-bottom: 30px
}

#content .colset-3-article > h1 {
    font-size: 24px
}

#content .colset-3-article div.content {
    padding: 20px;
    padding-bottom: 5px
}

#content .colset-3-article article {
    float: left;
    width: 29%;
    margin: 10px 2%;
    -webkit-box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1)
}

#content .colset-3-article article .img {
    margin: -20px -20px 20px -20px;
    background-position: center top;
    height: 180px
}

#content .colset-3-article article h1 {
    margin: 0;
    font-size: 18px;
    font-weight: normal;
    line-height: 25px
}

#content .colset-3-article article h1 a {
    color: #343437;
    cursor: pointer
}

#content .colset-3-article article h1 a:hover {
    color: #46a5c8
}

#content .colset-3-article article p, #content .colset-3-article article time {
    font-size: 13px
}

#content .colset-3-article article .author a {
    color: #db4800
}

#content .colset-3-article article:first-child {
    padding-left: 0
}

#content .colset-3-article article:last-child {
    padding-right: 0
}

#content.page-1 .row {
    padding-top: 10px;
    padding-bottom: 10px
}

#content.page-1 .row h1 {
    text-align: left;
    font-size: 36px
}

#content.page-1 .row article {
    font-size: 14px
}

#content.page-1 .row article .desc {
    font-size: 16px
}

#content.page-1 .row article h1 {
    margin: 0;
    paddnig: 0;
    text-align: left;
    font-size: 26px
}

#content.page-1 .row article h2 {
    margin: 0;
    paddnig: 0
}

#content.page-1 .row article h3 {
    font-weight: bold
}

#content.page-1 .row article pre {
    display: block;
    background: #f2f2f2;
    padding: 12px 20px
}

ul.nav-sidebar {
    margin: 0;
    margin-top: 20px;
    padding: 5px 0;
    border: 1px solid #EEE;
    list-style-type: none
}

ul.nav-sidebar li a {
    display: block;
    cursor: pointer;
    padding: 5px 10px;
    font-weight: 400;
    text-decoration: none;
    color: #343437
}

ul.nav-sidebar li.active a:hover, ul.nav-sidebar li a:hover {
    color: white;
    background-color: #db4800;
}

ul.nav-sidebar li.active a {
    background-color: #f2f2f2
}

.table {
    margin: 20px 0
}

.table thead tr th {
    padding: 10px;
    font-weight: normal;
    font-size: 18px
}

.table tbody tr td {
    vertical-align: top;
    font-size: 12px;
    padding: 10px;
    border-top: 1px solid #EEE
}

*, *:after, *::before {
    -moz-box-sizing: border-box;
    box-sizing: border-box
}

body {
    background: #444;
    overflow: auto;
}

html.noScroll {
    overflow: hidden
}

html.noScroll body, html.noScroll .st-container, html.noScroll .st-pusher, html.noScroll .st-content {
    overflow: hidden
}

.sign-in-fa-icon:before {
    font-family: FontAwesome;
    content: '\f090';
    padding-right: 10px;
}

.st-content {
    background: white
}

.st-content, .st-content-inner {
    position: relative;
    height: 100%;
}

.st-container {
    position: relative;
    overflow: hidden;
    -webkit-transition: margin .5s, -webkit-transform .5s;
    transition: margin .5s, transform .5s
}

.st-container.st-menu-open {
    margin: 10px -15px -10px 15px;
}

.st-pusher {
    position: relative;
    left: 0;
    z-index: 99;
    height: 100%;
}

.st-pusher::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    background: rgba(0, 0, 0, 0.3);
    content: '';
    opacity: 0;
    -webkit-transition: opacity .5s, width .1s .5s, height .1s .5s;
    transition: opacity .5s, width .1s .5s, height .1s .5s
}

.st-menu-open .st-pusher::after {
    width: 100%;
    height: 100%;
    opacity: 1;
    -webkit-transition: opacity .5s;
    transition: opacity .5s
}

.st-menu {
    position: fixed;
    top: 0;
    left: auto;
    z-index: 100;
    visibility: hidden;
    width: 300px;
    height: 100%;
    background: #4298b8;
    -webkit-transition: all .5s;
    transition: all .5s;
    right: -600px
}

.st-menu::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    content: '';
    opacity: 1;
    -webkit-transition: opacity .5s;
    transition: opacity .5s
}

.st-menu-open .st-menu::after {
    width: 0;
    height: 0;
    opacity: 0;
    -webkit-transition: opacity .5s, width .1s .5s, height .1s .5s;
    transition: opacity .5s, width .1s .5s, height .1s .5s
}

.st-menu ul {
    margin: 0;
    padding: 0;
    list-style: none
}

.st-menu h2 {
    margin: 0;
    padding: 1em;
    color: white;
    text-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
    font-weight: 300;
    font-size: 2em
}

.st-menu ul li {
    display: block
}

.st-menu ul li a {
    display: block;
    position: relative;
    padding: 1em 1em 1em 45px;
    outline: 0;
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2);
    color: #f3efe0;
    text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
    letter-spacing: 1px;
    font-weight: 400;
    text-decoration: none
}

.st-menu ul li a span.fa {
    display: block;
    position: absolute;
    left: 12px;
    top: 17px;
    font-size: 20px;
    width: 30px;
    text-align: center
}

.st-menu ul li a span.fa.fa-tasks, .st-menu ul li a span.fa.fa-envelope {
    top: 18px;
    font-size: 18px
}

.st-menu ul li:first-child a {
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2), inset 0 1px rgba(0, 0, 0, 0.2)
}

.st-menu ul li a:hover {
    background: rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0);
    color: #fff
}

.st-effect-9 .st-pusher {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d
}

.st-effect-9.st-menu-open .st-pusher {
    -webkit-transform: translate3d(0, 0, -300px);
    transform: translate3d(0, 0, -300px)
}

.st-effect-9.st-menu {
    right: -600px;
    opacity: 1;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0)
}

.st-effect-9.st-menu-open .st-effect-9.st-menu {
    visibility: visible;
    right: -300px
}

.st-effect-9.st-menu::after {
    display: none
}

/* Video from the learn page */
.presentations {
    margin-top: 30px;
    margin-bottom: 30px;
}

.presentations img.screenshot {
    float: left;
    margin-right: 40px;
    margin-top: 1em;
    margin-bottom: 0px;
    width: 300px;
    height: auto;
}

.presentations .metadata {
    display: table-cell;
    min-width: 328px;
}

.presentations .title {
    margin-top: 1em !important;
    margin-bottom: 0.5em !important;
}


.presentations .speaker {
    color: #245f78;
    margin-bottom: 0.5em;
}

.presentations .summary {
    line-height: 1.3;
}

.presentations .urls {
}

/* Courses from the Learn Page */
.courses {
    margin-top: 30px;
    margin-bottom: 30px;
}

.courses img.screenshot {
    float: left;
    margin-right: 40px;
    margin-top: 1em;
    margin-bottom: 0px;
    width: 300px;
    height: auto;
}

.courses .metadata {
    display: table-cell;
    min-width: 328px;
}

.courses .title {
    margin-top: 1em !important;
    margin-bottom: 0.5em !important;
}

.courses .instructor {
    color: #245f78;
    margin-bottom: 0.5em;
}

.courses .description {
    line-height: 1.3;
}

@media screen and (max-width: 767px) {
    .presentations .img.screenshot, .video .metadata {
        float: none;
    }
}

#content #toc {
    margin-bottom: 1.25em;
    padding: 1.25em;
    border-width: 0;
    -webkit-border-radius: 4px;
    border-radius: 4px;
}

#content #toc > :first-child {
    margin-top: 0;
}

#content #toc > :last-child {
    margin-bottom: 0;
}

#content #toc a {
    text-decoration: none;
}

#content #toctitle {
    font-weight: bold;
    font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
    font-size: 1em;
    padding-left: 0.125em;
}

.admonitionblock td.content > .title {
    line-height: 1.4;
    color: #db4800;
    font-weight: 300;
    margin-top: 0.2em;
    margin-bottom: 0.5em;
}

.admonitionblock > table {
    border: 0;
    background: none;
    width: 100%;
}

.admonitionblock > table td.icon {
    text-align: center;
    width: 80px;
}

.admonitionblock > table td.icon img {
    max-width: none;
}

.admonitionblock > table td.icon .title {
    font-weight: bold;
    text-transform: uppercase;
}

.admonitionblock > table td.content {
    padding-left: 1.125em;
    padding-right: 1.25em;
    border-left: 1px solid #dddddd;
    color: #6f6f6f;
}

.admonitionblock > table td.content > :last-child > :last-child {
    margin-bottom: 0;
}

.admonitionblock td.icon [class^="icon-"]:before {
    font-size: 2.5em;
    /* text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);*/
    cursor: default;
}

.admonitionblock td.icon .icon-note:before {
    content: "\f05a";
    color: #4298b8;
}

.admonitionblock td.icon .icon-tip:before {
    content: "\f0eb";
    color: #ffe400;
}

.admonitionblock td.icon .icon-warning:before {
    content: "\f071";
    color: #ff8c00;
}

.admonitionblock td.icon .icon-caution:before {
    content: "\f06d";
    color: #db4800;
}

.admonitionblock td.icon .icon-important:before {
    content: "\f06a";
    color: #db4800;
}

#content #toc ul {
    list-style-type: none;
    padding-left: 0.2em;
}
