
/*-------------------- basic html elements and classes --------------------*/
html, body {
    margin: 0;
    padding: 0;
    background-color: #ffffff;
}

body {
    display: none;
}

body, div {
    font-family: "Open Sans", "Lucida Grande", "Helvetica Neue", Arial;
    font-size: 16px;
    color: #000;
}

p {
    font-family: "Open Sans", "Lucida Grande", "Helvetica Neue", Arial;
    color: #000;
    font-size: 16px;
    line-height: 1.5em;
}

#language-filter {
    float: right;
    margin-top: 5px;
}

li, dt a, dt span {
    font-size: 16px;
    line-height: 1.5em;
}

/* /\*Content paragraph space*\/ */
/* div.content p { */
/*     margin-top: 20px; */
/* } */

/*------------------ Headings -------------------*/
h1, h2, h3 {
    font-family: "Open Sans", "Lucida Grande", "Helvetica Neue", Arial;
    margin-top: 10px;
    margin-bottom: 10px;
}

h1 {
    font-size: 22px;
    font-weight: bold;
    padding-top: 10px;
    color: #cc6600;
}

h2 {
    font-size: 20px;
    /* font-weight: bold; */
    padding-top: 10px;
    color: #187dbb;
}

h3 {
    font-size: 18px;
    padding-top: 8px;
    /* font-weight: bold; */
    color: #187dbb;
}

h3.orange {
    color: #cc6600; }

h4 {
    color: #187dbb;
    font-size: 16px;
    padding-top: 6px;
    font-style: italic;
    /* font-weight: bold; */
}

h5 {
    color: #333333;
    font-size: 16px;
    font-style: italic;
    font-weight: bold;
}

h6 {
    color: #333333;
    font-size: 14px;
    font-style: italic;
    font-weight: bold;
}

img {
    border-style: hidden;
    border-width: 0px 0px 0px 0px;
    border-color: #ffffff;
    /* white  */
    padding: 0px 0px 0px 0px;
    margin: 0px 0px 0px 0px;
}

.topictitle {
    font-size: 24px;
    font-weight: bold;
    color: #e47911;
    padding: 0 0 14px 0;
}

.section:before {
    content: " ";
    display: block;
    height: 60px; /* fixed header height*/
    margin: -60px 0 0; /* negative fixed header height */
}

/*-----------------------nav bar-----------------------*/
.navbar {
    background-color:#0079b2;
    opacity: 0.9;
    border: 0px;
    height: 60px;
    margin-bottom: 0px;
}

.navbar .container {
    position: fixed;
    left: 20px;
}

@media screen and (max-width: 510px) {
    .navbar {
        height: 60px;
    }
}

#header-inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: box;
    display: flex;
    -webkit-box-orient: horizontal;
    -moz-box-orient: horizontal;
    -webkit-box-lines: single;
    -moz-box-lines: single;
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row;
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center
}

@media screen and(max-width: 768 px) {
    #header-inner {
        -webkit-box-pack: center;
       -ms-flex-pack: center;
       -webkit-justify-content: center;
        justify-content: center
    }
}

#logo-wrap {
    -webkit-box-flex: 1;
   padding-top: 0;
    margin-top: 0;
    width: 125px;
}

@media screen and (max-width: 405px) {
    #logo-wrap {
        margin-left: -25px;
    }
}

#logo {
    width: 150px;
    display: block;
    float: left;
    height: 60px;
    padding: 10px 0 0 0;
}

#logo > img {
  display: block;
  width: 110px;
}

.nav-bar {
    display: block;
    -webkit-box-flex: 1;
    flex: 1 auto;
    position: relative;
    top: -5px;
    white-space: nowrap;
}

.main-nav-link {
    color: #fff;
    text-decoration: none;
    line-height: 50px;
    opacity: .7;
    -webkit-transition: .2s;
    transition: .2s;
    font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
    display: inline-block;
    padding: 0 15px;
}

.main-nav-link:hover {
    opacity: 1;
    color: #1094e8;
    text-decoration: none;
}

#dropdown-menu-position-anchor {
    position: relative;
}

#package-dropdown-menu {
    top: 36px;
    border-radius: 4px;
    padding: 0;
}

#package-dropdown-menu > li > a {
    color: #0079b2;
    padding: 6px 16px;

}

#search-input-wrap {
    display: block;
    position: fixed;
    top: 15px;
    right: 40px;
    width: 140px;
}

#searchIcon {
    display: none;
    position: fixed;
    top: 20px;
    right: 155px;
    color: white;
}

.searchBox {
    position: absolute;
    top: 0;
    left: 0;
    width: 140px;
}

.searchBtn {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
}

@media screen and (max-width: 510px) {
    #search-input-wrap {
        display: none;
        top: 50px;
        left: 50%;
        right: initial;
        margin-left: -100px;
        width: 200px;
    }

    div .searchBox {
        width: 200px;
    }

    #searchIcon {
        display: block;
    }
}

@media screen and (min-width: 511px) {
    #search-input-wrap {
        display: block !important;
    }
}

#lang-select-wrap {
    display: block;
    position: fixed;
    right: 120px;
    top: 5px
}

#lang-select-label {
    color: #fff;
    opacity: .7;
    font-family: Lato, Helvetica Neue, Helvetica, Arial, sans-serif;
    line-height: 50px
}

#lang-select-label span {
    padding-left: 8px
}

#lang-select-label i {
    opacity: .7
}

#lang-select {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-appearance: menulist-button;
    font-size: inherit
}

.github-btn { border: 0; overflow: hidden }

/*burger icon*/
div .burgerIcon {
    font-size: 25px;
    position: fixed;
    right: 155px;
    top: 10px;
    display: none
}

div .burgerIcon a {
    color: white;
}

@media screen and (max-width: 405px) {
    div .burgerIcon {
        margin-left: -25px;
    }
}

/*burger menu*/
#burgerMenu, #plusMenu {
    list-style-type: none;
    margin-top: 10px;
    padding: 0;
    background-color: white;
    list-style-position: inside;
    min-width: 100px;
}

#burgerMenu a, #plusMenu a {
    display: table-cell;
    font-size: 15px;
    color: #0079b2;
    vertical-align: middle;
    height: 30px;
    padding-left: 5px;
    width: 108px;
    max-width: 200px
}

#burgerMenu li, #plusMenu li {
    height: 30px;
    list-style-position: inside;
}

li.dropdown-submenu ul.dropdown-menu {
    min-width: 75px;
    width: 75px
}

li.dropdown-submenu ul.dropdown-menu li {
    height: auto
}

li.dropdown-submenu ul.dropdown-menu a {
    height: auto
}

/*dropdown submenu*/
.dropdown-submenu {
    position: relative;
}

.dropdown-submenu>.dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -6px;
    margin-left: -1px;
    -webkit-border-radius: 0 6px 6px 6px;
    -moz-border-radius: 0 6px 6px;
    border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover>.dropdown-menu {
    display: block;
}

.dropdown-submenu>a:after {
    display: block;
    content: " ";
    float: right;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
    border-width: 5px 0 5px 5px;
    border-left-color: #ccc;
    margin-top: 5px;
    margin-right: -10px;
}

.dropdown-submenu:hover>a:after {
    border-left-color: #fff;
}

.dropdown-submenu.pull-left {
    float: none;
}

.dropdown-submenu.pull-left>.dropdown-menu {
    left: -100%;
    margin-left: 10px;
    -webkit-border-radius: 6px 0 6px 6px;
    -moz-border-radius: 6px 0 6px 6px;
    border-radius: 6px 0 6px 6px
}

/*Plus icon*/
.plusIcon {
    display: none;
    position: fixed;
    top: 20px;
    right: 175px;
    width: 30px;
}

.glyphicon-plus {
    color: white;
}

@media screen and (max-width:600px) {
    div .plusIcon, .nav-bar {
        display: none !important;
    }

    div .burgerIcon {
        display: block;
        position: fixed;
        top: 10px;
        left: 150px;
    }
}
/*--------------------------banner---------------------------*/
#splash{
    padding:60px 0 0 0;
    background-color:#0079b2;
    /* background-image:url(../img/bg.jpg); */
    background-size:cover;
    background-attachment:fixed;
    color:#fff;
    text-align:center
}

#splash #banner {
    text-align: center
}

#splash #banner-title {
    padding: 20px 0 10px 0;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 300;
    font-family: Lato, Helvetica Neue, Helvetica, Arial, sans-serif;
    color: #fff;
}

@media screen and (min-width:769px) {
    #splash #banner-title {
        padding-top: 100px;
    }
}

@media screen and (max-width:768px) {
    #splash #banner-title {
            font-size: 30px;
            padding: 60px 30px 10px 30px;
    }
}

@media screen and (max-width:510px) {
    #splash #banner-title {
            padding-top: 60px;
    }
}

#splash h1{
    font-size: 40px;
    margin-bottom: 20px;
}

#splash #social{
    margin:2em 0 4em 0;
}

#splash #get_start {
    margin:2em 0
}

#splash #get_start_btn {
    border: 1.8px solid #FFFFFF;
    border-radius: 2px;
    color: #FFFFFF;
    display: inline-block;
    font-size: 22px;
    font-family: Helvetica, Helvetica Neue, Arial, sans-serif;
    padding: 8px 20px;
    -webkit-transition: .2s;
    transition: .2s;
}

#splash #get_start_btn:hover {
    background-color: #FFFFFF;
    color: #0079b2;
    opacity: 0.9;
    text-decoration: none;
}

/*------------------------index page section----------------------------*/
.section-tout {
    padding:3em 0 3em;
    border-bottom:1px solid rgba(0,0,0,.05);
    background-color:#eaf1f1
}

.section-tout .row div {
    height: 140px;
}

.section-tout .fa{
    margin-right:.5em
}

.section-tout h3{
    font-size:20px;
    color: #0079b2;
}

.section-tout p {
    margin-bottom:2em
}

.section-inst{
    padding:3em 0 3em;
    border-bottom:1px solid rgba(0,0,0,.05);

    text-align:center
}

.section-inst p {
    margin-bottom:2em
}

@media (min-width: 1200px) {
    .section-inst .row div.clear {
        clear: both;
    }
}

@media (max-width: 1199px) {
    .section-inst .row div.smallClear {
        clear: both;
    }
}

.section-inst img {
    -webkit-filter: grayscale(90%); /* Chrome, Safari, Opera */
    filter: grayscale(90%);
    margin-bottom:2em
}
.section-inst img:hover {
    -webkit-filter: grayscale(0%); /* Chrome, Safari, Opera */
    filter: grayscale(0%);
}

.footer{
    padding-top: 40px;
}
.footer li{
    float:right;
    margin-right:1.5em;
    margin-bottom:1.5em
}
.footer p{
    font-size: 15px;
    color: #888;
    clear:right;
    margin-bottom:0
}

/*------------------content----------------------*/
div.navbar + div.container {
    padding-top: 65px;
}

div.content {
    position: absolute;
    left: 310px;
    right: 0;
    margin-right: 5%;
    z-index: -1;
}

@media (max-width: 999px) {
    div.content {
        left: 0;
        margin-left: 5%;
        overflow-x: auto;
    }
}

/*------------------sidebar-----------------------*/
div.sphinxsidebar {
    position: fixed;
    background-color: white;
    left: 30px;
    margin-left: 0;
    width: 250px;
    padding:20px 30px 15px 0;
    height: calc(100% - 80px);
    display: none;
    overflow: auto;
}

div.sphinxsidebar ul {
    padding: 0;
    list-style-type: none !important;
}

div.sphinxsidebarwrapper > ul {
    padding-left: 20px;
}

div.sphinxsidebar li {
    padding-top: 5px;
    margin-bottom: 10px;
    font: normal 14px "Open Sans", "Lucida Grande", "Helvetica Neue", Arial;
}

div.sphinxsidebar li.opened .tocToggle:before {
    font-family: 'FontAwesome';
    content: "\f146";
    margin: 0 5px 0 -15px;
    color: #e47911;
}

div.sphinxsidebar li.closed .tocToggle:before {
    font-family: 'FontAwesome';
    content: "\f0fe";
    margin: 0 5px 0 -15px;
    color: #e47911;
}

div.sphinxsidebar li.leaf .tocToggle:before {
    font-family: 'FontAwesome';
    content: "\f096";
    margin: 0 5px 0 -15px;
    color: #e47911;
}

@media (min-width:1000px) {
    div.sphinxsidebar {display: block}
}

div.sphinxsidebarwrapper h3 {
    padding-top: 0;
}

/*-------------------- table styles --------------------*/
table {
  margin-bottom: 10px;
  border-collapse: collapse; }

table p {
  font-size: 16px; }

td p:first-child {
  margin-top: 0px; }

td p:last-child {
  margin-bottom: 0px; }

td ul:first-child {
  margin-top: 0px;
  /*  new 8/22/07 */ }

td ol:first-child {
  margin-top: 0px;
  /*  new 8/22/07 */ }

div.table {
  position: relative; }

div.informaltable {
  position: relative; }

.table-expand-icon {
  position: absolute;
  right: -20px;
  font-size: 24px;
  background: #cccccc;
  float: right;
  bottom: 0;
  cursor: pointer; }

.table-contents table {
  border-top: 1px solid #cccccc;
  /* medium gray  */
  border-left: 1px solid #cccccc;
  /* medium gray  */
  border-bottom: 0px;
  border-right: 0px;
  border-spacing: 0px; }

.table-contents td {
  font-size: 16px;
  padding: 5px 5px 5px 5px;
  border-bottom: 1px solid #cccccc;
  /* medium gray  */
  border-right: 1px solid #cccccc;
  /* medium gray  */
  border-left: 0px;
  border-top: 0px;
  vertical-align: top; }

.table-contents th {
  font-size: 16px;
  padding: 5px 5px 5px 5px;
  border-bottom: 1px solid #cccccc;
  /* medium gray  */
  border-right: 1px solid #cccccc;
  /* medium gray  */
  border-left: 0px;
  border-top: 0px;
  vertical-align: top;
  background-color: #eeeeee;
  /* light gray  */
  color: #333333;
  /* Dark gray  */
  font-size: 16px;
  font-weight: bold;
  text-align: left; }

/*----------------API class and function formatting---------------------*/
dl > dt:before {
    content: " ";
    display: block;
    height: 70px; /* fixed header height*/
    margin-top: -70px; /* negative fixed header height */
}

p.rubric {
    margin-top: 10px;
}

dt:target, .highlighted {
    background-color: #fff;
    border-bottom: 3px solid #c7254e;
    margin-bottom: -3px;
}

/*----------------Model zoo page style------------------*/
#mxnet-model-zoo table, #mxnet-model-zoo td, #mxnet-model-zoo th {
    border: 1px solid lightgray;
}

#mxnet-model-zoo table {
    margin-top: 30px;
    border-collapse: collapse;
}

#mxnet-model-zoo th {
    vertical-align: middle;
    text-align: center;
    height: 50px;
}

#mxnet-model-zoo td {
    vertical-align: middle;
    height: 50px;
    padding: 10px;
}

#mxnet-model-zoo tr:nth-child(even) {
    background-color: #f2f2f2;
}

/*--------- note block -----------*/
div.admonition {
    padding: 15px;
    background-color: #f6f8fa;
    border: 1px solid rgb(204, 204, 204);
    border-radius: 4px;
}

p.admonition-title {
    color: #187dbb;
}

/*------------ code block ------------*/
pre {
    background-color: #f6f8fa;
}

/*-------------API table---------------------*/
table.docutils {
    margin-top: 15px;
}

table.docutils td, table.docutils th {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 10px;
    padding-right: 10px;
    /* border-top: 0; */
    /* border-left: 0; */
    /* border-right: 0; */
    border: 1px solid rgb(223, 226, 229);
}

table.docutils tr:nth-child(even) {
    background-color: #f6f8fa;
}

/*---------------getting started homepage---------*/

#lang-demo ul {
    margin-top: 20px;
    margin-bottom: 15px;
}

.option-title {
    width: 100px;
    float: left;
    clear: none;
    text-align: right;
    font-size: 14px;
    padding-top: 7px;
    padding-bottom: 8px;
    padding-right: 10px;
    font-weight: bold;
}
.option-row {
    padding-bottom: 8px;
}

.install-inst {
}

.btn-default:hover, .btn-default:focus, .btn-default:active,
.btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover,
.btn-default:active.focus, .btn-default:active:focus, .btn-default:active:hover,
.btn-default.active, .open>.dropdown-toggle.btn-default,
.btn-default:active:focus {
    color: #fff;
    background-color: #0079b2;
    border-color: #0079b2;
}

#setup-options {
    margin-top: 15px;
    margin-bottom: 15px;
    margin-left: 30px;
}

.opt-group {
    margin-top: 10px;
    margin-bottom: 10px;
}
