.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;
    color: #1f2933;
    font-family: inherit;
    position: relative;
}

.etw-map *, .etw-map *::before, .etw-map *::after { box-sizing: border-box; }

.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: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    min-height: var(--etw-map-height);
    position: relative;
}

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

.etw-map__map { height: var(--etw-map-height); min-height: 260px; width: 100%; z-index: 1; }
.etw-map__cards { background: var(--etw-map-panel); height: var(--etw-map-height); overflow: auto; padding: 1rem; }

.etw-map-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.08); margin-bottom: 1rem; padding: 1.1rem; }
.etw-map-card--popup { box-shadow: none; margin: 0; padding: .35rem; width: min(300px, 65vw); }
.etw-map-card--template { padding: 0; }
.etw-map-card__header { align-items: center; display: flex; gap: 1rem; }
.etw-map-card__logo { height: 58px; max-width: 90px; object-fit: contain; }
.etw-map-card__title { font-size: 1.1rem; line-height: 1.25; margin: 0; }
.etw-map-card__address, .etw-map-card__description, .etw-map-card__contact { font-size: .92rem; margin: .7rem 0 0; }
.etw-map-card__description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.etw-map-card__link { color: var(--etw-map-primary); display: inline-block; font-weight: 700; margin-top: .8rem; }

.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 de la taxonomie type ajoute .etw-map__marker--{slug-du-terme}.
   Le panneau de fiches reçoit .etw-active après interaction lorsqu'il contient des résultats. */

@media (max-width: 900px) {
    .etw-map__layout { grid-template-columns: 1fr; }
    .etw-map__cards { height: auto; max-height: 480px; }
}


