/* ==========================================================================
   Author's custom styles
   ========================================================================== */

body #content {
  line-height: 1.6; /* Inspired by Github's wiki style */
}

.title {
  font-size: 32px;
}

h1 {
  font-size: 28px;
  margin-top: 12px;
}

h2 {
  font-size: 24px;
  margin-top: 12px;
}

h3 {
  font-size: 21px;
  margin-top: 10px;
}

.container {
  max-width: 960px;
}

.dropdown-menu {
  /* Remove the default 2px top margin which causes a small
    gap between the hover trigger area and the popup menu */
  margin-top: 0;
  /* Avoid too much whitespace at the right for shorter menu items */
  min-width: 50px;
}

/**
 * Make dropdown menus in nav bars show on hover instead of click
 * using solution at http://stackoverflow.com/questions/8878033/how-
 * to-make-twitter-bootstrap-menu-dropdown-on-hover-rather-than-click
 **/
ul.nav li.dropdown:hover ul.dropdown-menu {
  display: block;
}

a.menu:after, .dropdown-toggle:after {
  content: none;
}

/** Make the submenus open on hover on the parent menu item */
ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu:hover ul.dropdown-menu {
  display: block;
}

/** Make the submenus be invisible until the parent menu item is hovered upon */
ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu ul.dropdown-menu {
  display: none;
}

/**
 * Made the navigation bar buttons not grey out when clicked.
 * Essentially making nav bar buttons not react to clicks, only hover events.
 */
.navbar .nav li.dropdown.open > .dropdown-toggle {
  background-color: transparent;
}

/**
 * Made the active tab caption blue. Otherwise the active tab is black, and inactive tab is blue.
 * That looks weird. Changed the colors to active - blue, inactive - black, and
 * no color change on hover.
 */
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
  color: #08c;
}

.nav-tabs > li > a, .nav-tabs > li > a:hover {
  color: #333;
}

/**
 * MathJax (embedded latex formulas)
 */
.MathJax .mo {
  color: inherit
}

.MathJax .mi {
  color: inherit
}

.MathJax .mf {
  color: inherit
}

.MathJax .mh {
  color: inherit
}

/**
 * AnchorJS (anchor links when hovering over headers)
 */
a.anchorjs-link:hover {
  text-decoration: none;
}

/**
 * Dashboard Look And Feel Adjustments
 */
* {
  font-family: roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

pre, pre > *,
code, code > * {
  font-family: "roboto mono", monaco, consolas, menlo, "Lucida Console", monospace !important;
  font-size: 12px;
  font-weight: normal !important;
  line-height: 165%;
}

img {
  max-width: 100%;
}
