/* ESE — Carte des praticiens */
.ese-carte {
	--ese-b: #8e1c1c;
	--ese-b-dark: #5e1212;
	--ese-cream: #f4efe9;
	--ese-sand: #dfd9d2;
	--ese-ink: #2e2a27;
	--ese-grey: #7a716b;
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr);
	height: var(--ese-carte-h, 640px);
	border-radius: 24px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 18px 40px -22px rgba(46, 42, 39, .35);
	border: 1px solid rgba(46, 42, 39, .08);
	font-family: "Lora", Georgia, serif;
	text-align: left;
}
.ese-carte__map { height: 100%; min-height: 360px; background: var(--ese-sand); z-index: 0; }
.ese-carte__map .leaflet-tile-pane { filter: grayscale(.55) sepia(.18) contrast(.96) brightness(1.03); }
.ese-carte__map .leaflet-control-zoom a { color: var(--ese-ink); }
.ese-carte__marker { border-radius: 50%; box-shadow: 0 4px 12px rgba(0, 0, 0, .35); background: #f6efe9; transition: transform .2s; }
.ese-carte__marker:hover { transform: scale(1.12); z-index: 1000 !important; }

.ese-cluster { display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(142, 28, 28, .9); box-shadow: 0 0 0 6px rgba(142, 28, 28, .22), 0 6px 14px rgba(0, 0, 0, .25); color: #fff; font: 600 14px/1 "Roboto Condensed", Arial, sans-serif; }
.ese-cluster span { display: block; }

.ese-pop { display: flex; flex-direction: column; gap: 3px; font-family: "Lora", Georgia, serif; font-size: 14px; line-height: 1.45; }
.ese-pop__name { font-family: "Roboto Condensed", Arial, sans-serif; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; color: var(--ese-ink); margin-bottom: 2px; }
.ese-pop a { color: var(--ese-b); }
.ese-carte .leaflet-popup-content-wrapper { border-radius: 14px; }

.ese-carte__side { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--ese-sand); background: #fbf9f6; }
.ese-carte__tools { padding: 18px 18px 10px; border-bottom: 1px solid var(--ese-sand); background: #fff; }
.ese-carte__search { position: relative; }
.ese-carte__search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ese-grey); pointer-events: none; }
.ese-carte .ese-carte__q {
	width: 100%; box-sizing: border-box;
	padding: 12px 14px 12px 42px;
	border: 1px solid var(--ese-sand); border-radius: 999px;
	background: var(--ese-cream);
	font: 15px/1.3 "Lora", Georgia, serif; color: var(--ese-ink);
}
.ese-carte .ese-carte__q:focus { outline: none; border-color: var(--ese-b); background: #fff; box-shadow: 0 0 0 3px rgba(142, 28, 28, .12); }
.ese-carte__near {
	display: inline-flex; align-items: center; gap: 6px;
	margin-top: 10px; padding: 7px 14px;
	border: 1px solid var(--ese-sand); border-radius: 999px; background: #fff;
	font: 500 12.5px/1 "Roboto Condensed", Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--ese-ink);
	cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
.ese-carte__near:hover, .ese-carte__near.is-on { background: var(--ese-b); border-color: var(--ese-b); color: #fff; }
.ese-carte__near.is-loading { opacity: .6; cursor: progress; }
.ese-carte__count { margin: 10px 2px 0; font: 13px/1.3 "Roboto Condensed", Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--ese-grey); }

.ese-carte__list { flex: 1; min-height: 0; margin: 0; padding: 12px; overflow-y: auto; list-style: none; scrollbar-width: thin; }
.ese-carte__item {
	position: relative;
	display: grid; grid-template-columns: 1fr auto; gap: 2px 10px;
	margin: 0 0 10px; padding: 14px 16px 14px 18px;
	background: #fff; border: 1px solid rgba(46, 42, 39, .08); border-radius: 14px;
	cursor: pointer; list-style: none;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ese-carte__item::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: transparent; transition: background .2s; }
.ese-carte__item:hover, .ese-carte__item:focus { border-color: rgba(142, 28, 28, .35); box-shadow: 0 8px 18px -12px rgba(46, 42, 39, .4); outline: none; }
.ese-carte__item.is-active { border-color: var(--ese-b); }
.ese-carte__item.is-active::before, .ese-carte__item:hover::before { background: var(--ese-b); }
.ese-carte__name { grid-column: 1 / -1; font: 500 15.5px/1.3 "Roboto Condensed", Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--ese-ink); }
.ese-carte__tel { font-size: 14.5px; color: var(--ese-b); text-decoration: none; }
.ese-carte__tel:hover { text-decoration: underline; }
.ese-carte__place { grid-column: 1; font-size: 14.5px; color: var(--ese-grey); }
.ese-carte__dist { grid-column: 2; grid-row: 2 / span 2; align-self: center; font: 500 12px/1 "Roboto Condensed", Arial, sans-serif; letter-spacing: .08em; color: var(--ese-b); background: var(--ese-cream); padding: 5px 8px; border-radius: 999px; }
.ese-carte__item[hidden] { display: none; }

@media (max-width: 900px) {
	.ese-carte { grid-template-columns: 1fr; grid-template-rows: 420px auto; height: auto; }
	.ese-carte__map { min-height: 420px; }
	.ese-carte__side { border-left: 0; border-top: 1px solid var(--ese-sand); }
	.ese-carte__list { max-height: 520px; }
}
@media (max-width: 480px) {
	.ese-carte { grid-template-rows: 360px auto; border-radius: 16px; }
	.ese-carte__map { min-height: 360px; }
}
