.etw-map {
    --etw-map-primary: #2457a7;
    --etw-map-panel: #eaf2fb;
    --etw-map-height: 620px;
	--etw-map-search-width: 100%;
	--etw-map-filter-width: 25%;
	--etw-map-reset-width: 25%;
	--etw-map-filter-gap: 10px;
	--etw-map-cards-width: clamp(280px, 34vw, 440px);
	--etw-map-cards-height: var(--etw-map-height);
	--etw-map-cards-effective-width: var(--etw-map-cards-width);
	--etw-map-cards-effective-height: var(--etw-map-cards-height);
	--etw-map-cards-gap: 0px;
	--etw-map-cards-duration: 450ms;
	--etw-map-cards-layout-display: grid;
	--etw-map-cards-layout-areas: "map cards";
	--etw-map-cards-layout-columns: minmax(0, 1fr) var(--etw-map-cards-effective-width);
	--etw-map-cards-layout-rows: none;
	--etw-map-cards-position: static;
	--etw-map-cards-left: auto;
	--etw-map-cards-right: auto;
	--etw-map-cards-top: auto;
	--etw-map-cards-bottom: auto;
	--etw-map-cards-location-transform: translateX(100%);
	--etw-map-cards-inactive-transform: var(--etw-map-cards-location-transform);
	--etw-map-cards-active-transform: translate(0, 0);
	--etw-map-cards-z-index: auto;
    color: #1f2933;
    font-family: inherit;
    position: relative;
}

.etw-map *, .etw-map *::before, .etw-map *::after { box-sizing: border-box; }
.etw-map .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.etw-map button:focus-visible, .etw-map input:focus-visible, .etw-map select:focus-visible, .etw-map .leaflet-marker-icon:focus-visible, .etw-map .leaflet-control a:focus-visible { outline: 3px solid var(--etw-map-primary); outline-offset: 3px; }

.etw-map__filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--etw-map-filter-gap);
    margin-bottom: 1rem;
}

.etw-map__filters[hidden] { display: none; }
.etw-map__field { flex: 1 1 calc(var(--etw-map-filter-width) - var(--etw-map-filter-gap)); min-width: min(160px, 100%); }
.etw-map__field--search { flex: 0 0 min(var(--etw-map-search-width), 100%); }

.etw-map__field input, .etw-map__field select, .etw-map__reset {
    background: #fff;
    border: 1px solid #b8c2cc;
    border-radius: 6px;
    font: inherit;
    min-height: 44px;
    padding: .55rem .75rem;
    width: 100%;
}

.etw-map__field input:focus, .etw-map__field select:focus { border-color: var(--etw-map-primary); outline: 2px solid color-mix(in srgb, var(--etw-map-primary) 25%, transparent); }
.etw-map__reset { background: var(--etw-map-primary); border-color: var(--etw-map-primary); color: #fff; cursor: pointer; padding-inline: 1rem; }
.etw-map__filters .etw-map__reset { flex: 1 1 calc(var(--etw-map-reset-width) - var(--etw-map-filter-gap)); width: auto; }
.etw-map__filters-toggle { background: var(--etw-map-primary); border: 1px solid var(--etw-map-primary); border-radius: 6px; color: #fff; cursor: pointer; font: inherit; margin-bottom: var(--etw-map-filter-gap); min-height: 44px; padding: .55rem 1rem; }
.etw-map__filters-toggle[hidden] { display: none; }

.etw-map__layout {
	display: var(--etw-map-cards-layout-display);
	grid-template-areas: var(--etw-map-cards-layout-areas);
	grid-template-columns: var(--etw-map-cards-layout-columns);
	grid-template-rows: var(--etw-map-cards-layout-rows);
    min-height: var(--etw-map-height);
    position: relative;
}

.etw-map--no-cards .etw-map__layout { display: grid; grid-template-areas: "map"; grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }

.etw-map--cards-inside,
.etw-map-cards-mode-inside .etw-map { --etw-map-cards-layout-display: grid; --etw-map-cards-position: static; --etw-map-cards-inactive-transform: var(--etw-map-cards-location-transform); --etw-map-cards-active-transform: translate(0, 0); --etw-map-cards-horizontal-height: min(320px, var(--etw-map-height)); --etw-map-cards-z-index: auto; }
.etw-map--cards-outside,
.etw-map-cards-mode-outside .etw-map { --etw-map-cards-layout-display: block; --etw-map-cards-position: absolute; --etw-map-cards-inactive-transform: translate(0, 0); --etw-map-cards-active-transform: var(--etw-map-cards-location-transform); --etw-map-cards-horizontal-height: min(320px, 45%); --etw-map-cards-z-index: 0; }

.etw-map--cards-right,
.etw-map-cards-location-right .etw-map { --etw-map-cards-layout-areas: "map cards"; --etw-map-cards-layout-columns: minmax(0, 1fr) var(--etw-map-cards-effective-width); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: auto; --etw-map-cards-right: 0; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(100%); }
.etw-map--cards-left,
.etw-map-cards-location-left .etw-map { --etw-map-cards-layout-areas: "cards map"; --etw-map-cards-layout-columns: var(--etw-map-cards-effective-width) minmax(0, 1fr); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(-100%); }
.etw-map--cards-top,
.etw-map-cards-location-top .etw-map { --etw-map-cards-layout-areas: "cards" "map"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-cards-effective-height) var(--etw-map-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateY(-100%); }
.etw-map--cards-bottom,
.etw-map-cards-location-bottom .etw-map { --etw-map-cards-layout-areas: "map" "cards"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-height) var(--etw-map-cards-effective-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: auto; --etw-map-cards-bottom: 0; --etw-map-cards-location-transform: translateY(100%); }

.etw-map__map { grid-area: map; height: var(--etw-map-height); min-height: 260px; width: 100%; z-index: 1; }
.etw-map__cards {
	background: var(--etw-map-panel);
	bottom: var(--etw-map-cards-bottom);
	grid-area: cards;
	height: var(--etw-map-cards-effective-height);
	left: var(--etw-map-cards-left);
	opacity: 0;
	overflow: auto;
	padding: 1rem;
	pointer-events: none;
	position: var(--etw-map-cards-position);
	right: var(--etw-map-cards-right);
	top: var(--etw-map-cards-top);
	transform: var(--etw-map-cards-inactive-transform);
	transition: transform var(--etw-map-cards-duration) ease, opacity var(--etw-map-cards-duration) ease, visibility 0s linear var(--etw-map-cards-duration);
	visibility: hidden;
	width: var(--etw-map-cards-effective-width);
	will-change: transform, opacity;
	z-index: var(--etw-map-cards-z-index);
}
.etw-map__cards.etw-active {
	opacity: 1;
	pointer-events: auto;
	transform: var(--etw-map-cards-active-transform);
	transition-delay: 0s;
	visibility: visible;
}
.etw-map__cards-list { display: grid; gap: var(--etw-map-cards-gap); grid-template-columns: minmax(0, 1fr); }
.etw-map__cards-more { background: var(--etw-map-primary); border: 1px solid var(--etw-map-primary); border-radius: 6px; color: #fff; cursor: pointer; display: block; margin: 1rem auto 0; padding: .65rem 1.1rem; }
.etw-map__cards-more[hidden] { display: none; }


.etw-map__status { background: rgba(255,255,255,.94); border-radius: 6px; left: 1rem; padding: .65rem 1rem; position: absolute; top: 1rem; z-index: 500; }
.etw-map__status--error { color: #b42318; }
.etw-map__marker-wrap { background: transparent; border: 0; }
.etw-map__marker { background: var(--etw-map-primary); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 5px rgba(0,0,0,.4); display: block; height: 20px; width: 20px; }
.etw-map .marker-cluster div { background: var(--etw-map-primary); color: #fff; }

/* Chaque terme des taxonomies utilisées comme filtres ajoute des modificateurs
   aux marqueurs, aux popups et aux fiches utilisant un Loop Item. */

@media (max-width: 900px) {
	.etw-map--cards-inside.etw-map--cards-left,
	.etw-map--cards-inside.etw-map--cards-right { --etw-map-cards-layout-areas: "map" "cards"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-height) auto; --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: auto; }
	.etw-map--cards-inside .etw-map__cards { max-height: 480px; }
	.etw-map--cards-outside.etw-map--cards-left,
	.etw-map--cards-outside.etw-map--cards-right { --etw-map-cards-effective-width: min(360px, calc(100% - 2rem)); }
}

@media (max-width: 1024px) {
	.etw-map-cards-tablet-mode-inside .etw-map { --etw-map-cards-layout-display: grid; --etw-map-cards-position: static; --etw-map-cards-inactive-transform: var(--etw-map-cards-location-transform); --etw-map-cards-active-transform: translate(0, 0); --etw-map-cards-horizontal-height: min(320px, var(--etw-map-height)); --etw-map-cards-z-index: auto; }
	.etw-map-cards-tablet-mode-outside .etw-map { --etw-map-cards-layout-display: block; --etw-map-cards-position: absolute; --etw-map-cards-inactive-transform: translate(0, 0); --etw-map-cards-active-transform: var(--etw-map-cards-location-transform); --etw-map-cards-horizontal-height: min(320px, 45%); --etw-map-cards-z-index: 0; }
	.etw-map-cards-tablet-location-right .etw-map { --etw-map-cards-layout-areas: "map cards"; --etw-map-cards-layout-columns: minmax(0, 1fr) var(--etw-map-cards-effective-width); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: auto; --etw-map-cards-right: 0; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(100%); }
	.etw-map-cards-tablet-location-left .etw-map { --etw-map-cards-layout-areas: "cards map"; --etw-map-cards-layout-columns: var(--etw-map-cards-effective-width) minmax(0, 1fr); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(-100%); }
	.etw-map-cards-tablet-location-top .etw-map { --etw-map-cards-layout-areas: "cards" "map"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-cards-effective-height) var(--etw-map-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateY(-100%); }
	.etw-map-cards-tablet-location-bottom .etw-map { --etw-map-cards-layout-areas: "map" "cards"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-height) var(--etw-map-cards-effective-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: auto; --etw-map-cards-bottom: 0; --etw-map-cards-location-transform: translateY(100%); }
}

@media (max-width: 767px) {
	.etw-map-cards-mobile-mode-inside .etw-map { --etw-map-cards-layout-display: grid; --etw-map-cards-position: static; --etw-map-cards-inactive-transform: var(--etw-map-cards-location-transform); --etw-map-cards-active-transform: translate(0, 0); --etw-map-cards-horizontal-height: min(320px, var(--etw-map-height)); --etw-map-cards-z-index: auto; }
	.etw-map-cards-mobile-mode-outside .etw-map { --etw-map-cards-layout-display: block; --etw-map-cards-position: absolute; --etw-map-cards-inactive-transform: translate(0, 0); --etw-map-cards-active-transform: var(--etw-map-cards-location-transform); --etw-map-cards-horizontal-height: min(320px, 45%); --etw-map-cards-z-index: 0; }
	.etw-map-cards-mobile-location-right .etw-map { --etw-map-cards-layout-areas: "map cards"; --etw-map-cards-layout-columns: minmax(0, 1fr) var(--etw-map-cards-effective-width); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: auto; --etw-map-cards-right: 0; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(100%); }
	.etw-map-cards-mobile-location-left .etw-map { --etw-map-cards-layout-areas: "cards map"; --etw-map-cards-layout-columns: var(--etw-map-cards-effective-width) minmax(0, 1fr); --etw-map-cards-layout-rows: none; --etw-map-cards-effective-width: var(--etw-map-cards-width); --etw-map-cards-effective-height: var(--etw-map-cards-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateX(-100%); }
	.etw-map-cards-mobile-location-top .etw-map { --etw-map-cards-layout-areas: "cards" "map"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-cards-effective-height) var(--etw-map-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: 0; --etw-map-cards-bottom: auto; --etw-map-cards-location-transform: translateY(-100%); }
	.etw-map-cards-mobile-location-bottom .etw-map { --etw-map-cards-layout-areas: "map" "cards"; --etw-map-cards-layout-columns: minmax(0, 1fr); --etw-map-cards-layout-rows: var(--etw-map-height) var(--etw-map-cards-effective-height); --etw-map-cards-effective-width: 100%; --etw-map-cards-effective-height: var(--etw-map-cards-horizontal-height); --etw-map-cards-left: 0; --etw-map-cards-right: auto; --etw-map-cards-top: auto; --etw-map-cards-bottom: 0; --etw-map-cards-location-transform: translateY(100%); }
}

@media (prefers-reduced-motion: reduce) {
	.etw-map__cards { transition-duration: 0.01ms; }
}
