    .float-slow { animation: floatY 6s ease-in-out infinite; }
    @keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
    @keyframes scrollX { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
    
    /* Animaciones suaves */
    @keyframes gradient { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
    .animate-gradient{background-size:200% 200%; animation:gradient 9s ease-in-out infinite}
    @keyframes fade-up { 0%{opacity:0; transform:translateY(10px)} 100%{opacity:1; transform:translateY(0)} }
    .animate-fade-up{animation:fade-up 1s ease-out both}
    @keyframes wave-x { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
    .animate-wave-slow{animation:wave-x 20s linear infinite}
    .animate-wave-fast{animation:wave-x 12s linear infinite}

    /* Parallax helpers */
    .parallax-scene { perspective: 1px; transform-style: preserve-3d; }
    .parallax-layer { position: absolute; inset: 0; will-change: transform; }
    .parallax-obj { will-change: transform; }

    /* Accesibilidad: respeta reduce motion */
    @media (prefers-reduced-motion: reduce) {
      .animate-gradient, .animate-fade-up, .animate-wave-slow, .animate-wave-fast { animation: none !important; }
    }
    .flag-marker {
  position: relative;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #1D6B89;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  transform: translate(-21px, -21px);
}
.flag-marker::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid #1D6B89;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.2));
}
.flag-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
}
.leaflet-popup-content-wrapper {
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.leaflet-popup-content { margin: 10px 12px; }
.popup-title {
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.popup-sub {
  color: #475569;
  margin: 0;
}
