/* ===== AGENCE 360 NDRC — CARTE INTERACTIVE ===== */

.ndrc-interactive-map{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:#151923;
  box-shadow:0 24px 70px rgba(23,28,45,.16);
  isolation:isolate;
}

.ndrc-interactive-map img{
  display:block;
  width:100%;
  height:auto;
}

/* légère profondeur, très différente de Banque */
.ndrc-interactive-map:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(15,18,29,.02),rgba(15,18,29,.14));
  z-index:1;
}

.ndrc-hotspot{
  --accent:#7657ff;
  position:absolute;
  z-index:8;
  transform:translate(-50%,-50%);
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  font:inherit;
}

.ndrc-hotspot-dot{
  position:relative;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  color:#fff;
  background:linear-gradient(145deg,var(--accent),#27203e);
  border:2px solid rgba(255,255,255,.9);
  box-shadow:
    0 8px 22px rgba(19,24,42,.26),
    0 0 0 6px rgba(255,255,255,.18);
  font-size:12px;
  font-weight:900;
  transition:.22s ease;
}

.ndrc-hotspot-dot:before{
  content:"";
  position:absolute;
  inset:-9px;
  border:1px solid var(--accent);
  border-radius:16px;
  opacity:.32;
  animation:ndrcPulse 2.4s infinite;
}

.ndrc-hotspot-label{
  position:absolute;
  left:50%;
  top:48px;
  transform:translateX(-50%) translateY(4px);
  width:max-content;
  max-width:190px;
  padding:9px 12px;
  border-radius:11px;
  background:rgba(20,23,34,.90);
  backdrop-filter:blur(12px);
  color:#fff;
  box-shadow:0 10px 28px rgba(10,13,24,.22);
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:.18s ease;
}

.ndrc-hotspot:hover .ndrc-hotspot-dot,
.ndrc-hotspot.active .ndrc-hotspot-dot{
  transform:translateY(-3px) scale(1.08);
  box-shadow:
    0 14px 28px rgba(19,24,42,.30),
    0 0 0 7px rgba(255,255,255,.23);
}

.ndrc-hotspot:hover .ndrc-hotspot-label,
.ndrc-hotspot.active .ndrc-hotspot-label{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

.ndrc-hotspot[data-zone="accueil"]{--accent:#d79a52}
.ndrc-hotspot[data-zone="prospection"]{--accent:#ff6b5f}
.ndrc-hotspot[data-zone="crm"]{--accent:#16a6a1}
.ndrc-hotspot[data-zone="negociation"]{--accent:#7657ff}
.ndrc-hotspot[data-zone="relation"]{--accent:#d64f86}
.ndrc-hotspot[data-zone="digital"]{--accent:#3f7fe8}

/* panneau latéral */
.ndrc-zone-panel{
  position:absolute;
  z-index:20;
  right:22px;
  top:22px;
  width:min(350px,calc(100% - 44px));
  padding:22px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:20px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(20px);
  box-shadow:0 24px 65px rgba(20,24,40,.22);
  transform:translateX(25px);
  opacity:0;
  visibility:hidden;
  transition:.25s ease;
}

.ndrc-zone-panel.open{
  transform:translateX(0);
  opacity:1;
  visibility:visible;
}

.ndrc-zone-panel-close{
  position:absolute;
  right:14px;
  top:12px;
  width:31px;
  height:31px;
  border:0;
  border-radius:10px;
  background:#f2f3f7;
  color:#252a39;
  cursor:pointer;
  font-size:18px;
}

.ndrc-zone-kicker{
  margin:0 40px 6px 0;
  color:#7657ff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.ndrc-zone-panel h3{
  margin:0 35px 8px 0;
  color:#17213a;
  font-size:22px;
  line-height:1.1;
}

.ndrc-zone-panel p{
  margin:0 0 17px;
  color:#65728a;
  font-size:13px;
  line-height:1.55;
}

.ndrc-zone-missions{
  display:grid;
  gap:8px;
}

.ndrc-zone-mission{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px;
  border:1px solid #e5e7ef;
  border-radius:13px;
  background:#fff;
  color:#202940;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
  transition:.18s ease;
}

.ndrc-zone-mission:hover{
  transform:translateX(3px);
  border-color:#cfc5ff;
  background:#faf9ff;
}

.ndrc-zone-empty{
  padding:13px;
  border-radius:13px;
  background:#f5f6f9;
  color:#788397;
  font-size:12px;
}

@keyframes ndrcPulse{
  0%,100%{transform:scale(.92);opacity:.42}
  50%{transform:scale(1.18);opacity:.08}
}

@media(max-width:760px){
  .ndrc-hotspot-dot{
    width:32px;
    height:32px;
    border-radius:10px;
  }

  .ndrc-hotspot-label{
    display:none;
  }

  .ndrc-zone-panel{
    position:fixed;
    left:12px;
    right:12px;
    top:auto;
    bottom:12px;
    width:auto;
    z-index:9999;
  }
}
