@keyframes bounce {
	0%, 100% {
		-webkit-transform: translateY(0);
		transform:         translateY(0)
	}
	50% {
		-webkit-transform: translateY(-10px);
		transform:         translateY(-10px)
	}
}

#map {
	width: 100%;
	height: 90vh;
	max-height: 500px;
}

#map .marker, #map .marker .icon {
	position: relative;
	z-index: 5;
}
#map .marker:hover, #map .marker:hover .tooltip, #map .marker.active, #map .marker.active .tooltip {
	z-index: 100;
}
#map .marker.active .icon {
	-webkit-animation: bounce 0.75s cubic-bezier(0, 0.4, 0.4, 1) infinite;
	animation: bounce 0.75s cubic-bezier(0, 0.4, 0.4, 1) infinite;
}
#map .marker .tooltip {
	display: none;
	background: #ffffff;
	font-size: 13px;
	line-height: 1.4em;
	padding: 12px;
	white-space: nowrap;
	position: absolute;
	left: 50%;
	top: 100%;
	z-index: 100;
	-webkit-transform: translate(-50%, 12px);
	-ms-transform: translate(-50%, 12px);
	transform: translate(-50%, 12px);
	-webkit-box-shadow: 0 2px 7px 1px rgba(0, 0, 0, 0.3);
	box-shadow: 0 2px 7px 1px rgba(0, 0, 0, 0.3);
}
#map .marker:hover .tooltip {
	display: inline-block;
}
#map .marker .tooltip > .arrow {
	display: inline-block;
	width: 25px;
	height: 12px;
	position: absolute;
	left: 50%;
	top: 0;
	-webkit-transform: translate(-50%, -12px);
	-ms-transform: translate(-50%, -12px);
	transform: translate(-50%, -12px);
	-webkit-filter: drop-shadow(0 -4px 2px rgba(178, 178, 178, 0.4));
	filter: drop-shadow(0 -4px 2px rgba(178, 178, 178, 0.4));
}
#map .marker .tooltip > .arrow:after {
	content: "";
	background: #ffffff;
	width: 25px;
	height: 12px;
	position: absolute;
	left: 0;
	bottom: -1px;
	-webkit-clip-path: polygon(0 100%, 50% 0, 100% 100%);
	clip-path: polygon(0 100%, 50% 0, 100% 100%);
}

#places-input {
	width: 100%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

#map .close, #show-filters {
	background: url('img/icon-close.svg') no-repeat center center;
	color: #000000;
	text-decoration: none;
	width: 39px;
	height: 39px;
	line-height: 39px;
	text-indent: 39px;
	overflow: hidden;
	opacity: 0.8;
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
}
#map .close:hover, #map .close:active {
	opacity: 1;
}
#show-filters {
	display: none;
	background-image: url('img/icon-filter.svg');
}

#map .map-block {
	background: #ffffff;
	border: 1px solid #cfd7da;
	overflow-y: auto;
	position: relative;
	font-size: 14px;
	line-height: 1.5em;
	width: 280px;
	margin: 14px 14px 0 14px;
	z-index: 100;
	-webkit-box-shadow: 0 0 4px 0 rgba(28, 28, 45, 0.1);
	box-shadow: 0 0 4px 0 rgba(28, 28, 45, 0.1);
}
#map .map-block .close {
	position: absolute;
	right: 0;
	top: 0;
}
#map #map-places .close {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
}
#map .place-states {
	float: none;
	display: inline-block;
	width: 100%;
	font-size: 0.9em;
	clear: both;
	list-style: none;
	padding: 0;
	margin: 0;
	vertical-align: top;
}
#map .title {
	float: none;
	display: block;
	font-weight: bold;
	font-size: 1.1em;
	line-height: 1.2em;
	color: #000000;
	padding: 0 2em 0 0;
	margin: 0 0 1em 0;
}
#map .place-section {
	margin-bottom: 1em;
}
#map .place-header {
	display: block;
	color: #000000;
}
#map .place-control {
	padding-top: 0.5em;
}
#map .place-item {
	background-color: #ffffff;
	border-bottom: 1px solid #cfd7da;
	cursor: pointer;
	-webkit-transition: all 0.15s linear 0s;
	transition: all 0.15s linear 0s;
}
#map .place-item:hover {
	background-color: #f6f6f6;
}
#map .place-item > .inner {
	padding: 0.75em 1em;
}
#map .place-item .place-header {
	font-size: 1.1em;
	line-height: 1.25em;
	margin-bottom: 0.25em;
}
#map .place-item .place-states {
	margin-top: 0.5em;
}
#map .btn {
	padding: 0.6em 0.85em 0.5em;
}
#map .places-count {
	font-size: 12px;
	text-align: right;
	line-height: 1.2em;
	padding: 10px 12px;
}
#map #place-desc {
	padding: 12px 14px 1px 14px;
}
#map #places-list, #map #place-description {
	position: absolute;
	left: 0 !important;
	right: auto !important;
	top: 58px !important;
	bottom: auto !important;
	width: 280px;
	max-height: calc(100% - 72px);
	margin-top: 0;
	z-index: 99;
}
#map #place-description {
	max-height: calc(100% - 86px);
	margin-top: 14px;
	z-index: 98;
}
#map #place-description.spaced {
	margin-left: 310px;
}

#map-filters {
	font-size: 13px;
	line-height: 1.5em;
	margin: 14px;
}
#map-filters .input-checkbox {
	width: auto;
	padding: 0.6em 0.8em 0.55em 0.6em;
	margin: 0 0.4em 0.4em 0;
}
#map-filters .input-checkbox input {
	float: none;
	position: relative;
	left: auto;
	top: auto;
}
#map-filters .input-checkbox.active {
	background-color: #ffffff;
}
#map-filters .input-checkbox span {
	opacity: 0.65;
}
#map-filters .input-checkbox.active span {
	opacity: 1; 
}
#map-filters .input-checkbox span.checkbox {
	height: 16px;
}
#map-filters .input-checkbox span.label {
	line-height: 18px;
}
#map-radius {
	font-size: 12px;
	width: 350px;
	padding-bottom: 28px;
	margin-bottom: 14px;
	position: relative;
	z-index: 99;
}
#map-radius input {
	width: 100%;
}
#radius-value {
	background: rgba(255, 255, 255, 0.75);
	color: #000000;
	padding: 0.4em 0.5em;
	position: absolute;
	left: 31%;
	bottom: 0;
	white-space: nowrap;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

input[type=range] {
	accent-color: #e95b12;
}

@media (max-width: 950px) {
	#map {
		width: 107.4%;
		margin-left: -3.7%;
		margin-right: -3.7%;
	}
}
@media (min-width: 701px) {
	#map-filters {
		display: block !important;
	}	
}
@media (max-width: 700px) {
	#show-filters {
		display: inline-block;
	}
	#map-filters {
		display: none;
		margin-top: 0;
		left: 0 !important;
		top: 72px !important;
		z-index: 100;
	}
	#map-filters.active {
		display: block;
	}
}
@media (max-width: 640px) {
	#map #place-description {
		z-index: 99;
	}
	#map #place-description.spaced {
		margin-left: 14px;
		-webkit-box-shadow: 0 0 10px 0 rgba(28, 28, 45, 0.4);
		box-shadow: 0 0 10px 0 rgba(28, 28, 45, 0.4);
	}
}
@media (max-width: 500px) {
	#map-radius {
		width: 70%;
	}
}
