:root {
  --custom-info: #1594A8;
  --custom-info-active: #004A99;
  --custom-info-hover: #128091;
  --custom-light: #eee;
}

/* Fonts */
.rubiklight {
  font-family: 'rubik';
  font-variation-settings:
    'wght' 300;
}

.rubikregular {
  font-family: 'rubik';
  font-variation-settings:
    'wght' 400;
}

.playfairregular {
  font-family: 'playfair display';
  font-variation-settings:
    'wght' 400;
}

/* Font size */
body {
  font-size: 19px;
}

.fs_11px {
  font-size: 11px !important;
}

.fs_16px {
  font-size: 16px !important;
}

.fs_18px {
  font-size: 18px !important;
}

/* "View in admin" button on site pages and record pages */
#go_to_admin {
  margin-top: -40px;
  margin-right: 20px;
}

/* Matomo opt-out form on legal notice page */
#matomo-opt-out {
  background-color: var(--custom-light);
}

#matomo-opt-out label {
  padding-left: 8px;
}

/* Thumbnails (on index and projects pages) */
.index_thumb, .project_thumb {
  object-fit: cover;
}

.index_thumb {
  height: 350px;
}

.project_thumb {
  height: 300px;
}

/* Score SVG */
svg {
  height: 100%;
  width: 100%;
  overflow: hidden;
}

/* Forms */
.form-control, .form-select {
  font-variation-settings:
    'wght' 300;
}

.form-control:focus, .form-select:focus {
  border-color: var(--custom-info);
  box-shadow: 0 0 0 .2rem rgba(23, 162, 184, 0.25);
}

input[type="checkbox"] {
  accent-color: var(--custom-info) !important;
}

input.form-check-input:checked {
  background-color: var(--custom-info);
  border-color: var(--custom-info);
}

input.form-check-input:focus {
  border-color: var(--custom-info);
  box-shadow: 0 0 0 .2rem rgba(23, 162, 184, 0.25);
}

select[multiple] option:checked {
  background-color: var(--custom-info);
  color: var(--bs-white);
  box-shadow: 0 0 10px 100px var(--custom-info) inset;
  border: none;
}

.form-range::-webkit-slider-thumb {
  background: var(--custom-info);
}

.form-range::-moz-range-thumb {
  background: var(--custom-info);
}

.form-range::-ms-thumb {
  background: var(--custom-info);
}

.form-range:focus::-webkit-slider-thumb {
  background-color: var(--custom-info);
  box-shadow: 0 0 0 1px var(--custom-info), 0 0 0 0.25rem rgba(23, 162, 184, 0.25);
}

.form-range:focus::-moz-range-thumb {
  background-color: var(--custom-info);
  box-shadow: 0 0 0 1px var(--custom-info), 0 0 0 0.25rem rgba(23, 162, 184, 0.25);
}

.form-range:focus::-ms-thumb {
  background-color: var(--custom-info);
  box-shadow: 0 0 0 1px var(--custom-info), 0 0 0 0.25rem rgba(23, 162, 184, 0.25);
}

.custom_light_label {
  color: var(--bs-dark);
  background-color: var(--custom-light);
  border: 1px solid var(--custom-light);
}

.custom_light_input {
  border: 1px solid var(--custom-light);
}

/* Miscellaneous */
#banner div {
  height: 180px;
  background-position: center;
}

.card {
  border-radius: 0.37rem;
}

.card-header {
  background-color: var(--bs-white);
}

.pagination .page-item.disabled .page-link {
  background-color: var(--bs-white);
}

/* Links */
a {
  text-decoration: none !important;
  background-color: transparent;
  color: var(--custom-info);
}

a:hover:not(.nav-link):not(.btn):not(:disabled), button.custom_text_info:hover:not(:disabled) {
  color: var(--custom-info-active);
}

.current_link {
  color: var(--custom-info-active);
  font-weight: 700;
}

/* Alphabetical scroll in contributors page */
#alphabet {
  position: sticky;
  top: 88px;
  width: 60px;
}

#alphabet .list-group-item {
  text-align: center;
}

#alphabet .list-group-item.active {
  background-color: var(--custom-info);
  border-color: var(--custom-info);
}

#alphabet .list-group-item.active:hover {
  color: white;
}

#contributors .list-group-item-light {
  color: var(--bs-body-color);
}

/* Buttons */
.custom_btn_info {
  color: var(--bs-white) !important;
  background-color: var(--custom-info) !important;
  border-color: var(--custom-info) !important;
}

.custom_btn_info:hover:not(:disabled) {
  color: var(--bs-white) !important;
  background-color: var(--custom-info-hover) !important;
  border-color: var(--custom-info-hover) !important;
}

.custom_text_info {
  color: var(--custom-info);
}

button.text-danger:hover:not(:disabled) {
  color: #bb2d3b !important;
}

.btn {
  font-variation-settings:
    'wght' 350;
}

.btn-light {
  display: inline-block;
  color: var(--bs-dark);
  text-align: center;
  vertical-align: middle;
  background-color: var(--custom-light);
  border: 1px solid var(--custom-light);
  padding: 0.45rem 0.85rem;
  font-size: 11px;
  line-height: 1.5;
  border-radius: 0.37rem;
}

.btn-light:hover:not(:disabled) {
  background-color: var(--bs-white);
}

.btn-light:disabled {
  border-color: var(--custom-light);
}

/* Nav */
#header_nav .dropdown-item {
  color: black;
  opacity: 0.5;
}

#header_nav .dropdown-item:hover {
  opacity: 0.7;
}

#header_nav .dropdown-item.active, #header_nav .dropdown-item:active {
  opacity: 0.9;
  background-color: white;
}

#header_nav .dropdown-item.active:hover {
  background-color: var(--bs-light);
}

.nav_hr {
  pointer-events: none;
}

/* Sticky footer */
html {
  position: relative;
  min-height: 100%;
}

footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 20;
}

#footer_nav {
  background-color: black;
}

#footer_nav a {
  color: white;
}

#footer_nav a:hover {
  color: var(--custom-info);
}

#footer_nav .dropdown-menu, #footer_nav .dropdown-item:hover {
  background-color: black;
}

/* Panzoom */
.panzoom {
  overflow: hidden;
  width: 100%;
  margin-left: 0px;
  position: relative;
  transition-property: all;
  transition-duration: 0.3s;
  transition-timing-function: ease-in-out;
  transition-delay: 0s;
  transform: scale(0.95);
  box-shadow: 8px 8px 8px grey;
}

.panzoom.panzoom_small_card {
  background-color: rgba(0,0,0,0.6);
  background-blend-mode: darken;
}

.panzoom:hover {
  transform: scale(1);
  filter: contrast(1.1);
}

.panzoom .caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  color: white;
  background-color: rgba(0,0,0,0.6);
}

/* Sweep to top */
.hvr-sweep-to-top {
  display: inline-block;
  vertical-align: baseline;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.2s;
  transition-duration: 0.2s;
  color: var(--custom-info);
}

.hvr-sweep-to-top:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--custom-info-hover);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.2s;
  transition-duration: 0.2s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-top:hover, .hvr-sweep-to-top:focus, .hvr-sweep-to-top:active {
  color: white !important;
}

.hvr-sweep-to-top:hover:before, .hvr-sweep-to-top:focus:before, .hvr-sweep-to-top:active:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}

/* Sweep to right */
.hvr-sweep-to-right {
  display: inline-block;
  vertical-align: baseline;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}

.hvr-sweep-to-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--custom-info-hover);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-right:hover, .hvr-sweep-to-right:focus, .hvr-sweep-to-right:active {
  color: white !important;
}

.hvr-sweep-to-right:hover:before, .hvr-sweep-to-right:focus:before, .hvr-sweep-to-right:active:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

/* Float Shadow */
.hvr-float-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}

.hvr-float-shadow:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  top: 100%;
  left: 5%;
  height: 10px;
  width: 90%;
  opacity: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform, opacity;
  transition-property: transform, opacity;
}

.hvr-float-shadow:hover, .hvr-float-shadow:focus, .hvr-float-shadow:active {
  -webkit-transform: translateY(-5px);
  transform: translateY(-5px);
}

.hvr-float-shadow:hover:before, .hvr-float-shadow:focus:before, .hvr-float-shadow:active:before {
  opacity: 1;
  -webkit-transform: translateY(5px);
  transform: translateY(5px);
}
