@charset "UTF-8";

@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: normal;
	src: url('fonts/Roboto-Regular.ttf') format('truetype');
}

@font-face {
	font-family: 'Mochiy Pop P One';
	font-style: normal;
	font-weight: normal;
	src: url('fonts/Mochiy Pop P One.ttf') format('truetype');
}

@font-face {
	font-family: 'Afacad';
	font-style: normal;
	font-weight: normal;
	src: url('fonts/Afacad.ttf') format('truetype');
}

html, body {
	--primary-text-color: #262626;
	--primary-text-color-accent: grey;
	--primary-text-color-disabled: lightgrey;
	--primary-text-color-highlight: white;
	--primary-brand-color: #4b7006;
	--secondary-brand-color: #00b6dc;
	--background-brand-color: white;
	--background-brand-color-accent: #e0e0e0f0;
	--background-brand-color-input: #efefef;
	--map-button-color: #262626;

	height: 100%;
	margin: 0;
	padding: 0;
    color: var(--primary-text-color);
}

body.dark {
	--primary-text-color: white;
	--primary-text-color-accent: lightgrey;
	--background-brand-color: black;
	--secondary-brand-color: #003b6e;
	--background-brand-color-input: #202020;
	--background-brand-color-accent: #262626;
}

body {
	display: flex;
	flex-direction: column;
	background-color: var(--background-brand-color);
	min-height: 100vh;
	box-sizing: border-box;
	font-size: 4.5vmin;
	padding: env(safe-area-inset-top, 0) env(safe-area-inset-right, 0)
	env(safe-area-inset-bottom, 0) env(safe-area-inset-left, 0);
}

.fad {
	--fa-primary-color: var(--primary-brand-color);
	--fa-secondary-color: var(--secondary-brand-color);
	--fa-secondary-opacity: 1;
}

.fad.reverse {
	--fa-primary-color: var(--secondary-brand-color);
	--fa-secondary-color: var(--primary-brand-color);
}

body, input, select, option {
	font-family: 'Roboto', Arial, serif;
}

a {
	color: var(--primary-text-color);
	text-decoration: none;
}

input:focus, select:focus, textarea:focus, button:focus {
	outline: none;
}

header.safarispotter-header {
	display: flex;
	box-sizing: border-box;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	width: 100%;
	position: relative;
	color: var(--primary-text-color-highlight);
	background-color:  var(--secondary-brand-color);
	padding: 0 5vmin 2vmin;
}

header.safarispotter-header .logo {
	background: var(--secondary-brand-color) url(../img/wildspots-header-logo.svg) center center no-repeat;
	background-size: contain;
	flex: none;
	width: 14vmin;
	height: 18vmin;
	margin-right: 2vmin;
}

header.safarispotter-header .text {
	flex: 1;
}

header.safarispotter-header .title {
	font-family: 'Mochiy Pop P One', serif;
	font-size: 13vmin;
	font-weight: bold;
	text-transform: lowercase;
}

header.safarispotter-header .subtitle {
	font-family: 'Afacad', sans-serif;
	text-transform: lowercase;
	font-size: 3.85vmin;
	font-style: italic;
	margin-top: -2.5vmin;
}

header.safarispotter-header .menubutton {
	flex: none;
	font-family: 'Font Awesome 6 Pro';
	font-weight: 900;
	font-size: 7.5vmin;
}

header.safarispotter-header .menubutton::after {
	content: '\f0c9';
}

header.safarispotter-header.menu .menubutton {
	transform: rotate(-90deg);
}

main {
	flex: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
}

main > nav {
	background-color: var(--secondary-brand-color);
	padding: 2vmin 0;
}

main > nav.hide {
	display: block;
	scale: 1 0;
}

main > nav > ul {
	display: flex;
	flex-direction: row;
	width: 100%;
	list-style: none;
	padding: 0 2.5vmin;
	margin: 0;
	box-sizing: border-box;
	font-size: 6vmin;
	color: var(--primary-text-color-disabled);
}

main > nav > ul > li {
	display: block;
	flex: 1;
	margin: 0 0.5vmin;
	padding: 1vmin;
	text-align: center;
	line-height: 100%;
}

main > nav > ul > li.selected > .fas {
	color: var(--primary-brand-color);
}

footer {
	position: fixed;
	bottom: 0;
	box-sizing: border-box;
	width: 100%;
	text-align: center;
	font-size: 10pt;
	padding: 1vmin;
	opacity: 0;
}

footer.startup {
	opacity: 1;
}

section {
	box-sizing: border-box;
	width: 100%;
	display: flex;
	flex-direction: column;
}

.hide {
	display: none !important;
}

section div.map {
	height: 40vmax;
	min-height: 40vmax;
	width: 100%;
	color: var(--primary-text-color);
	position: sticky !important;
	top: 0;
	z-index: 10;
}

div.map .leaflet-control, div.map .leaflet-control a {
	color: var(--map-button-color);
}

div.map .leaflet-bottom.leaflet-right {
	width: 100%;
	padding: 0;
}

div.map .leaflet-bottom.leaflet-left {
	width: 100%;
	padding: 0;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

div.map .leaflet-bottom.leaflet-left .leaflet-control {
	margin: 10px 10px 22px 10px;
}

div.map .leaflet-control-attribution {
	font-size: 1.55vmin;
	font-family: 'Roboto', sans-serif;
	width: 100%;
	padding: 0;
	text-align: center;
	overflow: hidden;
}

.map .leaflet-div-icon {
	background: transparent;
	border: none;
}

.speciesicon {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	box-sizing: border-box;
	position: relative;
	border: none;
	border-radius: 50%;
	color: var(--primary-text-color-highlight);
	background-color: var(--primary-brand-color);
	padding: 0;
	margin: 0;
	width: 8vmin;
	height: 8vmin;
	flex: none;
}

.speciesicon.iucn-nt {
	background-color: olive;
}

.speciesicon.iucn-vu {
	background-color: orange;
}

.speciesicon.iucn-en {
	background-color: red;
}

.speciesicon.iucn-cr {
	background-color: purple;
}

.map .leaflet-marker-icon .speciesicon {
	transform: translate( -50%, -50% );
}

.map .leaflet-marker-icon .speciesicon .obscured {
	width: 15vmin;
	height: 15vmin;
	background: radial-gradient(var(--secondary-brand-color)ff, var(--secondary-brand-color)00);
	transform: translate(-25%, -25%);
	border-radius: 50%;
}

@keyframes pulse {
  0% { transform: translate( -50%, -50% ) scale(1.5); }
  50% { transform: translate( -50%, -50% ) scale(2); }
  100% { transform: translate( -50%, -50% ) scale(1.5); }
}

.map .leaflet-div-icon .speciesicon.highlight {
	animation-name: pulse;
	animation-duration: 0.8s;
	animation-iteration-count: infinite;
}

.map .speciesicon.position, .map .speciesicon.trail {
	color: var(--primary-text-color-highlight);
	background-color: var(--secondary-brand-color);
}

.speciesicon.position::before, .speciesicon.trail::before {
	font-family: 'Font Awesome 6 Pro';
	font-weight: 900;
	font-size: 5vmin;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}

.speciesicon.trail::before {
	font-size: 4.5vmin;
}
.speciesicon.position::before {
	content: '\f3c5';
}

section.spot .speciesicon.position::before {
	content: '\f1e5';
}

.speciesicon.trail::before {
	content: '\f4d7';
}

.speciesicon.trail.trail-mode-walking::before {
	content: '\f554';
}

.speciesicon.trail.trail-mode-ebike::before, .speciesicon.trail.trail-mode-roadbike::before {
	content: '\f84a';
}

.speciesicon.trail.trail-mode-emountainbike::before, .speciesicon.trail.trail-mode-mountainbike::before {
	content: '\f84b';
}

.speciesicon.trail.trail-mode-horse::before {
	content: '\f8c3';
}

.speciesicon.trail.trail-mode-boat::before {
	content: '\e445';
}

.speciesicon.trail.trail-mode-car::before {
	content: '\f5e4';
}

.speciesicon > .img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 90%;
	height: 90%;
	border-radius: 50%;
}

.speciesicon > .img > img, .leaflet-marker-pane .speciesicon > .img > img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	max-width: 70% !important;
	max-height: 70% !important;
	border: none;
	vertical-align: middle;
}

section .encounter-header {
	padding: 2vmin 5vmin;
	display: flex;
	flex-direction: row;
	color: var(--primary-text-color-highlight);
	background-color: var(--secondary-brand-color);
}

section .encounter-header .encounter-text {
	flex: 1;
}

div.notificationlist > div:nth-child(odd) {
	background-color: var(--background-brand-color);
}

div.notificationlist > div:nth-child(even) {
	background-color: var(--background-brand-color-accent);
}

.notificationlist > div, .spotdetails .spot, .trail-list, .trail-list > *  {
	border: none;
	padding: 1vmin 4vmin;
}

.notificationlist .spot, .spotdetails .spot, .species-selector li, .trail-list li > div, .encounterfilter div.species {
	background-position: left center;
	display: flex;
	flex-direction: row;
	align-items: center;
}

.encounterfilter div.speciesicon, .encounterfilter div.species {
	margin-right: 1vmin;
}

.encounterfilter ul.conservation > li {
	margin-bottom: 1vmin;
}

.encounterfilter ul.conservation > li:last-child {
	margin-bottom: 0;
}

.encounterfilter div.species > .name {
	flex: 1;
}
.encounterfilter div.species > button {
	margin: 0;
}

.encounterfilter ul {
	list-style: none;
	padding: 0;
	margin: 2vmin 0 0;
}

.encounterfilter ul.speciesgroups > li {
	display: inline-block;
	padding: 1vmin;
	border: 1px solid var(--primary-text-color);
	border-radius: 2vmin;
	margin: 1vmin;
}

.encounterfilter ul li > * {
	display: inline-block;
	vertical-align: middle;
	text-transform: lowercase;
}

.encounterfilter ul li > *::first-letter {
	text-transform: uppercase;
}

.encounterfilter ul.speciesgroups > li:not(.selected) > .speciesicon {
	background-color: var(--primary-text-color-disabled);
	position: relative;
}

.encounterfilter ul.speciesgroups > li:not(.selected) > .speciesicon::after {
	position: absolute;
	font-weight: bold;
	content: '×';
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	font-size: 12vmin;
}

.encounterfilter .timeframe > div {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.encounterfilter .timeframe > div > * {
	flex: 1;
}

.encounterfilter input[type="checkbox"], .encounterfilter input[type="radio"] {
	margin-right: 2vmin;
}

.encounterfilter div.formbuttons {
	margin-top: 2vmin;
}

.trail-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.trail-list > li:nth-child(even) {
	background-color: var(--background-brand-color-accent);
}

.speciesicon.trail {
	margin-right: 2vmin;
}

.trail-list .notificationlist {
	display: none;
}

.trail-list > li > div > .name {
	flex: 1;
}

.trail-list .trail.nr-spots {
	flex: none;
}

.trail-list .trail.nr-spots::before {
	font-family: 'Font Awesome 6 Pro';
	font-weight: 900;
	content: '\f1e5';
	margin-right: 0.5vmin;
}

.trail-list .highlight .notificationlist {
	display: block;
}

.trail-list .highlight .notificationlist > .highlight > .actions {
	display: none;
}

.notificationlist .spot > div, section.spot .spot > div, section.spot .species > div, .species-selector li {
	padding: 0 1vw;
}

.notificationlist .spot div.time, .trail-list div.time {
	font-size: 2.5vmin;
	color: var(--primary-text-color-accent);
	font-style: italic;
}

.notificationlist .spot div.name, .spotdetails .spot div.name, .species-selector div.name {
	flex: 1;
	text-transform: capitalize;
}

.notificationlist .details {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.notificationlist > div > .note, .notificationlist > div > .images, .notificationlist > div > .actions,
.trail-list .actions {
	display: none;
	overflow: scroll hidden;
}

.notificationlist > div > .note {
	width: 100%;
	box-sizing: border-box;
}

.notificationlist > div.highlight > .note {
	display: block;
	padding: 2vmin;
}

.notificationlist > div.highlight > .images {
	display: block;
	overflow: hidden;
	margin: 2.5vmin 0;
	min-height: 40vh;
}

.notificationlist > div.highlight > .images > .swiper-wrapper > div {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.notificationlist > div.highlight > .images > .swiper-pagination {
	position: relative;
	bottom: 0;
	margin: 0;
	display: flex;
	justify-content: center;
}

.notificationlist > div.highlight > .images > .swiper-pagination .swiper-pagination-bullet {
	opacity: 1;
	background-color: var(--primary-brand-color);
	border: 1px solid var(--secondary-brand-color);
}

.notificationlist > div.highlight > .images > .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: var(--secondary-brand-color);
	border-color: var(--primary-brand-color);
}

.notificationlist > div.highlight > .images img {
	max-width: 96%;
	max-height: 40vh;
}

.notificationlist > div > .images p {
	font-size: 3vmin;
	color: var(--primary-text-color-accent);
	max-width: 100%;
}

.notificationlist .wildspots-audioviewer {
    display: none;
}

.notificationlist > div.highlight .wildspots-audioviewer {
    display: block;
    margin: 2.5vmin auto;
    width: 96%;
}

.notificationlist .wildspots-audioviewer audio {
    width: 100%;
}

.notificationlist .wildspots-audioviewer .canvases {
    display: none;
}

.notificationlist > .highlight > .actions, .trail-list > .highlight > .actions {
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	padding: 2vmin;
}

.actions > .action {
	flex: none;
	padding: 4vmin;
	background-color: var(--background-brand-color-input);
}

.notificationlist > *:nth-child(even) > .actions > .action,
.trail-list > *:nth-child(even) > .actions > .action {
	background-color: var(--background-brand-color-accent);
}

.notificationlist .pager-wrapper {
	display: flex;
	flex-direction: column;
	overflow-x: scroll;
	padding: 2vmin 5vmin 5vmin;
	position: sticky !important;
	bottom: 0;
	background-color: var(--secondary-brand-color) !important;
	z-index: 1;
}

.notificationlist .pager {
	display: inline-block;
	white-space: nowrap;
	margin: 0 auto;
}

.notificationlist .pager .page {
	display: inline-block;
	width: 8vmin;
	height: 8vmin;
	line-height: 8vmin;
	font-size: 4vmin;
	text-align: center;
	border-radius: 50%;
	background-color: var(--secondary-brand-color);
	background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0px, rgba(255, 255, 255, 0.6) 0px);
	color: var(--primary-text-color-highlight);
	margin: 0 2vmin;
}

.notificationlist .pager .page.selected {
	color: var(--primary-brand-color);
}

section button.bigbutton {
	display: block;
	border-radius: 2vmin;
	color: var(--primary-text-color-highlight);
	background-color: var(--primary-brand-color);
	margin: 5vmin auto;
	padding: 2vmin 5vmin;
}

section button.iconbutton {
    cursor: pointer;
}

section button.iconbutton::before {
	font-family: 'Font Awesome 6 Pro';
	font-weight: 900;
	margin-right: 2vmin;
}

section.spot button.createspot::before {
	content: '\f1e5';
}

section.trail button.record::before {
	content: '\f4d7';
}

section.trail button.stop::before {
	content: '\f04d';
}

section.settings button.download::before {
	content: '\f0ed';
}

section.settings button.upload::before {
	content: '\f0ee';
}

section.spot .spoteditor {
	display: none;
}

section.spot.editing .spoteditor {
	display: block;
}

section.spot.editing div.map {
	position: relative !important;
}

section.spot.editing button.createspot {
	display: none;
}

section.spot.editing .notificationlist {
	display: none;
}

section.spot > .spoteditor {
	margin: 2vmin;
}

.spoteditor > button.datetime {
	width: 100%;
	text-align: left;
}

.spoteditor > button.datetime:before {
	content: "\f017";
	font-family: 'Font Awesome 6 Pro';
	font-weight: 400;
	font-size: 5vmin;
	float: right;
}

.spoteditor .simplepicker-wrapper {
	z-index: 100000;
}

.spoteditor .hidelocation > input {
	margin-right: 8px;
}

.species-selector li {
	font-size: 4vmin;
	margin-top: 2vmin;
	margin-bottom: 2vmin;
	padding: 1vmin;
}

.spotdetails .spot > div {
	font-size: 5vmin;
}

section.spot .note {
	font-size: 5vmin;
	padding: 1vmin;
	margin: 5px 0;
}

.search-area.search::after {
	content: ' ';
}

section.spot .note.empty::after, .search-area.search.empty::after, .search-area > .search-hint {
	opacity: 0.5;
	font-style: italic;
}

section.spot .note.empty::after, .search-area.search.empty::after {
	content: attr(data-empty-text);
}

.search-area {
	position: relative;
}

.search-area > .search-hint {
	position: absolute;
	left: 2vmin;
	top: 2vmin;
}

.search-area > .search {
	position: relative;
	z-index: 1;
}

.matchlist > .species {
    cursor: pointer;
}

.photolist > div.img-container {
	position: relative;
	margin: 5px 0;
}

.photolist > div.img-container > img {
	display: block;
	width: 100%;
}

.photolist > div.img-container > button {
	position: absolute;
	bottom: 0;
}

.photolist > div.img-container > button.ai {
	left: 2vmin;
}

.photolist > div.img-container > button.delete {
	right: 2vmin;
}

.wildspots-soundlist button.delete {
    position: absolute;
    z-index: 999;
    right: 2vmin;
}

section.spot .mediabuttons {
	display: flex;
}

section.spot .mediabuttons > button {
	flex: 1;
	margin-right: 3vmin;
}

section.spot .mediabuttons > button:last-child {
	margin-right: 0;
}

section .formbuttons {
	display: flex;
	margin-top: 10vmin;
}

section.trail .trail-list .notificationlist > div:first-child {
	width: 100%;
	box-sizing: border-box;
}

section select, section select > option, section button, section input, .search-area {
	box-sizing: border-box;
    color: var(--primary-text-color);
	font-family: 'Roboto';
	background-color: var(--background-brand-color-input);
	font-size: 5vmin;
	border: none;
	text-transform: lowercase;
}

section select > option:first-letter, section button:first-letter, section input:first-letter, .search-area:first-letter, .search-area > *:first-letter {
	text-transform: uppercase;
}

section .map input {
	width: auto;
	margin: 0;
}

section select, section select > option, section input:not([type="checkbox"]):not([type="radio"]) {
	width: 100%;
}

section select, section button, section input, .search {
	margin: 2vmin 0;
	padding: 2vmin;
}

section button {
	width: auto;
	margin-left: auto;
	margin-right: auto;
}

section h1 {
	font-family: 'Mochiy Pop P One', sans-serif;
	color: var(--primary-brand-color);
	margin-bottom: 0;
}

section h1:first-letter {
	text-transform: uppercase;
}

section.settings p, section.settings ul {
	margin-top: 2vmin;
	margin-bottom: 2vmin;
	line-height: 150%;
}

section.settings ul {
	list-style: none;
	padding-left: 0;
}

section.settings ul > li > input {
	padding: 0;
	margin: 0 0.5em 0 0;
}


section.settings ul > li > input, section.settings ul > li > label {
	vertical-align: middle;
}

section.info p {
	margin-top: 2vmin;
	line-height: 150%;
}

section.info p.intro {
	margin-bottom: 15vmin;
}

section.info p.sponsorname {
	font-weight: bold;
	font-size: 8vmin;
	text-align: center;
}

section.info div.sponsorlogo {
	height: 40vmin;
	background: center no-repeat;
	background-size: contain;
}

section.info div.contact {
	margin-left: auto;
	margin-right: auto;
	margin-top: 10vmin;
	font-size: 3.5vmin;
}

section.info a {
	text-decoration: underline;
}

section.info, section.book, section.settings {
	padding: 5vw;
	font-size: 12pt;
	text-align: justify;
}

.species-selector ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.species-selector ul .speciesicon {
	margin-right: 2vmin;
}

section.book .speciesheader {
	text-align: center;
}

section.book .speciesheader > .speciesname {
	font-size: 10vmin;
	font-weight: bold;
}

section.book .speciesheader > .speciesscientificname {
	font-style: italic;
}

section.book .speciesheader > .speciesicon {
	margin: 5vmin auto;
}

section.book .speciesheader > .speciesicon, section.book .speciesheader > .speciesicon > .speciesicon {
	width: 40vmin;
	height: 40vmin;
}

section.book .pagebuttons {
	display: flex;
	flex-direction: row;
	align-items: center;
}

section.book .pagebuttons > * {
	flex: 1;
	display: flex;
	align-items: center;
}

section.book .pagebuttons > .pageleft {
	flex-direction: row;
}

section.book .pagebuttons > .pageright {
	flex-direction: row-reverse;
}

section.book .pagebuttons > * > span {
	padding: 0 10px;
}

section.book article.wikipedia {
	padding: 5vmin 0;
	min-height: 35vh;
	width: 100%;
	box-sizing: border-box;
	line-height: 150%;
}

section.book article.wikipedia section {
	margin: 0 0 5vmin 0;
	padding: 0;
}

section.book article.wikipedia section ul, section.book article.wikipedia section ol {
	padding-left: 11pt;
}

section.book article.wikipedia p {
	margin: 0;
	margin-bottom: 3vmin;
}

section.book article.wikipedia a {
	color: var(--primary-text-color);
	cursor: default;
}

section.book article.wikipedia h1, section.book article.wikipedia h2 {
	margin: 0;
}

section.book article.wikipedia table.infobox {
	float: none !important;
	width: 100% !important;
	border: none;
	background-color: transparent;
	border-spacing: 0;
	margin: 0;
	padding: 0;
	font-size: 1em;
}

section.book article.wikipedia table.infobox th, section.book article.wikipedia table.infobox td {
	background-color: transparent !important;
}

section.book article.wikipedia table.infobox th > big,
section.book article.wikipedia table.infobox th > br,
section.book article.wikipedia table.infobox small,
section.book article.wikipedia table.infobox span.noviewer {
	display: none;
}

section.book article.wikipedia table.infobox > tbody > tr > td:not([colspan]) > a[rel="mw:WikiLink"]:first-child {
	font-size: 1.5em;
	margin-top: 1em;
	display: block;
}

section.book article.wikipedia table.infobox table {
	margin: 0;
	padding: 0;
	border-spacing: 0;
	width: 100%;
}

section.book article.wikipedia table.toccolours {
	box-sizing: border-box;
	margin-bottom: 0 !important;
}

section.book article.wikipedia span[typeof="mw:Image"] img {
	width: 100%;
	height: auto;
}

section.book article.wikipedia figure, section.book article.wikipedia figure-inline {
	margin: 3vmin 0;
	border: none;
	background-color: transparent;
}

section.book article.wikipedia figure > a, section.book article.wikipedia figure-inline > a {
	display: block;
}

section.book article.wikipedia figure figcaption, section.book article.wikipedia figure-inline figcaption {
	font-size: 80%;
	border: none;
	background-color: transparent;
	text-align: center;
}

section.book article.wikipedia figure img, section.book article.wikipedia figure-inline img,
section.book article.wikipedia figure video {
	width: 100%;
	height: auto;
	display: block;
	margin: 0;
}

section.book article.wikipedia figure-inline.noviewer img {
	width: auto;
	display: initial;
}

section.book article.wikipedia ul.gallery {
	margin: 0;
	padding: 0;
}

section.book article.wikipedia ul.gallery > li {
	width: 100% !important;
	margin-bottom: 10vmin;
}

section.book article.wikipedia ul.gallery > li > div.thumb {
	width: 100% !important;
	height: auto !important;
	border: none;
	background-color: transparent;
}

section.book article.wikipedia ul.gallery > li > div.thumb > span > img, section.book article.wikipedia ul.gallery > li > div.thumb video {
	width: 80vw;
	height: auto;
}

section.book article.wikipedia ul.gallery > li > div.gallerytext {
	font-size: 0.8em;
	font-style: italic;
	line-height: 110%;
}

section.book > .source {
	font-style: italic;
}

section.book > .source > a {
	text-decoration: underline;
	cursor: pointer;
}

section.info .platforms img {
	width: 100%;
	box-sizing: border-box;
}

section.info .platforms img.inaturalist {
	background-color: white;
	padding: 2vmin;
}

section.info .platforms img.wikipedia {
	background-color: white;
}

div.timer {
	text-align: center;
	margin: 5vmin 0 0;
	font-size: 5vmin;
}

div.controls {
	display: flex;
	padding: 0 9vw;
}

div.controls.record > button.record, div.controls.stop > button.stop {
	display: none;
}

div.trail-editor {
	padding: 2vw;
}

div.trail-editor > div {
	display: flex;
}

#olad-popup {
	position: absolute;
	z-index: 99999999;
	left: 0;
	top: 0;
	right: 0;
	min-height: 100vh;
	height: 100%;
	background-color: rgba( 0, 0, 0, 0.75 );
	padding: env(safe-area-inset-top, 0) env(safe-area-inset-right, 0)
	env(safe-area-inset-bottom, 0) env(safe-area-inset-left, 0);
}

#olad-popup-root {
	background-color: var(--background-brand-color);
	margin: 5vmin;
	border-radius: 2vmin;
	padding: 2vmin;
	position: relative;
}

#olad-popup-root > header {
	position: absolute;
	top: 2vmin;
	right: 2vmin;
}

.olad-popup-button {
	line-height: 1;
	font-size: 7vmin;
}

.olad-popup-close::after {
	font-weight: bold;
	content: '×';
}

#olad-popup-root h1 {
	font-size: 1em;
}

#hints-popup {
	display: flex;
	flex-direction: column;
	align-items: center;
}

#hints-popup > img {
	display: block;
	max-height: 20vh;
	max-width: 100%;
}

#hints-popup .fa-user-robot {
	font-size: 12vmin;
	height: 20vmin;
	display: flex;
	justify-content: center;
	align-items: center;
}

#hints-popup .notificationlist {
	width: 100%;
}

.leaflet-control-layers.leaflet-control.button, .leaflet-control-layers > a {
	width: 44px;
	height: 44px;
	text-align: center;
	font-size: 32px;
	font-weight: normal;
	line-height: 44px;
}

.leaflet-control-layers.leaflet-control.button.active {
	color: var(--primary-brand-color);
}

.introjs-tooltipReferenceLayer {
    visibility: visible;
}

.introjs-tour, .introjs-overlay, .introjs-helperLayer, .introjs-tooltipReferenceLayer, .introjs-tooltip, .introjs-bullets ul li a, .introjs-hint-pulse {
    transition: none;
}

.introjs-tooltip {
	max-width: 80vw;
	min-width: 60vw;
	margin-left: 5vw;
	font-size: 12pt;
	background-color: var(--background-brand-color);
}

.introjs-tooltip-header {
	min-height: 0;
	padding: 1vmin 3vw;
}

.introjs-skipbutton {
	font-weight: normal;
	width: auto;
	height: auto;
	line-height: 1;
	padding: 1vmin;
}

.introjs-skipbutton::after {
    content: '✖';
}

.introjs-tooltiptext {
	padding: 0 3vw;
}

.introjs-tooltip h1 {
	font-family: 'Mochiy Pop P One', serif;
	font-size: 16pt;
	line-height: 1.25;
	font-weight: normal;
	margin: 0 0 1vmin;
	color: var(--primary-brand-color);
}

.introjs-bullets ul li a {
	background-color: var(--primary-brand-color);
	border: 1px solid var(--secondary-brand-color);
}

.introjs-bullets ul li a.active {
	background-color: var(--secondary-brand-color);
	border-color: var(--primary-brand-color);
}

.introjs-button {
	text-transform: capitalize;
}

.introjs-button.introjs-disabled {
	display: none;
}

.introjs-arrow.top {
	top: -9px;
}

.toast {
	position: fixed;
	bottom: 5vw;
	left: 5vw;
	width: 90vw;
	background-color: var(--background-brand-color-accent);
	padding: 2vmin;
	border-radius: 2vmin;
	box-sizing: border-box;
	font-size: 4vmin;
}

.photo-viewer.photo-viewer-container {
    position: fixed;
    z-index: 100;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--background-brand-color);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.photo-viewer.photo-viewer-container > img.photo-viewer-img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    transform-origin: center center;
}

.photo-viewer.photo-viewer-container > button.close {
    position: absolute;
    top: calc(env(safe-area-inset-top, 0) + 2vmin);
    right: calc(env(safe-area-inset-right, 0) + 2vmin);
    background-color: var(--background-brand-color-accent);
    border-radius: 50%;
    font-size: 7vmin;
    width: 8vmin;
    height: 8vmin;
}

.photo-viewer.photo-viewer-container > button.close::after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    content: '✖';
}

.introjs-arrow.top {
	border-bottom-color: var(--background-brand-color);
}

.introjs-arrow.bottom {
	border-top-color: var(--background-brand-color);
}

a {
	color: var(--primary-brand-color);
}

.introjs-button {
	padding: 2vmin 5vmin;
	border: 1px solid var(--background-brand-color-accent);
	text-shadow: none;
	background-color: var(--background-brand-color-input);
}

a.introjs-button, a.introjs-button:focus {
	color: var(--primary-text-color);
	background-color: var(--background-brand-color-input);
}

.introjs-tooltip p.welcome-icon {
    text-align: center;
}

.introjs-tooltip p.welcome-icon > * {
    font-family: "Font Awesome 6 Pro", serif;
    font-size: 20vmin;
    color: var(--secondary-brand-color);
}

body.dark .introjs-overlay {
	background-color: white;
	opacity: 0.25;
}

body.dark .leaflet-layer,
body.dark .leaflet-control,
body.dark .leaflet-control-attribution {
	filter: invert(100%) hue-rotate(180deg) brightness(95%) contrast(90%);
}