@charset "UTF-8";
/* ------------------------------ SEARCH BAR ------------------------------ */
#top-bar {
  background-color: var(--color-topbar-bg);
  overflow: hidden;
  position: relative;
}

#site-logo {
  height: 48px;
  float: left;
}

#search-panel {
  display: inline-block;
  width: calc(100% - 98px);
  height: 48px;
}

#search-hits {
  margin-left: 0.5rem;
  margin-top: 0.5rem;
}

#search-results .filters {
  /* TODO */
}

#search-results {
  position: absolute;
  width: calc(100% - 55px);
  top: 52px;
  left: 48px;
  background: var(--color-surface);
  box-shadow: 4px 4px 4px var(--color-shadow);
  display: none;
  z-index: 1;
}

.ais-Hits-list {
  list-style: none;
  display: block;
  margin-top: 0;
}

.ais-Hits-item {
  width: calc(100% - 24px);
  margin-top: 0;
  margin-bottom: 8px;
  padding: 0;
  box-shadow: none;
  border: none;
}

.ais-Pagination-item {
  padding: 0;
}

.search-result {
  max-height: 2em;
  color: var(--color-search-result);
}

.search-result:hover {
  background: var(--color-search-hover-bg);
}

.hit-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  vertical-align: middle;
  position: relative;
  top: auto;
  bottom: auto;
}

.hit-title {
  display: inline-block;
  width: 200px;
  margin-left: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}

.hit-description {
  display: inline-block;
  width: calc(100% - 252px);
  max-height: 34px;
  margin-left: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: small;
  line-height: 17px;
  vertical-align: middle;
}

@media screen and (max-width: 500px) {
  .hit-title {
    width: 140px;
    font-size: 80%;
  }
  .hit-description {
    width: calc(100% - 192px);
  }
}
.hit-name {
  display: inline-block;
}

.ais-Highlight-highlighted {
  color: inherit;
  font-size: inherit;
}

#search-box {
  margin-top: 5px;
  width: calc(100% - 5px);
  height: 48px;
}

#pagination {
  margin: 1rem auto;
  text-align: center;
}

/* ---------------------------- HAMBURGER MENU ---------------------------- */
/*
 * Made by Erik Terwan
 * 24th of November 2015
 * https://codepen.io/erikterwan/pen/EVzeRP
 *
 * MIT License
 *
 * If you are thinking of using this in
 * production code, beware of the browser
 * prefixes.
 */
#ham-toggle {
  display: block;
  position: absolute;
  top: 14px;
  left: 12px;
  z-index: 1;
  -webkit-user-select: none;
  user-select: none;
}

#ham-toggle a {
  text-decoration: none;
  color: var(--color-heading);
  transition: color 0.3s ease;
}

#ham-toggle a:hover {
  color: tomato;
}

#ham-toggle input {
  display: block;
  width: 28px;
  height: 28px;
  position: absolute;
  top: -5px;
  left: -5px;
  cursor: pointer;
  opacity: 0; /* hide this */
  z-index: 2; /* and place it over the hamburger */
  -webkit-touch-callout: none;
}

/*
 * Just a quick hamburger
 */
#ham-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  margin-bottom: 5px;
  position: relative;
  background: #cdcdcd;
  border-radius: 3px;
  z-index: 1;
  transform-origin: 4px 0px;
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1), background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.55s ease;
}

#ham-toggle span:first-child {
  transform-origin: 0% 0%;
}

#ham-toggle span:nth-last-child(2) {
  transform-origin: 0% 100%;
}

/*
 * Transform all the slices of hamburger
 * into a crossmark.
 */
#ham-toggle input:checked ~ span {
  opacity: 1;
  transform: rotate(45deg) translate(6px, -2px) scale(0.7, 0.7);
  background: #232323;
}

/*
 * But let's hide the middle one.
 */
#ham-toggle input:checked ~ span:nth-last-child(3) {
  opacity: 0;
  transform: rotate(0deg) scale(0.2, 0.2);
}

/*
 * Ohyeah and the last one should go the other direction
 */
#ham-toggle input:checked ~ span:nth-last-child(2) {
  transform: rotate(-45deg) translate(8px, 2px) scale(0.7, 0.7);
}

/*
 * Make this absolute positioned
 * at the top left of the screen
 */
#ham-menu {
  position: absolute;
  width: 250px;
  margin: -100px 0 0 -50px;
  padding: 80px 5px 5px 50px;
  box-shadow: 1px 1px 6px #444;
  background: var(--color-surface);
  list-style-type: none;
  -webkit-font-smoothing: antialiased;
  /* to stop flickering of text in safari */
  transform-origin: 0% 0%;
  transform: translate(-100%, 0);
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1);
}

/*
 * And let's slide it in from the left
 */
#ham-toggle input:checked ~ #ham-menu {
  transform: none;
}

#ham-menu .menu details > summary:after {
  left: 230px;
}

#ham-menu .menu details[open] > summary:after {
  left: 229px;
}

.sidebar {
  width: 258px;
  height: 100vh;
  position: sticky;
  top: 1rem;
  overflow-y: scroll;
  -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
  scrollbar-width: none; /* Hide scrollbar for Firefox */
}

.sidebar::-webkit-scrollbar {
  display: none; /* Hide scrollbar for Chrome, Safari and Opera */
}

.sidebar > div {
  margin: 0 12px 10px 12px;
  padding: 5px 10px 0 10px;
  box-shadow: 4px 4px 4px var(--color-shadow);
  background: var(--color-surface);
}

#left-column {
  float: left;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

#right-column {
  float: right;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

/* --------------------------------- MENU --------------------------------- */
.menu {
  font-size: 0.85em;
}

.menu h3 {
  text-align: center;
  font-weight: bold;
  border-bottom: 1px solid var(--color-menu-heading-border);
  margin: 0 2em 0.5em 2em;
}

.menu ul {
  margin: 0;
  border-left: 1px solid gray;
  list-style-type: none;
  line-height: 1em;
  padding-left: 0.5em;
}

.menu > ul {
  border: none;
  padding: 0 0 1rem 0;
}

.menu a {
  color: var(--color-menu-link);
  text-decoration: none;
  transition: color 0.2s ease-in;
}

.menu a:hover {
  color: var(--color-link-hover);
  text-decoration: underline solid;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  border-bottom: none;
}

.menu ul li {
  margin-bottom: 0px;
  margin-right: 10px;
}

.menu li {
  margin: 10px 0;
}

.menu summary {
  outline: none;
  cursor: pointer;
}

.menu summary.li {
  padding-left: 1.4em;
}

.menu details > summary {
  list-style: none;
}

.menu summary::-webkit-details-marker {
  display: none;
}

.menu details > summary:after {
  content: "▹";
  font-size: 10px;
  position: absolute;
}

.menu details[open] > summary:after {
  content: "▿";
  font-size: 11px;
}

.menu a.current-page {
  font-weight: bold;
  color: var(--color-menu-current-page);
  -moz-transition: none;
  -webkit-transition: none;
  -ms-transition: none;
  transition: none;
}

.menu a.current-page:hover {
  border-bottom: none;
  text-decoration: none;
  color: var(--color-menu-current-page);
}

#left-column .menu details > summary:after {
  left: 196px;
}

#left-column .menu details[open] > summary:after {
  left: 195px;
}

#right-column .menu details > summary:after {
  right: 12px;
}

/* ------------------------------- STATBOX -------------------------------- */
#statbox {
  font-size: small;
  padding-bottom: 0.5em;
  margin-bottom: 1.5em;
}

#statbox ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

#statbox ul li {
  font-size: smaller;
  white-space: nowrap;
  line-height: 1.5em;
  margin: 0;
  padding: 0;
}

#statbox h3 {
  font-weight: bold;
  text-align: center;
  border-bottom: 1px solid var(--color-menu-heading-border);
  margin-bottom: 0.5em;
}

#statbox tr {
  line-height: 1.4em;
}

#statbox th {
  vertical-align: middle;
  padding-top: 4px;
  padding-bottom: 4px;
}

#statbox img {
  max-width: 100%;
}

#statbox #statbox-image {
  max-width: 180px;
  margin-left: auto;
  margin-right: auto;
}

#statbox #statbox-name {
  font-size: large;
}

#statbox #statbox-honorific {
  font-size: medium;
  margin-top: -0.5em;
}

#statbox #statbox-honorific img {
  vertical-align: middle;
}

#statbox #statbox-header {
  text-align: center;
}

#statbox #statbox-affiliation {
  clear: left;
  line-height: 1.2em;
}

#statbox .btn-refresh {
  position: absolute;
  top: 0;
  right: 0;
  height: auto;
  margin-right: 10px;
  margin-top: 5px;
  padding: 0.25em 0.25em;
  line-height: 0 !important;
  text-indent: 0 !important;
  letter-spacing: 0 !important;
}

#statbox #component-date {
  font-size: 0.7em;
  line-height: 1.4em;
}

/* ------------------------------- NAV BAR -------------------------------- */
/* Credit: https://stackoverflow.com/a/37053489/1207769 */
#nav-bar {
  text-align: center;
  position: sticky;
  top: 0;
  font-size: small;
  margin-left: 260px;
  margin-right: 260px;
  z-index: 1;
}

#nav-bar a {
  text-decoration: none;
}

#nav-bar li {
  display: inline;
  padding-left: 0;
}

#nav-bar li::after {
  content: " ";
  word-spacing: 1em;
  background-image: linear-gradient(-0.25turn, transparent 0 0.6em, currentcolor 0 0.7em, transparent 0);
}

@media screen and (max-width: 879px) {
  #nav-bar {
    margin-left: 10px;
    margin-right: 10px;
  }
  #toc {
    display: none;
  }
}
/* -------------------------------- HEADER -------------------------------- */
#header {
  background-image: url("/media/site/overlay7.png");
  color: rgba(255, 255, 255, 0.75);
  background-position: top left, center center, center center;
  background-size: auto, cover, cover;
  overflow: hidden;
  position: relative;
  text-align: center;
  min-width: 420px;
  height: calc(100vh - 48px);
  padding: 8em 1em 8em 1em;
}

#header a {
  border-bottom-color: rgba(255, 255, 255, 0.5);
  color: #ed8;
}

#header a:hover {
  color: #ffffff;
}

#header h1, #header h2, #header h3, #header h4, #header h5, #header h6, #header strong, #header b {
  color: #ffffff;
}

#header header p {
  color: #ffffff;
}

#header header.major:after {
  background: #ffffff;
}

#header input[type=submit],
#header input[type=reset],
#header input[type=button],
#header button,
#header .button {
  box-shadow: inset 0 0 0 1px #ffffff;
  color: #ffffff !important;
}

#header input[type=submit]:hover,
#header input[type=reset]:hover,
#header input[type=button]:hover,
#header button:hover,
#header .button:hover {
  background-color: rgba(255, 255, 255, 0.125);
}

#header input[type=submit]:active,
#header input[type=reset]:active,
#header input[type=button]:active,
#header button:active,
#header .button:active {
  background-color: rgba(255, 255, 255, 0.25);
}

#header input[type=submit].primary,
#header input[type=reset].primary,
#header input[type=button].primary,
#header button.primary,
#header .button.primary {
  background-color: #ffffff;
  box-shadow: inset 0 0 0 1px #ffffff !important;
  color: #4686a0 !important;
}

#header input[type=submit].primary:hover,
#header input[type=reset].primary:hover,
#header input[type=button].primary:hover,
#header button.primary:hover,
#header .button.primary:hover {
  background-color: rgba(255, 255, 255, 0.125) !important;
  color: #ffffff !important;
}

#header input[type=submit].primary:active,
#header input[type=reset].primary:active,
#header input[type=button].primary:active,
#header button.primary:active,
#header .button.primary:active {
  background-color: rgba(255, 255, 255, 0.25) !important;
}

#header ul.major-icons li .icon {
  border-color: #ffffff;
}

#header .icon.major {
  color: #ffffff;
}

#header h1 {
  margin: -2em 0 0 0;
}

#header:after {
  -moz-transition: opacity 1s ease;
  -webkit-transition: opacity 1s ease;
  -ms-transition: opacity 1s ease;
  transition: opacity 1s ease;
  background-image: linear-gradient(45deg, #5eab9f, #4361c2);
  content: "";
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

body.is-preload #header .inner {
  -moz-transform: scale(1.05);
  -webkit-transform: scale(1.05);
  -ms-transform: scale(1.05);
  transform: scale(1.05);
  opacity: 0;
}

body.is-preload #header .inner .actions {
  -moz-transform: translateY(30em);
  -webkit-transform: translateY(30em);
  -ms-transform: translateY(30em);
  transform: translateY(30em);
  opacity: 0;
}

body.is-preload #header:after {
  opacity: 1;
}

/* -------------------------------- FOOTER -------------------------------- */
#footer {
  padding: 4em 0 4em 0;
  background-image: url("/media/site/overlay8.png"), url("/media/site/header.jpg");
  color: rgba(255, 255, 255, 0.75);
  background-attachment: fixed, fixed, fixed;
  background-position: top left, center center, center center;
  background-size: auto, cover, cover;
  text-align: center;
}

#footer a {
  border-bottom-color: rgba(255, 255, 255, 0.5);
}

#footer a:hover {
  color: #ffffff;
}

#footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6, #footer strong, #footer b {
  color: #ffffff;
}

#footer header p {
  color: #ffffff;
}

#footer header.major:after {
  background: #ffffff;
}

#footer input[type=submit],
#footer input[type=reset],
#footer input[type=button],
#footer button,
#footer .button {
  box-shadow: inset 0 0 0 1px #ffffff;
  color: #ffffff !important;
}

#footer input[type=submit]:hover,
#footer input[type=reset]:hover,
#footer input[type=button]:hover,
#footer button:hover,
#footer .button:hover {
  background-color: rgba(255, 255, 255, 0.125);
}

#footer input[type=submit]:active,
#footer input[type=reset]:active,
#footer input[type=button]:active,
#footer button:active,
#footer .button:active {
  background-color: rgba(255, 255, 255, 0.25);
}

#footer input[type=submit].primary,
#footer input[type=reset].primary,
#footer input[type=button].primary,
#footer button.primary,
#footer .button.primary {
  background-color: #ffffff;
  box-shadow: inset 0 0 0 1px #ffffff !important;
  color: #4686a0 !important;
}

#footer input[type=submit].primary:hover,
#footer input[type=reset].primary:hover,
#footer input[type=button].primary:hover,
#footer button.primary:hover,
#footer .button.primary:hover {
  background-color: rgba(255, 255, 255, 0.125) !important;
  color: #ffffff !important;
}

#footer input[type=submit].primary:active,
#footer input[type=reset].primary:active,
#footer input[type=button].primary:active,
#footer button.primary:active,
#footer .button.primary:active {
  background-color: rgba(255, 255, 255, 0.25) !important;
}

#footer ul.major-icons li .icon {
  border-color: #ffffff;
}

#footer .icon.major {
  color: #ffffff;
}

#footer .icons {
  margin: 0;
}

#footer .copyright {
  font-size: 0.8em;
  list-style: none;
  margin: 2em 0 0 0;
  padding: 0;
}

#footer .copyright a {
  color: rgba(255, 255, 255, 0.7490196078);
}

#footer .copyright li {
  border-left: solid 1px;
  display: inline-block;
  line-height: 1em;
  margin-left: 1em;
  padding: 0 0 0 1em;
}

#footer .copyright li:first-child {
  border-left: 0;
}

#footer {
  padding: 1.5em 3em 1.5em 3em;
}

/* --------------------------- PAGE INFORMATION --------------------------- */
.page-info {
  text-align: right;
  font-style: italic;
  font-size: 0.8em;
  padding: 0.5em 0.5em 1em 0;
  line-height: 1.2em;
}

.page-info a {
  border-bottom: none;
  padding: 0 0.5em 0 0;
}

.page-info div {
  display: inline-block;
  vertical-align: top;
}

/* Accessibility: ensure search input text has sufficient contrast (WCAG 1.4.3).
 * The Algolia InstantSearch CSS does not guarantee contrast on our dark topbar
 * background; explicitly pin to black-on-white in both themes. */
.ais-SearchBox-input {
  color: #000000 !important;
  background-color: #ffffff !important;
}

/* Accessibility: thin dotted underline on all links so they are
 * distinguishable from surrounding text without relying on color alone
 * (WCAG 1.4.1).  More-specific selectors (heading links, nav links,
 * buttons, icon links, etc.) retain their existing text-decoration: none
 * overrides and are unaffected. */
a {
  text-decoration: underline dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* On hover, switch to a solid underline for a clear state change.
 * Also remove main.css's border-bottom so the two don't stack. */
a:hover {
  text-decoration-style: solid;
  border-bottom: none;
}

/* Accessibility: override main.css's "display: none" on .icon > .label.
 * Icon links (social footer, etc.) use <span class="label"> as their
 * accessible text; display:none hides it from screen readers entirely.
 * Visually-hidden keeps the text invisible but readable by assistive tech. */
.icon > .label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
