/*
 * Sphinx doesn't have support for section dividers like we do in
 * MkDocs, this styles the section titles in the nav
 *
 * https://github.com/mkdocs/mkdocs/issues/175
 */
.wy-menu-vertical span {
    line-height: 18px;
    padding: 0.4045em 1.618em;
    display: block;
    position: relative;
    font-size: 90%;
    color: #838383;
}

.wy-menu-vertical .subnav a {
    padding: 0.4045em 2.427em;
}

/*
 * Long navigations run off the bottom of the screen as the nav
 * area doesn't scroll.
 *
 * https://github.com/mkdocs/mkdocs/pull/202
 */
.wy-nav-side {
    height: 100%;
    overflow-y: auto;
}

/*
 * readthedocs theme hides nav items when the window height is
 * too small to contain them.
 *
 * https://github.com/mkdocs/mkdocs/issues/#348
 */
.wy-menu-vertical ul {
  margin-bottom: 2em;
}

/*
 * Fix wrapping in the code highlighting
 *
 * https://github.com/mkdocs/mkdocs/issues/233
 */
code {
    white-space: pre;
    padding: 2px 5px;
}

/*
 * Wrap inline code samples otherwise they shoot of the side and
 * can't be read at all.
 *
 * https://github.com/mkdocs/mkdocs/issues/313
 */
p code {
    word-wrap: break-word;
}

/**
 * Make code blocks display as blocks and give them the appropriate
 * font size and padding.
 *
 * https://github.com/mkdocs/mkdocs/issues/855
 */
pre code {
  display: block;
  padding: 12px;
  font-size: 12px;
}

/*
 * Fix link colors when the link text is inline code.
 *
 * https://github.com/mkdocs/mkdocs/issues/718
 */
a code {
    color: #2980B9;
}
a:hover code {
    color: #3091d1;
}
a:visited code {
    color: #9B59B6;
}

/*
 * The CSS classes from highlight.js seem to clash with the
 * ReadTheDocs theme causing some code to be incorrectly made
 * bold and italic.
 *
 * https://github.com/mkdocs/mkdocs/issues/411
 */
code.cs, code.c {
    font-weight: inherit;
    font-style: inherit;
}

/*
 * Fix some issues with the theme and non-highlighted code
 * samples. Without and highlighting styles attached the
 * formatting is broken.
 *
 * https://github.com/mkdocs/mkdocs/issues/319
 */
.no-highlight {
  display: block;
  padding: 0.5em;
  color: #333;
}


/*
 * Additions specific to the search functionality provided by MkDocs
 */

#mkdocs-search-results article h3
{
    margin-top: 23px;
    border-top: 1px solid #E1E4E5;
    padding-top: 24px;
}

#mkdocs-search-results article:first-child h3 {
    border-top: none;
}

#mkdocs-search-query{
    width: 100%;
    border-radius: 50px;
    padding: 6px 12px;
    border-color: #D1D4D5;
}

.wy-menu-vertical li ul {
    display: inherit;
}

.wy-menu-vertical li ul.subnav ul.subnav{
    padding-left: 1em;
}


/*
 * Improve inline code blocks within admonitions.
 *
 * https://github.com/mkdocs/mkdocs/issues/656
 */
 div.admonition code {
  color: #404040;
  border: 1px solid rgba(0, 0, 0, 0.2);
  background: rgba(255, 255, 255, 0.7);
}
