body {
    overflow-x: hidden
}

.mobile_menu nav > ul > li a {
    font-weight: 400 !important
}

a, button, input[type=button], input[type=submit] {
    cursor: pointer
}

.card {
    position: relative;
    width: 100%;
    max-width: 380px;
    margin-bottom: 60px;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    background-color: #fff
}

.card:not(.in_map):hover {
    z-index: 999;
    box-shadow: 0 0 11px 6px #c5c5c5
}

.card.in_map {
    width: 100%;
    min-width: 100%;
    max-width: 280px;
    margin-bottom: 0;
    box-shadow: none
}

.card.card-vertical {
    display: flex;
    flex-direction: row;
    max-width: 732px;
    margin-top: 20px;
    margin-bottom: 35px
}

.card .card-property {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    box-sizing: border-box;
    padding-right: 42px;
    max-width: 542px
}

.card.in_map .card-property {
    padding-right: 0;
    padding-left: 0
}

.card.card-big .card-property {
    padding-right: 54px
}

.card.in_map .card-property > div {
    margin: 0 6px 0 0
}

.card .card-property > div {
    display: flex;
    -ms-align-items: center;
    align-items: center;
    margin: 0 6px 0 17px;
    height: 30px
}

.card .card-property svg {
    width: 17px;
    height: 17px;
    fill: #d2d2d2;
    display: inline-block
}

.card .card-property p {
    font-size: 12px;
    width: 80px;
    margin: 0;
    padding: 0 0 0 11px;
    line-height: 1.3
}

.card .image {
    margin-top: 20px;
    position: relative;
    margin-bottom: 14px;
    width: 100%;
    max-width: 100%
}

.card.card-vertical .image {
    max-width: 350px;
    max-height: 220px
}

.card-single .image {
    margin-bottom: 9px
}

.card-single {
    max-width: 375px
}

.card .image p {
    position: absolute;
    width: 70px;
    height: 26px;
    left: 0;
    top: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #e31e25;
    z-index: 2;
    font-size: 12px;
    font-weight: 700;
    color: #fff
}

.card .card-title {
    position: relative;
    line-height: 24px;
    margin: 16px 25px 10px 20px;
    height: 75px;
    overflow: hidden
}

.card.in_map .card-title {
    margin-left: 0;
    margin-right: 0;
    height: auto
}

.card-vertical .card-title {
    margin: 12px 30px 10px 13px
}

.card-single .card-title {
    margin-top: 10px;
    margin-right: 30px
}

.card.card-vertical .card-title {
    margin-top: 10px
}

.card .card-price {
    display: inline-flex;
    max-width: 352px;
    width: 100%;
    margin: auto 0 10px
}

.card .card-price .price {
    display: inline-flex;
    align-items: flex-end;
    padding: 2px 50px 2px 14px
}

.card .card-price .price strong {
    font-size: 28px
}

.card .card-price .price p {
    font-size: 15px;
    padding: 14px 7px 0 9px;
    letter-spacing: -.3px
}

.card .card-price .price svg {
    width: 22px;
    margin-bottom: 8px;
    padding: 0 2px
}

.card .card-price .price svg:hover g path:first-child {
    fill: #1183df;
    cursor: pointer
}

.card .description .card-price span:hover {
    transition: .3s;
    transition-property: opacity
}

.card .image img {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 0 20px;
    max-width: 100%;
    min-height: 227px;
    max-height: 225px
}

.card.card-big .image img {
    min-width: 375px;
    min-height: 250px;
    max-height: 250px
}

.card .image svg {
    position: absolute;
    top: 10px;
    right: 30px;
    width: 32px;
    z-index: 2
}

.card.in_map .image svg {
    right: 15px
}

.card .image svg g path:nth-child(1) {
    fill: rgba(255, 255, 255, .8)
}

.card .image svg g path:nth-child(2) {
    fill: transparent
}

.card .image svg:hover g path:nth-child(2) {
    fill: rgba(227, 30, 37, .6)
}

.card .image svg.in_featured g path:nth-child(2) {
    cursor: pointer;
    fill: rgba(227, 30, 37)
}

.card-vertical .description {
    padding-left: 10px;
    box-sizing: border-box
}

.card .description {
    max-width: 376px;
    display: flex;
    height: 100%;
    flex-direction: column
}

.card .card-btn svg {
    height: 44px;
    position: absolute;
    bottom: 17px;
    right: 9px
}

.card .card-btn svg:hover * {
    fill: #1183df;
    cursor: pointer
}

.card .image .item, .card .image .owl-carousel.owl-drag .owl-item, .card .image img {
    min-height: 210px;
    height: 210px;
    width: 100%;
    object-fit: cover
}

.card.in_map .carousel .item, .card.in_map .carousel img {
    margin-right: 0;
    max-width: 100%;
    padding: 0;
    height: 170px;
    min-height: 170px;
    max-height: 170px
}

.card .image .carousel .owl-carousel {
    position: relative;
    margin-top: -25px
}

.card.in_map .carousel .item, .card.in_map .carousel img {
    margin-right: 0;
    max-width: 100%;
    padding: 0;
    height: 170px;
    min-height: 170px;
    max-height: 170px
}

.card .owl-dots .owl-dot span {
    width: 7px;
    height: 7px;
    background: #fff;
    margin: 0;
    opacity: 0.6;
}

.card .owl-dots .owl-dot {
    outline: 0;
    width: 11px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center
}

.card .owl-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    position: absolute;
    bottom: 10px;
    width: 100%
}

.card .owl-dots .owl-dot.active span, .card .owl-dots .owl-dot:hover span {
    background: #fff;
    width: 7px;
    height: 7px;
    position: relative;
    opacity: 1;
}

.owl-carousel .owl-stage {
    max-height: 240px
}

.card .card-title a {
    color: #333;
    font-size: 16px;
    text-decoration: none
}

.card.two_in_row {
    max-width: 350px;
    margin-bottom: 0
}

.card.card-vertical .card-property, .card.two_in_row .card-property {
    height: 90px;
    overflow-y: hidden
}

.card.in_map .image {
    margin: 0
}

form .middle {
    margin-bottom: 26px
}

.input.areas {
    display: none
}

.form_filter {
    box-shadow: unset !important
}

#catalog .filters form .top .radio span:before {
    content: '';
    width: 17px;
    height: 17px;
    border: solid 1px #138aea;
    position: absolute;
    left: 0;
    top: 7px;
    border-radius: 50%;
    box-sizing: border-box
}

#catalog .filters form .top .radio span.checked:after {
    content: '';
    width: 11px;
    height: 11px;
    background: #138aea;
    position: absolute;
    left: 3px;
    top: 10px;
    border-radius: 50%
}

.card .owl-dots .owl-dot span {
    border-radius: 50%
}

.tooltip .tooltip-inner {
    background-color: #138aea;
    color: #fff;
    border-radius: 6px;
    padding: 5px 10px 4px;
    opacity: 1;
    box-sizing: border-box
}

.tooltip.priceinfo {
    position: absolute;
    display: none;
    white-space: nowrap;
    bottom: 100%;
    right: 50%;
    transform: translateX(50%);
    z-index: 99
}

.tooltip.priceinfo li {
    font-size: 16px;
    padding: 5px
}

.has-tooltip {
    position: relative;
    padding-top: 6px
}

.has-tooltip:hover .tooltip.priceinfo {
    display: block
}

.slide_tooltip {
    position: absolute;
    background: #3498db;
    font-size: 14px;
    padding: 2px 5px;
    min-width: 65px;
    border-radius: 5px;
    justify-content: center;
    color: #fff
}

.slide_tooltip:before {
    position: absolute;
    width: 6px;
    height: 6px;
    transform: translateX(-50%) rotate(45deg);
    left: 50%;
    content: '';
    background: #3498db;
    z-index: -1
}

.slide_tooltip.s_from:before {
    bottom: -3px
}

.slide_tooltip.s_to:before {
    top: -3px
}

.slide_tooltip.s_from {
    top: -30px;
    transform: translateX(-50%)
}

.slide_tooltip.s_to {
    bottom: -30px;
    transform: translateX(-50%)
}

#slider-range {
    position: relative
}

.ui-widget.ui-widget-content {
    height: 6px;
    border: unset;
    background: #ccc;
    border-radius: 15px;
    width: 100%
}

.ui-slider-horizontal .ui-slider-range {
    background: #3498db
}

.ui-state-default, .ui-widget-content .ui-state-default {
    background: #fff;
    border-radius: 50%;
    -webkit-box-shadow: .5px .5px 2px 0 rgba(0, 0, 0, .32);
    box-shadow: .5px .5px 2px 0 rgba(0, 0, 0, .32);
    width: 16px;
    height: 16px;
    top: 50%;
    outline: 0;
    transform: translateY(-50%);
    cursor: grab
}

.select2-container--default .select2-selection--single {
    background-color: #fff;
    border: 1px solid #e6e6e6 !important;
    border-radius: 4px;
    height: unset;
    padding: 8px 5px;
    outline: 0
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 50%;
    transform: translateY(-50%);
    right: 12px
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #e51e25 transparent transparent transparent;
    border-width: 5px 5px 0 5px
}

.select2-container {
    width: 100% !important;
    z-index: 99999;
    max-width: 300px
}

.select2-container--default .select2-selection--multiple, .select2-container--default.select2-container--focus .select2-selection--multiple {
    max-height: 46px;
    overflow: auto;
    padding: 0 !important;
    padding-right: 30px;
    border: 2px solid #e6e6e6 !important;
    border-radius: 2px
}

.select2-container--default .select2-selection--multiple::-webkit-scrollbar, .select2-container--default.select2-container--focus .select2-selection--multiple::-webkit-scrollbar {
    width: 4px
}

.select2-container--default .select2-selection--multiple::-webkit-scrollbar-thumb, .select2-container--default.select2-container--focus .select2-selection--multiple::-webkit-scrollbar-thumb {
    background-color: #3498db;
    outline: 1px solid #708090;
    width: 2px;
    border-radius: 2px
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: 0 0 !important
}

.select2-container--default .select2-search--inline .select2-search__field {
    height: unset !important;
    margin-top: 0 !important
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove span {
    color: rgba(255, 0, 0, .5)
}

.select2-container--default .select2-selection--multiple:after {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    border-top: 5px solid #e31e25;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    transition: .5s
}

.select2-container--open.select2-container--default .select2-selection--multiple:after {
    transform: translateY(-50%) scale(-1)
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    border-right: unset !important
}

.select2-container .selection {
    display: block;
    width: 100%
}

.filters_flex {
    display: none
}

#load_properties {
    width: 140px;
    text-align: center;
    height: 100px;
    border-radius: 100%;
    position: absolute;
    bottom: 0;
    right: 50%;
    transform: translateX(50%);
    display: none
}

#load_properties span {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 100%;
    background-color: #e53a42;
    margin: 35px 3px;
    opacity: 0
}

#load_properties span:nth-child(1) {
    display: none
}

#load_properties span:nth-child(2) {
    animation: opacitychange 1s ease-in-out .1s infinite
}

#load_properties span:nth-child(3) {
    animation: opacitychange 1s ease-in-out .2s infinite
}

#load_properties span:nth-child(4) {
    animation: opacitychange 1s ease-in-out .3s infinite
}

#load_properties span:nth-child(5) {
    animation: opacitychange 1s ease-in-out .4s infinite
}

#load_properties span:nth-child(6) {
    animation: opacitychange 1s ease-in-out .5s infinite
}

@keyframes opacitychange {
    0%, 100% {
        opacity: 0
    }
    60% {
        opacity: 1
    }
}

.alert-message {
    width: 100%;
    box-sizing: border-box;
    font-size: 14px;
    margin: 20px 0;
    padding: 20px;
    border-left: 3px solid #eee
}

.alert-message h4 {
    font-size: 22px;
    margin-left: 0;
    margin-top: 0;
    margin-bottom: 5px
}

.alert-message p:last-child {
    margin-bottom: 0
}

.alert-message code {
    background-color: #fff;
    border-radius: 3px
}

.alert-message-danger {
    background-color: #fdf7f7;
    border-color: #d9534f
}

.alert-message-danger h4 {
    color: #d9534f
}

.text-description p {
    margin: 30px 0 0 9px;
    line-height: 21px;
    font-size: .9em
}

.text-description p a {
    font-size: 1em;
    letter-spacing: -.2px;
    color: #0270c9;
    text-decoration: none
}

.text-description p:last-child a {
    font-size: 1em
}

header.map_opened {
    margin-top: -40px
}

header.map_opened + main#catalog_main #catalog, header.map_opened + main#catalog_main .main-description, header.map_opened + main#catalog_main + .footer {
    position: relative;
    top: 660px;
    z-index: 99999999999
}

header.map_opened + main#catalog_main .mapbtn {
    top: 400px
}

form .top .first:after {
    display: none
}

.form_filter {
    box-shadow: none
}

.range #slider-range .vue-slider {
    width: 100% !important
}

div .vs__selected {
    white-space: nowrap
}

.sort {
    max-width: 300px;
    width: 100%;
    position: relative !important;
    top: 0 !important;
    left: 0
}

.sort form .middle {
    margin-bottom: 0
}

.sort form {
    width: auto;
    margin-right: 0
}

.sort form .middle .input .vs__selected {
    border: none !important
}

.likeaslider, .sort form .middle .input .vs__clear {
    display: none
}

.sort form .middle > div {
    display: block;
    width: 100%;
    max-width: 242px;
    margin: 10px 0 0 0
}

#catalog .filters form .top .first .radio {
    display: flex
}

.header_catalog_viber svg {
    fill: #000
}

.catalog_kv {
    position: absolute;
    left: 130px;
    top: 65px
}

.catalog-wrapper {
    margin-top: 60px;
    position: relative
}

#catalog {
    position: relative
}

#catalog_main {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    position: relative
}

#catalog_main:before {
    content: "";
    position: absolute;
    background: url(../img/02b.jpg) no-repeat;
    background: -webkit-image-set(url(../img/02b.webp) 1x) no-repeat;
    max-width: 1452px;
    width: 100%;
    height: 529px;
    top: -240px;
    right: 0;
    z-index: -1;
    background-size: cover;
    background-position: 0 -197px
}

#catalog_main .mapbtn {
    top: 140px
}

#catalog .catalog-wrapper .content {
    display: flex;
    padding: 55px 10px;
    margin: 0 auto;
    width: 100%;
    max-width: 1535px;
    box-sizing: border-box
}

#catalog .catalog-wrapper .content .filters .red {
    margin: 21px 0 42px 10px;
    align-items: center
}

#catalog .catalog-wrapper .content .filters .red h3 {
    font-weight: 800;
    margin: 0;
    letter-spacing: -.8px
}

#catalog .catalog-wrapper .content .filters .red img {
    width: 74px;
    height: 6px;
    margin: 3px 29px 0 0
}

#catalog .filters form {
    width: 335px;
    margin: unset;
    padding-bottom: unset
}

#catalog .filters form .top {
    border: unset
}

#catalog .filters form .top .first {
    display: flex;
    width: unset;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 72px 0 21px
}

#catalog .filters form .top .second {
    width: 90%;
    margin-top: 12px;
    padding: 0 17px
}

#catalog .filters form .top .second .input-type label {
    padding: 0 0 10px
}

#catalog .filters form .top .second .input-type select {
    padding: 0 15px 0
}

#catalog .filters form select {
    padding: 2px 15px 0;
    width: 100%;
    height: 46px;
    background: url(../img/icons/35.svg) no-repeat top 19px left 259px;
    background-size: 10px
}

#catalog .filters form .top * {
    flex-wrap: wrap
}

#catalog .filters form .top .radio {
    display: flex;
    width: 50%;
    padding: 0;
    align-items: center
}

#catalog .filters form .top .radio span {
    font-size: 14px;
    padding-left: 26px;
    align-items: center
}

#catalog .filters form .top .radio input {
    width: 18px
}

#catalog .filters form .middle {
    padding: 0;
    max-width: 305px
}

#catalog .filters form .middle > .input {
    max-width: 100%;
    margin-left: 0;
    margin-top: 7px
}

#catalog .filters form .middle > .input:first-child {
    margin-top: 0
}

#catalog .filters form .middle .range {
    margin: 35px 0 0 1px;
    max-width: 300px
}

#catalog .filters form .middle .range input {
    height: 14px
}

#catalog .filters form .middle input {
    width: 100%;
    max-width: 305px;
    height: 43px
}

#catalog .filters form .middle .input label {
    width: 100%;
    margin: 18px 0 7px 0
}

form .btn {
    width: 305px
}

#catalog .filters form .middle .btn {
    margin: 49px 0 0 2px;
    padding-top: 12px;
    width: 302px
}

#catalog .filters form .middle #slider-range {
    width: 100%;
    margin: 35px auto 0
}

#catalog .filters form .bot {
    display: flex;
    flex-wrap: wrap;
    margin-left: 0;
    margin-bottom: 27px;
    max-width: 300px
}

#catalog .filters form .bot .filter {
    margin-bottom: 10px
}

#catalog .catalog-wrapper .content .catalog {
    display: flex;
    flex-wrap: wrap;
    padding-left: 30px;
    align-items: stretch;
    width: 100%
}

#catalog.mapshow {
    margin-top: 505px
}

.kvv_catalog {
    position: absolute;
    bottom: 55px;
    left: 517px;
    z-index: -1
}

main .main-description .wrapper:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 100%;
    z-index: 1;
    background-color: red
}

main .main-description {
    padding: 70px 0 0 0;
    min-height: 150px;
    position: relative;
    top: 68px;
    max-width: 1535px;
    box-sizing: border-box;
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    z-index: unset !important
}

main .main-description .wrapper {
    z-index: 999999;
    max-width: 920px;
    min-width: 920px;
    position: relative;
    background-color: #fff;
    box-sizing: border-box;
    padding: 21px 37px 15px;
    min-height: 260px;
    box-shadow: 0 2px 13px 4px rgba(0, 0, 0, .2)
}

main .main-description .wrapper svg {
    position: absolute;
    right: 31px;
    height: 42px
}

main .main-description .wrapper h1 {
    margin: 20px 0 20px 0;
    color: unset;
    font-weight: 700
}

main .main-description .wrapper a, main .main-description .wrapper p {
    font-size: 14px;
    line-height: 23px
}

main .main-description .wrapper a {
    color: #016fc8
}

@media (max-width: 1919px) {
    #catalog_main:before {
        right: -24%;
        max-width: 100%
    }

    .catalog_kv {
        position: absolute;
        top: 65px;
        width: 295px;
        left: 6%
    }

    .kvv_catalog {
        left: 22%
    }

    main .main-description {
        padding: 100px 0 10px 0;
        margin: 0 auto;
        max-width: 1520px
    }
}

@media (max-width: 1750px) {
    .catalog_kv {
        left: 3%
    }
}

@media (max-width: 1599px) {
    form .btn {
        width: 100%;
        max-width: 305px
    }

    #catalog_main:before {
        right: -20%
    }

    .catalog_kv {
        width: 250px;
        left: -50px
    }

    .filters {
        margin-right: 50px
    }

    main .main-description .wrapper {
        max-width: 650px;
        margin-left: 20px
    }
}

@media (max-width: 1400px) {
    .catalog-wrapper {
        margin-top: 90px
    }

    main .main-description {
        max-width: 100%
    }

    .sort form {
        background: 0 0
    }

    #catalog .catalog-wrapper .content .catalog {
        padding-left: 0
    }

    #catalog .filters form {
        width: 270px
    }

    #catalog .filters form .top .first {
        padding: 0
    }
}

@media (max-width: 1279px) {
    .card {
        max-width: 400px;
        margin-right: 30px
    }

    .card.card-vertical .card-title {
        margin-top: 20px
    }

    .card.card-vertical {
        flex-direction: column;
        max-width: 260px
    }

    .card-vertical .description {
        padding-left: 20px
    }

    .card .card-price .price strong {
        font-size: 24px
    }

    .card .card-price .price p {
        font-size: 14px;
        padding: 14px 7px 0 5px
    }

    .card .card-title {
        line-height: 22px
    }

    .card .card-title a {
        font-size: 14px
    }

    main .main-description .wrapper {
        min-width: auto
    }

    .catalog_kv {
        width: 250px;
        left: -100px;
        top: 80px
    }

    #catalog_main:before {
        height: 600px;
        background-position: 0
    }
}

@media (max-width: 960px) {
    .sort {
        display: none
    }

    .card, .card.card-vertical, .card.two_in_row {
        max-width: calc(100% - 40px);
        margin-bottom: 40px;
        margin-top: 0;
        -webkit-box-shadow: 0 0 11px 6px #c5c5c5;
        box-shadow: 0 0 11px 6px #c5c5c5;
        padding-top: 1px;
        margin-right: 0
    }

    .card.card-vertical, .card.two_in_row {
        max-width: 100%
    }

    .card .image p {
        width: 100px;
        height: 40px;
        top: 20px;
        font-size: 20px
    }

    .card.in_map .image p {
        width: 60px;
        height: 25px;
        font-size: 12px
    }

    .card .image {
        margin-top: 0
    }

    .card .image img {
        padding: 0
    }

    .card.card-single .image {
        margin-top: 0
    }

    .card.card-big .image img {
        padding: 0
    }

    .card .card-property {
        max-width: 100%;
        margin: 10px 0 0 0;
        padding: 0 20px;
        box-sizing: border-box
    }

    .card .card-price .price {
        padding: 3px 10px 11px 17px
    }

    .card .card-price .price strong {
        font-size: 55px
    }

    .card .card-price .price p {
        font-size: 24px;
        padding: 14px 7px 0 20px;
        letter-spacing: 0
    }

    .card .card-price .price svg {
        width: 40px;
        margin-bottom: 3px;
        padding: 0 2px
    }

    .card .image svg {
        top: 20px;
        right: 40px;
        width: 45px
    }

    .card .card-price {
        color: #000;
        max-width: 100%;
        margin-top: 8px
    }

    .card .card-btn {
        display: none
    }

    .card .description {
        max-width: 100%
    }

    .card .card-title {
        line-height: 36px;
        margin: 0 25px 15px 20px
    }

    .card .card-title a {
        font-size: 26px;
        letter-spacing: 1px
    }

    .card .card-property > div {
        width: 48%;
        margin: 0;
        margin-bottom: 20px
    }

    .card .card-property svg {
        width: 32px;
        height: 32px;
        margin-right: 20px
    }

    .card .card-property p {
        font-size: 24px;
        width: 100%;
        padding: 0;
        color: #666
    }

    .card.card-big .image img {
        min-height: 300px;
        max-height: 100%
    }

    .card.card-vertical .card-title {
        margin: 37px 25px 15px 20px
    }

    .card.card-vertical .card-price .price {
        padding: 3px 10px 11px 17px
    }

    .card.card-vertical .card-price {
        margin: auto 0 10px
    }

    .card-vertical .description {
        padding-left: 0
    }

    .card.in_map .card-property > div {
        width: 100%;
        margin-right: 0;
        height: 25px
    }

    .card.in_map .card-price .price svg {
        width: 22px;
        margin-bottom: 8px;
        padding: 0 2px
    }

    .card.in_map .image {
        margin-top: 0;
        margin-bottom: 0
    }

    .card.in_map .image svg {
        right: 10px;
        width: 22px;
        top: 0
    }

    .card.in_map .card-property p {
        font-size: 12px
    }

    .card.in_map .card-property svg {
        width: 17px;
        height: 17px
    }

    .card .image .item, .card .image .owl-carousel.owl-drag .owl-item, .card .image img, .card.card-vertical .image, .card.two_in_row .image .item, .card.two_in_row .image .owl-carousel.owl-drag .owl-item, .card.two_in_row .image img {
        max-width: 100%;
        min-height: 370px;
        height: 370px
    }

    .card.in_map {
        width: 100%;
        min-width: 170px;
        max-width: 170px;
        margin-bottom: 0;
        position: relative;
        margin-right: 0
    }

    .card.in_map .card-price .price p {
        font-size: 12px
    }

    .card.in_map .card-price {
        max-width: 100%;
        margin-top: 0;
        margin-bottom: 5px
    }

    .card.in_map .card-price .price {
        padding: 0
    }

    .card.in_map .card-price .price strong {
        font-size: 20px
    }

    .card.in_map .tooltip.priceinfo li {
        font-size: 12px;
        padding: 3px
    }

    .card.in_map .card-price .price svg {
        width: 18px;
        margin-bottom: 0
    }

    .card.in_map .carousel .item, .card.in_map .carousel img {
        height: 100px;
        min-height: 100px;
        max-height: 100px
    }

    .card.in_map .card-title {
        margin-top: 10px;
        margin-bottom: 5px;
        line-height: 15px
    }

    .card.in_map .card-title a {
        font-size: 12px
    }

    .card.in_map .card-property {
        margin-top: 0
    }

    main .main-description .wrapper {
        min-width: 100%
    }

    .filters.mob {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 99999999;
        width: 100vw;
        height: 100vh;
        overflow-y: auto;
        overflow-x: hidden;
        background: #fff
    }

    .filters.mob .red {
        display: none
    }

    .filters_flex {
        display: flex;
        align-items: flex-start;
        justify-content: space-between
    }

    .filters.mob form {
        width: 100% !important
    }

    .filters.mob form h4 {
        width: 100%;
        text-align: right;
        margin: 28px auto 0;
        margin-right: 55px;
        font-size: 26px;
        height: auto
    }

    .filters.mob .bot {
        margin: 0 auto !important;
        margin-top: 20px !important;
        box-sizing: border-box;
        padding: 0 60px;
        max-width: 640px !important
    }

    .form_filter button.close_menu {
        min-width: 100px
    }

    .filters.mob .middle {
        height: auto;
        max-width: 100% !important;
        margin-top: 30px
    }

    .filters.mob .middle div label {
        max-width: 100%;
        font-size: 22px;
        margin-bottom: 20px !important
    }

    .filters.mob form .middle .input .toggle {
        background-size: 20px;
        width: 30px;
        height: 30px
    }

    .filters.mob form .middle > .input {
        margin-bottom: 30px
    }

    #catalog .catalog-wrapper .content .filters.mob form .middle .range {
        max-width: calc(100% - 30px)
    }

    .filters.mob form .btn {
        width: 100%;
        max-width: calc(100% - 30px);
        margin: 50px 0;
        height: 80px;
        font-size: 28px
    }

    .filters.mob .vue-slider.vue-slider-ltr {
        height: 10px !important
    }

    .filters.mob form .middle #slider-range span.vue-slider-dot-tooltip-text {
        font-size: 18px
    }

    #catalog .catalog-wrapper .content .filters.mob form .middle input {
        width: 100%;
        max-width: calc(100% - 30px);
        height: 60px;
        background: 0 0;
        box-sizing: border-box;
        margin-top: 0
    }

    .filters.mob form .top {
        padding: 0 60px;
        box-sizing: border-box
    }

    .filters.mob form .top .radio span {
        font-size: 24px !important
    }

    .catalog {
        margin-bottom: 20px
    }

    #load_properties {
        right: calc(50vw - 50px)
    }

    .catalog_map.show + img, .catalog_map.show + img + .main-description .wrapper {
        display: none
    }

    .catalog_map.show + img + .main-description {
        top: 550px !important
    }

    .catalog_map.show + img + .main-description + #catalog {
        top: 470px !important
    }

    .text-description p {
        margin: 25px 0 0 0;
        line-height: 40px;
        font-size: 22px
    }

    .catalog_kv {
        width: 300px;
        left: unset;
        top: 400px;
        right: 0
    }

    header.map_opened {
        margin-top: 0
    }

    #contacts__map.show {
        top: -290px
    }

    header.map_opened + main#catalog_main .mapbtn {
        top: 100px
    }

    h1 {
        font-size: 4.8vw
    }

    .btn.btn-show-form {
        display: block;
        width: 100%;
        margin: 0 auto;
        max-width: 480px;
        font-size: 29px;
        font-weight: 400;
        text-align: center;
        text-transform: uppercase;
        padding: 28px 0 10px;
        cursor: pointer
    }

    main .main-description {
        padding: 0;
        max-width: calc(100% - 40px);
        margin: 290px auto 0;
        flex-direction: column
    }

    #catalog_main .mapbtn {
        top: -140px
    }

    #catalog_main:before {
        top: -607px;
        right: 0;
        background-size: cover;
        height: 745px;
        background-position: 0 158px
    }

    main .main-description .wrapper {
        padding: 6px 20px 0;
        min-height: 150px;
        box-shadow: unset;
        max-width: 100%;
        margin-left: 0
    }

    .filters, main .main-description .wrapper span, main .main-description .wrapper svg, main .main-description .wrapper:before {
        display: none
    }

    main .main-description .wrapper a, main .main-description .wrapper p {
        font-size: 24px;
        line-height: 39px
    }

    #catalog .catalog-wrapper .content {
        display: block;
        padding: 50px 0
    }

    #catalog .catalog-wrapper .content .catalog {
        padding: 0;
        justify-content: center
    }

    #catalog .catalog-wrapper .sort form {
        margin: 0 auto;
        padding: 20px 0 0
    }

    .sort {
        margin: 0 auto;
        margin-top: 70px;
        max-width: 480px
    }

    .sort form {
        margin: 0;
        padding: 0
    }

    .sort form .middle {
        margin-bottom: 30px;
        height: auto;
        max-width: 100%;
        padding: 0
    }

    .sort form .middle > div {
        max-width: 100%;
        margin: 0
    }

    #catalog .card .card-price .price svg {
        top: 0
    }
}

@media (max-width: 639px) {
    .card.card-single, .card.card-vertical, .card.two_in_row {
        max-width: 100%
    }

    .card .image svg {
        top: 15px;
        right: 20px;
        width: 30px
    }

    .card .image p {
        width: 75px;
        height: 30px;
        font-size: 16px
    }

    .card .image img {
        padding: 0
    }

    .card .image {
        margin-top: -1px
    }

    .card .card-title a {
        font-size: 18px
    }

    .card .card-title {
        line-height: 26px;
        margin: 15px;
        height: auto
    }

    .card .card-property {
        padding: 0 15px
    }

    .card .card-property > div {
        margin-bottom: 15px
    }

    .card .card-property svg {
        width: 20px;
        min-width: 20px;
        margin-right: 10px
    }

    .card .card-property p {
        font-size: 16px;
        width: 140px
    }

    .card .card-price .price p {
        font-size: 16px;
        padding: 14px 7px 0 10px;
        letter-spacing: 0
    }

    .card .card-price .price svg {
        width: 25px;
        margin-bottom: 0
    }

    .card.card-big .image img {
        padding: 0;
        width: 100%;
        min-width: calc(100vw - 20px)
    }

    .card.card-big .card-property {
        max-width: 100%;
        padding: 0 20px;
        margin-left: 0 !important
    }

    .card .image svg {
        top: 20px;
        right: 20px;
        width: 35px
    }

    .card.card-big .image p {
        left: 10px;
        top: 25px;
        position: absolute
    }

    .card .image .item, .card .image .owl-carousel.owl-drag .owl-item, .card .image img, .card.card-vertical .image, .card.two_in_row .image .item, .card.two_in_row .image .owl-carousel.owl-drag .owl-item, .card.two_in_row .image img {
        min-height: 210px;
        height: 210px
    }

    .card .card-price .price strong {
        font-size: 30px
    }

    .card .card-price .price p {
        padding: 14px 7px 0 10px;
        letter-spacing: 0;
        font-size: 16px
    }

    .card-vertical .description {
        padding-left: 0
    }

    .filters.mob form h4 {
        margin-right: 10px;
        font-size: 16px
    }

    .filters.mob form .top .radio span {
        font-size: 18px !important
    }

    #catalog .catalog-wrapper .content .filters.mob form .top .first {
        margin-top: 20px
    }

    .filters.mob .middle div label {
        font-size: 18px;
        margin-bottom: 10px !important
    }

    .filters.mob form .middle > .input {
        margin-bottom: 20px
    }

    .filters.mob form .middle .input .toggle {
        background-size: 10px;
        width: 20px;
        height: 20px
    }

    #catalog .catalog-wrapper .content .filters.mob form .middle input {
        height: 60px
    }

    .filters.mob form .middle #slider-range span.vue-slider-dot-tooltip-text {
        font-size: 14px
    }

    .filters.mob form .btn {
        height: 60px;
        font-size: 22px
    }

    .filters.mob .bot, .filters.mob form .top {
        padding: 0 10px
    }

    .filters.mob form .bot p {
        font-size: 14px
    }

    .filters.mob form .bot .filter {
        padding: 10px
    }

    .filters.mob form .bot input {
        font-size: 14px
    }

    main .main-description .wrapper h1 {
        font-size: 22px;
        line-height: 32px;
        margin: 0;
        margin-top: 20px
    }

    main .main-description {
        max-width: calc(100% - 20px);
        top: 0
    }

    .text-description p {
        margin: 20px 0 0 0;
        line-height: 26px;
        font-size: 16px
    }

    .catalog_kv {
        width: 200px;
        top: 710px
    }

    #catalog_main:before {
        height: 645px
    }

    .mapbtn .btn {
        font-size: 16px;
        width: auto;
        height: auto;
        position: relative;
        top: 0;
        left: 0;
        padding-top: 0
    }

    header.map_opened + main#catalog_main .mapbtn {
        top: -140px
    }

    .mapbtn {
        left: -80px;
        width: 200px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center
    }

    main .main-description .wrapper a, main .main-description .wrapper p {
        font-size: 18px;
        line-height: 26px
    }

    .btn.btn-show-form {
        margin: 0 auto;
        margin-bottom: 20px;
        max-width: 200px;
        font-size: 18px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center
    }

    #catalog .catalog-wrapper .content {
        padding: 0 0 50px 0
    }

    .sort form .middle {
        margin-bottom: 0
    }

    main .main-description {
        min-height: 220px
    }

    .sort form {
        max-width: 200px;
        margin: 0 auto
    }

    #contacts__map {
        min-height: 500px;
        max-height: 500px
    }

    #contacts__map .vue-map-container {
        max-height: 100%;
        height: 500px !important
    }

    .catalog_map.show + img + .main-description {
        top: 190px !important
    }

    .catalog_map.show + img + .main-description + #catalog {
        top: 170px !important
    }

    .catalog_map.show + img + .main-description .sort {
        margin-bottom: 0
    }

    .catalog-wrapper {
        margin-top: 0
    }

    .sort {
        margin-top: 50px;
        margin-bottom: 20px
    }

    #catalog .card .card-property > div {
        width: 50%
    }
}

.rub_svg {
    fill: #fff !important;
    height: 11px !important;
    width: 11px !important;
    margin: 0 0 0 -1px !important;
    padding: 0 !important
}

.rub_svg * {
    fill: #fff !important
}