@font-face {
    font-family: 'Russo One';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/russoone/v9/Z9XUDmZRWg6M1LvRYsH-yA.ttf) format('truetype');
  }
  @font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/opensans/v21/mem8YaGs126MiZpBA-U1Ug.ttf) format('truetype');
  }
  #map-wrapper {
    max-width: 800px;
    margin: 0 auto;
    margin-top: 45px;
    padding: 0;
    position: relative;
  }
  @media (max-width: 640px) {
    #map-wrapper {
      padding: 10px;
    }
  }
  #map-wrapper svg {
    max-width: 100%;
  }
  #map-wrapper .map-logo {
    position: absolute;
    left: 0;
    top: 0;
    max-width: 20%;
  }
  #map-wrapper .city-overlay {
    display: none;
    opacity: 0;
    position: absolute;
    top: 30%;
    background-color: #c1cee2;
    border-radius: 10px;
    padding: 30px 15px;
    width: 800px;
    max-width: calc(100% - 80px);
    transform: translate(-50%, -30%);
    left: 50%;
    transition: opacity 0.2s linear;
    -webkit-transition: opacity 0.2s linear;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay {
      top: 50px;
      transform: translateX(-50%);
    }
  }
  #map-wrapper .city-overlay.show {
    opacity: 1;
  }
  #map-wrapper .city-overlay .city-heading {
    font-family: 'Russo One', sans-serif;
    font-weight: normal;
    text-align: center;
    font-size: 42px;
    margin-top: 0;
    margin-bottom: 34px;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .city-heading {
      font-size: 36px;
    }
  }
  #map-wrapper .city-overlay .city-details {
    display: flex;
    flex-direction: row;
    font-family: 'Open Sans', sans-serif;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .city-details {
      font-size: 14px;
      flex-direction: column;
    }
  }
  #map-wrapper .city-overlay .city-details .detail-column {
    flex: 1;
    padding: 15px;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .city-details .detail-column:first-of-type {
      margin-bottom: 25px;
    }
  }
  #map-wrapper .city-overlay .city-details .service-heading {
    font-family: 'Russo One', sans-serif;
    font-weight: normal;
    font-style: italic;
    font-size: 28px;
    margin-top: 0;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .city-details .service-heading {
      font-size: 24px;
    }
  }
  #map-wrapper .city-overlay .city-details ul {
    padding-left: 15px;
  }
  #map-wrapper .city-overlay .city-details ul li {
    margin-bottom: 5px;
  }
  #map-wrapper .city-overlay .action-bar {
    text-align: center;
    margin-top: 20px;
  }
  #map-wrapper .city-overlay .action-bar .btn {
    font-family: 'Open Sans', sans-serif;
    display: inline-block;
    border-radius: 10px;
    padding: 10px 40px;
    font-size: 20px;
    background-color: #fcbb00;
    min-width: 110px;
    border: 2px solid #fcbb00;
    transition: all 0.1s linear;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .action-bar .btn {
      font-size: 16px;
      display: block;
      margin-bottom: 15px;
    }
  }
  #map-wrapper .city-overlay .action-bar .btn:hover {
    cursor: pointer;
    background-color: #e3a800 !important;
    border-color: #e3a800 !important;
  }
  #map-wrapper .city-overlay .action-bar .btn.close-btn {
    background-color: rgba(252, 187, 0, 0);
  }
  #map-wrapper .city-overlay .action-bar .btn.contact-btn {
    background-color: none;
    text-decoration: none;
    color: black;
    margin-right: 30px;
  }
  @media (max-width: 640px) {
    #map-wrapper .city-overlay .action-bar .btn.contact-btn {
      margin-right: 0;
    }
  }
  .heading-wrapper {
    text-align: center;
  }
  .heading-wrapper h2 {
    display: inline-block;
  }
  .heading-wrapper .logo-wrapper {
    display: inline-block;
    position: relative;
    top: 15px;
    padding: 0 15px;
    min-width: 100px;
  }
  .heading-wrapper .logo-wrapper img {
      vertical-align: unset;
  }
  .heading-wrapper .logo-wrapper:first-of-type {
    text-align: right;
  }
  .heading-wrapper .logo-wrapper:last-of-type {
    text-align: left;
  }
  @media (max-width: 640px) {
    .heading-wrapper {
      display: flex;
      flex-wrap: wrap;
      flex-direction: row;
      justify-content: center;
      margin-bottom: 20px;
    }
    .heading-wrapper h2 {
      display: block;
      order: 1;
      flex-basis: 100%;
      margin-bottom: 10px;
    }
    .heading-wrapper .logo-wrapper {
      position: relative;
      order: 2;
      min-width: unset;
      padding: 0;
      top: 0;
    }
    .heading-wrapper .logo-wrapper img {
      position: relative;
      top: 50%;
      transform: translateY(-50%);
      padding: 5px;
    }
  }
  .pause {
    display: none;
  }
  .city-region {
    opacity: 0;
  }
  .show {
    opacity: 1 !important;
  }
  [data-city]:hover:not(.city-overlay) {
    cursor: pointer;
  }
  rect[data-city].hover {
    fill: #fcbb00;
  }
  .cls-transition {
    animation-fill-mode: forwards !important;
    animation-play-state: paused !important;
  }
  .cls-7:not(.pulse) {
    fill: rgba(252, 187, 0, 0);
    animation: dotFade-7;
    animation-fill-mode: forwards !important;
    animation-play-state: running !important;
    animation-duration: 1s;
    animation-delay: 1s;
  }
  .pulse {
    display: none;
  }
  path[data-city],
  rect[data-city] {
    opacity: 0;
    transition: opacity 0.5s ease-out, fill 0.1s linear;
  }
  .cls-transition.fade-dot {
    animation-play-state: running !important;
  }
  .cls-transition.fade-dot.fade-delay-1 {
    animation-delay: 0ms;
  }
  .cls-transition.fade-dot.fade-delay-2 {
    animation-delay: 100ms;
  }
  .cls-transition.fade-dot.fade-delay-3 {
    animation-delay: 160ms;
  }
  .cls-transition.fade-dot.fade-delay-4 {
    animation-delay: 280ms;
  }
  .cls-transition.fade-dot.fade-delay-5 {
    animation-delay: 380ms;
  }
  .cls-transition.fade-dot.fade-delay-6 {
    animation-delay: 460ms;
  }
  .cls-transition.fade-dot.fade-delay-7 {
    animation-delay: 600ms;
  }
  .cls-transition.fade-dot.fade-delay-8 {
    animation-delay: 750ms;
  }
  .cls-transition.fade-dot.fade-delay-9 {
    animation-delay: 880ms;
  }
  .cls-transition.fade-dot.fade-delay-10 {
    animation-delay: 1s;
  }
  .cls-transition.fade-dot.fade-duration-1 {
    animation-duration: 1s;
  }
  .cls-transition.fade-dot.fade-duration-2 {
    animation-duration: 0.6s;
  }
  .cls-transition.fade-dot.fade-duration-3 {
    animation-duration: 0.8s;
  }
  .cls-transition.fade-dot.fade-duration-4 {
    animation-duration: 0.4s;
  }
  .cls-transition.fade-dot.fade-duration-5 {
    animation-duration: 0.2s;
  }
  .cls-transition.fade-dot.fade-duration-6 {
    animation-duration: 0.7s;
  }
  .cls-transition.fade-dot.fade-duration-7 {
    animation-duration: 0.5s;
  }
  .cls-transition.fade-dot.fade-duration-8 {
    animation-duration: 0.8s;
  }
  .cls-transition.fade-dot.fade-duration-9 {
    animation-duration: 0.3s;
  }
  .cls-transition.fade-dot.fade-duration-10 {
    animation-duration: 0.5s;
  }
  @keyframes dotFade-1 {
    0% {
      fill: rgba(158, 218, 245, 0);
    }
    100% {
      fill: #9edaf5;
    }
  }
  @keyframes dotFade-2 {
    0% {
      fill: rgba(56, 160, 223, 0);
    }
    100% {
      fill: #38a0df;
    }
  }
  @keyframes dotFade-3 {
    0% {
      fill: rgba(17, 139, 209, 0);
    }
    100% {
      fill: #118bd1;
    }
  }
  @keyframes dotFade-4 {
    0% {
      fill: rgba(111, 207, 245, 0);
    }
    100% {
      fill: #6fcff5;
    }
  }
  @keyframes dotFade-5 {
    0% {
      fill: rgba(50, 165, 221, 0);
    }
    100% {
      fill: #32a5dd;
    }
  }
  @keyframes dotFade-6 {
    0% {
      fill: rgba(68, 172, 223, 0);
    }
    100% {
      fill: #44acdf;
    }
  }
  @keyframes dotFade-7 {
    0% {
      fill: rgba(252, 187, 0, 0);
    }
    100% {
      fill: #fcbb00;
    }
  }
  circle.cls-transition.ring-delay-0 {
    animation-delay: 0ms !important;
  }
  circle.cls-transition.ring-delay-1 {
    animation-delay: 75ms !important;
  }
  circle.cls-transition.ring-delay-2 {
    animation-delay: 150ms !important;
  }
  circle.cls-transition.ring-delay-3 {
    animation-delay: 225ms !important;
  }
  circle.cls-transition.ring-delay-4 {
    animation-delay: 300ms !important;
  }
  circle.cls-transition.ring-delay-5 {
    animation-delay: 375ms !important;
  }
  circle.cls-transition.ring-delay-6 {
    animation-delay: 450ms !important;
  }
  circle.cls-transition.ring-delay-7 {
    animation-delay: 525ms !important;
  }
  circle.cls-transition.ring-delay-8 {
    animation-delay: 600ms !important;
  }
  circle.cls-transition.ring-delay-9 {
    animation-delay: 675ms !important;
  }
  circle.cls-transition.ring-delay-10 {
    animation-delay: 750ms !important;
  }
  circle.cls-transition.ring-delay-11 {
    animation-delay: 825ms !important;
  }
  circle.cls-transition.ring-delay-12 {
    animation-delay: 900ms !important;
  }
  circle.cls-transition.ring-delay-13 {
    animation-delay: 975ms !important;
  }
  circle.cls-transition.ring-delay-14 {
    animation-delay: 1050ms !important;
  }
  circle.cls-transition.ring-delay-15 {
    animation-delay: 1125ms !important;
  }
  circle.cls-transition.ring-delay-16 {
    animation-delay: 1200ms !important;
  }
  circle.cls-transition.ring-delay-17 {
    animation-delay: 1275ms !important;
  }
  circle.cls-transition.ring-delay-18 {
    animation-delay: 1350ms !important;
  }
  circle.cls-transition.ring-delay-19 {
    animation-delay: 1425ms !important;
  }
  circle.cls-transition.ring-delay-20 {
    animation-delay: 1500ms !important;
  }
