body {
    opacity: 1;
    -webkit-transition: opacity 1s ease;
    -moz-transition: opacity 1s ease;
    transition: opacity 1s;
}

.ng-cloak {
    opacity: 0;
}

.ng-invalid {
    border: 1px solid red !important;
}

section {
    padding-top: 30px;
}

.page-header h1 > small > a {
    color: #999;
}
.page-header h1 > small > a:hover {
    text-decoration: none;
}

.footer {
    text-align: center;
    padding: 30px 0;
    margin-top: 70px;
    border-top: 1px solid #e5e5e5;
    background-color: #f5f5f5;
}

.bs-social {
    margin-top: 20px;
    margin-bottom: 20px;
    text-align: center;
}

@media (min-width: 768px) {

    .bs-social {
        text-align: left;
    }

}

.nav, .pagination, .carousel, .panel-title a {
    cursor: pointer;
}

.bs-social-buttons {
    display: inline-block;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
}
.bs-social-buttons li {
    display: inline-block;
    padding: 5px 8px;
    line-height: 1;
}

@media (max-width: 767px) {

    .visible-xs.collapse.in {
        display: block!important;
    }
    .visible-xs.collapse {
        display: none!important;
    }

}

.navbar .collapse {
    border-top: 1px solid #e7e7e7;
    margin-left: -15px;
    margin-right: -15px;
    padding-right: 15px;
    padding-left: 15px;
}

.show-grid {
  margin-bottom: 15px;
}

/*
 * Container
 *
 * Tweak to width of container.
 */

/*@media (min-width: 1200px) {
    .container{
        max-width: 970px;
    }
}*/

/*
 * Tabs
 *
 * Tweaks to the Tabs.
 */

.code .nav-tabs {
border-bottom: 1px solid #ccc;
}

.code pre, .code code {
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.code .nav-tabs>li.active>a, .code .nav-tabs>li.active>a:hover, .code .nav-tabs>li.active>a:focus {
background-color: #f8f8f8;
border: 1px solid #ccc;
border-bottom-color: transparent;
}

/*
 * Button Inverse
 *
 * Buttons in the masthead.
 */

.btn-outline-inverse {
color: #fff;
background-color: transparent;
border-color: #cdbfe3;
margin: 10px;
}

@media (min-width: 768px) {

    .btn-outline-inverse {
        width: auto;
        margin: 20px 5px 20px 0;
        padding: 18px 24px;
        font-size: 21px;
    }

}

.btn-outline-inverse:hover, .btn-outline-inverse:focus, .btn-outline-inverse:active {
color: #563d7c;
text-shadow: none;
background-color: #fff;
border-color: #fff;
}


/* Page headers */
.bs-header {
  padding: 30px 15px 40px; /* side padding builds on .container 15px, so 30px */
  font-size: 16px;
  text-align: center;
  text-shadow: 0 1px 0 rgba(0,0,0,.15);
  color: #cdbfe3;
  background-color: #563d7c;
  background-image: url(header.png);
}
.bs-header a {
  color: #fff;
  font-weight: normal;
}
.bs-header h1 {
  color: #fff;
}
.bs-header p {
  font-weight: 200;
  line-height: 1.4;
}
.bs-header .container {
  position: relative;
}

@media (min-width: 768px) {
  .bs-header {
    font-size: 30px;
    text-align: left;
  }
  .bs-header h1 {
    font-size: 100px;
    line-height: 1;
  }
}

@media (min-width: 992px) {
  .bs-header p {
    margin-right: 25%;
  }
}

.navbar-inner {
    -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.175);
    box-shadow: 0 3px 3px rgba(0,0,0,0.175);
}

/*
 * Side navigation
 *
 * Scrollspy and affixed enhanced navigation to highlight sections and secondary
 * sections of docs content.
 */

/* By default it's not affixed in mobile views, so undo that */
.bs-sidebar.affix {
  position: static;
}

/* First level of nav */
.bs-sidenav {
  margin-top: 30px;
  margin-bottom: 30px;
  padding-top:    10px;
  padding-bottom: 10px;
  text-shadow: 0 1px 0 #fff;
  background-color: #f7f5fa;
  border-radius: 5px;
}

/* All levels of nav */
.bs-sidebar .nav > li > a {
  display: block;
  color: #716b7a;
  padding: 5px 20px;
}
.bs-sidebar .nav > li > a:hover,
.bs-sidebar .nav > li > a:focus {
  text-decoration: none;
  background-color: #e5e3e9;
  border-right: 1px solid #dbd8e0;
}
.bs-sidebar .nav > .active > a,
.bs-sidebar .nav > .active:hover > a,
.bs-sidebar .nav > .active:focus > a {
  font-weight: bold;
  color: #563d7c;
  background-color: transparent;
  border-right: 1px solid #563d7c;
}

/* Nav: second level (shown on .active) */
.bs-sidebar .nav .nav {
  display: none; /* Hide by default, but at >768px, show it */
  margin-bottom: 8px;
}
.bs-sidebar .nav .nav > li > a {
  padding-top:    3px;
  padding-bottom: 3px;
  padding-left: 30px;
  font-size: 90%;
}

/* Show and affix the side nav when space allows it */
@media (min-width: 992px) {
  .bs-sidebar .nav > .active > ul {
    display: block;
  }
  /* Widen the fixed sidebar */
  .bs-sidebar.affix,
  .bs-sidebar.affix-bottom {
    width: 213px;
  }
  .bs-sidebar.affix {
    position: fixed; /* Undo the static from mobile first approach */
    top: 80px;
  }
  .bs-sidebar.affix-bottom {
    position: absolute; /* Undo the static from mobile first approach */
  }
  .bs-sidebar.affix-bottom .bs-sidenav,
  .bs-sidebar.affix .bs-sidenav {
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media (min-width: 1200px) {
  /* Widen the fixed sidebar again */
  .bs-sidebar.affix-bottom,
  .bs-sidebar.affix {
    width: 263px;
  }
}


/* Not enough room on mobile for markup tab, js tab, and plunk btn.
  And no one cares about plunk button on a phone anyway */
@media only screen and (max-device-width: 480px) {
    #plunk-btn {
        display: none;
    }
}

.navbar-nav .dropdown .navbar-brand {
    max-width: 100%;
    margin-right: inherit;
    margin-left: inherit;
}

.header-placeholder {
    height: 50px;
}

@media screen and (min-width: 768px) {

    .dropdown.open > .navbar-brand + .dropdown-menu {
        left: 10px;
    }

    .header-placeholder {
        height: 50px;
    }

    .navbar-nav .dropdown .navbar-brand {
        max-width: 200px;
        margin-right: 5px;
        margin-left: 10px;
    }

}
