/*Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.*/
@import url("http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,800,700,400italic,600italic,700italic,800italic,300italic");
/* @import url("http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,700"); */
/* Key scaffolding
-------------------------------------------------- */
body {
  position: relative; /* For scrollyspy */
  padding-top: 50px; /* Account for fixed navbar */
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
  font-size:14px;
  background-color: #FAFBFC;
  /*font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif; */
}
h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
  font-weight: 300;
}
a:hover {text-decoration: none;}
h2>a, h3>a, h2>a:hover, h3>a:hover { color: rgb(51,51,51); }
h2:hover>a:after {
  content: "\F0C1";
  font-family: 'FontAwesome';
  /*position:absolute;*/
  padding-left: 12px;
  vertical-align: 15%;
  font-size: 20px;
}
h3:hover>a:after {
  content: "\F0C1";
  font-family: 'FontAwesome';
  /*position:absolute;*/
  padding-left: 8px;
  vertical-align: 15%;
  font-size: 15px;
}
h5, h6, .h5, .h6 {
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
}
.bf-sidebar .nav-list code{
  margin-left: -3px;
}
.done {
  opacity: 0.6;
}
.nav-list > li {
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 400 !important;
  opacity: 0.8;
  margin-bottom: 3px;
}
header .navbar-nav {
  font-size: 120%;
}
.nav-list > li > ul {
  padding-left: 0;
}
.nav-list > li ul ul {
  padding-left: 19px;
}
.nav-list > li ul > li {
  list-style-type: none !important;
}
.nav-list > li ul > li:before {
  content:"\221F";
  font-weight: 200;
  opacity: 0.5;
  line-height: 50%;
  vertical-align: 60%;
  padding-left: 3px;
}
.nav-list > li ul > li > a {
  padding: 0 0 0 3px;
  margin-bottom: 0px;
}
.nav-list > li > a {
  padding: 0;
}
.nav-list > li > a.icns-apple:before {
  text-align: right;
  content: "\F179";
  font-family: 'FontAwesome';
  font-size: 110%;
  margin-left: -18px;
  padding-right: 8px;
  line-height: 0;
}
.nav-list > li > a.icns-android:before {
  text-align: right;
  content: "\F17B";
  font-family: 'FontAwesome';
  font-size: 110%;
  margin-left: -18px;
  padding-right: 8px;
  line-height: 0;
}
.nav-list > li > a.icns-html5:before {
  text-align: right;
  content: "\F13B";
  font-family: 'FontAwesome';
  font-size: 110%;
  margin-left: -18px;
  padding-right: 8px;
  line-height: 0;
}
.nav-list > li > a.icns-windows:before {
  text-align: right;
  content: "\F17A";
  font-family: 'FontAwesome';
  margin-left: -19px;
  padding-right: 7px;
  line-height: 0;
}
li.nav-header {
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 600 !important;
  opacity: 1.0;
  padding-top: 0 !important;
  padding-left: 0 !important;
  font-size: 120%;
  margin-top: 33px;
}
.twitter-timeline {
  margin-top: 33px;
}
.bf-docs-container .nav-list li.nav-header {
  padding: 0 !important;
  border-bottom: solid 1px #ccc;
  line-height: 0;
  margin-top: 33px;
  margin-bottom: 13px;
}
.bf-docs-container .nav-list li.nav-header span {
  background-color: #FAFBFC;
  padding-right: 8px;
}

.bf-community h2, .bf-docs-container h2, .bf-docs-container h3 {
  padding-top: 90px;
  margin-top: -60px;
}

.bf-docs-container .github-callout {
  padding: 20px 0 40px 0;
  font-style: italic;
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  opacity: 0.8;
  font-size: 110%;
}
.navbar-nav > li a {
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300 !important;
  opacity: 0.8;
}

.navbar-nav > li > a.major {
  font-weight: 400 !important;
  opacity: 1.0;
}

.navbar-collapse {
    max-height: none;
}

.bf-masthead-bg p {
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 200;
  font-size: 120%;
  line-height: 120%;
}
.bf-features p {
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
}
.bf-features p a {
  /*font-weight: 600;*/
  /*color: rgb(52,73,94);*/
}
a.btn {
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 500 !important;
  font-style: normal;
  letter-spacing: 110%;
}
h1 {
  font-weight: 200;
  letter-spacing: 110%;
  font-size: 200%;
}
.page-header {
  padding-top: 2px;
}
.page-header h1 {
  padding-top:20px;
  font-weight: 400;
  font-size:350%;
}
.page-header small{
  float: right;
  background-color: #fff;
  padding-left: 10px;
}
.page-header small a {
  color: #ddd;
  font-style: italic;
}
.page-header small a:hover {
  color: #2481A6;
}
h2 {
  font-weight: 400;
}
h3 {
  padding-top: 20px;
  font-weight: 400 !important;
}
.bf-features h3 {
  padding-top: 0;
}
#copyright {
  font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300 !important;
  font-style: italic;
}
#copyright img {
  border-radius: 4px;
}
#copyright p {
  opacity: 0.8;
}
#copyright .credits {
  color: #fff;
  font-weight: 600;
  opacity: 1 !important;
  font-style: normal;
}
.table {
  margin: 20px 0 0 0;
  background-color: transparent;
}
.table thead>tr>th, .table tbody>tr>th, .table tfoot>tr>th, .table thead>tr>td, .table tbody>tr>td, .table tfoot>tr>td {
  padding-left: 0;
}
.toc {
  margin-bottom:40px;
  /*background-color: #fff;
  border-radius: 4px;*/
  /*padding: 20px;*/
}
/*.toc > h4 {
  padding-top: 0;
  margin-top: 0;
  font-size: 150%;
  font-weight:400;
}*/
.toc > ul {
  margin-bottom: 0;
  padding-left: 20px;
}
section > .container > h2 {
  color: #2481A6 !important;
}
div.row > div.text-left > h2 {
  margin-top: 40px;
  margin-bottom: 10px;
}
.bf-docs-container h2 {
  font-size: 250%;
}

/* Navs and headers
-------------------------------------------------- */
header.navbar .container {
  padding-right: 0;
}
footer > .container {
  padding-right: 0;
  padding-left: 0;
}
header.navbar.secondary {
  box-shadow: 0px 1px 2px #7b48fe;
}
.navbar-inverse {
    background-color: #3c3c3c;
    /*background-color: #3c3c3c;*/
}
nav.navbar-collapse {
  border-color: rgb(52, 73, 94) !important;
  border-width: 1px;
  box-shadow: none;
  padding-left: 15px;
}
.bf-docs-nav {
  border-bottom: 0px;
  padding-left: 20px;
  padding-right: 20px;
}
.navbar-nav {
  margin: 0;
}

.navbar-brand {
  padding-left: 0;
}
.bf-docs-nav .navbar-nav > li > a {
  margin: 20px 0 0 5px;
  padding: 5px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  color: white;
}
.bf-docs-nav .navbar-nav > li > a:hover {
  color: #fff;
  background-color: #1e90ff;
}
.bf-docs-nav .navbar-nav > .active > a,
.bf-docs-nav .navbar-nav > .active > a:hover {
  color: #fff;
  background-color: #1e90ff !important;
}
li.divider {
  margin-left: 0 !important;
}

/* Homepage masthead
-------------------------------------------------- */
.bf-masthead {
  position: relative;
  text-align: left;
  /*background: #cbcbcd url(../img/rende.png) no-repeat 50% 100px;*/
}
.bf-masthead .bf-masthead-bg {
    /*margin-top: 10px;*/
    padding: 30px 15px;
    color:#3c3c3c;
    background-color: #fff;
}
/*.bf-masthead .logo {
  height: 203px;
}*/
.bf-masthead .logo-title {
  width: 600px;
  padding: 20px 0 0 0;
  margin-left: 0;
}
.bf-masthead .text-container {
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.bf-masthead .tagline {
  font-style:normal;
  font-weight:200;
  font-size: 300%;
  margin-bottom: 0;
  margin-top: 30px;
  padding-bottom: 30px;
  color: #3c3c3c;
  line-height: 90%;
}
.bf-masthead .tagline em {
  font-style: italic;
}
.bf-masthead .description {
  font-style: normal;
  font-size: 150%;
  margin-bottom: 45px;
  /*line-height: 100%;*/
}
.bf-masthead .btn-wrapper {
  text-align: center;
  margin-bottom: 20px;
  clear:both;
}
.bf-masthead .btn-wrapper {
  text-align: left;
  width: 100%;
  margin-right: 20px;
}
.bf-masthead .social-btn {
  float: left;
  margin: 0 20px 10px 0;
}
.bf-masthead .or {
  margin-left: 0px;
  font-style: normal;
  font-weight: 200;
  opacity: 0.8;
}

.bf-masthead a {
  line-height: 30px;
  color: #FAFBFC;
  font-style: normal;
  font-weight: 400;
}
.bf-masthead h1 {
  font-size: 30px;
  line-height: 1.4;
  color: #fff;
}
.bf-masthead .bf-masthead-links a,
.bf-masthead .bf-masthead-links a:hover {
  color: #fff;
}
.bf-masthead-info {
  padding: 80px 20px;
  font-size: 28px;
  text-align: center;
  background-color: #fc5d7b;
  color: rgba(0, 0, 0, .3)
}
.bf-masthead-info .icon-angle-down {
  font-size: 40px;
}

/* Download button */
.bf-masthead .btn-outline {
  margin-top: 20px;
  margin-bottom: 20px;
  border: 1px solid #fff;
  padding: 18px 24px;
  font-size: 21px;
  color: #fff;
}
.bf-masthead .btn-outline:hover {
  background-color: #fff;
  color: #42a8d2;
}

.bf-masthead-links {
  margin-top: 20px;
  margin-bottom: 20px;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.bf-masthead-links li {
  margin-bottom: 15px;
  color: #fff;
}
.bf-masthead-links a {
  color: #c8c7c6;
}

/* Homepage features
-------------------------------------------------- */
section > .container > h2 {
  text-align: left;
  margin-bottom: 16px;
  padding-bottom: 6px;
  font-size: 28px;
  color:#3c3c3c;
  /* border-bottom: 1px solid #e5e5e5; */
}
.bf-features {
  color: white;
  text-align: center;
  padding: 20px 0;
}
.bf-features h2 ~ p {
  margin-bottom: 40px;
  font-size: 16px;
}
.bf-features .bf-icon-wrap {
  margin: 0 auto 10px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  background-color: #7b48fe;
  width: 90px;
  height: 90px;
  line-height: 90px;
  font-size: 50px;
  color: #FAFBFC;
}
.bf-features h3 {
  margin: 0 0 10px;
  color: rgb(52,73,94);
  font-weight: 400 !important;
}
.bf-features h3 ~ p {
  color: #656565;
}
/*
.bf-features2 {
  color: #292929;
  text-align: center;
}
.bf-features2 {
  padding: 40px 0;
}
.bf-features2 h2 {
  text-align: left;
  margin-bottom: 16px;
  padding-bottom: 6px;
  font-size: 28px;
  color:#666666;
  border-bottom: 1px solid #e5e5e5;
}
.bf-features2 h2 ~ p {
  margin-bottom: 40px;
  font-size: 16px;
}
.bf-features2 .bf-icon-wrap {
  margin: 0 auto 20px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  background-color: #e5e9ed;
  width: 80px;
  height: 80px;
  line-height: 80px;
  font-size: 40px;
  color: #a5b6c7;
}
.bf-features2 h3 {
  margin: 0 0 10px;
  color: #696969;
}
.bf-features2 h3 ~ p {
  color: #656565;
} */
.bf-features-inverse {
  padding: 140px 0;
  font-size: 16px;
  color: white;
  text-align: center;
  background-color: #3c3c3c;
}
.bf-features-inverse h2 {
  margin-bottom: 20px;
  font-size: 40px;
}
.bf-features-inverse h2 ~ p {
  margin-bottom: 40px;
  font-size: 16px;
}
.bf-features-inverse .bf-icon-wrap {
  margin: 0 auto 20px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  background-color: #fff;
  width: 80px;
  height: 80px;
  line-height: 80px;
  font-size: 40px;
  color: #3dc0f1;
}
.bf-features-inverse h3 ~ p {
  font-size: 14px;
}
.bf-features-inverse a,
.bf-features-inverse a:hover {
  color: #fff;
  text-decoration: underline;
}
.bf-news ul {
  margin-bottom: 20px;
}

.bf-questions .container {
  border-top: 1px solid rgb(52,73,94);
  border-bottom: 1px solid rgb(52,73,94);
  padding: 60px 0;
  margin-top: 0px;
}

.bf-questions div {
  line-height: 30px;
}

.bf-community .container, .bf-tagline .container {
  padding-left: 0;
  padding-right: 0;
}

.bf-community h3 {
  font-weight: 600;
  margin-top: 0;
}

.bf-community .row a p {
  color: rgb(51,51,51);
}

/*.bf-community h2 {
  padding-bottom: 10px;
  border-bottom: 1px solid rgb(51,51,51);
}*/

.bf-community h2 {
  /*padding: 0 !important;*/
  border-bottom: solid 1px #ccc;
  line-height: 0;
  /*margin-top: 33px;*/
  margin-bottom: 13px;
}
.bf-releases h2 {
  /*padding: 0 !important;*/
  border-bottom: solid 1px #ccc;
  line-height: 0;
  /*margin-top: 33px;*/
  margin-bottom: 13px;
}

.bf-community h2 span {
  background-color: #FAFBFC;
  padding-right: 10px;
}


.bf-releases h2 span {
  background-color: #FAFBFC;
  padding-right: 10px;
}

.bf-releases p {
  padding: 10px 0 5px 0;
}

.bf-community {
  margin-top: 80px;
}

.bf-releases {
  margin-top: 10px;
}

#map-canvas {
  border-bottom: 1px solid rgb(52, 73, 94);
}

.bf-community img {
  #border-radius: 4px;
  #border: solid 1px rgb(52, 73, 94);
  margin-top: 20px;
  margin-bottom: 10px;
  width: 100%;
  #box-shadow: rgb(52, 73, 94) 2px 2px 4px;
}

.bf-releases img {
  border-radius: 4px;
  border: solid 1px rgb(52, 73, 94);
  margin-top: 20px;
  margin-bottom: 10px;
  width: 100%;
  box-shadow: rgb(52, 73, 94) 2px 2px 4px;
}


h2.icns-calendar:before{
  text-align: right;
  content: "\F073";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -40px;
  padding-right: 10px;
  line-height: 0;
}
h2.icns-chat:before{
  text-align: right;
  content: "\F0FC";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -40px;
  padding-right: 10px;
  line-height: 0;
}

h2.icns-envelope:before{
  text-align: right;
  content: "\F0E0";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -40px;
  padding-right: 10px;
  line-height: 0;
}
h2.icns-briefcase:before{
  text-align: right;
  content: "\F0B1";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -42px;
  padding-right: 10px;
  line-height: 0;
}
h2.icns-group:before{
  text-align: right;
  content: "\F005";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -37px;
  padding-right: 8px;
  line-height: 0;
}
h2.icns-tools:before{
  text-align: right;
  content: "\F006";
  font-family: 'FontAwesome';
  font-size: 100%;
  margin-left: -37px;
  padding-right: 8px;
  line-height: 0;
}
/* Docs pages and sections
-------------------------------------------------- */

/* Page headers */
.bf-header {
  padding: 5px 20px 10px;
  font-size: 16px;
  color: #5a5a5a;
  text-align: center;
  border-bottom: 1px solid #e5e5e5;
}
.bf-header p {
  font-weight: 300;
  line-height: 1.5;
}
.bf-header .container {
  position: relative;
}

.bf-docs-container {
  margin-top: 60px;
}

.bf-docs-container .col-md-3{
  padding-left: 0;
}


.bf-docs-container .col-md-9.main-article {
  background-color: #fff;
  border-radius: 4px;
  border: 1px solid #ccc;
  padding-bottom: 15px;
  min-height: 820px;
}

.bf-docs-section + .bf-docs-section {
  padding-top: 20px;
}

.bf-docs-container .nav-list {
  padding-top: 20px;
}

/* Bootstrap code examples
-------------------------------------------------- */

/* Base class */
.bf-example {
  position: relative;
  margin: 20px 0 40px;
}
.bf-example > .btn-toolbar + .btn-toolbar {
  margin-top: 10px;
}

.bf-example .row {
  margin-bottom: 20px;
}

/* Tweak display of the examples */
.bf-example + .highlight {
  margin: 0 -15px;
  border-radius: 0;
  border-width: 0 0 1px;
}

/* Tweak content of examples for optimum awesome */
.bf-example > p:last-child,
.bf-example > ul:last-child,
.bf-example > ol:last-child,
.bf-example > blockquote:last-child,
.bf-example > input:last-child,
.bf-example > select:last-child,
.bf-example > textarea:last-child,
.bf-example > .table:last-child,
.bf-example > .navbar:last-child
.bf-example > .jumbotron:last-child,
.bf-example > .alert:last-child,
.bf-example > .panel:last-child,
.bf-example > .list-group:last-child,
.bf-example > .well:last-child {
  margin-bottom: 0;
}
.bf-example > p > .close {
  float: none;
}
.bf-example-title {
  border-left: 3px solid #08d;
  padding-left: 10px;
  line-height: 24px;
  margin: 20px 0;
  font-size: 16px;
}
.bf-example-align .btn {
  margin-top: 4px;
}
.bf-example-align .btn-xs {
  margin-top: 16px;
}
.bf-example-align .btn-sm {
  margin-top: 8px;
}
.bf-example-align .btn-lg {
  margin-top: -7px;
}

/* Navbar examples */
.bf-example .navbar:last-child {
  margin-bottom: 0;
}
.bf-navbar-top-example,
.bf-navbar-bottom-example {
  z-index: 1;
  padding: 0;
  min-height: 110px;
  overflow: hidden; /* cut the drop shadows off */
}
.bf-navbar-top-example .navbar-fixed-top,
.bf-navbar-bottom-example .navbar-fixed-bottom {
  position: relative;
  margin-left: 0;
  margin-right: 0;
}
.bf-navbar-top-example .navbar-fixed-top {
  top: -1px;
}
.bf-navbar-bottom-example .navbar-fixed-bottom {
  bottom: -1px;
}
.bf-navbar-top-example {
  -webkit-border-radius: 0 0 4px 4px;
     -moz-border-radius: 0 0 4px 4px;
          border-radius: 0 0 4px 4px;
}
.bf-navbar-top-example:after {
  top: auto;
  bottom: 15px;
  -webkit-border-radius: 0 4px 0 4px;
     -moz-border-radius: 0 4px 0 4px;
          border-radius: 0 4px 0 4px;
}
.bf-navbar-bottom-example {
  -webkit-border-radius: 4px 4px 0 0;
     -moz-border-radius: 4px 4px 0 0;
          border-radius: 4px 4px 0 0;
}
.bf-navbar-bottom-example .navbar {
  margin-bottom: 0;
}
.bf-navbar-top-example.bf-example:after {
  bottom: -1px;
  border-radius: 0 4px;
}

/* Example modals */
.bf-example-modal {
  background-color: #f5f5f5;
}
.bf-example-modal .modal {
  position: relative;
  top: auto;
  right: auto;
  left: auto;
  bottom: auto;
  z-index: 1;
  display: block;
}
.bf-example-modal .modal-dialog {
  left: auto;
  margin-left: auto;
  margin-right: auto;
}

/* Example dropdowns */
.bf-example > .dropdown > .dropdown-menu,
.bf-example-submenu > .pull-left > .dropup > .dropdown-menu,
.bf-example-submenu > .pull-left > .dropdown > .dropdown-menu {
  position: static;
  display: block;
  margin-bottom: 5px;
}
.bf-example-submenu {
  min-height: 230px;
}
.bf-example-submenu > .pull-left + .pull-left {
  margin-left: 20px;
}

/* Tooltips */
.bf-example-tooltips {
  text-align: center;
}

/* Popovers */
.bf-example-popover {
  padding-bottom: 24px;
}
.bf-example-popover .popover {
  position: relative;
  display: block;
  float: left;
  width: 260px;
  margin: 20px;
}

/* Example templates
-------------------------------------------------- */

.bf-examples h4 {
  margin-bottom: 5px;
}
.bf-examples p {
  margin-bottom: 20px;
}

/* Responsive docs
-------------------------------------------------- */

/* Responsive (scrollable) doc tables */
@media (max-width: 768px) {
  .bf-table-scrollable {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: hidden;
    overflow-x: scroll;
    border: 1px solid #ddd;
  }
  .bf-table-scrollable .table {
    margin-bottom: 0;
    border: 0;
  }
  .bf-table-scrollable .table th,
  .bf-table-scrollable .table td {
    white-space: nowrap;
  }
  .bf-table-scrollable .table th:first-child,
  .bf-table-scrollable .table td:first-child {
    border-left: 0;
  }
  .bf-table-scrollable .table th:last-child,
  .bf-table-scrollable .table td:last-child {
    border-right: 0;
  }
  .bf-table-scrollable .table tr:last-child th,
  .bf-table-scrollable .table tr:last-child td {
    border-bottom: 0;
  }
}

/* Footer
-------------------------------------------------- */

.bf-footer {
  margin-top: 40px;
  padding: 30px 5px;
  /*text-align: left;*/
  background:#1e90ff;
  color:white;
}

.bf-footer a {
    color:#f0f0f0 !important;
}
.bf-footer.bf-footer-margin {
    margin-top: 100px;
    margin-bottom: 20px;
}

.bf-footer .bf-icon-wrap {
    font-size: 40px;
    color: #a5b6c7;
    display: inline;
    margin: 10px;
}

#footer-icons {
    float: right;
    display: inline;
    line-height: 20px;
    margin: 40px 10px 20px 10px;
}

#copyright {
    float: left;
    display: inline;
    line-height: 20px;
    margin: 20px 10px 20px 10px;
}

/* Social proof buttons from GitHub & Twitter */
.bf-social {
  margin-bottom: 20px;
}
.bf-social-buttons {
  display: inline-block;
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.bf-social-buttons li {
  display: inline-block;
  line-height: 1;
}
.bf-social-buttons li + li {
  margin-left: 15px;
}
.bf-social-buttons .twitter-follow-button {
  width: 225px !important;
}
.bf-social-buttons .twitter-share-button {
  width: 98px !important;
}
/* Style the GitHub buttons via CSS instead of inline attributes */
.github-btn {
  border: 0;
  overflow: hidden;
}

.highlight {
  padding: 9px 14px;
  margin-bottom: 40px;
  border: 1px solid #e1e1e8;
  border-radius: 4px;
}
.highlight pre {
  padding: 0;
  margin-top: 0;
  margin-bottom: 0;
  background-color: rgb(248, 248, 255);
  border: 0;
  white-space: nowrap;
}
.highlight pre code {
  font-size: inherit;
  font-family: Consolas, 'Liberation Mono', Courier, monospace;
  color: #333; /* Effectively the base text color */
}
.highlight pre .lineno {
  display: inline-block;
  width: 22px;
  padding-right: 5px;
  margin-right: 10px;
  text-align: right;
  color: #bebec5;
}

.c { color: #999988; font-style: italic } /* Comment */
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
.k { color: #000000; font-weight: bold } /* Keyword */
.o { color: #000000; font-weight: bold } /* Operator */
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
.c1 { color: #999988; font-style: italic } /* Comment.Single */
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.ge { color: #000000; font-style: italic } /* Generic.Emph */
.gr { color: #aa0000 } /* Generic.Error */
.gh { color: #999999 } /* Generic.Heading */
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.go { color: #888888 } /* Generic.Output */
.gp { color: #555555 } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #aaaaaa } /* Generic.Subheading */
.gt { color: #aa0000 } /* Generic.Traceback */
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #445588; font-weight: bold } /* Keyword.Type */
.m { color: #009999 } /* Literal.Number */
.s { color: #d01040 } /* Literal.String */
.na { color: #008080 } /* Name.Attribute */
.nb { color: #0086B3 } /* Name.Builtin */
.nc { color: #445588; font-weight: bold } /* Name.Class */
.no { color: #008080 } /* Name.Constant */
.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
.ni { color: #800080 } /* Name.Entity */
.ne { color: #990000; font-weight: bold } /* Name.Exception */
.nf { color: #990000; font-weight: bold } /* Name.Function */
.nl { color: #990000; font-weight: bold } /* Name.Label */
.nn { color: #555555 } /* Name.Namespace */
.nt { color: #000080 } /* Name.Tag */
.nv { color: #008080 } /* Name.Variable */
.ow { color: #000000; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mf { color: #009999 } /* Literal.Number.Float */
.mh { color: #009999 } /* Literal.Number.Hex */
.mi { color: #009999 } /* Literal.Number.Integer */
.mo { color: #009999 } /* Literal.Number.Oct */
.sb { color: #d01040 } /* Literal.String.Backtick */
.sc { color: #d01040 } /* Literal.String.Char */
.sd { color: #d01040 } /* Literal.String.Doc */
.s2 { color: #d01040 } /* Literal.String.Double */
.se { color: #d01040 } /* Literal.String.Escape */
.sh { color: #d01040 } /* Literal.String.Heredoc */
.si { color: #d01040 } /* Literal.String.Interpol */
.sx { color: #d01040 } /* Literal.String.Other */
.sr { color: #009926 } /* Literal.String.Regex */
.s1 { color: #d01040 } /* Literal.String.Single */
.ss { color: #990073 } /* Literal.String.Symbol */
.bp { color: #999999 } /* Name.Builtin.Pseudo */
.vc { color: #008080 } /* Name.Variable.Class */
.vg { color: #008080 } /* Name.Variable.Global */
.vi { color: #008080 } /* Name.Variable.Instance */
.il { color: #009999 } /* Literal.Number.Integer.Long */

.css .o,
.css .o + .nt,
.css .nt + .nt { color: #999; }
/* Show code snippets when we have the space */
@media screen and (min-width: 481px) {
  .highlight {
    display: block;
  }
}

.demoColorSwatches {
    color: #FFF;
}
.demoColorSwatches h4 {
    color: #292929;
}
.demoColorSwatches .colorPanel {
    padding: 15px;
}
.demoColorSwatches .colorPanel:hover {
    opacity: 0.85;
    filter: alpha(opacity=85);
}

/* Responsive variations
-------------------------------------------------- */

/* Hide code snippets on mobile devices */
@media screen and (max-width: 480px) {
  .highlight {
    display: none;
  }
}


.bf-docs-container {
    margin-top: 40px;
}

/* Navbars */
.bf-example .navbar:last-child {
  margin-bottom: 0;
}
.bf-navbar-top-example,
.bf-navbar-bottom-example {
  z-index: 1;
  padding: 0;
  overflow: hidden; /* cut the drop shadows off */
  border: 1px solid #ddd ;
}
.bf-navbar-top-example .navbar-header,
.bf-navbar-bottom-example .navbar-header {
  margin-left: 0;
}
.bf-navbar-top-example .navbar-fixed-top,
.bf-navbar-bottom-example .navbar-fixed-bottom {
  position: relative;
  margin-left: 0;
  margin-right: 0;
}
.bf-navbar-top-example {
  padding-bottom: 45px;
}
.bf-navbar-top-example:after {
  top: auto;
  bottom: 15px;
}
.bf-navbar-top-example .navbar-fixed-top {
  top: -1px;
}
.bf-navbar-bottom-example {
  padding-top: 65px;
}
.bf-navbar-bottom-example .navbar-fixed-bottom {
  bottom: -1px;
}
.bf-navbar-bottom-example .navbar {
  margin-bottom: 0;
}

/* Phone and below */
@media screen and (max-width: 768px) {
  #home-logo { opacity: 1; height: 25px;}
  span.fa-book:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Docs";
  }
  span.fa-users:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Community";
  }
  span.fa-github-square:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Github";
  }
  span.icon-trello:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Trello";
  }
  span.fa-bug:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " JIRA";
  }
  span.fa-stack-overflow:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " StackOverflow";
  }
  span.icon-chat:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " HipChat";
  }
  span.fa-twitter:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Twitter";
  }
  span.fa-pencil-square-o:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: "  Wiki";
  }
  span.fa-arrow-circle-o-down:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Releases";
  }
  span.icon-comments:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Chat";
  }
  span.fa-envelope:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Mailing Lists";
  }
  span.icon-flag-checkered:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Milestones";
  }


  div.cta {
    line-height: 60px;
  }
  span.avoidwrap { display:inline-block; }
  .navbar-nav > li > a {
    opacity: 1.0;
  }
  .bf-masthead .tagline {
    line-height: 90%;
  }

  .bf-masthead .description {
    margin-bottom: 30px;
  }
  .bf-masthead p {
    clear:both;
    line-height: 100%;
    padding-top: 5px;
  }
  .bf-masthead .or {
    margin-right: 0;
  }
  .bf-questions .container{
    padding: 30px 0;
  }
}

/* Phones and Tablets */
/*@media screen and (min-width: 768px) and (max-width: 992px) {

  .bf-masthead .tagline {
    padding-bottom: 20px;
  }

}*/

@media screen and (max-width: 992px) {
  .bf-community.committers .col-md-3 p{
    margin-bottom: 40px;
  }
}

/* Tablets and below */
@media screen and (max-width: 1200px) {
  .row {
    padding: 0 25px;
  }
  .bf-docs-container .nav-list {
    padding-left: 30px;
  }
  .bf-docs-container .colb-md-3 .nav-list {
    padding-top: 0;
  }
  .bf-community .container, .bf-tagline .container {
    padding-left: 50px;
  }
  .bf-community.committers .col-md-3 h3{
    margin-top: 0px;
  }
  #map-canvas { height: 300px; margin-top: 5px;}
}
/* Tablets and up */
@media screen and (min-width: 768px) {
  header.secondary #home-logo { opacity: 1; }
  #home-logo { opacity: 1; height: 40px;}
  .bf-header {
    font-size: 21px;
    text-align: left;
  }
  .bf-header h1 {
    font-size: 60px;
    line-height: 1;
  }

  .bf-masthead p {
    float:left;
  }

  .bf-masthead .or {
    margin-right: 20px;
  }
  .bf-features .row {
    padding: 20px 0;
  }
  .bf-example {
    margin-left: 0;
    margin-right: 0;
    border-radius: 4px;
    background-color: #fff;
    border-width: 1px;
    border-color: #ddd;
    box-shadow: none;
  }
  .bf-example + .prettyprint,
  .bf-example + .highlight {
    margin-top: -16px;
    margin-left: 0;
    margin-right: 0;
    border-width: 1px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
  }

  /* Show the docs nav */
  .bf-sidebar {
    display: block;
  }
  .bf-sidebar > .nav > li > a {
    display: inline-block;
  }

  .bf-navbar-top-example .navbar-fixed-top,
  .bf-navbar-bottom-example .navbar-fixed-bottom {
    position: absolute;
  }
  .bs-navbar-top-example {
    border-radius: 0 0 4px 4px;
  }
  .bs-navbar-bottom-example {
    border-radius: 4px 4px 0 0;
  }
}

/* Tablets */
@media screen and (min-width: 768px) and (max-width: 1200px) {
  span.icns {
    font-size: 140%;
  }
}

/* Tablets/desktops and up */
@media screen and (min-width: 1200px) {
  span.fa-book:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Docs";
  }
  span.fa-users:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Community";
  }
  span.fa-github-square:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Github";
  }
  span.icon-trello:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Trello";
  }
  span.fa-bug:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " JIRA";
  }
  span.fa-stack-overflow:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " StackOverflow";
  }
  span.icon-chat:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " HipChat";
  }
  span.fa-twitter:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Twitter";
  }
  span.fa-pencil-square-o:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: "  Wiki";
  }
  span.fa-arrow-circle-o-down:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Releases";
  }
  span.icon-comments:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Chat";
  }
  span.fa-envelope:after {
    font-family: 'klavika-web', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    content: " Mailing Lists";
  }
  .bf-header h1,
  .bf-header p {
    margin-right: 380px;
  }
  .bf-docs-container {
    margin-top: 40px;
  }

  .bf-masthead .tagline, .bf-masthead .description, .bf-masthead .btn-wrapper {
    margin-left: 120px;
  }
  .bf-community.committers .col-md-3 h3{
    margin-top: 40px;
  }
  .bf-community.committers img {
    width: 100%;
  }
  #map-canvas { height: 500px; margin-top: 10px;}

}

.navbar-toggle {
  background-color: rgb(36,129,166);
  margin: 12px 0 0 0;
}

/* desert scheme ported from vim to google prettify */
pre.prettyprint { display: block; background-color: #333 }
pre .nocode { background-color: none; color: #000 }
pre .str { color: #ffa0a0 } /* string  - pink */
pre .kwd { color: #f0e68c; font-weight: bold }
pre .com { color: #87ceeb } /* comment - skyblue */
pre .typ { color: #98fb98 } /* type    - lightgreen */
pre .lit { color: #cd5c5c } /* literal - darkred */
pre .pun { color: #fff }    /* punctuation */
pre .pln { color: #fff }    /* plaintext */
pre .tag { color: #f0e68c; font-weight: bold } /* html/xml tag    - lightyellow */
pre .atn { color: #bdb76b; font-weight: bold } /* attribute name  - khaki */
pre .atv { color: #ffa0a0 } /* attribute value - pink */
pre .dec { color: #98fb98 } /* decimal         - lightgreen */

/* Specify class=linenums on a pre to get line numbering */
ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE } /* IE indents via margin-left */
li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }
/* Alternate shading for lines */
li.L1,li.L3,li.L5,li.L7,li.L9 { }

@media print {
  pre.prettyprint { background-color: none }
  pre .str, code .str { color: #060 }
  pre .kwd, code .kwd { color: #006; font-weight: bold }
  pre .com, code .com { color: #600; font-style: italic }
  pre .typ, code .typ { color: #404; font-weight: bold }
  pre .lit, code .lit { color: #044 }
  pre .pun, code .pun { color: #440 }
  pre .pln, code .pln { color: #000 }
  pre .tag, code .tag { color: #006; font-weight: bold }
  pre .atn, code .atn { color: #404 }
  pre .atv, code .atv { color: #060 }
}
