/* Common */
.map-loading-overlay {
	display: none;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255,255,255,0.8);
	z-index: 100;
}
.map-loading-overlay.onload {
	display: block;
}
.map-loading {
	position: absolute;
	width: 200px;
	height: 60px;
	top: 50%;
	left: 50%;
	margin: -30px 0 0 -100px;
	text-align: center;
}
.loading-txt {
	font-family: "UniversLTW01-57Condense 723821",sans-serif;
	font-size: 1.2em;
	color: rgba(0,61,113,0.75);
	text-transform: uppercase;
	margin-top: 15px;
}
.loading-bullet {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin: 5px 3px 0;
	border-bottom: 7px solid rgba(0,61,113,0.25);
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
}
.onload .loading-bullet {
	transform: translateY(0);
	animation: wave 2s infinite ease-in-out;
}
.onload .loading-bullet:nth-child(1) {
	animation-delay: 0s;
}
.onload .loading-bullet:nth-child(2) {
	animation-delay: 0.1s;
}
.onload .loading-bullet:nth-child(3) {
	animation-delay: 0.2s;
}
@keyframes wave {
	0%, 60%, 100% {
		border-bottom-color: rgba(0,61,113,0.25);
		transform: translateY(0);
	}
	20% {
		border-bottom-color: rgba(0,61,113,0.75);
		transform: translateY(-12px);
	}
	40% {
		border-bottom-color: rgba(0,61,113,0.75);
		transform: translateY(+12px);
	}
}


select {
	-webkit-appearance: none;
	-moz-appearance: none;
    cursor: pointer;
    outline: none;
}
select::ms-expand {
	display: none;
}


/* LOCATOR */
.storelocator {
	font-size: 10px; /* reset */
}
.storelocator-container {
	position: relative;
	background-color: #B3D1FF;
	max-height: 640px;
}

/* Lists container */
.lists-container {
	position: absolute;
	top: 5px;
	left: 0;
	width: 100%;
	z-index: 5;
}
.lists {
	max-width: 980px;
	margin: auto;
	background-color: #fff;
	padding: 5px;
}
.storelocator select {
    font-family: "UniversLTW01-67BoldCn",sans-serif;
	color: #003d71;
    font-size: 1.1em;
    text-transform: uppercase;
    border: none;
    padding: 0 5px;
    margin-right: 5px;
    position: relative;
    min-width: 20%;
    height: 30px;
    background: url(../images/storelocator/icon-select.png) no-repeat right center #e2e6ea;
    background-size: 30px 5px;
}
.storelocator optgroup {
	font-weight: normal;
}
.storelocator option {
	font-family: "UniversLTW01-57Condense 723821", sans-serif;
	border-top: 1px solid #fff;
	padding: 3px 5px;
}
.storelocator option:first-child {
	border-top: none;
}
.cities {
	display: none;
}
.cities.on {
	display: inline-block;
}
.boutiques-results {
	display: inline-block;
	padding: 0 20px;
	margin: 0;
	font-family: "UniversLTW01-57Condense 723821", sans-serif;
	font-size: 1.1em;
	line-height: 20px;
	text-transform: uppercase;
}
.lists-legend {
	display: inline-block;
	padding: 0 20px;
	margin: 0;
}
.legend {
	display: inline-block;
	vertical-align: middle;
	font-family: "UniversLTW01-57Condense 723821", sans-serif;
	font-size: 1.1em;
	line-height: 20px;
	text-transform: uppercase;
	margin-right: 20px;
}
.legend-icon {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	position: relative;
	top: -2px;
	margin-right: 5px;
}
.legend-icon:after {
	content: '';
	position: absolute;
	top: 7px;
	left: 1px;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
}
.legend.flagship { color: #D20024;}
.legend.factory { color: #003D71;}
.legend.wholesale { color: #668BAA;}
.legend-icon.flagship { background-color: #D20024;}
.legend-icon.factory { background-color: #003D71;}
.legend-icon.wholesale { background-color: #668BAA;}
.legend-icon.flagship:after { border-top: 8px solid #D20024;}
.legend-icon.factory:after { border-top: 8px solid #003D71;}
.legend-icon.wholesale:after { border-top: 8px solid #668BAA;}

.geolocalize {
	display: none;
	position: relative;
	vertical-align: middle;
	text-decoration: none;
}
.geolocalize.enable {
	display: inline-block;
}
.geolocalize-icon {
	width: 24px;
	height: 24px;
	fill: #e2e6ea;
	transition: fill 0.5s;
}
.load .geolocalize-icon {
	animation: map-loading 3s infinite;
}
@keyframes map-loading {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}
.geolocalize:hover .geolocalize-icon,
.active .geolocalize-icon {
	fill: #003d71;
}
.geolocalize-tooltip {
    display: none;
    position: absolute;
    top: 35px;
    left: 50%;
    font-size: 1.1em;
    color: #fff;
	background-color: #003d71;
    padding: 5px 10px;
    white-space: nowrap;
    transform: translateX(-50%);
}
.geolocalize-tooltip:after {
    content: '';
    position: absolute;
    top: -5px;
    left: 50%;
    border-bottom: 5px solid #003d71;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    transform: translateX(-50%);
}
.geolocalize:hover .tooltip-alert {
	display: block;
}
.geolocalize:hover .tooltip-error.on {
	display: none;
}
.tooltip-error {
	background-color: #D20024;
	color: #fff;
	display: none;
}
.tooltip-error.on {
	display: block;
}
.tooltip-error:after {
	border-bottom-color: #D20024;
}

/* switch views */
.switch-view {
	display: none;
}
.views {
	height: 100%;
}

/* boutiques container */
.boutiques-container {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: 40%;
	height: 100%;
	margin-left: -100%;
	background-color: #fff;
	background-color: rgba(255,255,255,0.85);
	margin-left: -40%;
	transition: background 0.5s, margin 0.5s;
	box-shadow: 0 0 5px rgba(0,0,0,0.5);
}
.boutiques-container:hover {
	background-color: rgba(255,255,255,1);
}
.boutiques-container.open {
	margin-left: 0;
}
.boutiques-toggle {
	display: none;
	position: absolute;
	top: 50%;
	right: -70px;
	width: 70px;
	height: 90px;
	margin-top: -45px;
	background: url(../images/storelocator/icon-toggle.png) no-repeat;
	background-size: cover;
	cursor: pointer;
}
.boutiques-toggle.active {
	display: block;
}
.boutiques {
	padding: 20px 0;
	box-sizing: border-box;
	height: 100%;
	overflow: auto;
}
.boutique {
	padding: 20px 20px 20px 60px;
	border-top: 1px dotted #c7c7c7;
	position: relative;
	display: none
}
.boutique.on {
	display: block;
}
.boutique:first-child,
.boutique.off + .boutique.on {
	border-top: 0;
}
.boutique-icon {
	position: absolute;
	top: 20px;
	left: 25px;
}
.boutique-icon img {
	width: 30px;
}
.boutique-icon-tooltip {
    display: none;
	position: absolute;
	top: -35px;
	left: -10px;
	background-color: #e2e6ea;
    font-size: 1.1em;
    color: #003d71;
    padding: 5px 10px;
    white-space: nowrap;
}
.boutique-icon-tooltip:after {
    content: '';
    border-top: 5px solid #e2e6ea;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    position: absolute;
    bottom: -5px;
    left: 17px;
}
.boutique-icon:hover .boutique-icon-tooltip {
	display: block;
}

.boutique-address .line {
	display: block;
}
.address-name {
    font-family: "UniversLTW01-67BoldCn",sans-serif;
    font-weight: normal;
    font-size: 1.8em;
    text-transform: uppercase;
}
.address-type {
    font-family: "UniversLTW01-67BoldCn",sans-serif;
    font-size: 1.1em;
    font-style: normal;
    color: #d20024;
    text-transform: uppercase;
}
.address-street,
.address-city,
.address-country,
.boutique-phone {
    font-size: 1.2em;
}
.boutique-opening,
.boutique-msg {
    font-size: 1.2em;
    margin-bottom: 20px;
}
.opening-title {
	display: block;
	font-weight: bold;
}
.boutique-distance {
	display: none;
	font-style: italic;
	color: #668baa;
}
.ranked .boutique-distance {
	display: block;
}

.boutiques-more-results {
	text-align: center;
	padding: 20px 0;
	display: none;
}
.boutiques-more-results.active {
	display: block;
}
.toggle-add-infos {
	border: none;
	background: transparent;
	padding: 0;
	text-decoration: underline;
	color: #003d71;
}
.toggle-add-infos.open {
	color: #668baa;
}
.boutique-add-infos {
	display: none;
	padding: 20px 0;
}
.boutique-picture img {
	max-width: 100%;
}
.more-results {
	display: inline-block;
	background-color: #003d71;
	font-family: "UniversLTW01-67BoldCn",sans-serif;
	font-size: 1.2em;
	color: #fff;
	text-transform: uppercase;
	text-decoration: none;
	padding: 6px 15px;
}


/* map container */
.map-container,
.map {
	width: 100%;
	height: 100%;
}
.gm-style div[style] {
	box-sizing: content-box;
}
.map .boutique {
	font-size: 10px;
	padding: 0;
	border-top: 0;
	display: block;
}
.map .boutique-icon {
	display: none;
}
.map .toggle-add-infos {
	display: none;
}

@media only screen and (max-width: 980px) {
	.title_lvl1 {
		font-size: 1.8em;
		margin-bottom: 0;
	}
	.container_catalog,
	.container_footer {
		background: #fff;
		position: relative;
		z-index: 30;
	}
	/* storelocator container */
	.storelocator-container {
		max-height: none;
		background-color: #fff;
	}
	/* lists container */
	.lists-container {
		position: static;
	}
	.lists {
		padding: 20px 20px 10px;
	}
	.list {
		width: 100%;
		margin-bottom: 10px;
		padding: 10px 5px;
	}
	.lists-legend {
		display: none;
	}
	.geolocalize {
		margin-bottom: 10px;
	}
	.geolocalize.enable {
		display: block;
	}
	.geolocalize.active {
		opacity: 0.35;
	}
	.geolocalize-icon {
		float: right;
		width: 20px;
		height: 20px;
		margin: 5px 10px;
	}
	.geolocalize-icon,
	.geolocalize:hover .geolocalize-icon,
	.active .geolocalize-icon {
		fill: #fff;
	}
	.geolocalize-tooltip {
		position: static;
		transform: none;
	}
	.tooltip-alert {
		display: block;
		font-family: "UniversLTW01-67BoldCn",sans-serif;
		line-height: 20px;
		text-transform: uppercase;
	}
	.geolocalize-tooltip:after {
		content: none;
	}
	.geolocalize:hover .tooltip-error.on {
		display: block;
	}
	.tooltip-error {
		background-color: transparent;
		color: #D20024;
	}
	.boutiques-results {
		display: block;
		text-align: center;
	}

	/* switch views */
	.switch-view {
		display: block;
		background: #fff;
		padding: 0 20px;
	}
	.switch-view.fixed {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 20;
	}
	.switch-btn {
		display: block;
		width: 50%;
		float: left;
		text-align: center;
		padding: 10px;
		color: #003d71;
		opacity: 0.5;
	}
	.switch-btn.active {
		opacity: 1;
		border-bottom: 2px solid #003d71;
	}
	.switch-icon {
		display: block;
		width: 28px;
		height: 28px;
		margin: auto;
		background: url(../images/storelocator/icon-tabs.png) no-repeat;
		background-size: cover;
	}
	.icon-list {
		background-position: center left;
	}
	.icon-map {
		background-position: center right;
	}
	.views {
		position: relative;
	}
	/* boutiques container */
	.boutiques-container {
		box-shadow: none;
		margin-left: -100%;
		width: 100%;
		background-color: #fff;
		position: relative;
	}
	.boutiques-container.open {
		margin-left: -100%;
	}
	.boutiques-container.current {
		margin-left: 0;
	}
	.boutiques-toggle.active {
		display: none;
	}
	.boutiques {
		height: auto;
	}
	/* map */
	.map-container, .map {
		position: absolute;
		top: 0;
		left: 0;
		height: 200px;
	}
	.map.fixed {
		position: fixed;
		top: 50px;
	}
}