body {
  position: relative;
  background-color: #fff;
  background-repeat: repeat-x;
  background-position: 0 40px;
}

section {
  padding-top: 30px;
}

hr.soften {
  height: 1px;
  margin: 54px 0;
  background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
  background-image:    -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
  background-image:     -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
  background-image:      -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
  border: 0;
}

.jumbotron {
  position: relative;
}
.jumbotron h1 {
  margin-bottom: 9px;
  font-size: 81px;
  letter-spacing: -1px;
  line-height: 1;
}
.jumbotron p {
  margin-bottom: 18px;
  font-size: 25px;
  font-weight: 300;
  line-height: 36px;
  color: #333;
}
.jumbotron .btn-large {
  font-size: 20px;
  font-weight: normal;
  padding: 14px 24px;
  margin-right: 10px;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}
.jumbotron .download-info {
  font-size: 16px;
  color: #999;
}

/* Masthead (docs home) */
.masthead {
  padding-top: 36px;
  margin-bottom: 72px;
}
.masthead h1,
.masthead p {
  text-align: center;
}
.masthead h1 {
  margin-bottom: 18px;
}
.masthead p {
  margin: 0 5% 18px;
  font-size: 30px;
  line-height: 36px;
}

.subhead {
  padding-top: 40px;
  padding-bottom: 0;
  border-bottom: 0;
}
.subhead h1,
.subhead p {
  margin-right: 0;
}
.subhead h1 {
  font-size: 54px;
}

.subnav {
  width: 100%;
  height: 36px;
  background-color: #eeeeee; /* Old browsers */
  background-repeat: repeat-x; /* Repeat the gradient */
  background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
  background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
  background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
  background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
  background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
  border: 1px solid #e5e5e5;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}
.subnav .nav {
  margin-bottom: 0;
}
.subnav .nav > li > a {
  margin: 0;
  padding-top:    11px;
  padding-bottom: 11px;
  border-left: 1px solid #f5f5f5;
  border-right: 1px solid #e5e5e5;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}
.subnav .nav > .active > a,
.subnav .nav > .active > a:hover {
  padding-left: 13px;
  color: #777;
  background-color: #e9e9e9;
  border-right-color: #ddd;
  border-left: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
     -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
          box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
}
.subnav .nav > .active > a .caret,
.subnav .nav > .active > a:hover .caret {
  border-top-color: #777;
}
.subnav .nav > li:first-child > a,
.subnav .nav > li:first-child > a:hover {
  border-left: 0;
  padding-left: 12px;
  -webkit-border-radius: 4px 0 0 4px;
     -moz-border-radius: 4px 0 0 4px;
          border-radius: 4px 0 0 4px;
}
.subnav .nav > li:last-child > a {
  border-right: 0;
}
.subnav .dropdown-menu {
  -webkit-border-radius: 0 0 4px 4px;
     -moz-border-radius: 0 0 4px 4px;
          border-radius: 0 0 4px 4px;
}

.quick-links {
  min-height: 30px;
  padding: 5px 20px;
  margin: 36px 0;
  list-style: none;
  text-align: center;
  overflow: hidden;
}
.quick-links li {
  display: inline;
  margin: 0 5px;
}
.quick-links .divider {
  color: #999;
}

.marketing .row {
  margin-bottom: 9px;
}
.marketing h1 {
  margin: 36px 0 27px;
  font-size: 40px;
  font-weight: 300;
  text-align: center;
}
.marketing h2,
.marketing h3 {
  font-weight: 300;
}
.marketing h2 {
  font-size: 22px;
}
.marketing p {
  margin-right: 10px;
}
.marketing .bs-icon {
  float: left;
  margin: 7px 10px 0 0;
  opacity: .8;
}
.marketing .small-bs-icon {
  float: left;
  margin: 4px 5px 0 0;
}

.footer {
  margin-top: 45px;
  padding: 35px 0 36px;
  border-top: 1px solid #e5e5e5;
}
.footer p {
  margin-bottom: 0;
  color: #555;
}

pre.prettyprint {
  overflow: hidden;
}

.browser-support {
  max-width: 100%;
}

h2 + table,
h3 + table,
h4 + table,
h2 + .row {
  margin-top: 5px;
}

form.well {
  padding: 14px;
}

/* Tighten up spacing */
.well hr {
  margin: 18px 0;
}

.recommended {
  color: #468847;
  background-color: #DFF0D8;
}
