---
---

@import "syntax-highlighting";

table {
 margin: 10px 0px 30px 0px;
 padding: 10px 5px 10px 5px;
}

th, td {
  padding: 10px 40px 10px 5px;
  border-bottom: 1px solid #ddd;
}

h1 {
  font-size: 34px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 22px;
}

h4 {
  font-size: 18px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 15px;
}

body {  
  font-size: 14px;
}

pre code {
  font-size: 14px;
}

code {
  background-color: #f5f5f5;
  color: #555;
  /* override nowrap in bootstrap */
  white-space: normal;
}

#nav-logo {
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}

.nav-link, li.dropdown {
  padding-top: 5px;
}

#home-description {
    font-size: 17px;
}

#sidebar {
  font-size: 15px;
}

.latest-news-item {
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 20px;
}

.latest-news-item span {
  font-size: 12px;
}

#sociallinks td {
   /* no lines in the link table */
   border-top: none;
}

#bannertext {
    margin-top: 10px;
    text-align: left;
}

.clear {
    clear: both;
}

#content {
    padding: 0 8px 20px;
}

#content h1 {
    margin-bottom: 0.5em;
}

#content h2 {
    margin-bottom: 0.5em;
    border-bottom: 1px solid #CCCCCC;
    padding-bottom: 0.25em;
}
#content h3 {
    margin-bottom: 0.5em;
}
#content img {
    vertical-align: middle;
}

footer {
    border-top: 1px solid #CCCCCC;
    color: #666666;
    font-size: 0.8em;
    padding: 8px 8px;
    text-align: center;
}

footer > p {
    width: 60%;
    margin-left: auto;
    margin-right: auto;
}

#asf-logo {
    float: left;

}

#release_notes_testing {
    border-collapse:collapse;
}

#release_notes_testing, #release_notes_testing tr, #release_notes_testing th, #release_notes_testing td {
    border: 2px solid black;
}

#release_notes_testing th, #release_notes_testing td {
    padding: 5px;
}

#accumulo-summit-logo img {
  height: 70px
}

.doc-sidebar-link {
  font-size: 13px;
  margin-bottom: 5px;
  margin-left: 0px;
}

.doc-sidebar-selected {
  font-weight: bold;
}

.header-link {
  padding-left: 5px;
  opacity: 0;

  \-webkit-transition: opacity 0.2s ease-in-out 0.1s;
  \-moz-transition: opacity 0.2s ease-in-out 0.1s;
  \-ms-transition: opacity 0.2s ease-in-out 0.1s;
}

h2:hover .header-link,
h3:hover .header-link,
h4:hover .header-link,
h5:hover .header-link,
h6:hover .header-link {
  opacity: 1;
}

/* insert invisible space above header elements with an id attribute, so that
 * if they are linked to, the actual content will appear below the nav menu */
h1[id]::before, h2[id]::before, h3[id]::before, h4[id]::before, h5[id]::before, h6[id]::before {
  display: block;
  content: " ";
  margin-top: -80px;
  height: 80px;
  visibility: hidden;
}

/* insert invisible space above Accumulo property names so that
 * if they are linked to, the actual content will appear below the nav menu */
a.prop {
  display: block;
  content: " ";
  margin-top: -90px;
  height: 90px;
  visibility: hidden;
}

/* Turn off sidebar affix for small screens */
@media (max-width: 975px) {
  .affix {
    position: static;
  }
}

/* Makes navbar collapse at larger width (1050px) */
@media (max-width: 975px) {
    .navbar-header {
        float: none;
    }
    .navbar-toggle {
        display: block;
    }
    .navbar-collapse {
        border-top: 1px solid transparent;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
    }
    .navbar-collapse.collapse {
        display: none!important;
    }
    .navbar-nav {
        float: none!important;
        margin: 7.5px -15px;
    }
    .navbar-nav>li {
        float: none;
    }
    .navbar-nav>li>a {
        padding-top: 10px;
        padding-bottom: 10px;
    }
    .navbar-text {
        float: none;
        margin: 15px 0;
    }
    .navbar-collapse.collapse.in {
        display: block!important;
    }
    .collapsing {
        overflow: hidden!important;
    }
}
