/* =============================================================================
   N2M SÉCURITÉ — Carte d'intervention (Leaflet) | P12
   ============================================================================= */

.n2m-carte-page { padding-top: 48px; }

/* ── Barre d'outils : filtres + légende ─────────────────────────────────── */
.n2m-carte-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
}
.n2m-carte-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.n2m-carte-filter {
  font-family: var(--font-display);
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--n2m-muted);
  background: var(--n2m-surface);
  border: 1px solid var(--n2m-border);
  border-radius: 999px;
  padding: 9px 18px;
  cursor: pointer;
  transition: all var(--transition);
}
.n2m-carte-filter:hover { color: var(--n2m-white); border-color: var(--n2m-gold); }
.n2m-carte-filter.active {
  background: var(--n2m-gold); color: var(--n2m-black); border-color: var(--n2m-gold);
}

.n2m-carte-keys {
  display: flex; flex-wrap: wrap; gap: 14px;
  list-style: none; margin: 0; padding: 0;
}
.n2m-carte-keys li {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.78rem; color: var(--n2m-muted);
}
.n2m-carte-key__dot { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }

/* ── Conteneur carte ────────────────────────────────────────────────────── */
.n2m-carte-leaflet {
  width: 100%;
  height: 620px;
  border: 1px solid var(--n2m-border);
  border-radius: var(--radius-lg, 14px);
  overflow: hidden;
  background: var(--n2m-navy);
}
@media (max-width: 767px) { .n2m-carte-leaflet { height: 440px; } }

.n2m-carte-empty {
  text-align: center; color: var(--n2m-muted);
  margin-top: 24px; font-size: 0.95rem;
}

/* ── Marqueurs ──────────────────────────────────────────────────────────── */
.n2m-marker-wrap { display: flex; align-items: center; justify-content: center; }
.n2m-marker {
  position: relative;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--mc, #10B981);
  border: 2px solid #050508;
  box-shadow: 0 0 0 2px var(--mc, #10B981), 0 2px 6px rgba(0,0,0,0.5);
}
.n2m-marker::before {
  content: '';
  position: absolute; inset: -6px;
  border-radius: 50%;
  border: 1px solid var(--mc, #10B981);
  opacity: 0.5;
  animation: n2mMarkerPulse 2.4s ease-out infinite;
}
.n2m-marker--hq { width: 20px; height: 20px; box-shadow: 0 0 0 3px var(--mc), 0 0 18px var(--mc); }
@keyframes n2mMarkerPulse {
  0%   { transform: scale(0.7); opacity: 0.6; }
  100% { transform: scale(2.2); opacity: 0; }
}

/* ── Thème sombre Leaflet ───────────────────────────────────────────────── */
.leaflet-container { background: var(--n2m-navy); font-family: var(--font-body, 'Inter', sans-serif); }
.leaflet-bar a, .leaflet-control-zoom a {
  background: var(--n2m-navy); color: var(--n2m-gold);
  border-color: var(--n2m-border);
}
.leaflet-bar a:hover { background: var(--n2m-navy-mid, var(--n2m-navy-mid)); color: var(--n2m-gold); }
.leaflet-control-attribution {
  background: rgba(5,5,8,0.7) !important;
  color: var(--n2m-muted) !important;
  font-size: 10px;
}
.leaflet-control-attribution a { color: var(--n2m-muted) !important; }

/* Popups */
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
  background: var(--n2m-navy);
  color: var(--n2m-text, #E2E8F0);
  border: 1px solid var(--n2m-border);
  box-shadow: 0 12px 40px rgba(0,0,0,0.5);
}
.leaflet-popup-content-wrapper { border-radius: 10px; }
.leaflet-popup-content { margin: 14px 16px; font-size: 0.85rem; }
.leaflet-popup-close-button { color: var(--n2m-muted) !important; }
.n2m-popup__name {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--n2m-white, #fff);
}
.n2m-popup__meta {
  display: block;
  font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
  margin: 4px 0 8px;
}
.n2m-popup__desc { color: var(--n2m-muted); line-height: 1.5; margin: 0 0 8px; }
.n2m-popup__svc { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 6px; }
.n2m-popup__svc li {
  font-size: 0.72rem; color: var(--n2m-gold);
  background: rgba(245,194,0,0.08);
  border: 1px solid rgba(245,194,0,0.25);
  border-radius: 4px; padding: 2px 7px;
}

/* Clusters */
.marker-cluster {
  background: rgba(245,194,0,0.25) !important;
}
.marker-cluster div {
  background: var(--n2m-gold) !important;
  color: var(--n2m-black) !important;
  font-family: var(--font-display); font-weight: 700;
}

/* ══════════════════════════════════════════════════════════════════
   SECTIONS DE CONTENU (couverture · déploiement · CTA)
══════════════════════════════════════════════════════════════════ */
.n2m-couv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--gap-md);
  margin-top: var(--gap-lg);
}
.n2m-couv-card {
  padding: 32px 28px;
  background: var(--n2m-surface);
  border: 1px solid var(--n2m-border);
  border-top: 3px solid var(--couv-color, var(--n2m-gold));
  border-radius: var(--radius-lg, 14px);
  transition: transform 0.3s, box-shadow 0.3s;
}
.n2m-couv-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,0.3); }
.n2m-couv-card__icon {
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  color: var(--couv-color, var(--n2m-gold));
  background: color-mix(in srgb, var(--couv-color, var(--n2m-gold)) 12%, transparent);
  margin-bottom: 18px;
}
.n2m-couv-card__count {
  font-family: var(--font-display);
  font-size: 2.4rem; font-weight: 900; line-height: 1;
  color: var(--couv-color, var(--n2m-gold));
}
.n2m-couv-card__count span {
  font-size: 0.78rem; font-weight: 600; color: var(--n2m-muted);
  text-transform: uppercase; letter-spacing: 0.08em; margin-left: 8px;
}
.n2m-couv-card__titre {
  font-family: var(--font-display);
  font-size: 1.15rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--n2m-white, #fff);
  margin: 14px 0 8px;
}
.n2m-couv-card__desc { font-size: 0.9rem; color: var(--n2m-muted); line-height: 1.6; }

.n2m-deploy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--gap-md);
  margin-top: var(--gap-lg);
}
.n2m-deploy-card {
  padding: 28px 24px;
  border: 1px solid var(--n2m-border);
  border-radius: var(--radius-lg, 14px);
  background: var(--n2m-surface);
}
.n2m-deploy-card__num {
  display: block;
  font-family: var(--font-mono, 'Orbitron', monospace);
  font-size: 1.6rem; font-weight: 900;
  color: var(--n2m-gold);
  margin-bottom: 10px;
}
.n2m-deploy-card__titre {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--n2m-white, #fff);
  margin-bottom: 8px;
}
.n2m-deploy-card__desc { font-size: 0.88rem; color: var(--n2m-muted); line-height: 1.6; }

.n2m-carte-cta { text-align: center; max-width: 640px; margin: 0 auto; }
.n2m-carte-cta p { color: var(--n2m-muted); line-height: 1.7; margin: 14px 0 28px; }
