/*=============================================================================
                         Navbar at the top of the page
=============================================================================*/

/* Padding at top because of the fixed navbar. */
body {
}

/* Our logo. */
.navbar-logo {
	padding: 15px 15px 0;
	margin-bottom:20px;
}
.navbar-logo img {
	width: 147px;
}

p.lead {font-size:26px;}

@media screen and (min-width:768px) {
	#sidebar .navbar {max-width:157px;}
}
@media screen and (min-width:992px) {
	#sidebar .navbar {max-width:212px;}
}
@media screen and (min-width:1200px) {
	#sidebar .navbar {max-width:260px;}
}

/* Links */

.navbar {border-radius:0;}
ul.navbar-nav {width:100%;}
.navbar-default .navbar-nav > li > a.btn {color:#fff;margin:20px 15px;}
.navbar-default .navbar-nav>.active>a.btn-info,
.navbar-default .navbar-nav > li > a.btn-info:hover {
	color: #fff;
    background-color: #31b0d5;
    border-color: #269abc;
}
/*
.navbar-default .navbar-nav>.active>a.btn {background:transparent;color:white;}
*/
.navbar-default .navbar-nav > li {float:none;}
.navbar-default .navbar-nav > li > a {
	color:#212121;
}

.navbar-bottom {margin-bottom:30px;}
.navbar-main > li > a {
	font-weight: bold;
}

.navbar-default .navbar-nav > li > a:hover {
	background: #E7E7E7;
}

.navbar-collapse {padding:0;}

.navbar-collapse .dropdown-header {
	color: black;
}

.navbar-subnav {
  float: none;
}

.navbar-nav.navbar-subnav > li > a {
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 30px;
}

@media (min-width: 768px){
.navbar-nav>li>a {
    padding-top: 10px;
    padding-bottom: 10px;
}}

/*=============================================================================
                                    Text
=============================================================================*/

/* The auto-generated TOC anchors are hidden by the top navbar otherwise. */
h1, h2, h3, h4, h5, h6 {
    padding-top: 70px;
    margin-top: -60px;
}

/* fix conflict with bootstrap's alert */
.alert h4 {
	margin-top: -60px;
}

h1 {
	font-size: 160%;
}

h2 {
	font-size: 140%;
}

h3, h4, h5, h6 {
	font-size: 120%;
}

blockquote {
	font-size: 100%;
}

p.lead {text-align:center;}

img {
	height:auto !important;
	max-width:100%;
}
/*=============================================================================
                              Table of Contents
=============================================================================*/

.page-toc {
	padding-bottom: 2em;
}

#markdown-toc {
	font-size: 90%;
}

@media (min-width: 768px) {
	#markdown-toc {
		/*width: 35%;*/
	}
}

/* Custom list styling */
#markdown-toc, #markdown-toc ul {
	list-style: none;
	display: block;
	position: relative;
	padding-left: 0;
	margin-bottom: 0;
}

/* All element */
#markdown-toc li > a {
	display: block;
	padding: 5px 10px;
	border: 1px solid #E5E5E5;
	margin:-1px;
}
#markdown-toc li > a:hover,
#markdown-toc li > a:focus {
  text-decoration: none;
  background-color: #eee;
}

/* 1st-level elements */
#markdown-toc > li > a {
	font-weight: bold;
}

/* 2nd-level element */
#markdown-toc > li li > a {
	padding-left: 20px; /* A little more indentation*/
}

/* >= 3rd-level element */
#markdown-toc > li li li {
	display: none; /* hide */
}

#markdown-toc li:last-child > a {
	border-bottom: 1px solid #E5E5E5;
}

/*=============================================================================
                                 Various
=============================================================================*/

.collapsible {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 12px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
}

.stack img {
	width: 480px;
	height: 280px;
}

.frontpage-tags a {
	color: black;
}

.frontpage-tags a:link {
	color: #3382c9;
}

.frontpage-tags a:visited {
	color: #3382c9;
}

pre {
	background: none;
}

.blog-title a {
	color: black;
}

code {
	background: none;
	color: black;
}

.footer {
	padding: 1em 0 2em 0;
}

.download-button {
	padding-bottom:10px
}

.img100 img {
	width: 100%;
}

.img-column {
    text-align: center;
}

#disqus_thread {
	padding-top: 3em;
}

.front-graphic {
	text-align:center;
	margin-bottom:30px;
}

img.illu {margin:40px auto 60px;display:block;}

.committer-avatar {
	width: 50px;
}
/*=============================================================================
                                Powered By Carousel
=============================================================================*/

.jcarousel {
    position: relative;
    overflow: hidden;

    margin:30px 0;
}

.jcarousel ul {
    width: 20000em;
    position: relative;

    /* Optional, required in this case since it's a <ul> element */
    list-style: none;
    margin: 0;
    padding: 0;
}

.jcarousel li {
    /* Required only for block elements like <li>'s */
    float: left;
    text-align:center;
}

.jcarousel li div {margin-bottom:20px;}
.jcarousel li img {}

.jcarousel li span {
	display:block;
	font-size:90%;
}

.jcarousel-control-prev{
	position: absolute;
    top: 50%;
    left: 0;
}

.jcarousel-control-next{
	position: absolute;
    top: 50%;
    right: 0;
}
.homecontent {
	margin-top:70px;
}

.btn-intro {
	margin: 20px auto;
    display: block;
    width: 200px;
		color: #31b0d5;
		border-color: #31b0d5
}
@media screen and (min-width:768px) {
	/*fix sticky scroll breaking layout */
	/*#sidebar, body>.container>.row:first-child>div:first-child {max-width:292px !important;}*/
}
@media screen and (max-width:767px) {
	#sidebar .navbar {position:static !important;}
}

body>.container>.row:first-child>.col-sm-9{margin-top:20px;}
