/* Global
 * -------------------------------------------------------------------------- */
:root {
	/* color */
	--c: #ff6699;
	--crgba0: rgba(255,102,153,0);
	--crgba5: rgba(255,102,153,.5);
	--crgba9: rgba(255,102,153,.9);
	--cfb: invert(49%) sepia(97%) saturate(427%) hue-rotate(295deg) brightness(100%) contrast(103%);
}
* {
	/* désactive la sélection et l'affichage du curseur de texte */
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	/* désactive le menu copier/coller sur téléphone */
	-webkit-touch-callout: none;

	/* désactive le highlight et la bordure quand on focus un élément */
	-webkit-tap-highlight-color: rgba(0,0,0,0) !important;
	outline: none;
}

/* sélection du texte */
::-moz-selection { background:var(--c); color:#fff; text-shadow: none; }
::selection { background:var(--c); color:#fff; text-shadow: none; }

/* style de la scrollbar sous Chrome/Edge/Safari */
*::-webkit-scrollbar { width: 7px; }
*::-webkit-scrollbar-track { background: rgba(0,0,0,.15); }
*::-webkit-scrollbar-thumb { background-color: var(--c); border: none; }

html, body {
	margin: 0;
	padding: 0;
	height: 100%;
	min-height: 100%;
	overflow: hidden;
}
body {
	background-color: #111;
	font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
	font-size: 14px;
}
img { max-width: 100%; }
a, a * { cursor: pointer; }
input {
	width: 100%;
	color: #444;
	border: 1px solid #eee;
	background-color: #fff;
}
input:focus {
	outline: 0;
	color: #222;
	border-color: var(--c);
}

/* Leaflet
 * -------------------------------------------------------------------------- */
.leaflet-container {
	cursor: default;
}
.leaflet-container a {
	color: var(--c);
}
.leaflet-tooltip {
	background-color: var(--c);
	border-color: var(--c);
	border-radius: 0;
	color: #fff;
	box-shadow: none;
}
.leaflet-tooltip-top:before {
	border-top-color: var(--c);
}

/* Content
 * -------------------------------------------------------------------------- */
.content, .content *, .content *:after, .content *:before {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-size: 1em;
	font-family: inherit;
	line-height: 1em;
}
.content a {
	color: #111;
	text-decoration: none;
}
.content input {
	padding: 7px 5px;
}
.content h2 {
	margin: 0;
	font-size: 1.2em;
	line-height: 1.5em;
}
.content .alert,
.content .error {
	padding: 7px;
	margin-bottom: 10px;
	background-color: #eee;
	font-size: .9em;
	line-height: 1.2em; 
	color: #444;
}
.content .error {
	background-color: #000;
	color: #fff;
}
.content table, .content caption, .content tbody, .content tfoot, .content thead, .content tr, .content th, .content td {
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: baseline;
}
.content table {
	min-width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}
.content table tr:hover td {
	background-color: var(--c);
	color: #fff;
}
.content th, .content td {
	text-align: left;
	padding: 0 5px;
	line-height: 2em;
}
.content i {
	font-style: italic;
	color: #999;
}
.content .tal { text-align: left; }
.content .tac { text-align: center; }
.content .tar { text-align: right; }
.content .fwb { font-weight: bold; }

/* Map
 * -------------------------------------------------------------------------- */
#map {
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0; }

/* Sidebar Hack
 * -------------------------------------------------------------------------- */
.sidebar-pane {
	position: absolute;
	top: 0;
	bottom: 0;
	padding: 0;
}
.sidebar-content, .sidebar-pane-content {
	overflow: hidden;
}
.sidebar-pane-content {
	position: absolute;
	top: 40px;
	bottom: 0;
	width: 100%;
	padding: 10px;
	overflow-y: auto;
}
.sidebar-header {
	margin: 0;
	padding-left: 10px;
}
.sidebar-tabs > li.active,
.sidebar-tabs > ul > li.active,
.sidebar-header {
	background-color: var(--c);
}
.sidebar-close, .sidebar-close * {
	cursor: pointer;
}

/* Flex
 * -------------------------------------------------------------------------- */
.flex {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: 0px;
}
.flex-header {
	flex: 0 0 auto;
}
.flex-main {
	flex: 1 1 auto;
	overflow: hidden;
	overflow-y: auto;
}

/* Sidebar Basemaps
 * -------------------------------------------------------------------------- */
#sidebar-basemaps .provider {
	margin-bottom: 10px;
}
#sidebar-basemaps .provider:last-child {
	margin-bottom: 0;
}
#sidebar-basemaps .basemaps {
	position: relative;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
#sidebar-basemaps .basemaps li {
	position: relative;
	display: block;
	list-style: none;
	width: 32.33%;
	margin: .5%;
	line-height: 0;
}
#sidebar-basemaps .basemaps a {
	display: block;
	position: relative;
}
#sidebar-basemaps .basemaps a:before {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	width: 100%;
	height: 100%;
	border: 3px solid var(--crgba0);
}
#sidebar-basemaps .basemaps img {
	min-width: 100%;
	height: auto;
}
#sidebar-basemaps .basemaps strong {
	display: block;
	position: absolute;
	bottom: 3px;
	left: 3px;
	right: 3px;
	line-height: 1.5em;
	font-size: 1.1em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding: 0 3px;
	font-weight: normal;
}
#sidebar-basemaps .basemaps i {
	display: block;
	position: absolute;
	top: 3px;
	right: 3px;
	width: 20px;
	height: 20px;
	font-style: normal;
	line-height: 20px;
	font-size: 1.1em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: center;
	font-weight: normal;
	background-color: var(--crgba9);
	color: #fff;
}
#sidebar-basemaps .basemaps a:focus:before,
#sidebar-basemaps .basemaps a:hover:before,
#sidebar-basemaps .basemaps .active a:before {
	border-color: var(--crgba9);
}
#sidebar-basemaps .basemaps a:focus strong,
#sidebar-basemaps .basemaps a:hover strong,
#sidebar-basemaps .basemaps .active a strong {
	background-color: var(--crgba9);
	color: #fff;
}
/* Sidebar Search
 * -------------------------------------------------------------------------- */
#sidebar-search .flex-head {
	padding: 10px;
}
#sidebar-search .flex-main {
	padding: 0 10px 10px 10px;
	background-repeat: no-repeat;
	background-position: 50% 25%;
	background-size: 48px 48px;
}
.onLoadingSearch #sidebar-search .flex-main {
	background-image: url('img/loading-animation.svg');
}
#sidebar-search ul li {
	position: relative;
	list-style: none;
	border-bottom: 1px solid #eee;
}
#sidebar-search ul li:last-child {
	border: none;
}
#sidebar-search .results a {
	display: block;
	position: relative;
	padding: 10px;
	line-height: 16px;
	padding-left: 35px;
	background-repeat: no-repeat;
	background-position: 5px 50%;
	background-size: 24px 24px;
}
#sidebar-search .results a:before {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	width: 100%;
	height: 100%;
	border: 3px solid var(--crgba0);
}
#sidebar-search .results a:focus:before,
#sidebar-search .results a:hover:before,
#sidebar-search .results a.active:before {
	border-color: var(--c);
}
#sidebar-search .results a.relation {
	background-image: url('img/ico-search-relation.svg');
}
#sidebar-search .results a.way {
	background-image: url('img/ico-search-way.svg');
}
#sidebar-search .results a.node {
	background-image: url('img/ico-search-node.svg');
}
#sidebar-search .results a.building {
	background-image: url('img/ico-search-building.svg');
}
#sidebar-search .results a.house {
	background-image: url('img/ico-search-house.svg');
}
#sidebar-search .results a.waterway,
#sidebar-search .results a.natural.water {
	background-image: url('img/ico-search-waterway.svg');
}
#sidebar-search .results a.castle,
#sidebar-search .results a.historic.building,
#sidebar-search .results a.historic.fort {
	background-image: url('img/ico-search-castle.svg');
}
#sidebar-search .results a.natural.peak {
	background-image: url('img/ico-search-peak.svg');
}
#sidebar-search .results a.natural.tree,
#sidebar-search .results a.natural.wood {
	background-image: url('img/ico-search-peak.svg');
}
#sidebar-search .results a.bus_stop,
#sidebar-search .results a.bus_station {
	background-image: url('img/ico-search-bus_stop.svg');
}
#sidebar-search .results a.landuse.industrial {
	background-image: url('img/ico-search-industrial.svg');
}
#sidebar-search .results a.military {
	background-image: url('img/ico-search-military.svg');
}
#sidebar-search .results a.military.danger_area {
	background-image: url('img/ico-search-danger_area.svg');
}
#sidebar-search .results a.amenity.hospital {
	background-image: url('img/ico-search-hospital.svg');
}
#sidebar-search .results a.parking,
#sidebar-search .results a.bicycle_parking,
#sidebar-search .results a.parking_space,
#sidebar-search .results a.parking_entrance,
#sidebar-search .results a.motorcycle_parking {
	background-image: url('img/ico-search-parking.svg');
}
#sidebar-search .results a.bar {
	background-image: url('img/ico-search-bar.svg');
}
#sidebar-search .results a.bbq {
	background-image: url('img/ico-search-bbq.svg');
}
#sidebar-search .results a.cafe {
	background-image: url('img/ico-search-cafe.svg');
}
#sidebar-search .results a.fast_food {
	background-image: url('img/ico-search-fast_food.svg');
}
#sidebar-search .results a.food_court,
#sidebar-search .results a.restaurant {
	background-image: url('img/ico-search-restaurant.svg');
}
#sidebar-search .results a.biergarten,
#sidebar-search .results a.pub {
	background-image: url('img/ico-search-pub.svg');
}
#sidebar-search .results a.ice_cream {
	background-image: url('img/ico-search-ice_cream.svg');
}
#sidebar-search .results a.college,
#sidebar-search .results a.music_school,
#sidebar-search .results a.university,
#sidebar-search .results a.school {
	background-image: url('img/ico-search-school.svg');
}
#sidebar-search .results a.library,
#sidebar-search .results a.toy_library {
	background-image: url('img/ico-search-book.svg');
}
#sidebar-search .results a.atm {
	background-image: url('img/ico-search-cash.svg');
}
#sidebar-search .results a.bank {
	background-image: url('img/ico-search-bank.svg');
}
#sidebar-search .results a.clinic,
#sidebar-search .results a.dentist,
#sidebar-search .results a.doctors,
#sidebar-search .results a.pharmacy,
#sidebar-search .results a.veterinary {
	background-image: url('img/ico-search-pharmacy.svg');
}
#sidebar-search .results a.theatre {
	background-image: url('img/ico-search-theatre.svg');
}
#sidebar-search .results a.aeroway {
	background-image: url('img/ico-search-plane.svg');
}
#sidebar-search .results a.railway {
	background-image: url('img/ico-search-train.svg');
}
#sidebar-search .results a.church,
#sidebar-search .results a.mosque,
#sidebar-search .results a.religious,
#sidebar-search .results a.chapel,
#sidebar-search .results a.synagogue,
#sidebar-search .results a.cathedral,
#sidebar-search .results a.place_of_worship {
	background-image: url('img/ico-search-church.svg');
}
#sidebar-search .results a.fire_station {
	background-image: url('img/ico-search-fire.svg');
}
#sidebar-search .results a.police {
	background-image: url('img/ico-search-police.svg');
}
#sidebar-search .results a.post_office,
#sidebar-search .results a.post_depot,
#sidebar-search .results a.post_box {
	background-image: url('img/ico-search-post.svg');
}









/* Tooltip
 * -------------------------------------------------------------------------- */
.place-tooltip {
	
}
.place-tooltip:after {
	position: absolute;
	content: "";
	width: 92px;
	height: 92px;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: 100%;
	background-image: url('img/loading-animation.svg');
	left: 50%;
	bottom: 0;
	transform: translateX(-50%) translateY(70%);
	z-index: -100;
	opacity: 0;
	transition: opacity .5s;
}
.onLoadingGeojson .place-tooltip:after {
	opacity: .75;
}

/* Markers
 * -------------------------------------------------------------------------- */
.map-marker {
	filter: var(--cfb);
}

/* Clusters
 * -------------------------------------------------------------------------- */
.map-cluster {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 50% 50%;
}
.map-cluster .svg {
	width: 100%;
	font-weight: bold;
}
.map-cluster .flag {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 25%;
	min-width: 16px;
}
.map-cluster-nuclear_power_plants {
	background-image: url('img/ico-centrale.png');
}

/* Cross
 * -------------------------------------------------------------------------- */
#cross, #cross:before, #cross:after {
	position: absolute;
	z-index: 1000;
	height: 48px;
	width: 2px;
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(-50%);
	background: var(--c);
	border: 1px solid #fff;
}
#cross:before, #cross:after {
	content: '';
	height: 2px;
	width: 48px;
}
#cross:after {
	height: 2px;
	width: 2px;
}
#cross {
	display: none;
	opacity: 0;
	transition: opacity 1s;
}
.onContentLoaded #cross {
	opacity: 1;
}

/* Loading
 * -------------------------------------------------------------------------- */
.leaflet-bottom.leaflet-left {
	z-index: 10000;
}
#loading {
	--lw: 64px;
	width: var(--lw);
	height: var(--lw);
}
#loading-progress {
	display: none;
	position: absolute;
	z-index: 1;
	bottom: 31%;
	left: 50%;
	transform: translateX(-50%);
	color: #fff;
	font-size: calc(var(--lw) / 5);
	line-height: 1;
}
#loading-progress-txt {
	font-weight: bold;
}
.onLoadingProgress #loading-progress {
	display: block;
}
#loading-result {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-55%) rotateZ(45deg);
	width: 70%;
	height: 70%;
	opacity: 0;
	transition: opacity 1s;
}
.onLoading #loading-result,
.onLoadingData #loading-result,
.onLoadingProgress #loading-result {
	opacity: 1;
}
#loading-result .cube {
	position: relative;
	float: left;
	width: 50%;
	height: 50%;
	transform: scale(1.1);
}
#loading-result .cube:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #f69;
	animation: loading-labomedia 2.4s infinite linear both;
	transform-origin: 100% 100%;
}
#loading-result .cube-2 {
	transform: scale(1.1) rotateZ(90deg);
}
#loading-result .cube-3 {
	transform: scale(1.1) rotateZ(180deg);
}
#loading-result .cube-4 {
	transform: scale(1.1) rotateZ(270deg);
}
#loading-result .cube-2:before {
	animation-delay: 0.3s;
}
#loading-result .cube-3:before {
	animation-delay: 0.6s;
}
#loading-result .cube-4:before {
	animation-delay: 0.9s;
}
@keyframes loading-labomedia {
	0%, 10% {
		transform: perspective(140px) rotateX(-180deg);
		opacity: 0;
	} 25%, 75% {
		transform: perspective(140px) rotateX(0deg);
		opacity: 1;
	} 90%, 100% {
		transform: perspective(140px) rotateY(180deg);
		opacity: 0;
	}
}

/* Labomedia
 * -------------------------------------------------------------------------- */
#logo-labomedia {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 1;
	transition: opacity 2s;
}
#logo-labomedia, #logo-labomedia * {
	cursor: pointer;
}
.onLoadingProgress #logo-labomedia,
.onLoadingData #logo-labomedia,
.onLoading #logo-labomedia {
	opacity: 0;
}