.nwmap {
  position: relative;
  overflow: hidden;
  background: #d8e5ed;
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.nwmap--dragging { cursor: grabbing; }
.nwmap-tiles, .nwmap-overlays, .nwmap-markers { position: absolute; inset: 0; overflow: hidden; }
.nwmap-overlays { pointer-events: none; z-index: 1; }
.nwmap-markers { z-index: 2; }
.nwmap-webgl { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.nwmap-tile { position: absolute; width: 256px; height: 256px; max-width: none; border: 0; }
.nwmap-marker { position: absolute; transform: translate(-50%, -100%); cursor: pointer; z-index: 2; }
.nwmap-marker img { display: block; }
.nwmap-popup {
  position: absolute;
  z-index: 3;
  min-width: 120px;
  max-width: 300px;
  padding: 9px 26px 9px 10px;
  background: #fff;
  border: 1px solid #9aa8b3;
  border-radius: 3px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, .35);
  transform: translate(-50%, calc(-100% - 12px));
  cursor: auto;
}
.nwmap-popup-close { position: absolute; top: 3px; right: 7px; color: #555; font: 20px/20px Arial, sans-serif; text-decoration: none; }
.nwmap-tooltip { position: absolute; z-index: 3; max-width: 280px; padding: 6px 8px; background: #fff; border: 1px solid #9aa8b3; box-shadow: 0 1px 4px rgba(0, 0, 0, .25); transform: translate(-50%, calc(-100% - 7px)); pointer-events: none; }
.nwmap-tooltip::after { position: absolute; top: 100%; left: 50%; width: 0; height: 0; margin-left: -7px; border: 7px solid transparent; border-top-color: #fff; content: ""; pointer-events: none; }
.nwmap-default-marker { display: block; width: 18px; height: 18px; border: 2px solid #fff; border-radius: 50% 50% 50% 0; background: #d33; box-shadow: 0 1px 3px rgba(0, 0, 0, .45); transform: rotate(-45deg); }
.nwmap-zoom { position: absolute; top: 10px; left: 10px; z-index: 4; box-shadow: 0 1px 5px rgba(0, 0, 0, .35); }
.nwmap-zoom button { display: block; width: 30px; height: 30px; padding: 0; border: 0; border-bottom: 1px solid #ccc; background: #fff; color: #222; font: 22px/28px Arial, sans-serif; cursor: pointer; }
.nwmap-zoom button:last-child { border-bottom: 0; }
.nwmap-zoom button:hover { background: #f4f4f4; }
.nwmap-attribution { position: absolute; right: 0; bottom: 0; z-index: 4; padding: 2px 5px; background: rgba(255, 255, 255, .8); color: #333; font: 11px/14px Arial, sans-serif; }
.nwmap-attribution a { color: #0078a8; text-decoration: none; }
.nwmap-attribution a:hover { text-decoration: underline; }
