/* Fix gutter */
.row {
    margin-left: 0;
    margin-right: 0;
}

/* Generic styling */
html,
body {
  background-color: var(--bg-color);
  margin-top: 30px;
  width: 100%;
}
footer {
  background-color: #fff;
  margin-top: 100px;
  padding-top: 80px;
  width: 100vw;
  overflow: hidden;
}
button:focus {
  outline: none;
}
a.info img {
  width: 40px;
  opacity: 0.75;
  transition-duration: 0.25s;
  border-radius: 50%;
}
a.info:hover img {
  opacity: 1;
  box-shadow: 0 0 5px 3px dodgerblue;
}
a[target="_blank"] {
  position: relative;
}
a[target="_blank"]::after {
  opacity: 0;
  transition-duration: 0.25s;
  position: absolute;
  left: -34px;
  bottom: 5px;
  width: 20px;
  height: 20px;
  color: white;
  padding-left: 2px;
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1rem;
  border-bottom: 2px solid white;
  border-left: 2px solid white;
  content: "\2197";
}
a[target="_blank"]::before {
  opacity: 0;
  transition-duration: 0.25s;
  position: absolute;
  left: -40px;
  bottom: 0;
  width: 32px;
  height: 33px;
  background-color: #222;
  border-radius: 8px;
  content: "";
}
a[target="_blank"]:hover::after, a[target="_blank"]:hover::before {
  opacity: 1;
}
pre {
  color: inherit;
}
.svg-icon path {
  fill: var(--text-main);
}
.btn-primary {
  border-radius: 8px;
  font-size: 1.15rem;
}
.pane {
  background-color: var(--pane);;
  border-radius: 15px;
  padding: 15px;
  margin: 15px auto;
  width: 98%;
  position: relative;
  z-index: 0;
}
.pane.padded {
  padding: 25px;
}
.inner-pane {
  background-color: var(--inner-pane);
  border-color: var(--pane);
  border-style: inset;
  border-width: thin;
  padding: 10px;
  margin: 10px;
}
.generic {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  min-height: 100vh;
}
.generic div.box {
  position: relative;
  top: -5vh;
  padding: 80px 50px;
  margin: 15vh 5vw 10vh 5vw;
  max-width: 60vw;
  background-color: var(--pane);
  border-radius: 15px;
}
.generic p {
  font-weight: 300;
  font-size: 1.5rem;
  color: var(--text-main);
}
.vpad-5 {
  padding-top: 50px;
  padding-bottom: 50px;
}
.card {
  background-color: var(--pane);
  display: flex;
  justify-content: center;
  padding: 30px;
}
.card-deck {
  margin-left: 15px;
  margin-right: 15px;
  min-height: 450px;
  margin-bottom: 15px;
}
.dropdown-item.active,
.dropdown-item:active {
  color: #fff;
  background-color: #007bff;
}
.dropdown-item:hover {
  background-color: #ccc;
}
.disabled {
  cursor: default;
}
.list-group > .last {
  border-radius: 0px 0px 15px 15px;
}
.list-group > .first {
  border-radius: 15px 15px 0px 0px;
}
.list-group-item:hover {
  background-color: #ddd;
}
.showme {
  border-style: solid;
  border-color: #ccc;
  border-width: medium;
}
.no-scroll {
  overflow: hidden;
}

/* Font */
h1, h2, h3, h4, h5, h6 {
  color: var(--heading);
  padding-bottom: 15px;
}
p.foot {
  text-align: right;
  line-height: 8pt;
}
.lead {
  padding-bottom: 5px;
  margin-bottom: 0px;
}
.text-bright {
  color: var(--text-main);
}
.text-warn {
  color: var(--text-warn);
}
.errorlist {
  color: var(--text-warn);
}
.faded-placeholder::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #ccc;
}
.faded-placeholder:-ms-input-placeholder { /* Internet Explorer 10-11 */
  color: #ccc;
}
.faded-placeholder::-ms-input-placeholder { /* Microsoft Edge */
  color: #ccc;
}
.faded-placeholder::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #ccc;
}
.faded-placeholder:-ms-input-placeholder { /* Internet Explorer 10-11 */
  color: #ccc;
}
.faded-placeholder::-ms-input-placeholder { /* Microsoft Edge */
  color: #ccc;
}
.noselect {
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* IE10+/Edge */
  user-select: none; /* Standard */
}

/* Generic elements */
.navbar-dark{
  background-color: var(--navbar-dark);
}
.nav-respond {
  width: 90vw;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto;
}
.navbar-brand {
  font-size: 2rem;
  padding: 5px 50px 5px 0;
}
.navbar-brand img {
  height: 50px;
  width: auto;
}
.nav-item {
  padding-left: 10px;
  padding-right: 10px;
}
.nav-item.login {
  flex-wrap: nowrap;
  flex-direction: row;
}
.nav-item.muted {
  color: rgba(255,255,255,0.50);
}
img.theme-toggle {
  margin: 10px;
  transition-duration: 0.25s;
  width: 25px;
  height: 25px;
  border-radius: 50%;
}
img.theme-toggle:hover {
  -webkit-box-shadow: 0px 0px 5px 5px rgba(0, 123, 255, 0.75);
  -moz-box-shadow:    0px 0px 5px 5px rgba(0, 123, 255, 0.75);
  box-shadow:         0px 0px 5px 5px rgba(0, 123, 255, 0.75);
}
.dropdown-menu.username {
  width: 100%;
  margin-top: 9px;
  background-color: var(--navbar-dark);
  border-radius: 0;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
}
.dropdown-menu.username .dropdown-item {
  text-align: right;
  background-color: rgba(0,0,0,0);
  color: #dfeaf4;
}
.dropdown-menu.username .dropdown-item:hover {
  background-color: rgba(200,200,200,0.1);
}

#nav-login {
  margin-right:-15px;
  padding-right:20px;
}
#nav-logged-in {
  color: white;
  flex-direction: column;
  text-align: right;
  width: auto;
}
#nav-login a {
  color: white;
}
#nav-logged-in a {
  color: white;
}
.header {
  position: absolute;
  top: 30px;
  padding: 0;
  z-index: 0;
}
.header img.header {
  width: 100%;
  filter: var(--header-filter);
  opacity: var(--header-opacity);
}
.top-element {
  margin: 22vw 0 100px 0;
  z-index: 1;
  min-height: 600px;
  position: relative;
  /* ^ necessary for z-index to work ^ */
}
.top-element-high {
  margin: 12vw 0 100px 0;
  z-index: 1;
  min-height: 600px;
  position: relative;
}
.top-element-mid {
  margin: 18vw 0 100px 0;
  z-index: 1;
  min-height: 600px;
  position: relative;
}

/* Modal */
.modal-title {
  color: var(--navbar-dark);
}
.modal {
  position: fixed;
  top: 50%;
  height: fit-content;
  min-height: 600px;
  max-height: 75vh;
  transform: translateY(-50%);
}
.modal-background {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0,0,0,0.9);
  z-index: 9999;
}
.modal-background .modal {
  display: block;
}
#login-error {
  display: none;
}
#login-submit {
  margin: 20px;
}
#forgot-password {
  margin-top: 20px;
}
footer p {
  color: black;
}
footer .row.text {
  flex-direction: row;
  justify-content: space-around;
}
footer .footer-text {
  display: flex;
  flex-direction: column;
}
footer .row.logos {
  align-items: flex-end;
  justify-content: space-between;
  padding: 60px 20px 15px 20px;
  flex-wrap: nowrap;
}
footer img.logo {
  width: 25%;
  height: auto;
  margin: 15px;
}
#logos {
  max-width: 800px;
  flex-grow: 1;
  justify-content: space-between;
}
#logos a:hover {
  text-decoration: none;
}
#footnote {
  display: block;
}

/* Cookie consent alert */
div.cookie-consent {
  opacity: 0;
  position: fixed;
  z-index: 1000;
  bottom: 25px;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: center;
  width: 100%;
  padding: 15px 50px;
  color: white;
  background-color: rgba(23,100,162,0.95);
  transition-duration: 0.25s;
}
div.cookie-consent p {
  font-size: 1.25rem;
  margin: 0;
}
div.cookie-consent .btn-primary {
  width: 100px;
  height: 50px;
}

/* Media queries */
@media (max-width: 1480px) {

}
@media (max-width: 1270px) {
}
@media (max-width: 992px) {
  /* Navbar collapse */
  #nav-login {
    width: 200px;
    flex-direction: row;
  }
  #logos {
    display: flex;
    flex-grow: 1;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
  }
  footer img.logo {
    width: 200px;
    height: auto;
    margin: 15px;
  }
}
@media (max-width: 768px) {
  footer .row.text {
    flex-wrap: wrap;
    flex-direction: column;
    padding-bottom: 30px;
  }
  footer .row.logos {
    padding-top: 0;
    flex-wrap: wrap;
    flex-direction: column;
  }
  .footer-text {
    width: 100%;
    text-align: center;
  }
  #logos {
    width: 100%;
    margin-bottom: 25px;
  }
  #footnote {
    width: 100%;
  }
  #footnote p.foot {
    text-align: center;
  }
}
@media (max-width: 576px) {
  .navbar-brand {
    padding-right: 0;
  }
  .navbar-brand span {
    display: none;
  }
  #nav-login, #nav-logged-in {
    margin-left: 10px;
  }
}
@media (max-width: 485px) {
  p.foot {
    font-size: 10pt;
    line-height: 4pt;
  }
}
