/*
* Scut, a collection of Sass utilities
* to ease and improve our implementations of common style-code patterns.
* v2.0.0
* Docs at http://ramseyinhouse.github.io/scut
*/
.sn_interactive_map {
  position: relative;
  max-width: 120rem;
  margin: 0 auto;
}
@media only screen and (min-width: 62em) {
  .sn_interactive_map {
    display: flex;
  }
}
.sn_interactive_map_m {
  flex-grow: 1;
}
@media only screen and (min-width: 62em) {
  .sn_interactive_map_m svg {
    position: -webkit-sticky;
    position: sticky;
    top: 7rem;
    left: 0;
  }
}
.sn_interactive_map_m_extra {
  pointer-events: none;
}
._open .sn_interactive_map_m_hotspots {
  pointer-events: none;
}
._hovered .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) path:not(.bg),
._hovered .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) polygon:not(.bg),
._hovered .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) rect:not(.bg), ._open .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) path:not(.bg),
._open .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) polygon:not(.bg),
._open .sn_interactive_map_m_hotspots_residences .hotspot:not(._current) rect:not(.bg) {
  fill: #d0d0d0 !important;
}
._hovered .sn_interactive_map_m_hotspots_services .hotspot:not(._current) > g, ._open .sn_interactive_map_m_hotspots_services .hotspot:not(._current) > g {
  opacity: 0.1;
}
.sn_interactive_map_m_hotspots .hotspot {
  cursor: pointer;
}
.sn_interactive_map_m_hotspots .hotspot g,
.sn_interactive_map_m_hotspots .hotspot path,
.sn_interactive_map_m_hotspots .hotspot polygon,
.sn_interactive_map_m_hotspots .hotspot rect {
  transition: all 0.35s ease;
}
.sn_interactive_map_l {
  min-height: 100%;
  display: none;
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 62em) {
  .sn_interactive_map_l {
    display: flex;
    flex-direction: column;
  }
}
._open .sn_interactive_map_l {
  pointer-events: none;
}
.sn_interactive_map_l_i {
  position: relative;
  display: block;
  flex-grow: 1;
  cursor: pointer;
  z-index: 1;
}
.sn_interactive_map_l_i:hover::before, .sn_interactive_map_l_i._hover::before {
  border-color: #000;
  left: -0.125rem;
}
.sn_interactive_map_l_i:hover::after, .sn_interactive_map_l_i._hover::after {
  opacity: 1;
}
.sn_interactive_map_l_i:hover .info, .sn_interactive_map_l_i._hover .info {
  width: 18.75rem;
}
.sn_interactive_map_l_i::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-width: 0.125rem;
  border-style: solid;
  border-color: rgba(0, 0, 0, 0);
  transition: all 0.35s ease;
}
.sn_interactive_map_l_i::after {
  content: "";
  position: absolute;
  top: 0.125rem;
  left: -0.125rem;
  bottom: 0.125rem;
  width: 0.125rem;
  background: #fff;
  opacity: 0;
  transition: all 0.35s ease;
}
.sn_interactive_map_l_i[data-legend-group] {
  display: none;
}
.sn_interactive_map_l_i[data-legend-group] figure {
  box-shadow: 0 0 0 0.0625rem #000 inset;
}
.sn_interactive_map_l_i figure {
  width: 6.25rem;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: block;
  margin: 0;
  min-height: 2.5rem;
}
.sn_interactive_map_l_i .info {
  position: absolute;
  top: 0;
  right: 100%;
  width: 0;
  background: #fff;
  overflow: hidden;
  transition: all 0.45s cubic-bezier(0.35, 0, 0, 1);
}
.sn_interactive_map_l_i .info_in {
  width: 18.75rem;
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  border: 0.125rem solid #000;
}
.sn_interactive_map_l_i .info._bottom {
  top: auto;
  bottom: 0;
}
.sn_interactive_map_l_i .info a,
.sn_interactive_map_l_i .info span {
  white-space: nowrap;
  color: #000;
}
.sn_interactive_map_l_i .info a:hover, .sn_interactive_map_l_i .info a:active {
  font-weight: 700;
}
.sn_interactive_map_l_i .info > div {
  margin-bottom: 0.3125rem;
}
.sn_interactive_map_l_i .info > div:last-child {
  margin-bottom: 0;
}
.sn_interactive_map_p_i {
  padding: 1.875rem;
  z-index: 10;
  display: none;
  max-width: 31.25rem;
  max-height: 90vh;
  height: 25rem;
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media only screen and (min-width: 62em) {
  .sn_interactive_map_p_i {
    height: 31.25rem;
  }
}
.sn_interactive_map_p_i_img {
  background-color: #dcdcdc;
  position: absolute;
  top: 1.875rem;
  right: 1.875rem;
  bottom: 1.875rem;
  left: 1.875rem;
}
.sn_interactive_map_p_i_img::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 61.82%, rgba(0, 0, 0, 0.8) 100%);
  z-index: 10;
}
.sn_interactive_map_p_i_img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.sn_interactive_map_p_i_in {
  height: 100%;
  display: flex;
  align-items: flex-end;
  box-shadow: 0.38rem 6.23875rem 5rem 0 rgba(0, 0, 0, 0.2);
  text-decoration: none !important;
  position: relative;
  z-index: 20;
}
.sn_interactive_map_p_i_in._service {
  background: #fff;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.sn_interactive_map_p_i_in > div {
  padding: 1.875rem;
  z-index: 10;
}
.sn_interactive_map_p_i_in_ct {
  color: #fff !important;
}
.sn_interactive_map_p_i_in_ct .title {
  line-height: 1.2;
  font-weight: 800;
}
.sn_interactive_map_p_i_in_ct .title {
  font-size: 1.5rem;
}
.sn_interactive_map_p_i_in_ct .text {
  line-height: 1.21;
}
.sn_interactive_map_p_i_in_ct .text {
  font-size: 1rem;
}
.sn_interactive_map_p_i p {
  margin: 0;
}
.sn_interactive_map_p_close {
  width: 46px;
  height: 46px;
  position: absolute;
  top: 3.125rem;
  right: 3.125rem;
  display: block;
  padding: 0.875rem;
  border-radius: 100%;
  background: #343a40;
  color: #fff;
  z-index: 30;
  cursor: pointer;
}
.sn_interactive_map_p_close:hover::before, .sn_interactive_map_p_close:active::before {
  opacity: 1;
}
.sn_interactive_map_p_close::before {
  content: "";
  background: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  border-radius: 100%;
  transition: all 0.35s ease;
}
.sn_interactive_map_p_close .sn_sprite {
  position: relative;
  z-index: 1;
}