/* ═══════════════════════════════════════════════════════════
   Map Nova — Carte stylisée (réglage « Fond de carte »)
   Couleurs : variables --mn-* posées sur .mn-widget par le shortcode.
   ═══════════════════════════════════════════════════════════ */

.mn-widget.mn-vector {
	--mn-line: color-mix(in srgb, var(--mn-text) 12%, transparent);
	--mn-line2: color-mix(in srgb, var(--mn-text) 22%, transparent);
	--mn-soft-bg: color-mix(in srgb, var(--mn-text) 5%, var(--mn-panel));
	background: var(--mn-sea);
	color: var(--mn-text);
}

/* ── Carte ─────────────────────────────────────────────────── */
.mn-vector .mn-map-el { background: var(--mn-sea); }
.mn-vector .leaflet-container { background: var(--mn-sea); font-family: var(--mn-font-b); outline: 0; }
.mn-vector .mn-land { stroke: var(--mn-stroke); stroke-opacity: .9; transition: fill .4s; }
.mn-vector .mn-land.mn-no-dots { fill: var(--mn-land); }
.mn-vector .mn-land.mn-no-dots.mn-home { fill: var(--mn-home); }
.mn-vector .mn-graticule { stroke: var(--mn-stroke); stroke-opacity: .35; fill: none; }
.mn-vector .mn-map-el .leaflet-overlay-pane svg { opacity: 0; transition: opacity .5s; }
.mn-vector.mn-ready .mn-map-el .leaflet-overlay-pane svg { opacity: 1; }

/* Contrôles de zoom */
.mn-vctrl {
	position: absolute; top: 16px; left: 16px; z-index: 800;
	display: flex; flex-direction: column;
	background: var(--mn-panel); border: 1px solid var(--mn-line2); border-radius: 10px; overflow: hidden;
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .35);
}
.mn-vctrl button {
	display: grid; place-items: center; width: 36px; height: 36px;
	background: none; border: 0; border-top: 1px solid var(--mn-line); cursor: pointer; color: var(--mn-text);
	transition: background .2s, color .2s;
}
.mn-vctrl button:first-child { border-top: 0; }
.mn-vctrl button:hover { background: var(--mn-accent); color: #fff; }
.mn-vctrl svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Marqueurs ronds */
.mn-marker-dot { cursor: pointer; }
.mn-dot { position: relative; width: 26px; height: 26px; transform-origin: center center !important; }
.mn-dot-halo {
	position: absolute; inset: -7px; border-radius: 50%;
	background: color-mix(in srgb, var(--c) 28%, transparent);
	animation: mn-pulse 2.8s ease-out infinite;
}
.mn-dot-core {
	position: absolute; inset: 0; display: grid; place-items: center;
	border-radius: 50%; background: var(--c); color: #fff; font-size: 11px;
	border: 2px solid color-mix(in srgb, #fff 85%, var(--c));
	box-shadow: 0 6px 16px -4px rgba(0, 0, 0, .45);
}
.mn-marker-dot:hover .mn-dot-core { transform: scale(1.08); }
.mn-dot-core { transition: transform .2s; }
.mn-marker-dot:nth-child(3n) .mn-dot-halo { animation-delay: .9s; }
.mn-marker-dot:nth-child(3n+1) .mn-dot-halo { animation-delay: 1.8s; }
@keyframes mn-pulse {
	0% { transform: scale(.55); opacity: .9; }
	70% { transform: scale(1.35); opacity: 0; }
	100% { transform: scale(1.35); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .mn-dot-halo { animation: none; opacity: .5; } }

/* Nom de l'implantation, visible à partir du zoom 7 */
.mn-dot-label {
	display: none; position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%);
	padding: 3px 8px; border-radius: 4px; white-space: nowrap; pointer-events: none;
	font: 600 12px/1.3 var(--mn-font-b); color: var(--mn-text);
	background: color-mix(in srgb, var(--mn-panel) 88%, transparent);
	border: 1px solid var(--mn-line);
}
.mn-map-vector.mn-zoomed .mn-dot-label { display: block; }
.mn-map-vector.mn-zoomed .mn-marker-active .mn-dot-label { color: var(--mn-accent); }

/* Info-bulle */
.mn-vector .mn-map-tooltip.leaflet-tooltip {
	background: var(--mn-panel) !important;
	border: 1px solid var(--mn-line2) !important;
	box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .5) !important;
}
.mn-vector .mn-map-tooltip.leaflet-tooltip-top::before { border-top-color: var(--mn-panel) !important; }
.mn-vector .mn-tt strong { color: var(--mn-text); }
.mn-vector .mn-tt span { color: var(--mn-muted); }

/* ── Volet latéral ─────────────────────────────────────────── */
.mn-vector .mn-sidebar { background: var(--mn-panel); border-left-color: var(--mn-line); box-shadow: none; }
.mn-vector .mn-sidebar-head,
.mn-vector .mn-detail-topbar { border-bottom-color: var(--mn-line); }
.mn-vector .mn-sidebar-count,
.mn-vector .mn-nav-counter,
.mn-vector .mn-card-addr,
.mn-vector .mn-poi-section-head { color: var(--mn-muted); }
.mn-vector .mn-agency-list::-webkit-scrollbar-thumb,
.mn-vector .mn-detail-scroll::-webkit-scrollbar-thumb { background: var(--mn-line2); }
.mn-vector .mn-agency-card { background: var(--mn-soft-bg); border-color: var(--mn-line); }
.mn-vector .mn-agency-card:hover { border-color: color-mix(in srgb, var(--mn-accent) 55%, transparent); }
.mn-vector .mn-agency-card.mn-active { border-color: var(--mn-accent); }
.mn-vector .mn-agency-card:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mn-accent) 40%, transparent); }
.mn-vector .mn-card-title,
.mn-vector .mn-detail-title,
.mn-vector .mn-description strong { color: var(--mn-text) !important; }
.mn-vector .mn-card-arrow { color: var(--mn-line2); }
.mn-vector .mn-agency-card:hover .mn-card-arrow,
.mn-vector .mn-card-poi-count { color: var(--mn-accent); }
.mn-vector .mn-card-icon,
.mn-vector .mn-detail-icon { border-radius: 50%; }
.mn-vector .mn-back-btn {
	color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 12%, transparent);
	border-color: color-mix(in srgb, var(--mn-accent) 30%, transparent);
}
.mn-vector .mn-back-btn:hover { background: color-mix(in srgb, var(--mn-accent) 20%, transparent); }
.mn-vector .mn-nav-btn { background: var(--mn-soft-bg); border-color: var(--mn-line2); color: var(--mn-text); }
.mn-vector .mn-nav-btn:hover,
.mn-vector .mn-car-arrow:hover { background: var(--mn-accent); border-color: var(--mn-accent); color: #fff; }
.mn-vector .mn-carousel { background: var(--mn-soft-bg); }
.mn-vector .mn-detail-addr,
.mn-vector .mn-description { color: color-mix(in srgb, var(--mn-text) 78%, transparent); }
.mn-vector .mn-sep { background: var(--mn-line); }
.mn-vector .mn-contact { background: var(--mn-soft-bg); border-color: var(--mn-line); color: var(--mn-text); }
.mn-vector .mn-contact:hover { background: color-mix(in srgb, var(--mn-text) 9%, var(--mn-panel)); border-color: var(--mn-line2); color: var(--mn-text); }
.mn-vector .mn-contact-web,
.mn-vector .mn-contact-route {
	color: var(--mn-accent); font-weight: 600;
	background: color-mix(in srgb, var(--mn-accent) 12%, transparent);
	border-color: color-mix(in srgb, var(--mn-accent) 30%, transparent);
}
.mn-vector .mn-poi-chip { color: color-mix(in srgb, var(--ch) 70%, var(--mn-text)); }

@media (max-width: 620px) {
	.mn-vector .mn-sidebar { border-top-color: var(--mn-line); }
	.mn-vctrl { top: 12px; left: 12px; }
}
