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

body {
    display: block;
    visibility: hidden;
}

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: 18px;
    margin-bottom: 18px;
    color: #444;
}

h1 {
    margin-top: 0px;
    margin-bottom: 25px;
    font-size: 28px;
}

h2 {
    font-size: 24px;
}

h3 {
    font-size: 20px;
}

h4 {
    font-size: 16px;
}

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: -12px;
    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: #fff;
    text-decoration: none;
}

#dropdown-menu-position-anchor, 
#dropdown-menu-position-anchor-version, 
#dropdown-menu-position-anchor-version-mobile {
    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;
}

#search-input-wrap ul {
    list-style-type: none;
}

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

.searchBox {
    position: absolute;
    top: 0;
    left: 0;
    width: 140px;
    background: #87CEFA;
    border-radius: 5px;
}

.searchBox input {
    background: #87CEFA;
}

.searchBox input::placeholder {
    font-weight: 200;
}

.searchBoxNorm input::placeholder {
    color: white;
}

.searchBoxExp input::placeholder {
    color: dimgray;
}

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

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

    #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;
}

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

#why_mxnet, #install_blk {
    margin:2em 0
}

#why_mxnet_btn, #install_btn, #release_btn {
    border: 1.8px solid #FFFFFF;
    color: #FFFFFF;
    display: inline-block;
    font-size: 18px;
    font-family: Helvetica, Helvetica Neue, Arial, sans-serif;
    padding: 8px 20px;
    -webkit-transition: .2s;
    transition: .2s;
    width: 160px;
    border-radius: 30px;
}

#release_btn {
    width: auto;
    border: none;
}

@media (min-width: 768px) {
    #why_mxnet_btn {
        margin-right: -45%;
    }
    #install_btn {
        margin-left: -45%;
    }
}

@media (min-width: 992px) {
    #why_mxnet_btn {
        margin-right: -55%;
    }
    #install_btn {
        margin-left: -55%;
    }
}

@media (min-width: 1200px) {
    #why_mxnet_btn {
        margin-right: -65%;
    }
    #install_btn {
        margin-left: -65%;
    }
}

@media (max-width: 767px) {
    #why_mxnet_btn {
        margin-bottom: -20%;
    }
    #install_btn {
        margin-top: -20%;
    }
}

#why_mxnet_btn:hover, #install_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:#fff
}

.section-tout .container {
    height: 200px;
}

.section-tout .row {
    height: 100%;
}

.section-tout .row div {
    height: 100%;
    padding-left: 50px;
}

.section-tout .row a {
    position: absolute;
    bottom: 20px;
}

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

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

@media (max-width: 1199px) {
    .section-tout .container {
        height: auto;
    }
    
    .section-tout .row a {
        position: inherit;
    }
    
    .section-tout .row div {
        margin-bottom: 20px;
        padding-left: 20px;
    }
}

.section-util {
    background-color: #eaf1f1;
    padding:3em 0 3em;
    border-bottom:1px solid rgba(0,0,0,.05);
    text-align: center;
}

.section-util p {
    color: #999;
    position: absolute;
    width: 50%;
    margin: auto;
    left: 0;
    right: 0;
}

.section-util .util-btn {
    position: absolute;
    margin: auto;
    left: 0;
    right: 0;
    padding-top: 10px;
    margin-top: 100px;
}

.util-btn a {
    display: inline-block;
    border: 1.8px solid #0079b2;
    border-radius: 30px;
    width: 200px;
    height: 50px;
    -webkit-transition: .2s;
    transition: .2s;
    padding: 10px 30px;
}

.util-btn a:hover {
    background-color: #0079b2;
    color: #FFFFFF;
    opacity: 0.9;
    text-decoration: none;
}

.section-util .container {
    height: 230px;
}

@media (max-width: 1199px) {
    .section-util .container {
        height: auto
    }
    
    .section-util .row div {
        margin-bottom: 200px;
    }
}

@media (max-width: 767px) {
    .section-util .row div {
        margin-bottom: 250px;
    }
}

.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: 320px;
    right: 200px;
    margin-right: 5%;
    padding: 40px 0 0 0;
    overflow-x: hidden;
    z-index: -1;
}

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

/*------------------sidebar-----------------------*/
div.sphinxsidebar {
    position: fixed;
    background-color: white;
    height: calc(100% - 80px);
    display: none;
    visibility: hidden;
    overflow: auto;
}

div.leftsidebar {
    left: 30px;
    width: 250px;
    padding: 40px 0 15px 0;
    margin: 0;
}

div.rightsidebar {
    right: 20px;
    width: 200px;
    padding: 40px 0 15px 0;
}

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

div.sphinxsidebar a {
    color: black;
}

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

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

div.leftsidebar > div.sphinxsidebarwrapper {
    padding: 10px 10px 10px 10px;
    background: #f2f2f2;
}

div.leftsidebar > div.sphinxsidebarwrapper > ul > li {
    margin-left: 20px;
}

div.rightsidebar > div.sphinxsidebarwrapper > ul {
    margin-left: 2px;
    border-left: 4px solid #337ab7;
}

div.rightsidebar > div.sphinxsidebarwrapper > ul > li {
    margin-left: 5px;
}

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

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

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

@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---------------------*/
p.rubric {
    margin-top: 10px;
}

dl {
    padding-top: 20px;
}

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

dt:target:before {
    background-color: white;
    content: '';
    display: block;
    height: 60px;
}

dt {
    background: #e7f2fa;
    border-bottom: solid #0079b2;
}

dl.method dt {
    background: #f0f0f0;
    border-bottom: solid #ccc;
}

dl.method dt code.descname {
    color:#555;
}

dl.attribute dt {
    background: #f0f0f0;
    border-bottom: solid #ccc;
}

dl.attribute dt code.descname {
    color:#555;
}

dt em {
    font-weight: normal;
    font-style: normal;
    font-size: 90%; 
}

code {
    color: #337ab7;
    background-color: #f5f5f5;
}

dt code {
    color: #555;
}

dl.last.docutils dt{
    background-color: transparent;
    border-bottom: none;
}

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

.btn-default:hover a {
    color: #fff;
}

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

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

/*----------------Copy code button------------------------*/
.copy-btn {
    display: none;
    position: absolute;
    right: 0;
    width: 40px;
    height: 38px;
}


/*----------------Search function style------------------*/
#searchPage {
    width: 60%;
    margin-left: 20%;
}

#search-preview {
    display: none;
    background-color: white;
    margin-top: -10px;
    border: solid;
    border-width: 1px;
    border-color: #87CEFA;
    width: 100%;
}


#search-preview p {
    color: dimgray;
    padding: 5px 20px 0 20px;
}

#search-preview li {
    padding-top: 10px;
}

#search-preview ul {
    padding-left: 20px;
    padding-right: 20px;
}

#search-preview hr {
    margin: 10px 0 10px 0;
    border-top: 1px solid dimgray;
}

#search-results ul {
    list-style-type: none;
}

@media screen and (max-width: 510px) {
    #search-preview {
        position: fixed;
        left: 0;
        width: 100vw;
    }

    #search-preview li {
        font-size: 12px;
    }
}

/* enable absolute positioning */
.inner-addon {
    position: relative;
}

/* style icon */
.inner-addon .glyphicon {
    position: absolute;
    padding: 10px;
    pointer-events: none;
}

/* align icon */
.left-addon .glyphicon  {
    left:  0px;
}
.right-addon .glyphicon {
    right: 0px;
}

/* add padding  */
.left-addon input  {
    padding-left:  40px;
}
.right-addon input {
    padding-right: 40px;
}

.form-group .glyphicon-search {
    color: white;
}

/*----------------------Get started page----------------------------*/
#why-mxnet img {
    position: relative;
    width: 60%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%);
}

button.download {
    color: #0079b2;
}

/*----------------------Download button------------------------*/
div.download_btn {
    
    border: solid 1px lightgray;
    border-radius: 3px;
    font-size: 90%;
    height: 30px;
    display: table;
    float: left;
}

div.download_btn a {
    padding: 0 10px;
    display: table-cell;
    vertical-align: middle;
}

div.download_btn a:hover {
    background-color: #0079b2;
    color: white;
    text-decoration: none;
}