.svg_map_block {
  width: 100%;
  padding-bottom: 40%;
  position: relative;
  min-height: 400px;
  margin-top: 2.8vw; }

.svg_map_wr {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: none; }

.svg_map {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
  cursor: -webkit-grab;
  cursor: grab; }
  .svg_map:active {
    cursor: -webkit-grabbing;
    cursor: grabbing; }
  .svg_map rect {
    fill: #000; }
  .svg_map .map_area {
    z-index: 10;
    cursor: pointer; }
    .svg_map .map_area path {
      fill: #ffdc31;
      fill-opacity: 0.18;
      stroke: #f9e42b;
      stroke-width: 2;
      -webkit-transition: fill-opacity .3s ease;
      -o-transition: fill-opacity .3s ease;
      transition: fill-opacity .3s ease; }
    .svg_map .map_area:hover path {
      fill-opacity: 0.4; }
  .svg_map .map_area_desc {
    fill-opacity: 0;
    -webkit-transition: fill-opacity .3s ease;
    -o-transition: fill-opacity .3s ease;
    transition: fill-opacity .3s ease;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
    .svg_map .map_area_desc rect {
      fill: #fff;
      stroke: none; }
    .svg_map .map_area_desc text {
      color: #000;
      font-size: 12px;
      line-height: 1;
      font-family: "AGopt", sans-serif; }
    .svg_map .map_area_desc.show {
      fill-opacity: 1; }
  .svg_map .map_points {
    z-index: 15; }
  .svg_map .map-point {
    z-index: 15; }
  .svg_map .point_desc {
    fill-opacity: 0;
    -webkit-transition: fill-opacity .3s ease;
    -o-transition: fill-opacity .3s ease;
    transition: fill-opacity .3s ease;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
    .svg_map .point_desc rect {
      fill: #fff;
      stroke: none; }
    .svg_map .point_desc text {
      color: #000;
      font-size: 12px;
      line-height: 1;
      font-family: "AGopt", sans-serif; }
      .svg_map .point_desc text tspan {
        font-size: 11px; }
        .svg_map .point_desc text tspan.pd_title {
          font-weight: bold;
          text-transform: uppercase; }
    .svg_map .point_desc.show {
      fill-opacity: 1; }
  .svg_map .point_area {
    cursor: pointer; }
    .svg_map .point_area:hover .point_desc {
      fill-opacity: 1; }

.map_nav {
  position: absolute;
  top: 1.56vw;
  left: 1.56vw;
  z-index: 10;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .map_nav .zoom_plus, .map_nav .zoom_minus {
    width: 2.34vw;
    hidden: 2.34vw;
    background: #191919;
    line-height: 2.34vw;
    font-size: 1.875vw;
    text-align: center;
    border: 1px solid #fff;
    cursor: pointer;
    color: #fff; }

.test_rect {
  position: fixed;
  top: 0;
  left: 0;
  height: 50%;
  width: 50%;
  background: red;
  z-index: 3; }
.svg_html {
  pointer-events: none; }
  .svg_html .canvas_wr {
    position: relative;
    width: 100%;
    height: 100%; }
  .svg_html .clouds-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none; }

.cssload-loader {
  width: 140px;
  height: 140px;
  line-height: 140px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -70px;
  margin-top: -70px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
  z-index: 0;
  text-transform: uppercase; }

.cssload-loader:before, .cssload-loader:after {
  opacity: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  content: "\0020";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-border-radius: 92px;
          border-radius: 92px;
  border: 2px solid white;
  -webkit-box-shadow: 0 0 46px white, inset 0 0 46px white;
          box-shadow: 0 0 46px white, inset 0 0 46px white; }

.cssload-loader:after {
  z-index: 1;
  -webkit-animation: cssload-gogoloader 2s infinite 1s;
          animation: cssload-gogoloader 2s infinite 1s; }

.cssload-loader:before {
  z-index: 2;
  -webkit-animation: cssload-gogoloader 2s infinite;
          animation: cssload-gogoloader 2s infinite; }

@-webkit-keyframes cssload-gogoloader {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

@keyframes cssload-gogoloader {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

@media (orientation: portrait) {
  .svg_map_block {
    margin-top: 2.8vh; }
  .map_nav {
    top: 1.56vh;
    left: 1.56vh; }
    .map_nav .zoom_plus, .map_nav .zoom_minus {
      width: 2.34vh;
      hidden: 2.34vh;
      line-height: 2.34vh;
      font-size: 1.875vh; } }

@media (max-width: 1023px) {
  .svg_map_block {
    margin-top: 30px; }
  .map_nav {
    top: 20px;
    left: 20px; }
    .map_nav .zoom_plus, .map_nav .zoom_minus {
      width: 30px;
      hidden: 30px;
      line-height: 30px;
      font-size: 24px; } }
