.map__sidebar {
  background: #fff;
  -webkit-box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.5);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 25rem;
  z-index: 2;
}

.map__sidebar-more-link {
  background: #f2f5f7;
  border-top: 1px solid #dde1e9;
  bottom: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  left: 0;
  padding: 1.5rem 1.5rem;
  position: absolute;
  width: 100%;
  z-index: 4;
}

.map__sidebar-more-link .text__link {
  cursor: pointer;
}

.map__sidebar-more-link .text__link::before {
  background-position: left -3rem;
}

.map__sidebar-container {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  height: 100%;
  overflow-y: auto;
  padding-bottom: 6.375rem;
}

.map__content {
  color: #54657e;
}

.map__content-routes .map__content-header {
  border-bottom: 0;
}

.map__content-routes .map__content-title {
  margin: 0;
}

.map__content-routes .map__route {
  border-bottom: 1px solid #dde1e9;
  margin: 0;
}

.map__content-routes .map__route-list {
  position: relative;
}

.map__content-routes .map__route-list::before {
  background: #1d2533;
  bottom: 0;
  content: '';
  left: 2.3125rem;
  position: absolute;
  top: 1px;
  width: 0.125rem;
  z-index: 1;
}

.map__content-routes .map__route-item {
  padding: 0;
}

.map__content-routes .map__route-item::before {
  display: none;
}

.map__content-routes .map__route-item.map__route-item--initial .map__route-item-label::after {
  background: #1d2533;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}

.map__content-routes .map__route-item:first-child .map__route-item-label::before {
  background: #fff;
  content: '';
  display: block;
  height: 50%;
  left: 1.875rem;
  position: absolute;
  top: 0;
  -webkit-transform: none;
  transform: none;
  width: 0.625rem;
  z-index: 2;
}

.map__content-routes .map__route-item:last-child .map__route-item-label::before {
  background: #fff;
  bottom: 0px;
  content: '';
  display: block;
  height: 50%;
  left: 1.875rem;
  position: absolute;
  -webkit-transform: none;
  transform: none;
  width: 0.625rem;
  z-index: 2;
}

.map__content-routes .map__route-item--has-connection .map__route-item-label-inner {
  position: relative;
}

.map__content-routes .map__route-item--has-connection .map__route-item-label-inner::after {
  background: -webkit-gradient(linear, right top, left top, from(#d71c1c), to(#ad1457));
  background: linear-gradient(to left, #d71c1c, #ad1457);
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 0 2px #1d2533;
  box-shadow: inset 0 0 0 2px #1d2533;
  content: '';
  height: 1rem;
  left: -3.75rem;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 1rem;
  z-index: 2;
}

.map__content-routes .map__route-item--has-connection .map__route-item-label-inner::before {
  background: #1d2533;
  content: '';
  display: block;
  height: 0.125rem;
  left: -2.8125rem;
  margin-top: -1px;
  position: absolute;
  top: 50%;
  width: 0.625rem;
  z-index: 1;
}

.map__content-routes .map__route-item--has-connection-red .map__route-item-label-inner::after {
  background: -webkit-gradient(linear, right top, left top, from(#d71c1c), to(#ad1457));
  background: linear-gradient(to left, #d71c1c, #ad1457);
}

.map__content-routes .map__route-item--has-connection-blue .map__route-item-label-inner::after {
  background: -webkit-gradient(linear, right top, left top, from(#0277bd), to(#1bacc0));
  background: linear-gradient(to left, #0277bd, #1bacc0);
}

.map__content-routes .map__route-item--has-connection-green .map__route-item-label-inner::after {
  background: -webkit-gradient(linear, right top, left top, from(#1bacc0), to(#1bbc57));
  background: linear-gradient(to left, #1bacc0, #1bbc57);
}

.map__content-routes .map__route-item-label {
  border-top: 1px solid #dde1e9;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: block;
  padding: 0.75rem 1rem 0.75rem 4.1875rem;
  position: relative;
  text-decoration: none;
}

.map__content-routes .map__route-item-label::after {
  background: -webkit-gradient(linear, right top, left top, from(#d71c1c), to(#ad1457));
  background: linear-gradient(to left, #d71c1c, #ad1457);
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 0 2px #1d2533;
  box-shadow: inset 0 0 0 2px #1d2533;
  content: '';
  height: 16px;
  left: 1.875rem;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 16px;
  z-index: 2;
}

.map__content-routes .map__route-item-label:hover::after {
  -webkit-box-shadow: inset 0 0 0 2px #1d2533;
  box-shadow: inset 0 0 0 2px #1d2533;
  -webkit-box-shadow: inset 0 0 0 2px #1d2533, 0 0 0 4px #fff, 0 0 0 6px #1d2533;
  box-shadow: inset 0 0 0 2px #1d2533, 0 0 0 4px #fff, 0 0 0 6px #1d2533;
}

.map__content-routes .map__route-item-label-text {
  color: #1d2533;
  display: block;
  cursor: pointer;
  font-family: "Montserrat", arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5rem;
}

.map__content-routes a.map__route-item-label-text {
  color: #1d2533;
  text-decoration: none;
}

.map__content-routes a.map__route-item-label-text:hover {
  text-decoration: underline;
}

.map__content-routes .map__route-places {
  background: #fff;
  z-index: 2;
}

.map__content-routes .map__route-places::before {
  background: #dde1e9;
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 0.375rem;
}

.map__content-routes .map__route-item:last-child .map__route-place:last-child {
  position: relative;
}

.map__content-routes .map__route-item:last-child .map__route-place:last-child::before {
  background: #fff;
  bottom: 0px;
  content: '';
  display: block;
  height: 50%;
  left: 2.0625rem;
  position: absolute;
  -webkit-transform: none;
  transform: none;
  width: 0.625rem;
  z-index: 2;
}

.map__content-routes .map__route-place-item {
  color: inherit;
  display: block;
  padding: 0.75rem 1rem 0.75rem 4.1875rem;
  position: relative;
  text-decoration: none;
}

.map__content-routes .map__route-place-item:hover {
  text-decoration: underline;
}

.map__content-routes .map__route-place-item::before {
  background: #fff;
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 0 2px #1d2533;
  box-shadow: inset 0 0 0 2px #1d2533;
  content: '';
  height: 16px;
  left: 1.875rem;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 16px;
  z-index: 2;
}

.map__content-routes .js__collapsible-item .map__route-item-label {
  background: url("../../img/layout/ico-route-map-closed.svg") right 16px center no-repeat;
  cursor: pointer;
}

.map__content-routes .js__collapsible-item--visible .map__route-item-label {
  background: url("../../img/layout/ico-route-map-open.svg") right 16px center no-repeat;
}

.map__content-routes .js__collapsible-item--visible:last-child .map__route-item-label::before {
  display: none !important;
}

.skin-bbt .map__content-routes .map__route--red-route .map__route-item-label::after {
  background: -webkit-gradient(linear, right top, left top, from(#d71c1c), to(#ad1457));
  background: linear-gradient(to left, #d71c1c, #ad1457);
}

.skin-bbt .map__content-routes .map__route--blue-route .map__route-item-label::after {
  background: -webkit-gradient(linear, right top, left top, from(#0277bd), to(#1bacc0));
  background: linear-gradient(to left, #0277bd, #1bacc0);
}

.skin-bbt .map__content-routes .map__route--green-route .map__route-item-label::after {
  background: -webkit-gradient(linear, right top, left top, from(#1bacc0), to(#1bbc57));
  background: linear-gradient(to left, #1bacc0, #1bbc57);
}

.map__content-header {
  border-bottom: 1px solid #dde1e9;
  padding: 1.875rem 1.875rem 1.5rem;
}

.map__content-title {
  color: #1d2533;
  margin: 0 0 1.5rem;
  font-family: "Montserrat", arial, sans-serif;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.75rem;
}

.map__content-title--back {
  padding-left: 2.5rem;
  position: relative;
}

.map__content-title--back::before {
  background: url("../../img/layout/ico-back.svg") left top no-repeat;
  content: '';
  height: 1.5rem;
  left: 0;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 1.5rem;
}

.map__content-image {
  margin-bottom: 1.5rem;
}

.map__content-image-item {
  width: 100%;
}

.map__routes {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.map__routes--poi {
  display: block;
}

.map__routes--poi .map__route {
  display: block;
  line-height: 1.5rem;
  margin: 0;
}

.map__routes--poi .map__route + .map__route {
  margin-top: 1rem;
}

.map__route {
  line-height: 2rem;
  margin-right: 1rem;
}

.map__route-item {
  padding-left: 2rem;
  position: relative;
}

.map__route-item::before {
  background: url("../../img/layout/ico-stops.svg") left top no-repeat;
  content: '';
  height: 1.5rem;
  left: 0;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 1.5rem;
}

.skin-bbt .map__route-item--red::before {
  background-position: 0rem top;
}

.skin-bbt .map__route-item--blue::before {
  background-position: -1.5rem top;
}

.skin-bbt .map__route-item--green::before {
  background-position: -3rem top;
}

.map__content-main {
  padding: 2.5rem 1.875rem 0;
}

.map__intro {
  margin-bottom: 2rem;
  font-size: 1rem;
  line-height: 1.5rem;
}

.map__details {
  margin-bottom: 2.5rem;
}

.map__detail {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  position: relative;
}

.map__detail::after {
  background: #1d2533;
  bottom: 0;
  content: '';
  height: 1px;
  left: 0;
  position: absolute;
  width: 2.25rem;
}

.map__detail:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}

.map__detail:last-child::after {
  display: none;
}

.map__detail-title {
  color: #1d2533;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5rem;
}

.map__detail-info {
  font-size: 0.875rem;
  line-height: 1.5rem;
}

.map__detail-info p {
  margin: 0;
}

.map__detail-info .ext {
  color: inherit;
  padding-right: 1rem;
  position: relative;
}

.map__detail-info .ext::after {
  background: url("../../img/layout/ico-external-link.svg") left -1rem no-repeat;
  background-size: 1rem auto;
  content: '';
  height: 1rem;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 1rem;
}

.map__places-title {
  color: #1d2533;
  margin: 0 0 1rem;
  font-family: "Montserrat", arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5rem;
}

.map__places-item {
  min-height: 4rem;
  padding-left: 5rem;
  position: relative;
}

.map__places-item + .map__places-item {
  margin-top: 0.75rem;
}

.map__place-img {
  left: 0;
  position: absolute;
  top: 0;
  width: 4rem;
}

.map__place-title-link {
  color: #1d2533;
  text-decoration: none;
}

.map__place-title-link:hover {
  text-decoration: underline;
}

.map__place-title {
  color: #1d2533;
  margin: 0;
  font-family: "Montserrat", arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5rem;
}

.map__place-description {
  font-size: 0.875rem;
  line-height: 1.5rem;
}

.map__place-description p {
  margin: 0;
}

.map__item {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.map__item-placeholder {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

@media screen and (max-width: 47.9375em) {
  .map__sidebar {
    display: none;
  }
}
