/* Copyright (c) 2019 Baldur Karlsson
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
a.headerlink { display: none; text-decoration: none; }

h2:hover a.headerlink { display: inline; }
h3:hover a.headerlink { display: inline; }
h4:hover a.headerlink { display: inline; }
h5:hover a.headerlink { display: inline; }
h6:hover a.headerlink { display: inline; }
*/

div.searchbox {
  background-color: white;
  margin-top: 20px;
}

@media only screen and (min-width: 768px) {
  div#toc {
    padding-top: 6em !important;
  }

  div.searchbox {
    display: block;
    position: fixed;
    left: 0px;
    max-width: 13.5em;
    padding-left: 20px;
    padding-top: 20px;
    margin-top: 0px;
    top: 0px;
    /* border-bottom: 1px solid black; */
    /* box-shadow: 0px 10px 20px -10px #444444; */
    z-index: 1000;
  }
}

@media only screen and (min-width: 1280px) {
  div.searchbox {
    max-width: 18em;
  }

  div.searchbox input {
    width: 17em;
  }
}

div.searchbox div.results {
  border: 1px solid black;
}

div.searchbox label {
  display: block;
  width: 160px;
}

div.searchbox input {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ol#results li a {
  text-overflow: ellipsis;
  overflow: hidden;
  display: block;
}

.link {
  position: absolute;
  z-index: 1000;
  right: 4em;
  margin-top: 0.5em;
  display: none;
}

.listingblock:hover .link {
  display: block;
}
