/* Override <code> to match <pre> instead of being red. */
code {
    color: #333;
    background-color: #f5f5f5;
}

.row-fluid .col-lg-12 {
    padding-bottom: 20px;
}

footer {
    clear: both;
}

.fork-me-on-github img {
    position: absolute;
    top: 0;
    right: 0;
    width: 149px;
    height: 149px;
    border: 0;
}

@media (max-width: 1400px) {
  .fork-me-on-github {
    display: none;
  }
}

.btn-info {
    background-color: #1f99d5;
    border-color: #0e76bc;
}

.btn-info :hover {
    background-color: #25aae1;
}

#toc.affix {
  top: 20px;
  margin-top: 0;
  width: 262.5px;
}

@media (max-width: 991px) {
  .affix {
    position: inherit;
  }
}

#toc {
    margin-top: 30px;
    padding: 10px;
    border: 1px solid #dddddd;
}

#toc ul {
    padding-left: 3px;
}

.row.header {
    border-bottom: 1px solid #25aae1;
    margin-bottom: 30px
}

.row.overview {
    margin-bottom: 30px;
    padding: 10px 0;
    border-bottom: 1px solid #ccccff;
    font-size: 120%;
}

.row.overview.noborder {
    border-bottom: none;
}

.row.overview h3 {
    margin-top: 0;
}

.row.overview img {
    display: block;
    margin: auto;
}

.contributing h3 {
    padding-top: 20px;
    border-top: 1px solid #bdf;
    margin-top: 20px;
}

.contributing h3:first-of-type {
    padding-top: 15px;
    border-top: none;
    margin-top: 0;
}

.kudu-site .navbar-default {
    background-color: #fff;
    padding-right:20px;
    border: none;
}

.kudu-site .navbar-default .navbar-nav a {
    font-size: 110%;
    background: none;
}

.kudu-site .navbar-default .navbar-nav a:hover {
    color: #fdfdfd;
    background: #1f99d5;
}

.kudu-site .navbar-default .navbar-nav .active a {
    color: #555;
    font-weight: bold;
    background: none;
}

.kudu-site .navbar-default .navbar-nav .active a:hover {
    cursor: default;
    color: #555;
}

.kudu-site .navbar-default:after {
    display: block;
    clear: both;
}

.faq ol {
    margin: 20px 0;
}

.faq h3 {
    color: #333;
    font-size: 18px;
    font-weight: bold;
    padding: 20px 0 0 0;
    margin: 20px 0 0 0;
}

.faq h4 {
    color: #333;
    font-size: 14px;
    font-weight: bold;
    padding: 20px 0 0 0;
    border-top: 1px solid #dddddd;
    margin: 20px 0 0 0;
}

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

/* We style the ol like a ul because we are working within the bounds of what
   is possible within markdown, and there are other uls on the page that we
   don't want to affect. */
.community ol {
    list-style-type: disc;
}
.community ol li {
    padding: 0 0 10px 0;
    margin: 0;
}
.community ol li:last-child {
    padding-bottom: 0;
}

@media (min-width: 1200px) { .container-fluid {
  width: 1170px
} }

@media (min-width: 768px) and (max-width:820px) {
  /* The navigation layout breaks in this page width range, hide the FAQ link
     until we can get a replacement for the navigation bar. */
  nav.navbar-default ul.navbar-nav li:last-child {
    display: none;
  }
}
@media (min-width: 768px) and (max-width:870px) {
  .navbar-right { padding-left:0; padding-right:0; }
  .kudu-site .navbar-default .navbar-nav a {
      /* The padding looks better at 15px but doesn't fit on the page due to so many links. */
      padding: 13px;
  }
}

/* ------------------------------------------
   BLOG
   ------------------------------------- */
article header p.meta {
  font-style: italic;
  color: #666;
  margin-bottom: 5px;
}

article header a {
  color: #000;
}

article header {
  border-bottom: 1px solid #ddd;
  margin-bottom: 20px;
}

article .entry-content {
  font-size: 125%;
}

article .entry-content p {
  margin-bottom: 1.5em;
}

article .read-full {
  text-align: right;
}

.recent-posts {
  background: #f6f6f6;
}

.recent-posts h3 {
  font-weight: bold;
  font-size: 140%;
}

.recent-posts ul {
  list-style: none;
  padding: 0.5em 0;
  margin: 0;
  border-bottom: 1px solid #eee;
}