/* =======================================================
   Kids Map — scoped styles (À Deux Pas)
   All rules namespaced under .kids-map-wrapper
   ======================================================= */

.kids-map-wrapper{
  --pink:#FF4F87;
  --pink-dark:#ED2D7A;
  --pink-soft:#FFE2EE;
  --shadow-card:0 20px 60px rgba(0,0,0,.10);

  font-family:'Nunito',sans-serif;
  color:#34425A;
}

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

/* ---------- Section wrapper ---------- */
.kids-map-wrapper .map-section{
  padding:60px 20px;
  max-width:1200px;
  margin:0 auto;
}

.kids-map-wrapper .map-wrapper{
  position:relative;
  padding-top:90px;
}

/* Kids illustration */
.kids-map-wrapper .kids-img{
    position: absolute;
    top: -100px;
    left: 17px;
    width: 371px;
    height: auto;
    z-index: 2;
    pointer-events: none;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .15));
}

/* ---------- Map container ---------- */
.kids-map-wrapper .map-container{
  position:relative;
  width:120%;
  left:50%;
  transform:translateX(-50%);
  height:560px;
  border-radius:20px;
  overflow:hidden;
  border:2px solid var(--pink-soft);
  box-shadow:var(--shadow-card);
  background:#E8F1E2;
}
.kids-map-wrapper .adp-map{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

/* ---------- Custom HTML marker ---------- */
.kids-map-wrapper .adp-marker{
  position:relative;
  width:90px;height:90px;
  display:flex;align-items:center;justify-content:center;
  transform:translate(-50%,-100%);
}
.kids-map-wrapper .adp-marker__inner{
  position:relative;z-index:3;
  width:90px;height:90px;
  border-radius:50%;
  background:#fff;
  border:5px solid var(--pink);
  box-shadow:0 10px 30px rgba(0,0,0,.20),
             0 0 0 6px rgba(255,79,135,.15);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.kids-map-wrapper .adp-marker__inner img,
.kids-map-wrapper .adp-logo-svg{
  width:80%;
  height:80%;
  object-fit:contain;
  display:block;
}

.kids-map-wrapper .adp-marker__fallback{
  font-family:'Nunito',sans-serif;
  font-weight:800;color:var(--pink-dark);
  font-size:13px;text-align:center;line-height:1.05;
}

/* Pin tail */
.kids-map-wrapper .adp-marker__tail{
  position:absolute;
  bottom:-12px;left:50%;
  width:0;height:0;
  transform:translateX(-50%);
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:18px solid var(--pink);
  z-index:2;
  filter:drop-shadow(0 4px 4px rgba(255,79,135,.35));
}

/* Pulse animation behind marker */
.kids-map-wrapper .pulse{
  position:absolute;
  top:50%;left:50%;
  width:90px;height:90px;
  border-radius:50%;
  background:var(--pink);
  transform:translate(-50%,-50%);
  opacity:.45;
  z-index:1;
  animation:kidsmap-pulse 2.2s ease-out infinite;
}
.kids-map-wrapper .pulse-2{animation-delay:1.1s}

@keyframes kidsmap-pulse{
  0%   { transform:translate(-50%,-50%) scale(.6); opacity:.55 }
  80%  { transform:translate(-50%,-50%) scale(1.8); opacity:0   }
  100% { transform:translate(-50%,-50%) scale(1.8); opacity:0   }
}

/* ---------- Responsive ---------- */
@media (max-width: 768px){
  .kids-map-wrapper .map-section{padding:40px 16px}
  .kids-map-wrapper .map-wrapper{padding-top:70px}
  .kids-map-wrapper .map-container{height:400px;border-radius:20px}
  .kids-map-wrapper .adp-marker,
  .kids-map-wrapper .adp-marker__inner,
  .kids-map-wrapper .pulse{width:72px;height:72px}
  .kids-map-wrapper .adp-marker__inner{border-width:4px}
  .kids-map-wrapper .kids-img{
    position:absolute;
    top:-100px;
    left:17px;
    width:371px;
    height:auto;
    z-index:2;
    pointer-events:none;
    filter:drop-shadow(0 8px 14px rgba(0,0,0,.15));
    transform:none;
  }
}

@media (max-width: 480px){
  .kids-map-wrapper .map-container{height:320px}
  .kids-map-wrapper .map-wrapper{padding-top:60px}
  .kids-map-wrapper .kids-img{
  position: absolute;
        top: -90px;
        left: 47px;
        width: 295px;
        height: auto;
        z-index: 2;
        pointer-events: none;
        filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .15));
        transform: none;
    }
}
