.section_world .world-image-wrapper {
  position: relative;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  background: transparent;
  isolation: isolate;
}

.section_world .world-image-wrapper .world-image,
.section_world .solutions-map_routes {
  display: block;
  width: 100%;
  height: 100%;
}

.section_world .world-image-wrapper .world-image {
  position: relative;
  z-index: 1;
  object-fit: contain;
  object-position: center;
  filter: brightness(1.025);
  opacity: 1;
}

.section_world .solutions-map_routes {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: visible;
  pointer-events: none;
  opacity: 0;
  transition: opacity 240ms ease;
}

.section_world
  .world-image-wrapper.is-solutions-map-ready
  .solutions-map_routes {
  opacity: 1;
}

.section_world .solutions-map_route {
  fill: none;
  stroke: #a01e23;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0.78;
  vector-effect: non-scaling-stroke;
  transition-property: stroke-dashoffset;
  transition-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
}

.section_world .solutions-map_route.is-visible {
  stroke-dashoffset: 0;
}

.section_world .solutions-map_marker,
.section_world .solutions-map_origin,
.section_world .solutions-map_origin-halo {
  fill: #a01e23;
  vector-effect: non-scaling-stroke;
}

.section_world .solutions-map_marker {
  opacity: 0;
  transition: opacity 220ms ease;
}

.section_world .solutions-map_marker.is-visible {
  opacity: 1;
}

.section_world .solutions-map_origin {
  opacity: 1;
}

.section_world .solutions-map_origin-halo {
  fill: none;
  stroke: #a01e23;
  stroke-width: 2;
  opacity: 0.24;
  transform-box: fill-box;
  transform-origin: center;
  animation: solutions-map-hub-pulse 2400ms ease-out infinite;
}

@keyframes solutions-map-hub-pulse {
  0%,
  45% {
    opacity: 0.28;
    transform: scale(0.72);
  }

  85%,
  100% {
    opacity: 0;
    transform: scale(1.18);
  }
}

@media screen and (max-width: 767px) {
  .section_world .world-image-wrapper {
    width: 100%;
    max-width: none;
  }

  .section_world .solutions-map_route {
    stroke-width: 1.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section_world .solutions-map_routes,
  .section_world .solutions-map_route,
  .section_world .solutions-map_marker {
    transition: none !important;
  }

  .section_world .solutions-map_origin-halo {
    animation: none;
    opacity: 0.2;
    transform: none;
  }
}
