/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
:root {
    --white: #fffef9;
    --black: #1a1a19;
    --lightbox: #352b21;
}

/* Booking confirmation */
.booking-confirmation {
    padding: 0 0 110px;
}
.booking-confirmation__content {
    max-width: 880px;
}
.booking-confirmation__intro {
    margin-bottom: 42px;
}
.booking-confirmation__intro h1 {
    font-size: 30px;
    line-height: 38px;
    margin-bottom: 12px;
}
.booking-confirmation__intro p {
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
}
@media (min-width: 901px) {
    .booking-confirmation {
        margin-top: -13px;
    }
}
.confirmation-panel {
    background-color: #f7f4ee;
    border-radius: 24px;
    margin-bottom: 24px;
    padding: 31px 40px 38px;
}
.confirmation-panel h2,
.confirmation-notes h2,
.confirmation-location h2 {
    font-size: 24px;
    line-height: 30px;
}
.confirmation-payment {
    min-height: 250px;
}
.confirmation-payment > p {
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    margin-top: 8px;
}
.confirmation-payment__action {
    align-items: center;
    display: grid;
    gap: 30px;
    grid-template-columns: minmax(0, 1fr) 300px;
    margin-top: 50px;
}
.confirmation-payment__method {
    align-items: center;
    display: flex;
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    gap: 19px;
    line-height: 22px;
}
.confirmation-payment__method small {
    font-family: "Mabry Pro", sans-serif;
    font-size: 13px;
    font-weight: 300;
}
.confirmation-check {
    background-color: var(--black);
    flex: 0 0 13px;
    height: 13px;
    width: 13px;
}
.confirmation-payment__button {
    align-items: center;
    background-color: var(--black);
    border-radius: 24px;
    color: var(--white);
    display: flex;
    font-size: 14px;
    height: 58px;
    justify-content: center;
    transition: opacity .3s ease;
}
.confirmation-payment__button:hover {
    opacity: .84;
}
.confirmation-apartment {
    background-color: #f7f4ee;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 400px minmax(0, 1fr);
    margin-bottom: 24px;
    min-height: 348px;
    overflow: hidden;
}
.confirmation-apartment__image {
    min-height: 348px;
    overflow: hidden;
    position: relative;
}
.confirmation-apartment__image img {
    display: block;
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}
.confirmation-apartment__content {
    display: flex;
    flex-direction: column;
    padding: 20px 28px 29px;
}
.confirmation-apartment__content h2 {
    font-size: 21px;
    line-height: 31px;
    margin-bottom: 5px;
}
.confirmation-apartment__features {
    display: flex;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: 300;
    gap: 7px 18px;
    line-height: 19px;
}
.confirmation-apartment__content > p {
    font-size: 14px;
    font-weight: 300;
    line-height: 19px;
}
.confirmation-apartment__details {
    display: grid;
    font-size: 14px;
    font-weight: 300;
    gap: 3px;
    line-height: 19px;
    margin-top: 27px;
}
.confirmation-apartment__details div,
.confirmation-apartment__total {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
}
.confirmation-apartment__details dd,
.confirmation-apartment__total strong {
    font-weight: 300;
}
.confirmation-apartment__total {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    line-height: 22px;
    margin-top: auto;
}
.confirmation-apartment__total strong {
    font-family: "Mabry Pro", sans-serif;
    font-size: 14px;
}
.confirmation-guests {
    min-height: 380px;
}
.confirmation-guests h2,
.confirmation-terms h2 {
    margin-bottom: 38px;
}
.confirmation-info-list {
    display: grid;
    gap: 21px;
}
.confirmation-info-list > div {
    display: grid;
    gap: 28px;
    grid-template-columns: 270px minmax(0, 1fr);
}
.confirmation-info-list dt {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
}
.confirmation-info-list dd {
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;
    max-width: 440px;
}
.confirmation-info-list__spacer {
    margin-top: 25px;
}
.confirmation-terms {
    min-height: 500px;
}
.confirmation-notes {
    margin: 56px 0 0;
    padding: 0 40px;
}
.confirmation-notes h2 {
    margin-bottom: 28px;
}
.confirmation-notes__text {
    max-width: 700px;
}
.confirmation-notes__text p {
    color: #3f3f3d;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 26px;
}
.confirmation-notes__text p:last-child {
    margin-bottom: 0;
}
.confirmation-location {
    margin-top: 57px;
}
.confirmation-location__heading {
    padding: 0 40px;
}
.confirmation-location h2 {
    margin-bottom: 14px;
}
.confirmation-location address {
    color: #3f3f3d;
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 22px;
    margin-bottom: 28px;
}
.confirmation-location__map {
    aspect-ratio: 880 / 500;
    background-color: #f7f4ee;
    border-radius: 24px;
    overflow: hidden;
}
.confirmation-location__map iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}

@media (max-width: 900px) {
    .booking-confirmation {
        padding-bottom: 70px;
    }
    .booking-confirmation__content {
        max-width: none;
    }
}

@media (max-width: 700px) {
    .booking-confirmation__intro {
        margin-bottom: 30px;
    }
    .booking-confirmation__intro h1 {
        font-size: 26px;
        line-height: 32px;
    }
    .booking-confirmation__intro p br,
    .confirmation-notes br {
        display: none;
    }
    .confirmation-panel {
        border-radius: 20px;
        padding: 26px 20px 30px;
    }
    .confirmation-payment__action {
        grid-template-columns: 1fr;
        margin-top: 36px;
    }
    .confirmation-payment__button {
        width: 100%;
    }
    .confirmation-apartment {
        border-radius: 20px;
        grid-template-columns: 1fr;
    }
    .confirmation-apartment__image {
        aspect-ratio: 335 / 235;
        min-height: 0;
    }
    .confirmation-apartment__content {
        min-height: 330px;
        padding: 23px 20px 28px;
    }
    .confirmation-apartment__details div,
    .confirmation-apartment__total {
        grid-template-columns: minmax(135px, 46%) minmax(0, 1fr);
    }
    .confirmation-guests,
    .confirmation-terms {
        min-height: 0;
    }
    .confirmation-info-list {
        gap: 18px;
    }
    .confirmation-info-list > div {
        gap: 14px;
        grid-template-columns: minmax(120px, 42%) minmax(0, 1fr);
    }
    .confirmation-notes,
    .confirmation-location__heading {
        padding: 0;
    }
    .confirmation-notes__text p {
        font-size: 14px;
        line-height: 22px;
        margin-bottom: 22px;
    }
    .confirmation-location__map {
        aspect-ratio: 1 / 1;
        border-radius: 20px;
    }
}

.checkout-page {
    padding: 0 0 93px;
}
.checkout-page__title {
    font-size: 32px;
    letter-spacing: 0.64px;
    line-height: 40px;
    margin-bottom: 50px;
}
.checkout-page__layout {
    align-items: flex-start;
    display: grid;
    gap: 120px;
    grid-template-columns: minmax(0, 780px) 458px;
    max-width: 1360px;
}
.checkout-page__main {
    min-width: 0;
}
.checkout-apartment {
    background-color: #f7f4ee;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 400px minmax(0, 1fr);
    margin-bottom: 25px;
    min-height: 263px;
    overflow: hidden;
}
.checkout-apartment__image {
    display: block;
    min-height: 263px;
    overflow: hidden;
    position: relative;
}
.checkout-apartment__image img {
    display: block;
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}
.checkout-apartment__content {
    display: flex;
    flex-direction: column;
    padding: 28px 28px 30px;
}
.checkout-apartment__title {
    font-size: 20px;
    letter-spacing: 0.4px;
    line-height: 36px;
    margin-bottom: 9px;
}
a.checkout-apartment__details:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.checkout-apartment__features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    margin-bottom: 2px;
}
.checkout-apartment__address,
.checkout-apartment__details {
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
}
.checkout-apartment__details {
    margin-top: 22px;
    width: max-content;
}
.checkout-apartment__price {
    font-size: 16px;
    line-height: 24px;
    margin-top: auto;
}
.checkout-panel,
.checkout-order {
    background-color: #f7f4ee;
    border-radius: 24px;
}
.checkout-panel {
    margin-bottom: 26px;
    padding: 31px 38px 46px;
}
.checkout-panel__title, .checkout-order__title {
    font-size: 24px;
    letter-spacing: 0.56px;
    line-height: 30px;
}
.checkout-panel__title {
    margin-bottom: 38px;
}
.checkout-personal__grid {
    display: grid;
    gap: 14px;
}
.checkout-field {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
.checkout-field span,
.checkout-coupon__field span,
.checkout-service__text,
.checkout-option,
.checkout-order {
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
}
.checkout-coupon__field span
 {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    font-family: 'ivypresto-display';
}
span.checkout-service__text {
    font-family: 'ivypresto-display';
    font-size: 16px;
    line-height: 24px;
}
label.checkout-service span.checkout-service__check {
    position: relative !important;
    top: 4px !important;
}
.checkout-field input,
.checkout-coupon__field input,
.checkout-note input {
    background-color: #fffef9;
    border: 1px solid #ebeae5;
    border-radius: 24px;
    color: var(--black);
    font: inherit;
    height: 58px;
    padding: 0 24px;
    width: 100%;
    max-width: 380px;
}

section.checkout-panel.checkout-coupon input {
    max-width: 240px;
}
.checkout-services {
    padding-bottom: 50px;
}
.checkout-services__list {
    display: grid;
    gap: 25px;
}
.checkout-service {
    align-items: flex-start;
    display: grid;
    grid-template-columns: 13px minmax(0, 1fr) 138px;
    gap: 19px;
}
.checkout-service__check,
.checkout-option input,
.checkout-order__agree input {
    background-color: #eae7e1;
    display: block;
    height: 13px;
    margin-top: 3px;
    position: relative;
    width: 13px;
}
.checkout-service__check input,
.checkout-option input,
.checkout-order__agree input {
    appearance: none;
    border: 0;
    cursor: pointer;
    margin: 0;
}
.checkout-service__check input {
    height: 13px;
    width: 13px;
}
.checkout-service__check input:checked,
.checkout-option input:checked,
.checkout-order__agree input:checked {
    background-color: var(--black);
}
.checkout-service__text small,
.checkout-option small {
    display: block;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
}
.checkout-counter {
    align-items: center;
    align-self: center;
    background-color: #e8e5df;
    border-radius: 18px;
    display: grid;
    grid-template-columns: 28px 1fr 28px;
    height: 28px;
    justify-self: end;
    min-width: 138px;
    margin-right: 40px;
}
.checkout-counter__button {
    align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 50%;
    color: var(--white);
    cursor: pointer;
    display: flex;
    font-family: 'Mabry Pro';
    font-size: 20px;
    height: 28px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: opacity .3s ease;
    width: 28px;
}
.checkout-counter__button:hover {
    opacity: .8;
}
.checkout-counter__button:disabled {
    cursor: default;
    opacity: .45;
}
.checkout-counter__value {
    color: #686864;
    font-size: 16px;
    font-weight: 300;
    line-height: 28px;
    text-align: center;
    font-family: 'ivypresto-display';
}
.checkout-payment {
    min-height: 250px;
    padding-bottom: 41px;
}
.checkout-payment .checkout-panel__title {
    margin-bottom: 52px;
}
.checkout-option {
    align-items: flex-start;
    display: grid;
    grid-template-columns: 13px 1fr;
    gap: 19px;
}
.checkout-option + .checkout-option {
    margin-top: 24px;
}
.checkout-coupon {
    align-items: end;
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 38px 60px;
    padding-bottom: 39px;
}
.checkout-coupon .checkout-panel__title {
    grid-column: 1 / -1;
    margin-bottom: 0;
}
.checkout-coupon__field {
    align-items: center;
    display: flex;
    grid-template-columns: 120px 1fr;
    justify-content: space-between;
}
section.checkout-panel.checkout-note input {
    width: 100%;
    max-width: 100%;
}
.checkout-coupon__button,
.checkout-order__button {
    background-color: var(--black);
    border: 0;
    border-radius: 24px;
    color: var(--white);
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 16px;
    height: 58px;
    transition: opacity .3s ease;
}
.checkout-coupon__button:hover,
.checkout-order__button:hover {
    opacity: .88;
}
.checkout-note {
    padding-bottom: 40px;
    margin-bottom: 0!important;
}
.checkout-note__field {
    background-color: #fffef9;
    border: 1px solid #ebeae5;
    border-radius: 24px;
    color: var(--black);
    display: block;
    font: inherit;
    line-height: 22px;
    min-height: 130px;
    padding: 18px 24px;
    resize: vertical;
    width: 100%;
}
.checkout-note .checkout-panel__title {
    margin-bottom: 38px;
}
.checkout-order {
    min-height: 0;
    padding: 29px 40px 38px;
    position: sticky;
    top: 60px;
}
label.checkout-option span {
    font-family: 'ivypresto-display';
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0.4px;
}
.checkout-order__line > span:first-child {
    font-family: 'Mabry Pro'!important;
    font-weight: 400!important;
    margin-bottom: 0!important;
}
label.checkout-option input {
    position: relative;
    top: 6px;
}
.checkout-order__title {
    margin-bottom: 41px;
}
.checkout-order__dates {
    border-bottom: 1px solid #dedbd4;
    display: grid;
    gap: 26px;
    grid-template-columns: repeat(3, 1fr);
    padding-bottom: 21px;
}
.checkout-order__dates span,
.checkout-order__line > span:first-child {
    display: block;
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
    margin-bottom: 19px;
}
.checkout-order__dates strong,
.checkout-order__line strong,
.checkout-order__line--total span {
    font-size: 16px;
    font-weight: 400;
    line-height: 22px;
}
.checkout-order__line {
    align-items: end;
    border-bottom: 1px solid #dedbd4;
    display: flex;
    justify-content: space-between;
    padding: 39px 0 17px;
}
.checkout-order__line--guests {
    border-bottom: 0;
    padding-bottom: 0;
}
.checkout-order__line.checkout-order__line--guests + .checkout-order__line {
    padding-top: 21px;
}
.checkout-order__line--guests span,
.checkout-order__line--total-label span {
    margin-bottom: 0;
}
.checkout-order__line--total-label {
    border-bottom: 0;
    padding-bottom: 0;
}
.checkout-order__line--total {
    padding-top: 20px;
}
.checkout-order__agree {
    align-items: flex-start;
    display: grid;
    gap: 19px;
    grid-template-columns: 13px 1fr;
    margin-top: 26px;
}
.checkout-order__agree span {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    display: flex;
    flex-direction: column;
}
.checkout-order__agree a {
    display: inline;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}
.checkout-order__note {
    color: #a4a19b;
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    margin-top: 31px;
}
.checkout-order__button {
    margin-top: 31px;
    width: 100%;
}

html body .checkout-order__line.checkout-order__line--guests span,
.checkout-order__line.checkout-order__line--total-label span {
    font-family: 'ivypresto-display' !important;
    font-weight: 300!important;
}
label.checkout-order__agree input {
    position: relative;
    top: 3px;
}

label.checkout-order__agree a {
    font-weight: 400;
    font-size: 16px;
}

@media screen and (max-width: 1180px) {
    .checkout-page__layout {
        gap: 40px;
        grid-template-columns: minmax(0, 1fr) 390px;
    }
    .checkout-apartment {
        grid-template-columns: 330px minmax(0, 1fr);
    }
}

@media screen and (max-width: 900px) {
    .checkout-page {
        padding-bottom: 70px;
    }
    .checkout-page__title {
        font-size: 28px;
        line-height: 34px;
        margin-bottom: 32px;
    }
    .checkout-page__layout {
        display: flex;
        flex-direction: column;
    }
    .checkout-page__main,
    .checkout-order {
        width: 100%;
    }
    .checkout-order {
        min-height: 0;
        order: -1;
        position: static;
    }
    .checkout-apartment {
        grid-template-columns: 1fr;
    }
    .checkout-apartment__image {
        aspect-ratio: 335 / 235;
        min-height: 0;
    }
    .checkout-field,
    .checkout-coupon,
    .checkout-coupon__field {
        display: block;
    }
    .checkout-field span,
    .checkout-coupon__field span {
        display: block;
        margin-bottom: 10px;
    }
    .checkout-coupon__button {
        margin-top: 14px;
        width: 100%;
    }
}

@media screen and (max-width: 560px) {
    section.checkout-panel.checkout-coupon input {
    max-width: 100%;
}УЫЦН ЛОМИЩЖ///////ЪЁ
ЁБЮЖЖХЛЩЗР
    .checkout-page {
        padding-top: 12px;
    }
    .checkout-panel,
    .checkout-order {
        border-radius: 20px;
        padding: 24px 20px;
    }
    .checkout-panel__title,
    .checkout-order__title {
        font-size: 24px;
        line-height: 30px;
    }
    .checkout-apartment__content {
        padding: 22px 20px 24px;
    }
    .checkout-apartment__title {
        font-size: 22px;
        line-height: 28px;
    }
    .checkout-service {
        grid-template-columns: 13px 1fr;
    }
    .checkout-counter {
        grid-column: 2;
        justify-self: start;
        margin-top: 8px;
    }
    .checkout-order__dates {
        gap: 14px;
    }
    .checkout-order__dates span,
    .checkout-order__line > span:first-child {
        margin-bottom: 14px;
    }
    .checkout-coupon {
        gap: 14px;
    }
}
body {
    background-color: #fffef9;
}
html, body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 18px!important;
}
@font-face {
    font-family: 'Mabry Pro';
    src: url(../fonts/Mabry\ Pro.woff2);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Mabry Pro';
    src: url(../fonts/Mabry\ Pro\ Light.woff2);
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Mabry Pro';
    src: url(../fonts/Mabry\ Pro\ Medium.woff2);
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "ivypresto-display";
    src: url(../fonts/ivy-presto-headline-light.woff2);
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}


html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
    font-family: 'Mabry Pro';
    font-weight: 400;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
main {
    flex: 1 0 auto;
}
.footer,
.copyright {
    flex-shrink: 0;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
h1,h2,h3,h4,h5,h6 {
    font-family: "ivypresto-display", serif;
    font-weight: 300;
}
* {
    outline: none;
    box-sizing: border-box;
}
a {
    text-decoration: none;
    color: var(--black);
}
h2.hero__title,.hero__title {
    font-size: 36px;
    line-height: 36px;
    letter-spacing: 0.72px;
}
.title {
    font-family: "ivypresto-display", serif;
    font-weight: 300;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: 0.56px;
    margin-bottom: 15px;
}
.subtitle {
    font-size: 16px;
    line-height: 24px;
    margin-bottom: 41px;
    font-weight: 300;
    max-width: 600px;
}
.header {
    z-index: 11;
}
.header:not(.header__transparent) {
    min-height: 105px;
}
.header.header-fixed .header__main {
    background-color: #fffef9;
    left: 0;
    padding: 19px 0;
    position: fixed;
    top: 0;
    transform: translateY(-100%);
    transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
    width: 100%;
    z-index: 1000;
}
.header.header-fixed.header-fixed-visible .header__main {
    transform: translateY(0);
}
.header.header-fixed .nav__link,
.header.header-fixed .header__logo {
    color: var(--black);
}
.header.header-fixed .header__burger span {
    background-color: var(--black);
}
.header__top {
    font-size: 10px;
    text-transform: uppercase;
    height: 25px;
    line-height: 25px;
    background-color: var(--black);
    color: var(--white);
    letter-spacing: 0.2px;
    z-index: 1;
    position: relative;
}
.header__top {
    display: flex;
    justify-content: space-between;
}
.container {
    padding: 0 40px;
    width: 100%;
}
.container.header__top-container {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
a.header__contact {
    text-decoration: none;
    color: var(--white);
}
.header__contact--messengers a {
    color: inherit;
    text-decoration: none;
}
.header__contact--messengers a:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}
.header__contacts {
    display: flex;
    gap: 16px;
}
a.header__contact {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 0.5px;
    text-decoration-color: transparent;
}
a.header__contact:hover {
    text-decoration-color: inherit;
}
.lang-switcher {
    display: flex;
}
button {
    cursor: pointer;
}
.lang-switcher__button {
    background-color: transparent;
    color: #fff;
    border: none;
    font-size: 10px;
    letter-spacing: 0.2px;
}
.lang-switcher__button {
    background-color: transparent;
    color: #fff;
    border: none;
    font-size: 10px;
    letter-spacing: 0.2px;
    height: auto;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: transparent;
}
.lang-switcher__button--active,
.lang-switcher__button:hover {
    text-decoration-color: inherit;
}
.header__main-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.header__left {
    display: flex;
    align-items: center;
    gap: 30px;
}
.haader__col {
    width: 33.33%;
}
.header__center {
    display: flex;
    justify-content: center;
}
.header__right {
    display: flex;
    justify-content: end;
}
.header__main {
    padding: 30px 0;
}
a.nav__link {
    font-size: 16px;
    text-decoration: none;
    line-height: 20px;
}
nav.header__nav.nav {
    display: flex;
    gap: 30px;
}
@media screen and (max-width: 1430px) {
    nav.header__nav.nav {
        gap: 15px;
    }
    nav.header__nav.nav a {
        white-space: nowrap;
    }
}
@media screen and (max-width: 1199px) {
    nav.header__nav.nav {
        display: none;
    }
}
a.header__logo.logo {
    font-size: 26px;
    font-weight: 500;
    line-height: 20px;
}
button.header__burger {
    display: flex;
    gap: 4px;
    flex-direction: column;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    width: 20px;
}
button.header__burger span:last-child {
    width: 16px;
}
button.header__burger span {
    width: 100%;
    height: 1px;
    background-color: var(--black);
}
.mobile-menu {
    display: none;
}
.site-menu {
    inset: 0;
    pointer-events: none;
    position: fixed;
    visibility: hidden;
    z-index: 2147483647;
}
.site-menu__overlay {
    background: rgba(10, 13, 15, .7);
    border: 0;
    cursor: pointer;
    inset: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    transition: opacity .42s ease;
    width: 100%;
}
.site-menu__panel {
    background-color: #f7f4ee;
    box-shadow: 18px 0 50px rgba(0, 0, 0, .12);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 100dvh;
    left: 0;
    max-width: 560px;
    min-width: 440px;
    overflow-y: auto;
    padding: 33px 40px;
    position: absolute;
    top: 0;
    transform: translateX(-102%);
    transition: transform .42s cubic-bezier(.22, .75, .25, 1);
    width: 35vw;
}
.site-menu.is-open {
    pointer-events: auto;
    visibility: visible;
}
.site-menu.is-open .site-menu__overlay {
    opacity: 1;
}
.site-menu.is-open .site-menu__panel {
    transform: translateX(0);
}
.site-menu__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 28px;
    padding: 0;
    position: absolute;
    right: 20px;
    top: 22px;
    width: 28px;
}
.site-menu__close span {
    background-color: var(--black);
    height: 1px;
    left: 4px;
    position: absolute;
    top: 13px;
    width: 21px;
}
.site-menu__close span:first-child {
    transform: rotate(45deg);
}
.site-menu__close span:last-child {
    transform: rotate(-45deg);
}
.site-menu a {
    color: var(--black);
    display: block;
    text-decoration-color: transparent;
}
.site-menu a:hover,
.site-menu a:focus-visible {
    text-decoration-color: currentColor;
}
.site-menu__account,
.site-menu__primary,
.site-menu__secondary {
    font-family: "ivypresto-display", serif;
    font-size: 24px;
    font-weight: 300;
    line-height: 36px;
}
.site-menu__primary {
    margin-top: 30px;
}
.site-menu__secondary {
    margin-top: 30px;
}
.site-menu__support,
.site-menu__contacts {
    font-family: "Mabry Pro", sans-serif;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.55;
}
.site-menu__support {
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-top: auto;
    padding-top: 56px;
}
.site-menu__contacts {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 300;
    line-height: 24px;
    margin-top: 46px;
}
@media screen and (max-width: 768px) {
    .site-menu__panel {
        max-width: 420px;
        min-width: 0;
        padding: 32px 24px 28px;
        width: calc(100% - 26px);
    }
    .site-menu__account,
    .site-menu__primary,
    .site-menu__secondary {
        font-size: 24px;
        line-height: 36px;
    }
    .site-menu__primary,
    .site-menu__secondary {
        margin-top: 30px;
    }
    .site-menu__support {
        padding-top: 42px;
    }
    .site-menu__contacts {
        margin-top: 34px;
    }
}
a.nav__link {
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-color: transparent;
}
a.nav__link--active {
    text-decoration-color: inherit ;   
}
a {
    transition: text-decoration-color .5s ease;
}
a:hover {
    transition: text-decoration-color .5s ease;
}
a.nav__link:hover {
    text-decoration-color: inherit ;
}
header.header.header__transparent {
    position: absolute;
    width: 100%;
}
header.header.header__transparent.header-fixed {
    position: absolute;
}
.hero__overlay {
    background-color: var(--lightbox);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.4;
}
img.hero__image {
    width: 100%;
    height: 100svh;
    object-fit: cover;
    display: block;
    min-height: 600px;
}
span.swiper-pagination-bullet {
    width: 5px;
    height: 5px;
    background-color: #fff;
}
header:not(.header-fixed) .header__main--transparent a.nav__link {
    color: #fff;
}
header:not(.header-fixed) .header__main--transparent button.header__burger span {
    background-color: #fff;
}
header:not(.header-fixed) .header__main--transparent a.header__logo.logo {
    color: #fff;
}
.hero__slide {
    position: relative;
}
.hero__slide::before {
    content: '';
    background-color: var(--lightbox);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100svh;
    opacity: 0.4;
    z-index: 999999999;
}
header.header.header__transparent {
    position: absolute;
    width: 100%;
    z-index: 9999999999;
}
.hero__pagination {
    position: absolute;
    bottom: 24px!important;
}
.hero__content {
    max-width: 1230px;
    margin: 0 auto;
    padding: 0 7px;
}
.hero__details {
    position: absolute;
    bottom: 0;
    z-index: 1;
    width: 100%;
    color: #fff;
}
form.hero__search.search-form {
    max-width: 1230px;
    margin: 0 auto;
    background-color: rgba(255, 255, 255, .5);
    padding: 12px 15px;
    border-radius: 34px;
}
.search__form--left {
    background-color: #fff;
    height: 60px;
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 15px;
}
.search__form--left button {
    width: calc(50% - 10px);
    height: 100%;
    background-color: transparent;
    border: none;
}
.search__form--left {
    width: calc(100% - 640px);
}
.search__form-inner {
    background-color: #f1eee7;
    border-radius: 60px;
}
.search__form-inner {
    background-color: #f1eee7;
    border-radius: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.search__form--right {
    width: calc(100% - 560px);
    padding: 12px 15px;
}
.search__form--right {
    width: calc(100% - 760px);
    padding: 12px 15px;
}
button.search-form__submit {
    width: calc(100% - 1000px);
}
button.search-form__submit {
    height: 100%;
    background-color: var(--black);
    border-radius: 24px;
    height: 60px;
    border: none;
    color: #fff;
}
.search__form--right {
    width: calc(100% - 760px);
    padding: 0 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.search__form--right button {
    width: calc(50% - 0.5px);
    background-color: transparent;
    border: none;
    font-weight: 300;
}

span.search-form__divider {
    width: 1px;
    height: 11px;
    background-color: var(--black);
}
.hero__bottom {
    padding: 0 40px;
}
.hero__bottom--hidden {
    display: none !important;
}
h1.hero__title {
    font-size: 42px;
    line-height: 48px;
    letter-spacing: 0.84px;
    margin-bottom: 25px;
}
p.hero__text {
    font-size: 18px;
    line-height: 24px;
    margin-bottom: 75px;
}
section.hero {
    position: relative;
}
.advanced__filter {
    max-width: 1230px;
    margin: 0 auto;
    display: flex;
    gap: 40px;
    justify-content: end;
    padding-top: 16px;
}

a.search-form__advanced,
a.search-form__map-link {
    font-weight: 300;
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-thickness: 0.8px;
    margin-bottom: 96px;
}

a.search-form__advanced:hover,
a.search-form__map-link:hover {
    text-decoration-color: transparent;
}
p.hero__caption {
    font-size: 14px;
    margin-bottom: 24px;
}
button.search-form__submit {
    transition: all .5s ease;
}
button.search-form__submit:hover {
    opacity: 0.9;
    transition: all .5s ease;
}
.section {
    padding: 80px 0 72px;
}
.search__form--right .search-form__label {
    font-weight: 300;
}
img.card-slider__image {
    width: 100%;
}
.apartments__controls {
    display: flex;
    gap: 42px;
}
button.apartments__button {
    width: 29px;
    height: 29px;
    background-color: transparent;
    border: 1px solid var(--black);
    border-radius: 30px;
    cursor: pointer;
    position: relative;
    transition: opacity .3s ease;
}
.apartments__controls {
    display: flex;
    gap: 42px;
    margin-top: 49px;
}
.apartments__head {
    display: flex;
    justify-content: space-between;
    align-items: start;
}
.apartments__button {
    background-image: none;
}
.apartments__button::before {
    content: '';
    width: 7px;
    height: 7px;
    border-left: 1px solid #565656;
    border-bottom: 1px solid #565656;
    position: absolute;
    left: 11px;
    top: 10px;
    transform: rotate(45deg);
}
.apartments__button--next::before {
    left: 9px;
    transform: rotate(225deg);
}
.apartments__button:hover {
    opacity: .65;
}
.apartments__button:focus-visible {
    outline: 1px solid #565656;
    outline-offset: 4px;
}
.apartments__button.swiper-button-disabled,
.apartments__button:disabled {
    cursor: default;
    opacity: .35;
}
h3.apartment-card__title {
    font-size: 20px;
    line-height: 36px;
    margin-top: 12px;
    margin-bottom: 6px;
}
h3.apartment-card__title a {
    color: inherit;
    text-decoration: none;
}
h3.apartment-card__title a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
ul.apartment-card__features {
    display: flex;
    gap: 30px;
    font-size: 14px;
    line-height: 18px;
    font-weight: 300;
}
p.apartment-card__address {
    font-size: 14px;
    line-height: 18px;
    font-weight: 300;
}
p.apartment-card__price {
    margin-top: 10px;
    font-size: 14px;
    line-height: 24px;
    font-weight: 300;
}
img.card-slider__image {
    display: block;
}
.apartments__slider {
    padding-bottom: 18px;
    position: relative;
}
.apartments__progressbar.swiper-pagination-progressbar {
    background-color: transparent;
    bottom: 0;
    height: 1px;
    left: 0;
    position: static;
    top: auto;
    width: 100%;
    margin-top: 10px !important;
    margin-top: 33px !important;
}
.apartments__progressbar .swiper-pagination-progressbar-fill {
    background-color: var(--black);
}
.card-slider {
    cursor: ew-resize;
}
.dream-city__title {
    font-size: 36px;
    line-height: 36px;
    margin-bottom: 28px;
    font-weight: 300;
}
.dream-city__text {
    font-size: 16px;
    line-height: 24px;
    font-weight: 300;
}
.dream-city__text {
    max-width: 462px;
}

article.apartments__slide .card-slider__slide.swiper-slide img {
    transition: opacity .5s ease;
}
article.apartments__slide:hover .card-slider__slide.swiper-slide img {
    opacity: 1;
    transition: opacity .5s ease;
}
@media screen and (min-width: 768px){
    .locations__slider img.locations__image {
    aspect-ratio: 400 / 611;
}
.locations__grid-left .locations__slide img, .locations__grid-right .locations__slide img {
    aspect-ratio: 400 / 263;
}
}

section.dream-city.section {
    background-color: #f7f4ee;
    padding: 48px 0;
}
.dream-city__container.container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.dream-city__container.container {
    padding: 0 120px;
}
.dream-city__text p:not(:last-child) {
    margin-bottom: 24px;
}

.dream-city__text p {
    font-weight: 300;
}
a.dream-city__link {
    font-size: 16px;
    line-height: 24px;
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-thickness: 1px;
    text-decoration-color: inherit;
}
.dream-city__text {
    margin-bottom: 48px;
}

a.dream-city__link:hover {
    text-decoration-color: transparent;
}
.dream-city__text {
    margin-bottom: 72px;
}
section.apartments.section {
    padding-bottom: 54px;
}
h3.locations__name {
    font-size: 20px;
    line-height: 21px;
    letter-spacing: 0.4px;
}
img.locations__image {
    display: block;
    margin-bottom: 24px;
}
.locations__slider {
    margin-bottom: 24px;
    min-width: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}
.locations__slider-wrapper,
.locations__slide {
    min-width: 0;
}
.locations__slider img.locations__image {
    display: block;
    height: 100%;
    margin-bottom: 0;
    object-fit: cover;
    width: 100%;
}
.locations__pagination.swiper-pagination {
    bottom: 18px !important;
}
.locations__grid > div {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.locations__grid {
    display: flex;
    gap: 80px;
    justify-content: space-between;
}
.locations__grid img {
    width: 100%;
}
.locations__grid > div {
    display: flex;
    flex-direction: column;
    gap: 40px;
    min-width: 0;
    width: calc(33.33%);
}
article.locations__item img  {
    transition: opacity .5s ease;
    
}
article.locations__item {
    cursor: ew-resize;
}
article.locations__item:hover img {
    opacity: 1;
    transition: opacity .5s ease;
}
.comfort {
    padding: 202px 0;
    color: var(--white);
    background-size: cover;
    background-position: center;
    position: relative;
}
.comfort__container {
    padding: 0 40px 0 172px;
    position: relative;
}
.comfort .dream-city__link {
    color: var(--white);
}
.comfort::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background-color: var(--black);
    opacity: 0.4;
}
section.locations.section {
    padding-bottom: 100px;
}
.locations__header {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
}
.locations__controls.apartments__controls {
    margin-top: 48px;
}
.home-locations-swiper {
    overflow: hidden;
    padding-bottom: 18px;
    position: relative;
}
.home-locations-swiper > .swiper-wrapper > .swiper-slide {
    display: flex;
    flex-direction: column;
    gap: 40px;
    height: auto;
    min-width: 0;
}
.home-locations-swiper .locations__grid-center {
    display: flex !important;
}
.faq {
    background-color: #f7f4ee;
    padding: 56px 0 120px;
}
h2.faq__title {
    text-align: center;
    font-size: 28px;
    line-height: 36px;
    margin-bottom: 14px;
}
.faq__answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .35s ease;
}

.faq__answer-content {
    overflow: hidden;
}

.faq__item.active .faq__answer {
    grid-template-rows: 1fr;
}
.faq__head {
    text-align: center;
}
p.faq__subtitle {
    font-size: 16px;
    line-height: 24px;
    font-weight: 300;
}
.faq__list {
    max-width: 720px;
    margin: 0 auto;
    margin-top: 48px;
}
.faq__item {
    border-top: 1px solid var(--black);
    padding: 21px 20px 0;
}
.faq__answer {
    padding-bottom: 21px;
}
button.faq__question {
    width: 100%;
    text-align: left;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 300 !important;
    font-family: 'Mabry Pro';
    display: flex;
    align-items: center;
}

.faq__answer {
    padding: 10px 0;
}
.faq__answer-content {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.faq__question {
    display: flex;
    justify-content: space-between;
}
.faq__icon {
    width: 11px;
    min-width: 11;
    height: 11px;
    position: relative;
}
.faq__icon::before {
    content: '';
    width: 11px;
    height: 1px;
    display: block;
    background-color: var(--black);
    top: 5px;
    position: absolute;
}
.faq__icon::after {
    content: '';
    width: 1px;
    height: 11px;
    display: block;
    background-color: var(--black);
    left: 5px;
    position: absolute;
}
.faq__item.active .faq__icon::after {
    opacity: 0;
    transition: all .5s ease;
}
.faq__list > div:last-child {
    border-bottom: 1px solid var(--black);
}
footer.footer {
    margin-top: 96px;
    padding-top: 30px;
    padding-bottom: 54px;
}

.footer__container.container {
    display: flex;
}

.footer__col {
    width: 25%;
}

a.footer__nav-link {
    font-size: 14px;
    line-height: 24px;
    font-weight: 300;
}

.footer__col.footer__col4 {
    display: flex;
    flex-direction: column;
}

.footer__col.footer__col4 a {
    font-size: 14px;
    line-height: 24px;
    font-weight: 300;
}

a.footer__logo {
    font-weight: 500;
    font-size: 20px;
    line-height: 20px;
    letter-spacing: 0.4px;
}

.copyright > div {
    display: flex;
    justify-content: space-between;
}

.copyright__col {
    width: 50%;
}

nav.copyright__nav {
    /* display: flex; */
}

ul.copyright__list {
    display: flex;
    gap: 30px;
}

a.copyright__link {
    font-size: 14px;
    font-weight: 300;
    line-height: 24px;
}

.copyright__col.copyright__col2 {
    display: flex;
    justify-content: space-between;
}

.copyright {
    padding: 20px 0;
}

.copyright__col.copyright__col1 {
    font-size: 12px;
    line-height: 24px;
    font-weight: 400;
    text-transform: uppercase;
}
button.search-form__field {
    font-size: 16px;
}
.search__form--left button {
    font-size: 16px;
}
button.search-form__submit {
    font-size: 16px;
}
.footer__col.footer__col4 {
    text-align: right;
}
.footer a, .copyright a {
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-thickness: 1px;
    text-decoration-color: transparent;
    transition: all .5s ease;
}
.footer a:hover, .copyright a:hover {
    text-decoration-color: inherit;
    transition: all .5s ease;
}
.copyright a {
    text-transform: uppercase;
}
a.copyright__link {
    font-weight: 400;
    font-size: 12px;
}

/* Privacy page */
.privacy {
    padding: 34px 0 112px;
}
.privacy__container {
    padding-left: 34px;
    padding-right: 34px;
}
.privacy__head {
    margin-bottom: 54px;
}
.privacy__title {
    margin-bottom: 18px;
}
.privacy__updated {
    color: #7f7f7f;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.privacy__content {
    max-width: 860px;
}
.privacy__block:not(:last-child) {
    margin-bottom: 34px;
}
.privacy__block h2 {
    font-size: 24px;
    font-weight: 300;
    line-height: 30px;
    margin-bottom: 14px;
}
.privacy__block p {
    color: #2f2f2d;
    font-size: 16px;
    font-weight: 300;
    line-height: 25px;
}
.privacy__block a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}

/* Booking page */
.booking-hero {
    padding: 0px 0 52px;
}
form.hero__search.search-form.booking-search.booking-search2 {
    background-color: #f8f7f2;
}
.booking-search2 .search__form-inner {
    background-color: #fffef9 !important;
    box-shadow: inset 0 0 0 1px rgba(26, 26, 25, .06);
}
.booking-hero__container {
    padding-left: 34px;
    padding-right: 34px;
}
.booking-hero__title {
    font-size: 28px;
    line-height: 36px;
    letter-spacing: 0;
    margin-bottom: 12px;
}
.booking-hero__text {
    font-size: 16px;
    line-height: 24px;
    max-width: 640px;
    margin-bottom: 48px;
}
form.booking-search {
    max-width: 1230px;
    margin: 0 auto;
    padding: 10px 12px;
    background-color: #f7f4ee;
    box-shadow: 0 8px 22px rgba(26, 26, 25, .04);
}
.booking-search .search__form-inner {
    background-color: #f7f4ee;
}
.booking-search .search__form--left {
    height: 60px;
    width: calc(100% - 630px);
    background-color: #fffef9;
    box-shadow: inset 0 0 0 1px rgba(26, 26, 25, .06);
}
.booking-search2 .search__form--left {
    background-color: #fefbf3;
}
.booking-search .search__form--right {
    width: 430px;
    padding: 0 18px;
}
.booking-search .search-form__field {
    color: #2f2f2d;
    font-size: 16px;
    line-height: 24px;
}
.booking-search .search-form__arrow {
    align-items: center;
    display: flex;
    justify-content: center;
    width: 28px;
}
.booking-search .search-form__arrow img {
    display: block;
    width: 17px;
}
.booking-search .search-form__divider {
    height: 13px;
}
.booking-search .search-form__submit {
    height: 54px;
    width: 200px;
    font-size: 16px;
}
.booking-hero__advanced {
    max-width: 1230px;
    padding: 16px 12px 0;
}
.booking-hero .search-form__advanced {
    color: #2f2f2d;
    margin-bottom: 0;
}
.booking-results {
    padding: 6px 0 104px;
}
.booking-results__container {
    padding-left: 34px;
    padding-right: 34px;
}
.empty-result__text {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin: 0;
}
.empty-result__contact {
    background: transparent;
    border: 0;
    color: var(--black);
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    padding: 0;
}
.empty-result__contact span {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}
.empty-result__contact:hover span {
    text-decoration-color: transparent;
}
@media (min-width: 769px) {
    .empty-result {
        margin-left: 6px;
    }
}
.booking-results__header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 34px;
}
.booking-results__count {
    color: #2f2f2d;
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
}
.booking-sort {
    position: relative;
    z-index: 4;
}
.booking-sort__toggle {
    align-items: center;
    background-color: transparent;
    border: 0;
    color: #2f2f2d;
    cursor: pointer;
    display: inline-block;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    gap: 8px;
    line-height: 20px;
    padding: 0 0 5px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}
.booking-sort__arrow {
    line-height: 1;
}
.booking-sort__menu {
    background-color: #f8f7f2;
    border-radius: 16px;
    box-shadow: 0 14px 36px rgba(26, 26, 25, .1);
    display: flex;
    flex-direction: column;
    min-width: 190px;
    opacity: 0;
    padding: 12px;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    transform: translateY(-6px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    visibility: hidden;
}
.booking-sort.is-open .booking-sort__menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}
.booking-sort__option {
    background-color: transparent;
    border: 0;
    border-radius: 10px;
    color: #2f2f2d;
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    padding: 8px 10px;
    text-align: left;
}
.booking-sort__option:hover,
.booking-sort__option.is-active {
    background-color: #fffef9;
}
.booking-results__map-link,
.booking-apartment-card__details,
.booking-apartment-card__book {
    background-color: transparent;
    border: 0;
    color: #2f2f2d;
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    padding: 0;
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
    transition: text-decoration-color .3s ease;
}
.booking-results__map-link:hover,
.booking-apartment-card__details:hover,
.booking-apartment-card__book:hover {
    text-decoration-color: transparent;
}
.booking-apartment-card__details {
    background-color: transparent;
    border: 0;
    color: #2f2f2d;
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    padding: 0;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
    transition: text-decoration-color .3s ease;
}
.booking-apartment-card__details:hover {
    text-decoration-color: currentColor;
}


.booking-results__layout {
    align-items: flex-start;
    display: grid;
    gap: 20px;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 39.4%);
}
.booking-results__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.booking-apartment-card {
    background-color: #f8f7f2;
    border-radius: 0 18px 18px 0;
    display: grid;
    grid-template-columns: 52% 48%;
    min-height: 223px;
    overflow: hidden;
    border-radius: 24px;
}
.booking-apartment-card__image {
    display: block;
    height: 100%;
    min-height: 263px;
    overflow: hidden;
    position: relative;
}
.booking-apartment-card__image img {
    display: block;
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transition: opacity .4s ease, transform .4s ease;
    width: 100%;
}
.booking-apartment-card:hover .booking-apartment-card__image img {
    opacity: .9;
    transform: scale(1.02);
}
.booking-apartment-card__content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 24px 28px 26px;
}
.booking-apartment-card__title {
    font-size: 20px;
    line-height: 22px;
    letter-spacing: 0;
    margin-bottom: 14px;
}
.booking-apartment-card__features {
    color: #2f2f2d;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    font-size: 12px;
    font-weight: 300;
    line-height: 15px;
    margin-bottom: 4px;
}
.booking-apartment-card__address,
.booking-apartment-card__details,
.booking-apartment-card__book,
.booking-apartment-card__price {
    font-size: 13px;
    font-weight: 300;
    line-height: 18px;
}
a.booking-apartment-card__book, p.booking-apartment-card__price {
    font-size: 16px;
    font-weight: 400;
}
.booking-apartment-card__address {
    color: #2f2f2d;
    margin-bottom: 22px;
}
.booking-apartment-card__details {
    width: max-content;
}
.booking-apartment-card__bottom {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin-top: auto;
}
.booking-apartment-card__price {
    color: #1f1f1d;
    font-weight: 400;
    white-space: nowrap;
}
.booking-apartment-card__book {
    white-space: nowrap;
}
.booking-results__map {
    aspect-ratio: 1 / 1.38;
    background-color: #f7f4ee;
    border-radius: 26px;
    min-height: 610px;
    overflow: hidden;
    position: sticky;
    top: 58px;
}
.booking-results__map .booking-results__map-link {
    background-color: var(--black);
    border-radius: 58px;
    color: var(--white);
    padding: 12px 32px 12px;
    position: absolute;
    right: 28px;
    top: 28px;
    z-index: 2;
    text-decoration: none;
    font-size: 16px;
}
button.view-in-cart-link.apartments__filter-toggle {
    font-weight: 400;
}
.booking-results__map iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}
.questions-section {
    background-color: #f7f4ee;
    padding: 48px 0;
}
.questions-section__container {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding-left: 120px;
    padding-right: 120px;
}
.questions-section__content {
    width: 380px;
}
.questions-section__title {
    font-size: 36px;
    font-weight: 300;
    line-height: 40px;
    margin-bottom: 24px;
}
.questions-section__text {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 36px;
}
.questions-section__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.questions-section__field,
.questions-section__submit {
    border-radius: 28px;
    box-sizing: border-box;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    height: 56px;
    line-height: 20px;
    width: 100%;
}
.questions-section__field {
    background-color: #fffef9;
    border: 1px solid rgba(26, 26, 25, .09);
    color: var(--black);
    outline: 0;
    padding: 0 24px;
    transition: border-color .3s ease;
}
.questions-section__field:focus {
    border-color: rgba(26, 26, 25, .45);
}
.questions-section__field::placeholder {
    color: #696965;
    opacity: 1;
}
.questions-section__submit {
    background-color: var(--black);
    border: 0;
    color: var(--white);
    cursor: pointer;
    margin-top: 4px;
    transition: opacity .3s ease;
}
.questions-section__submit:hover {
    opacity: .82;
}
.questions-section__image {
    display: block;
    height: 611px;
    object-fit: cover;
    width: 440px;
}
.booking-map-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 40px;
    pointer-events: none;
    position: fixed;
    transition: opacity .35s ease, visibility .35s ease;
    visibility: hidden;
    z-index: 1000;
}
.booking-map-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.booking-map-modal__overlay {
    background-color: rgba(26, 26, 25, .55);
    inset: 0;
    position: absolute;
}
.booking-map-modal__content {
    background-color: #f7f4ee;
    border-radius: 28px;
    height: min(760px, calc(100vh - 80px));
    overflow: hidden;
    position: relative;
    transform: translateY(18px) scale(.98);
    transition: transform .35s ease;
    width: min(1180px, calc(100vw - 80px));
    z-index: 1;
}
.booking-map-modal.is-open .booking-map-modal__content {
    transform: translateY(0) scale(1);
}
.booking-map-modal__content iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}
.booking-map-modal__close {
    background-color: rgba(255, 254, 249, .88);
    border: 1px solid rgba(26, 26, 25, .45);
    border-radius: 50%;
    height: 34px;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 34px;
    z-index: 2;
}
.booking-map-modal__close::before,
.booking-map-modal__close::after {
    background-color: var(--black);
    content: '';
    height: 1px;
    left: 9px;
    position: absolute;
    top: 16px;
    width: 14px;
}
.booking-map-modal__close::before {
    transform: rotate(45deg);
}
.booking-map-modal__close::after {
    transform: rotate(-45deg);
}

/* Profile page */
.profile-page {
    padding: 7px 0 128px;
}
.profile-page__container {
    padding-left: 40px;
    padding-right: 40px;
}
.profile-page__title {
    font-size: 30px;
    line-height: 36px;
    letter-spacing: 0;
    margin-bottom: 42px;
}
.profile-page__body {
    align-items: flex-start;
    display: grid;
    gap: 80px;
    grid-template-columns: minmax(0, 1fr) 400px;
}
.profile-trips__head {
    align-items: center;
    display: grid;
    grid-template-columns: 1fr auto;
    margin-bottom: 38px;
}
.profile-trips__title {
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}
.profile-trips__tabs {
    display: flex;
    gap: 32px;
    margin-right: 6px;
}
.profile-trips__tab {
    background-color: transparent;
    border: 0;
    color: var(--black);
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    padding: 0 0 4px;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}
.profile-trips__tab.is-active,
.profile-trips__tab:hover {
    text-decoration-color: currentColor;
}
.profile-trips__list {
    display: flex;
    flex-direction: column;
    gap: 26px;
}
.profile-trip-card {
    background-color: #f7f4ee;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 45.5% 54.5%;
    min-height: 444px;
    overflow: hidden;
}
.profile-trip-card__image {
    display: block;
    height: 100%;
    overflow: hidden;
    position: relative;
}
.profile-trip-card__image img {
    display: block;
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transition: transform .45s ease, opacity .45s ease;
    width: 100%;
}
.profile-trip-card:hover .profile-trip-card__image img {
    opacity: .92;
    transform: scale(1.02);
}
.profile-trip-card__content {
    display: flex;
    flex-direction: column;
    padding: 30px 38px 34px;
}
.profile-trip-card__title {
    font-size: 24px;
    line-height: 28px;
    letter-spacing: 0.4px;
    margin-bottom: 16px;
}
.profile-trip-card__features {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 20px;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.profile-trip-card__address {
    color: var(--black);
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-top: 1px;
}
.profile-trip-card__details {
    margin-top: auto;
}
.profile-trip-card__row {
    color: var(--black);
    display: grid;
    font-size: 16px;
    font-weight: 300;
    grid-template-columns: 128px minmax(0, 1fr);
    line-height: 24px;
}
.profile-trip-card__row--spaced {
    margin-top: 26px;
}
.profile-trip-card__row--manager {
    margin-top: 46px;
}
.profile-trip-card__row dt {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
}
.profile-card {
    align-items: center;
    background-color: #f7f4ee;
    border-radius: 24px;
    display: flex;
    flex-direction: column;
    margin-top: 62px;
    min-height: 380px;
    padding: 32px 18px 34px;
    text-align: center;
}
.profile-card__avatar {
    align-items: center;
    background-color: var(--black);
    border-radius: 95px;
    color: #fffef9;
    display: flex;
    font-family: "ivypresto-display", serif;
    font-size: 28px;
    height: 95px;
    justify-content: center;
    letter-spacing: 0;
    margin-bottom: 26px;
    overflow: hidden;
    width: 95px;
}
.profile-card__avatar img {
    width: 95px;
    height: 95px;
    object-fit: contain;
}
.profile-card__name {
    font-size: 24px;
    line-height: 28px;
    letter-spacing: 0.4px;
    margin-bottom: 14px;
}
.profile-card__status {
    color: #7f7f7f;
    font-size: 14px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 38px;
}
.profile-card__points {
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    margin-bottom: 45px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}
.profile-card__button {
    align-items: center;
    background-color: var(--black);
    border-radius: 60px;
    color: #fffef9;
    display: flex;
    font-size: 14px;
    font-weight: 400;
    height: 54px;
    justify-content: center;
    line-height: 20px;
    margin-top: auto;
    transition: opacity .3s ease;
    width: 100%;
}
.profile-card__button:hover {
    opacity: .88;
}

.profile-edit {
    display: block;
}
.profile-edit[hidden],
.profile-page__body[hidden] {
    display: none;
}
.profile-edit__tabs {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 42px;
    max-width: 780px;
}
.profile-edit__tab {
    background: transparent;
    border: 0;
    border-bottom: 1px solid currentColor;
    color: var(--black);
    cursor: pointer;
    font: inherit;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    padding: 0 0 4px;
}
.profile-edit__tab--active {
    border-bottom-color: transparent;
    font-weight: 400;
}
.profile-edit__form {
    align-items: flex-start;
    display: grid;
    gap: 80px;
    grid-template-columns: minmax(0, 780px) 400px;
    justify-content: space-between;
}
.profile-edit__panels {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.profile-edit__panel {
    background-color: #f7f4ee;
    border-radius: 24px;
    padding: 30px 40px 38px;
}
.profile-edit__head {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 28px;
}
.profile-edit__title {
    font-size: 24px;
    line-height: 30px;
}
.profile-edit__change {
    background: transparent;
    border: 0;
    border-bottom: 1px solid currentColor;
    color: var(--black);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 300;
    line-height: 20px;
    padding: 0 0 3px;
}
.profile-edit__fields {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.profile-edit__field {
    align-items: center;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(185px, 1fr) 380px;
}
.profile-edit__field span {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.profile-edit__field input {
    background-color: #fffef9;
    border: 1px solid transparent;
    border-radius: 30px;
    box-sizing: border-box;
    color: var(--black);
    font: inherit;
    font-size: 14px;
    font-weight: 300;
    height: 58px;
    outline: 0;
    padding: 0 24px;
    width: 100%;
}
.profile-edit__field input:focus {
    border-color: var(--black);
}
.profile-edit__save {
    align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 30px;
    color: var(--white);
    cursor: pointer;
    display: flex;
    font: inherit;
    font-size: 14px;
    height: 60px;
    justify-content: center;
    margin-top: auto;
    padding: 0 24px;
    width: 100%;
}
.profile-edit__message {
    font-size: 14px;
    line-height: 20px;
    min-height: 0;
}
.profile-edit__card {
    margin-top: 0;
    min-height: 430px;
    padding: 36px 18px 34px;
}

/* About page */
.about-page {
    padding: 7px 0 100px;
}
.about-page__container {
    padding-left: 34px;
    padding-right: 34px;
}
.about-page__title {
    font-size: 28px;
    line-height: 34px;
    letter-spacing: 0;
    margin-bottom: 34px;
}
.about-page__hero {
    aspect-ratio: 1520 / 830;
    overflow: hidden;
    width: 100%;
}
.about-page__hero img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.about-story {
    margin: 70px 0 0 40px;
    max-width: 640px;
}
.about-story__title, .about-section-title, .about-vacancy__title {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 20px;
}
.about-story__text, .about-section-text, .about-cooperation__text, .about-vacancy__text {
    color: var(--black);
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.about-story__text p,
.about-cooperation__text p,
.about-vacancy__text p {
    margin-bottom: 24px;
}
.about-story__text p:last-child,
.about-cooperation__text p:last-child,
.about-vacancy__text p:last-child {
    margin-bottom: 0;
}
.about__person {
    margin: 72px 0 0 40px;
}
.person {
    align-items: stretch;
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    max-width: 1160px;
}
.person__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.person__name {
    font-family: "ivypresto-display";
    font-size: 28px;
    font-weight: 300;
    line-height: 34px;
    margin-bottom: 28px;
}
.person__quote {
    font-size: 20px;
    font-weight: 300;
    line-height: 30px;
    max-width: 560px;
}
.person__video {
    aspect-ratio: 520 / 320;
}
.about-team {
    background-color: #f7f4ee;
    padding: 64px 0 88px;
}
.about-team__container,
.about-cooperation__container {
    padding-left: 34px;
    padding-right: 34px;
}
.about-team__head {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin-bottom: 44px;
}
.about-section-text {
    max-width: 440px;
}
.about-team__tabs {
    display: flex;
    gap: 36px;
    padding-top: 45px;
}
.about-team__tab {
    background-color: transparent;
    border: 0;
    color: var(--black);
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    padding: 0 0 4px;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}
h2.about-vacancy__title {
    font-size: 36px;
    line-height: 36px;
    margin-bottom: 30px;
}
.about-vacancy__content {
    max-width: 490px;
}
.about-team__tab.is-active,
.about-team__tab:hover {
    text-decoration-color: currentColor;
}
.about-team__grid {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-team-card img {
    display: block;
    width: 100%;
}
.about-team-card h3 {
    font-size: 20px;
    line-height: 24px;
    letter-spacing: 0;
    margin-top: 20px;
}
.about-team-card p {
    color: var(--black);
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    margin-top: 4px;
}
.about-vacancy {
    background-position: center;
    background-size: cover;
    color: #fffef9;
    min-height: 600px;
    padding: 174px 0 120px;
    position: relative;
}
.about-vacancy::before {
    background-color: rgba(26, 26, 25, .46);
    content: '';
    inset: 0;
    position: absolute;
}
.about-vacancy__container {
    padding-left: 144px;
    padding-right: 34px;
    position: relative;
    z-index: 1;
}
.about-vacancy__content {
    max-width: 460px;
}
.about-vacancy__text {
    color: #fffef9;
    margin-bottom: 44px;
}
.about-link {
    color: inherit;
    display: inline-block;
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
    transition: text-decoration-color .3s ease;
}
.about-link:hover {
    text-decoration-color: transparent;
}
.about-cooperation {
    background-color: #f7f3e8;
    padding: 120px 0 170px;
}
.about-cooperation__container {
    align-items: flex-start;
    display: grid;
    gap: 120px;
    grid-template-columns: minmax(0, 1fr) 660px;
}
.about-cooperation__content {
    max-width: 520px;
    padding-left: 40px;
    padding-top: 40px;
}
.about-cooperation__text {
    margin-bottom: 54px;
}
.about-cooperation__cards {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.about-team {
    background-color: #f7f4ee;
    padding: 56px 0px 101px;
}
.about-cooperation-card {
    display: block;
}
.about-cooperation-card img {
    display: block;
    margin-bottom: 20px;
    width: 100%;
}
.about-cooperation-card span {
    font-family: "ivypresto-display", serif;
    font-size: 20px;
    font-weight: 300;
    line-height: 24px;
}

h2.about-section-title {
    font-size: 28px;
    line-height: 36px;
    margin-bottom: 27px;
}

/* Open Moscow */
.open-moscow {
    padding: 7px 0 110px;
}
.open-moscow__container, .moscow-inner__container, .open-nearby__container, .open-other__container {
    padding-left: 40px;
    padding-right: 40px;
}
.open-moscow__head {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin: 0px 0 36px;
}
.open-moscow__title,
.moscow-inner__title,
.open-section-title {
    font-size: 28px;
    line-height: 34px;
    letter-spacing: 0;
    margin-bottom: 12px;
}
a.moscow-card span {
    line-height: 24px;
}
.open-moscow__text,
.open-section-text,
.moscow-inner__subtitle {
    color: #333331;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
    margin-bottom: 0;
}
.open-section-text {
    max-width: 470px;
}
.open-moscow__filter {
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    margin-top: 48px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}
.open-moscow__grid, .open-other__grid {
    display: grid;
    gap: 40px 40px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.moscow-card {
    display: block;
}
.open-moscow__grid .moscow-card[hidden] {
    display: none;
}
.moscow-card img {
    aspect-ratio: 390 / 540;
    display: block;
    margin-bottom: 20px;
    object-fit: cover;
    transition: opacity .4s ease, transform .4s ease;
    width: 100%;
}
.moscow-card:hover img {
    opacity: .9;
    transform: scale(1.01);
}
.moscow-card h2 {
    font-size: 20px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 10px;
}
.moscow-card p, .moscow-card span {
    color: var(--black);
    display: block;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
}
.moscow-card p {
    max-width: 260px;
}
.moscow-card span {
    margin-top: 4px;
}
.moscow-inner {
    padding: 7px 0 60px;
}
.moscow-inner__header {
    margin-bottom: 41px;
    margin-top: 0;
}
.moscow-inner__title-block {
    display: block;
}
.moscow-inner__subtitle {
    color: #333331;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-top: 12px;
}
.moscow-inner__preview {
    margin-bottom: 60px;
}
.district-page {
    padding-bottom: 0;
}
.district-page__header {
    margin-bottom: 40px;
}
.district-page .moscow-inner__subtitle {
    max-width: 860px;
}
.district-page__preview {
    margin-bottom: 0;
}
.district-page__preview .apartment-preview__slide img {
    height: auto;
}
.district-apartments {
    padding-top: 36px;
}
.district-apartments .apartments__head {
    margin-bottom: 36px;
}
.district-apartments .apartments__text {
    margin-bottom: 0;
}
.apartment-card__link {
    display: block;
    position: relative;
}
.apartment-card__wishlist {
    align-items: center;
    color: #fffef9;
    cursor: pointer;
    display: flex;
    font-size: 22px;
    height: 28px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: 10px;
    top: 10px;
    transition: opacity .3s ease, transform .3s ease;
    width: 28px;
    z-index: 3;
}
.apartment-card__wishlist::before {
    content: "♡";
}
.apartment-card__wishlist:hover {
    opacity: .75;
    transform: scale(1.06);
}
.district-apartments p.apartment-card__price {
    display: none;
}
.apartment-preview__slider:not(.swiper-initialized) .swiper-wrapper {
    display: flex;
    gap: 20px;
    transition: transform .6s ease;
}
.apartment-preview__slider:not(.swiper-initialized) .swiper-slide {
    flex: 0 0 63.291%;
}
.apartment-preview__slider {
    padding-bottom: 18px;
    position: relative;
}
.apartment-preview__progressbar.swiper-pagination-progressbar {
    background-color: transparent;
    bottom: 0;
    height: 1px;
    left: 0;
    position: static;
    margin-top: 36px;
    top: auto;
    width: calc(100% - 40px);
}
.apartment-preview__progressbar .swiper-pagination-progressbar-fill {
    background-color: var(--black);
}
.moscow-inner__info .apartment-details__section {
    max-width: 690px;
}
.moscow-inner__info .apartment-details__section:not(:last-child) {
    margin-bottom: 42px;
}
.moscow-inner__booking {
    margin-top: 0;
}
.moscow-inner__booking-note {
    color: #8c8c88;
    font-size: 12px;
    font-weight: 300;
    line-height: 18px;
    margin: 34px 0 28px;
}
a.moscow-inner__button {
    align-items: center;
    display: flex;
    justify-content: center;
    text-align: center;
}
.moscow-inner__top {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin-top: 56px;
}
.moscow-inner__arrows,
.open-nearby__controls,
.open-other__controls {
    margin-top: 20px;
}
.open-other__controls.apartments__controls {
    margin-top: 41px;
}
.moscow-inner__gallery {
    margin-top: 38px;
    overflow: hidden;
    width: 100%;
}
.moscow-inner__gallery-wrapper {
    display: flex;
    gap: 20px;
    transition: transform .6s ease;
}
.moscow-inner__gallery.swiper-initialized .moscow-inner__gallery-wrapper {
    gap: 0;
    transition: none;
}
.moscow-inner__slide {
    flex: 0 0 calc((100% - 20px) * .32);
    width: calc((100% - 20px) * .32);
}
.moscow-inner__slide--wide {
    flex-basis: calc((100% - 20px) * .68);
    width: calc((100% - 20px) * .68);
}
.moscow-inner__slide img {
    aspect-ratio: 860 / 540;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.moscow-inner__content {
    border-top: 1px solid rgba(26, 26, 25, .55);
    display: grid;
    gap: 86px;
    grid-template-columns: minmax(0, 690px) 320px;
    margin-top: 32px;
    padding: 38px 0 0 34px;
}
.moscow-inner__article h2 {
    font-size: 24px;
    line-height: 30px;
    letter-spacing: 0;
    margin: 0 0 26px;
}
.moscow-inner__article h2:not(:first-child) {
    margin-top: 42px;
}
.moscow-inner__article p {
    color: #333331;
    font-size: 14px;
    font-weight: 300;
    line-height: 21px;
    margin-bottom: 24px;
}
.moscow-inner__booking {
    align-self: end;
    background-color: #f7f4ee;
    border-radius: 20px;
    margin-top: 24px;
    padding: 30px 28px 24px;
}
.moscow-inner__price,
.moscow-inner__type {
    font-family: "ivypresto-display", serif;
    font-size: 23px;
    font-weight: 300;
    line-height: 27px;
}
.moscow-inner__type {
    margin-bottom: 40px;
}
.moscow-inner__booking p {
    color: #7f7f7f;
    font-size: 14px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 32px;
}
.moscow-inner__button {
    align-items: center;
    background-color: var(--black);
    border-radius: 60px;
    color: #fffef9;
    display: flex;
    font-size: 16px;
    height: 54px;
    justify-content: center;
    line-height: 36px;
    transition: opacity .3s ease;
}
.moscow-inner__button:hover {
    opacity: .88;
}
.booking-card.moscow-inner__booking {
    border-radius: 24px;
    margin-top: 0;
    max-width: 400px;
    padding: 30px 20px 25px;
}
.booking-card.moscow-inner__booking .booking-card__note {
    margin-bottom: 0;
}
.booking-card.moscow-inner__booking .moscow-inner__booking-note {
    margin: 40px 0 28px;
}
.booking-card.moscow-inner__booking .moscow-inner__button {
    border-radius: 24px;
    height: 60px;
    margin-top: 0;
}
.open-nearby {
    padding: 0 0 78px;
}
.open-section-head {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin-bottom: 42px;
}
.apartments--inner {
    padding-top: 0;
}
.open-nearby__slider {
    overflow: hidden;
}
.open-nearby__wrapper {
    display: flex;
    transition: transform .6s ease;
}
.open-nearby__slider.swiper-initialized .open-nearby__wrapper {
    transition: none;
}
.open-apartment-card img {
    aspect-ratio: 390 / 540;
    display: block;
    margin-bottom: 20px;
    object-fit: cover;
    width: 100%;
}
.open-apartment-card h3 {
    font-size: 20px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 10px;
}
.open-apartment-card ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
}
.open-apartment-card li,
.open-apartment-card p,
.open-apartment-card span {
    color: #333331;
    font-size: 13px;
    font-weight: 300;
    line-height: 17px;
}
.open-apartment-card p {
    margin-top: 3px;
}
.open-apartment-card span {
    display: block;
    margin-top: 6px;
}
.open-other {
    background-color: #f7f4ee;
    padding: 56px 0 96px;
}
.open-other .apartments__head {
    margin-bottom: 42px;
}
.open-other__slider {
    overflow: hidden;
}

/* Advanced Filter */
.advanced-filter {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 88px 20px 40px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .35s ease, visibility .35s ease;
}

.advanced-filter.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.advanced-filter__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .62);
}

.advanced-filter__modal {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 760px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding: 30px 40px 48px;
    background: #fbfaf6;
    border-radius: 24px;
    transform: translateY(24px) scale(.98);
    opacity: 0;
    transition: transform .35s ease, opacity .35s ease;
}

.advanced-filter.is-open .advanced-filter__modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.advanced-filter__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 24px;
    height: 24px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.advanced-filter__close::before,
.advanced-filter__close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background: #333;
}

.advanced-filter__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.advanced-filter__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.advanced-filter__title {
    margin: 0 0 28px;
    font-size: 24px;
    font-weight: 300;
    line-height: 24px;
    letter-spacing: 0.48px;
}


.advanced-filter__label {
    font-size: 16px;
    font-weight: 300;
    line-height: 30px;
    
}
.advanced-filter__options {
    display: flex;
    flex-direction: column;
}

.advanced-filter__options label {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 16px;
    cursor: pointer;
    font-weight: 300;
    line-height: 30px;
    position: relative;
}

.advanced-filter__options input {
    width: 12px;
    height: 12px;
    accent-color: #111;
}

.advanced-filter__bottom {
    display: flex;
    align-items: center;
    gap: 68px;
    margin-top: 48px;
}

.advanced-filter__submit {
    min-width: 245px;
    height: 52px;
    border: 0;
    border-radius: 18px;
    background: #111;
    color: #fff;
    cursor: pointer;
}

.advanced-filter__reset {
    padding: 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    cursor: pointer;
}

html.is-lock {
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
}
body.is-lock {
    height: auto;
    left: 0;
    min-height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
    position: fixed;
    right: 0;
    width: 100%;
}
.advanced-filter__group > div {
    width: 50%;
}
form.advanced-filter__form {
    display: flex;
    flex-direction: column;
    gap: 45px;
}
.advanced-filter__group {
    display: flex;
}
.advanced-filter__options label input:checked + span::before {
    content: '';
    display: block;
    width: 13px;
    height: 13px;
    background-color: var(--black);
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -6.5px;
}
.advanced-filter__group {
    display: flex;
}

input[type="checkbox"] {
    width: 13px;
    height: 13px;
}


.advanced-filter__options label::before {
    content: '';
    display: block;
    width: 13px;
    height: 13px;
    background-color: #eae7e1;
}

.advanced-filter__options label input:checked + span::before {
    content: '';
    display: block;
    width: 13px;
    height: 13px;
    background-color: var(--black);
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -6.5px;
}
.advanced-filter__options input {
    position: absolute;
    opacity: 0;
    visibility: hidden;
}
.advanced-filter__submit {
    min-width: 280px;
    height: 60px;
    border: 0;
    border-radius: 24px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    line-height: 36px;
    transition: all .5s ease;
}
.advanced-filter__submit:hover {
    opacity: 0.8;
    transition: all .5s ease;
}
.advanced-filter__bottom > div {
    width: 50%;
}

.advanced-filter__bottom {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 48px;
}
button.advanced-filter__reset {
    font-size: 14px;
    font-weight: 300 !important;
    text-underline-offset: 7px;
    border: none;
    text-decoration: underline;
    font-family: 'Mabry Pro';
    text-decoration-thickness: 1px;
    margin-left: 30px;
    text-decoration-color: inherit;
    transition: all .5s ease;
}
button.advanced-filter__reset:hover {
    text-decoration-color: transparent;
    transition: all .5s ease;
}
.advanced-filter--excursions {
    align-items: center;
    padding: 20px;
}
.advanced-filter--excursions .advanced-filter__modal {
    padding: 30px 36px 48px;
}
.advanced-filter--excursions form.advanced-filter__form {
    gap: 30px;
}
.advanced-filter--excursions .advanced-filter__bottom {
    margin-top: 18px;
}
.excursion-request {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 40px 20px;
    pointer-events: none;
    position: fixed;
    transition: opacity .3s ease, visibility .3s ease;
    visibility: hidden;
    z-index: 1300;
}
.excursion-request.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.excursion-request__overlay {
    background-color: rgba(0, 0, 0, .66);
    inset: 0;
    position: absolute;
}
.excursion-request__dialog {
    background-color: #f7f4ee;
    border-radius: 24px;
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(440px, 1fr);
    max-width: 840px;
    min-height: 468px;
    overflow: hidden;
    position: relative;
    transform: translateY(18px) scale(.98);
    transition: transform .3s ease;
    width: min(840px, 100%);
    z-index: 1;
}
.excursion-request.is-open .excursion-request__dialog {
    transform: translateY(0) scale(1);
}
.excursion-request__close {
    background-color: transparent;
    border: 0;
    cursor: pointer;
    height: 28px;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 28px;
    z-index: 3;
}
.excursion-request__close::before,
.excursion-request__close::after {
    background-color: var(--black);
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 16px;
}
.excursion-request__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.excursion-request__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.excursion-request__image {
    min-height: 468px;
}
.excursion-request__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.excursion-request__content {
    padding: 34px 40px 36px;
}
.excursion-request__title {
    font-size: 28px;
    font-weight: 300;
    line-height: 34px;
    margin-bottom: 88px;
}
.excursion-request__grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 10px;
}
.excursion-request__field, .excursion-request__select select {
    background-color: #fffef9;
    border: 1px solid #ebeae5;
    border-radius: 18px;
    color: #2f2f2d;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    height: 58px;
    line-height: 20px;
    padding: 1px 24px;
    width: 100%;
}

.excursion-request__field::placeholder {
    color: #2f2f2d;
    opacity: 1;
}
.excursion-request__people {
    appearance: none;
    cursor: pointer;
}
.excursion-request__select {
    display: block;
    margin-bottom: 24px;
    position: relative;
}
.excursion-request__select::after {
    content: "↓";
    font-size: 18px;
    font-weight: 300;
    pointer-events: none;
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
}
.excursion-request__select select {
    appearance: none;
    padding-right: 58px;
}
.excursion-request__submit {
    align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 30px;
    color: #fffef9;
    cursor: pointer;
    display: flex;
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    height: 58px;
    justify-content: center;
    line-height: 22px;
    width: 100%;
}
.excursion-request__submit:hover {
    opacity: .9;
}
@media (max-width: 640px) {
    .advanced-filter {
        padding: 30px 15px;
    }

    .advanced-filter__modal {
        max-height: calc(100vh - 60px);
        padding: 28px 22px 34px;
    }

    .advanced-filter__group {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .advanced-filter__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px;
    }

    .advanced-filter__submit {
        width: 100%;
    }
    .advanced-filter--excursions {
        align-items: center;
        padding: 16px;
    }
    .advanced-filter--excursions .advanced-filter__modal {
        padding: 28px 22px 32px;
    }
    .advanced-filter--excursions .advanced-filter__group > div,
    .advanced-filter--excursions .advanced-filter__bottom > div {
        width: 100%;
    }
    .advanced-filter--excursions .advanced-filter__bottom {
        margin-top: 4px;
    }
    .advanced-filter--excursions button.advanced-filter__reset {
        margin-left: 0;
    }
    .excursion-request {
        padding: 18px;
    }
    .excursion-request__dialog {
        border-radius: 22px;
        grid-template-columns: 1fr;
        max-height: calc(100vh - 36px);
        max-width: 420px;
        min-height: 0;
        overflow: auto;
    }
    .excursion-request__image {
        aspect-ratio: 343 / 220;
        min-height: 0;
    }
    .excursion-request__content {
        padding: 28px 22px 30px;
    }
    .excursion-request__title {
        font-size: 26px;
        line-height: 32px;
        margin-bottom: 34px;
    }
    .excursion-request__grid {
        grid-template-columns: 1fr;
    }
    .excursion-request__field,
    .excursion-request__select select,
    .excursion-request__submit {
        height: 54px;
    }
}

.profile-login {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 20px;
    pointer-events: none;
    position: fixed;
    transition: opacity .3s ease, visibility .3s ease;
    visibility: hidden;
    z-index: 1400;
}
.profile-login.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.profile-login__overlay {
    background-color: rgba(0, 0, 0, .66);
    inset: 0;
    position: absolute;
}
.profile-login__dialog {
    background-color: #f7f4ee;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 380px 460px;
    height: 468px;
    max-height: calc(100vh - 40px);
    max-width: 840px;
    overflow: hidden;
    position: relative;
    transform: translateY(18px) scale(.98);
    transition: transform .3s ease;
    width: 100%;
    z-index: 1;
}
.profile-login.is-open .profile-login__dialog {
    transform: translateY(0) scale(1);
}
.profile-login__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 28px;
    position: absolute;
    right: 18px;
    top: 16px;
    width: 28px;
    z-index: 3;
}
.profile-login__close::before,
.profile-login__close::after {
    background-color: var(--black);
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 16px;
}
.profile-login__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.profile-login__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.profile-login__image {
    height: 468px;
}
.profile-login__image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.profile-login__content {
    min-width: 0;
    padding: 28px 40px 34px;
}
.profile-login__step {
    display: none;
    height: 100%;
}
.profile-login__step.is-active {
    display: flex;
    flex-direction: column;
}
.profile-login__title {
    font-size: 28px;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 34px;
    margin: 0 0 7px;
}
.profile-login__description {
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    margin: 0;
}
.profile-login__form {
    margin-top: auto;
}
.profile-login__field {
    background-color: #fffef9;
    border: 1px solid #ebeae5;
    border-radius: 22px;
    color: var(--black);
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    height: 58px;
    line-height: 20px;
    outline: none;
    padding: 1px 24px;
    width: 100%;
}
.profile-login__field:focus {
    border-color: #b8b5ae;
}
.profile-login__field::placeholder {
    color: #333331;
    opacity: 1;
}
.profile-login__field--code {
    letter-spacing: 3px;
}
.profile-login__submit {
    align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 24px;
    color: #fffef9;
    cursor: pointer;
    display: flex;
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    height: 59px;
    justify-content: center;
    line-height: 22px;
    margin-top: 24px;
    transition: opacity .3s ease;
    width: 100%;
}
.profile-login__submit:hover {
    opacity: .86;
}
.profile-login__link {
    align-self: flex-end;
    background: transparent;
    border: 0;
    border-bottom: 1px solid currentColor;
    color: var(--black);
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    margin-top: 28px;
    padding: 0 0 2px;
    text-decoration: none;
}
.profile-login__link:hover {
    border-bottom-color: transparent;
}
.contact-request__grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.contact-request__grid .profile-login__field--wide {
    grid-column: 1 / -1;
}
.contact-request .profile-login__submit {
    margin-top: 24px;
}
.contact-request__form {
    transform: translateY(-5px);
}

@media (max-width: 700px) {
    .profile-login {
        padding: 16px;
    }
    .profile-login__dialog {
        display: block;
        height: auto;
        max-height: calc(100vh - 32px);
        max-width: 430px;
        overflow-y: auto;
    }
    .profile-login__image {
        aspect-ratio: 358 / 190;
        height: auto;
    }
    .profile-login__content {
        min-height: 410px;
        padding: 26px 22px 28px;
    }
    .profile-login__title {
        font-size: 26px;
        line-height: 32px;
    }
    .profile-login__description br {
        display: none;
    }
    .contact-request__grid {
        grid-template-columns: 1fr;
    }
    .contact-request__grid .profile-login__field--wide {
        grid-column: auto;
    }
}

.booking-popup {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 42px 20px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .35s ease, visibility .35s ease;
}

.booking-popup.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.booking-popup__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .62);
}

.booking-popup__modal {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    width: 100%;
    max-width: 880px;
    min-height: 466px;
    overflow: hidden;
    border-radius: 20px;
    background: #f7f4ee;
    transform: translateY(24px) scale(.98);
    opacity: 0;
    transition: transform .35s ease, opacity .35s ease;
}

.booking-popup.is-open .booking-popup__modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.booking-popup__close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.booking-popup__close::before,
.booking-popup__close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background: #111;
}

.booking-popup__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.booking-popup__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.booking-popup__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.copyright__symbol {
    font-size: 18px;
    position: relative;
    top: 6px;
}

.locations__item-link {
    color: inherit;
    display: block;
    text-decoration: none;
}

.location-page .district-page__preview,
.location-page .district-page__header .apartment-preview__top {
    display: none;
}

.location-page .district-page__header {
    margin-bottom: 0;
}

.location-page__breadcrumbs-section {
    padding-bottom: 0;
}

.location-page nav.breadcrumbs.apartment__breadcrumbs {
    margin-bottom: 7px;
}

.location-page .district-apartments {
    padding-top: 60px;
}

.location-page section.apartments.section {
    padding-bottom: 0;
}

.location-page .district-apartments .appointments article:nth-child(n + 7) {
    display: none;
}

.location-page .appointments {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 40px 50px;
}

.location-page .appointments article.apartment-card {
    width: calc(33.33% - (100px / 3));
}

.location-page .apartment-card__slider {
    aspect-ratio: 420 / 300;
    overflow: hidden;
}

.location-page .card-slider__slide,
.location-page .card-slider__image {
    height: 100%;
}

.location-page .card-slider__image {
    object-fit: cover;
}

.location-page .view-in-cart-wrap {
    align-items: center;
    display: flex;
    gap: 34px;
}

.location-story {
    background-color: #f7f4ee;
    margin-top: 80px;
    padding: 48px 0;
}

.location-story__container {
    align-items: center;
    display: flex;
    gap: clamp(60px, 10vw, 180px);
    justify-content: center;
}

.location-story__content {
    max-width: 520px;
}

.location-story__title {
    margin-bottom: 28px;
}

.location-story__content p {
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin: 0 0 28px;
}

.location-story__content p:last-child {
    margin-bottom: 0;
}

.location-story__image {
    display: block;
    height: 610px;
    object-fit: cover;
    width: min(440px, 38vw);
}

.location-apartments--secondary {
    padding-bottom: 90px;
    padding-top: 90px;
}

.location-page section.locations.location-page__locations {
    background-color: #f7f4ee;
    margin-top: 100px;
    padding: 50px 0;
}

.location-page footer.footer {
    margin-top: 0;
}

.location-page .district-apartments .apartments__head {
    margin-bottom: 20px;
}

.location-page__locations-header {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin-bottom: 0;
}

.location-regions-swiper {
    overflow: hidden;
    padding-bottom: 18px;
    position: relative;
}

.location-regions__slide {
    height: auto;
}

.location-regions__column {
    display: flex;
    flex-direction: column;
    gap: 40px;
    min-width: 0;
    width: 100%;
}

.location-page .location-regions-swiper .locations__grid-center {
    display: flex !important;
}

.location-nearby {
    background-color: #f7f4ee;
    padding: 76px 0 96px;
}

.location-nearby__header {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 48px;
}

.location-nearby__controls {
    display: flex;
    gap: 42px;
    padding-bottom: 8px;
}

.location-nearby__title {
    margin-bottom: 12px;
}

.location-nearby__grid {
    display: grid;
    gap: 38px 80px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, auto);
}

.location-nearby__card {
    color: inherit;
    display: block;
    text-decoration: none;
}

.location-nearby__card img {
    aspect-ratio: 400 / 263;
    display: block;
    object-fit: cover;
    width: 100%;
}

.location-nearby__card--khamovniki { grid-column: 1; grid-row: 1; }
.location-nearby__card--arbat { grid-column: 1; grid-row: 2; }
.location-nearby__card--sparrow { grid-column: 2; grid-row: 1 / span 2; }
.location-nearby__card--city { grid-column: 3; grid-row: 1; }
.location-nearby__card--zoo { grid-column: 3; grid-row: 2; }

.location-nearby__card--sparrow img {
    height: calc(100% - 46px);
    min-height: 540px;
}

.location-nearby__card h3 {
    font-family: "orpheuspro", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
    margin: 16px 0 0;
}

@media (max-width: 767px) {
    .location-page nav.breadcrumbs.apartment__breadcrumbs {
        margin-bottom: 7px !important;
    }

    .location-page .district-apartments {
        padding-top: 22px;
    }

    .location-page .appointments {
        display: block;
    }

    .location-page .appointments article.apartment-card {
        width: 100%;
    }

    .location-page .apartments__head {
        align-items: flex-start;
        display: block;
    }

    .location-page .view-in-cart-wrap {
        gap: 16px;
        margin-top: 22px;
        position: static;
    }

    .location-page .view-in-cart-link {
        font-size: 11px;
    }

    .location-story {
        margin-top: 48px;
        padding: 48px 0;
    }

    .location-story__container {
        align-items: stretch;
        flex-direction: column;
        gap: 34px;
    }

    .location-story__title {
        margin-bottom: 20px;
    }

    .location-story__content p {
        font-size: 14px;
        line-height: 20px;
        margin-bottom: 20px;
    }

    .location-story__image {
        aspect-ratio: 343 / 430;
        height: auto;
        width: 100%;
    }

    .location-apartments--secondary {
        padding: 48px 0;
    }

    .location-page section.locations.location-page__locations {
        margin-top: 48px;
        padding: 48px 0 56px;
    }

    .location-page__locations-header {
        margin-bottom: 0;
    }

    .location-nearby {
        padding: 48px 0 56px;
    }

    .location-nearby__header {
        align-items: flex-start;
        margin-bottom: 30px;
    }

    .location-nearby__controls {
        display: none;
    }

    .location-nearby__grid {
        gap: 30px;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .location-nearby__card--khamovniki,
    .location-nearby__card--arbat,
    .location-nearby__card--sparrow,
    .location-nearby__card--city,
    .location-nearby__card--zoo {
        grid-column: auto;
        grid-row: auto;
    }

    .location-nearby__card--sparrow img {
        height: auto;
        min-height: 0;
    }

    .location-nearby__card h3 {
        font-size: 20px;
        line-height: 26px;
        margin-top: 12px;
    }
}

.booking-popup__content {
    padding: 30px 40px 46px;
    display: flex;
    flex-direction: column;
}

.booking-popup__title {
    max-width: 430px;
    margin: 0;
    font-size: 24px;
    line-height: 1.1;
    font-weight: 400;
    line-height: 30px;
}

.booking-popup__text {
    max-width: 390px;
    margin: auto 0 38px;
    font-size: 16px;
    line-height: 24px;
    font-weight: 300;
}

.booking-popup__button {
    width: 340px;
    height: 60px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 20px;
    background: var(--black);
    color: #fff;
    text-decoration: none;
    transition: all .5s ease;
}

.booking-popup__button:hover {
    opacity: .9;
    transition: all .5s ease;
}
.apartment-preview__image,
.apartment-media__image {
    cursor: pointer;
}
.gallery-lightbox {
    position: fixed;
    inset: 0;
    background-color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
    visibility: hidden;
    z-index: 100;
}
.gallery-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.gallery-lightbox__viewer {
    align-items: center;
    display: flex;
    box-sizing: border-box;
    height: 100vh;
    justify-content: center;
    padding: 26px 120px 120px;
    width: 100%;
}
.gallery-lightbox__slider {
    height: 100%;
    width: 100%;
}
.gallery-lightbox__wrapper {
    align-items: center;
    display: flex;
    height: 100%;
    transition: transform .6s ease;
}
.gallery-lightbox__slide {
    align-items: center;
    display: flex;
    flex: 0 0 100%;
    height: 100%;
    justify-content: center;
}
.gallery-lightbox__figure {
    display: flex;
    height: auto;
    justify-content: center;
    margin: 0;
    max-height: calc(100vh - 146px);
    max-width: min(79vw, 100%);
    position: relative;
    width: auto;
}
.gallery-lightbox__slide img {
    display: block;
    height: auto;
    max-height: calc(100vh - 146px);
    max-width: min(79vw, 100%);
    object-fit: contain;
    width: auto;
}
.gallery-lightbox__caption {
    bottom: 16px;
    color: var(--white);
    font-size: 14px;
    font-weight: 300;
    left: 20px;
    line-height: 18px;
    position: absolute;
    z-index: 1;
}
.gallery-lightbox__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 34px;
    position: absolute;
    right: 38px;
    top: 24px;
    width: 34px;
    z-index: 2;
}
.gallery-lightbox__close::before,
.gallery-lightbox__close::after {
    background-color: var(--black);
    content: '';
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 17px;
}
.gallery-lightbox__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.gallery-lightbox__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.gallery-lightbox__arrow {
    background-color: transparent;
    border: 1px solid #6f6f6f;
    border-radius: 50%;
    cursor: pointer;
    height: 38px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity .3s ease;
    width: 38px;
    z-index: 2;
}
.gallery-lightbox__arrow:hover,
.gallery-lightbox__close:hover {
    opacity: .65;
}
.gallery-lightbox__arrow::before {
    border-bottom: 1px solid #565656;
    border-left: 1px solid #565656;
    content: '';
    height: 10px;
    left: 15px;
    position: absolute;
    top: 13px;
    transform: rotate(45deg);
    width: 10px;
}
.gallery-lightbox__arrow--prev {
    left: 42px;
}
.gallery-lightbox__arrow--next {
    right: 42px;
}
.gallery-lightbox__arrow--next::before {
    left: 11px;
    transform: rotate(225deg);
}
.gallery-lightbox__thumbs {
    bottom: 24px;
    left: 50%;
    max-width: min(70vw, 1060px);
    padding: 0 0 2px;
    position: absolute;
    transform: translateX(-50%);
}
.gallery-lightbox__thumb {
    cursor: pointer;
    height: 70px;
    opacity: .38;
    transition: opacity .3s ease;
    width: 110px;
}
.gallery-lightbox__thumb.swiper-slide-thumb-active,
.gallery-lightbox__thumb.is-active,
.gallery-lightbox__thumb:hover {
    opacity: 1;
}
.gallery-lightbox__thumb img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.swiper-slide.apartment-preview__slide {
    width: auto;
}
.gallery-lightbox__close:focus-visible,
.gallery-lightbox__arrow:focus-visible,
.gallery-lightbox__thumb:focus-visible {
    outline: 1px solid #565656;
    outline-offset: 4px;
}
a.nav__link {
    text-decoration-thickness: 1px; 
    cursor: pointer;
}
.appointments article.apartment-card {
    width: calc(33.33% - (160px / 3));
}
.appointments {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 40px 80px;
}
.apartments--catalog .appointments {
    gap: 40px 50px;
}
.apartments--catalog .appointments article.apartment-card {
    width: calc(33.33% - (100px / 3));
}
.apartments--catalog .apartment-card__slider {
    aspect-ratio: 500 / 355;
    overflow: hidden;
}
.apartments--catalog .card-slider__slide,
.apartments--catalog .card-slider__image {
    height: 100%;
}
.apartments--catalog .card-slider__image {
    object-fit: cover;
    width: 100%;
}
button.check__dates {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    font-family: 'Mabry Pro';
    letter-spacing: 0;
    text-decoration: underline;
    text-underline-offset: 7px;
}
button.check__dates {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    font-family: 'Mabry Pro';
    letter-spacing: 0;
    text-decoration: underline;
    text-underline-offset: 7px;
    line-height: 14px;
}
button.check__dates:hover {
    text-decoration-color: transparent;
}
a.view__apart:hover {
    text-decoration-color: inherit;
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-color: #000;
}

a.view__apart {}

a.view__apart {
    font-size: 14px;
    font-weight: 300;
    line-height: 14px;
}

.apartment__actions {
    display: flex;
    gap: 30px;
    align-items: center;
    padding-top: 10px;
}
.view-in-cart-link {
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    padding: 0;
    text-decoration: none;
}
.apartments__filter-toggle {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}

.view-in-cart-wrap {
    align-items: center;
    display: flex;
    gap: 28px;
    padding-top: 51px;
}
.view-in-cart-link:hover {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}
.apartments__filter-toggle:hover {
    text-decoration-color: transparent;
}
nav.breadcrumbs.apartment__breadcrumbs {
    font-size: 12px;
    color: #7f7f7f;
    font-weight: 300;
}
nav.breadcrumbs.apartment__breadcrumbs a {
    color: #7f7f7f;
}
section.apartment {
    padding-top: 7px;
}
.apartment__header {
    width: calc(65% - 4px);
}
h1.apartment__title {
    font-size: 28px;
    line-height: 36px;
    letter-spacing: 0.56px;
}
ul.apartment__features {
    font-family: "ivypresto-display", serif;
    font-size: 20px;
    line-height: 36px;
    display: flex;
    gap: 30px;
}
nav.breadcrumbs.apartment__breadcrumbs {
    margin-bottom: 50px;
}
address.apartment__address {
    display: flex;
    flex-direction: column;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-top: 14px;
}
.apartment__header {
    display: flex;
    justify-content: space-between;
}
span.apartment__score {
    font-family: "ivypresto-display", serif;
    font-weight: 300;
    font-size: 20px;
    line-height: 24px;
    position: relative;
    top: -3px;
}
a.apartment__reviews {
    font-size: 14px;
    font-weight: 300;
}
.separator {
    font-size: 11px;
}
a.apartment__reviews {
    font-size: 14px;
    font-weight: 300;
    line-height: 24px;
}
.apartment__rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 55px;
}
.apartment__sidebar {
    padding-top: 14px;
}
a.apartment__map-link {
    font-size: 16px;
    line-height: 24px;
    font-weight: 300;
    text-decoration: underline;
    text-underline-offset: 7px;
    text-decoration-thickness: 1px;
    text-decoration-color: inherit;
    transition: all .5s ease;
}
a.apartment__map-link:hover {
    text-decoration-color: transparent;
    transition: all .5s ease;
}
.apartment__rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 49px;
}
.apartment__sidebar {
    text-align: right;
}
.apartment-preview__slide img {
    max-width: 100%;
    display: block;
    width: 100%;
    height: 587px;
    width: auto;
}
section.apartment-preview {
    padding-left: 40px;
}
.apart-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
}
.apart-header {
    margin-bottom: 41px;
}
.apartment-preview__top {
    margin-bottom: 17px;
}
.apartment-details {
    padding-left: 40px;
}
.apartment-details__section h2 {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0.48px;
    margin-bottom: 26px;
}
.apartment-details__section p {
    font-size: 16px;
    line-height: 24px;
    font-weight: 300;
    margin-bottom: 24px;
}
.apartment-details__section ul li {
    font-weight: 300;
    line-height: 24px;
}
.apartment-details__section ul {
    margin-bottom: 24px;
}
section.apartment {
    margin-bottom: 60px;
}
.apartment-info__layout {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.apartment-details {
    width: calc(65.5% - 10px);
}

aside.apartment-info__sidebar {
    width: calc(34.5% - 10px);
    display: flex;
    flex-direction: column;
    align-items: end;
    position: relative;
}
section.apartment-details__section {
    max-width: 665px;
}
.booking-card, .promo-card {
    max-width: 400px;
    width: 100%;
}
.booking-card,
.promo-card {
    background-color: #f7f4ee;
    padding: 30px 20px 25px;
    border-radius: 24px;
}
.booking-card__price,.promo-card__title {
    font-size: 24px;
    font-weight: 300;
    font-family: "ivypresto-display", serif;
    line-height: 30px;
    letter-spacing: 0.48px;
    margin-bottom: 16px;
    
}

p.booking-card__note {
    font-size: 14px;
    color: #7f7f7f;
    font-weight: 300;
    font-family: 'Mabry Pro';
}
.booking-card__dates {
    align-items: center;
    background-color: #fffef9;
    border: 1px solid #ebeae5;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    height: 60px;
    margin-top: 30px;
    overflow: hidden;
    width: 100%;
}
button.booking-card__date {
    background-color: transparent;
    border: 0;
    height: 58px;
    padding: 0 10px;
    width: 100%;
}
.booking-card__label,
.booking-card__arrow {
    font-size: 14px;
    line-height: 36px;
    white-space: nowrap;
}
button.booking-card__field {
    width: 100%;
    height: 60px;
    border: 1px solid #ebeae5;
    border-radius: 24px;
    margin-top: 12px;
    background-color: #fffef9;
    font-size: 14px;
    font-family: 'Mabry Pro';
}
.booking-card__availability {
    border-bottom: 1px solid rgb(222, 219, 212);
    margin-top: 27px;
    min-height: 83px;
    padding: 0px 0px 14px;
}
.booking-card__availability-message {
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
}
.booking-card__calculation-title {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}
.booking-card__calculation-row {
    align-items: center;
    display: flex;
    font-size: 16px;
    font-weight: 400;
    justify-content: space-between;
    line-height: 22px;
    margin-top: 27px;
}
.booking-card__calculation-row strong {
    font-weight: 400;
}
.booking-card__calculation-row--prepayment {
    border-top: 1px solid #dedbd4;
    margin-top: 16px;
    padding-top: 16px;
}
button.booking-card__submit {
    width: 100%;
    height: 60px;
    border-radius: 24px;
    border: none;
    background-color: var(--black);
    color: var(--white);
    font-size: 16px;
    margin-top: 36px;
    transition: all .5s ease;
}
button.booking-card__submit:hover {
    opacity: 0.9;
    transition: all .5s ease;
}
button.booking-card__submit:disabled {
    background-color: #cfcdc8;
    cursor: default;
    opacity: 1;
}
.booking-card {
    margin-bottom: 23px;
}

.apartment-amenities {
    background-color: #f7f4ee;
    border-radius: 24px;
    margin-top: 36px;
    max-width: calc(100% + 40px);
    padding: 28px 38px;
    margin-left: -40px;
}
.apartment-amenities__title,
.amenities-modal__title {
    font-family: "ivypresto-display", serif;
    font-size: 24px;
    font-weight: 300;
    letter-spacing: .48px;
    line-height: 30px;
}
.apartment-amenities__list,
.amenities-modal__list {
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(5, auto);
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    row-gap: 18px;
}
.apartment-amenities__item,
.amenities-modal__item {
    align-items: center;
    color: #6d6c69;
    display: flex;
    font-size: 14px;
    font-weight: 300;
    gap: 14px;
    line-height: 20px;
}
.apartment-amenities__item svg,
.amenities-modal__item svg,
.apartment-amenities__item img,
.amenities-modal__item img {
    flex: 0 0 23px;
    height: 23px;
    object-fit: contain;
    width: 23px;
}
.apartment-amenities__more {
    background: transparent;
    border: 0;
    border-bottom: 1px solid currentColor;
    color: var(--black);
    cursor: pointer;
    display: block;
    font-family: "Mabry Pro", sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
    margin: 60px 0 0 auto;
    padding: 0;
    text-underline-offset: 6px;
    transition: border-color .25s ease;
}
.apartment-amenities__more:hover {
    border-color: transparent;
}

.amenities-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 20px;
    pointer-events: none;
    position: fixed;
    transition: opacity .35s ease, visibility .35s ease;
    visibility: hidden;
    z-index: 1000;
}
.amenities-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.amenities-modal__overlay {
    background: rgba(0, 0, 0, .62);
    inset: 0;
    position: absolute;
}
.amenities-modal__dialog {
    background: #fbfaf6;
    border-radius: 24px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 36px 40px 44px;
    position: relative;
    transform: translateY(24px) scale(.98);
    transition: transform .35s ease, opacity .35s ease;
    width: min(760px, 100%);
    z-index: 1;
}
.amenities-modal.is-open .amenities-modal__dialog {
    transform: translateY(0) scale(1);
}
.amenities-modal__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 24px;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 24px;
}
.amenities-modal__close::before,
.amenities-modal__close::after {
    background: var(--black);
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 16px;
}
.amenities-modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.amenities-modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.amenities-modal__list {
    column-gap: 34px;
    margin-top: 32px;
    row-gap: 22px;
}
.amenities-modal__item {
    color: var(--black);
    font-size: 16px;
}

h3.promo-card__title {
    margin-bottom: 38px;
}

p.promo-card__text {
    font-size: 14px;
    line-height: 24px;
    color: #7f7f7f;
    font-weight: 300;
}
.btn {
    width: 100%;
    height: 60px;
    border-radius: 24px;
    border: none;
    background-color: var(--black);
    color: var(--white);
}
p.promo-card__text {
    margin-bottom: 29px;
}
.apartment-media__group {
    width: calc(65.5% - 10px);
}
h2.apartment-media__title {
    padding-left: 40px;
}
h2.apartment-media__title {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0.48px;
    margin-bottom: 40px;
}
.apartment-media__grid {
    display: flex;
    gap: 40px 20px;
    flex-wrap: wrap;
}
.apartment-media__image {
    width: 100%;
}
.apartment-media__card {
    width: calc(50% - 10px);
}
.container.apartment-media__container {
    display: flex;
    flex-direction: column;
    gap: 50px;
}
section.apartment-media {
    margin-top: 80px;
}
h3.apartment-media__name {
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 0.4px;
}
.apartment-media__image {
    width: 100%;
    display: block;
    margin-bottom: 14px;
}
h3.apartment-media__name {
    font-size: 16px;
    line-height: 13px;
    letter-spacing: 0.4px;
    margin-bottom: 14px;
}
p.apartment-media__description {
    font-size: 14px;
    font-weight: 300;
}
.apartment-media__group.apartment-media__group-reels {
    width: calc(100% - 100px);
}
article.apartment-media__card.apartment-media__card--video {
    width: 31.8%;
}
article.apartment-media__card video {
    display: block;
    margin-bottom: 17px;
}
.play-pause::before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0.4;
    pointer-events: none;
    transition: opacity .3s ease;
    z-index: 1;
}
.apartment-media__group.apartment-media__group--reels {
    width: calc(100% - 100px);
}
article.apartment-media__card video {
    display: block;
    margin-bottom: 17px;
    width: 100%;
}
article.apartment-media__card.apartment-media__card--video video {
    aspect-ratio: 280 / 431;
}
article.apartment-media__card.apartment-media__card--video.apartment-media__card--wide video {
    aspect-ratio: 660 / 431;
}

article.apartment-media__card.apartment-media__card--video {
    width: 22%;
}
article.apartment-media__card.apartment-media__card--video.apartment-media__card--wide {
    width: 52%;
}
.play-pause {
    position: relative;
    cursor: pointer;
}
.play-pause svg {
    width: 41px;
    height: 41px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
    transition: all .5s ease;
    z-index: 2;
}
.play-pause svg path {
    fill: var(--white);
}
.play-pause svg:hover {
    width: 55px;
    height: 55px;
    transition: all .5s ease;
}
svg.pause {
    opacity: 0;
    visibility: hidden;
}
.play-pause.is-playing::before {
    opacity: 0;
}
.play-pause.is-playing svg.play {
    opacity: 0;
    visibility: hidden;
}
.play-pause.is-playing svg.pause {
    opacity: 0;
    visibility: hidden;
}
.play-pause.is-playing:hover::before {
    opacity: 0.25;
}
.play-pause.is-playing:hover svg.pause {
    opacity: 1;
    visibility: visible;
}
.video-link {
    color: var(--white);
    display: block;
    overflow: hidden;
    position: relative;
    text-decoration: none;
}
.video-link::before {
    background-color: #000;
    content: "";
    inset: 0;
    opacity: .35;
    pointer-events: none;
    position: absolute;
    transition: opacity .3s ease;
    z-index: 1;
}
.video-link__image,
.video-link video {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.video-link__play {
    align-items: center;
    display: inline-flex;
    font-size: 0;
    height: 64px;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
    width: 64px;
    z-index: 2;
}
.video-link__play::before,
.video-link__play::after {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    inset: 0;
    position: absolute;
    transition: opacity .3s ease, visibility .3s ease;
}
.video-link__play::before {
    background-image: url("../img/play-ic.svg");
}
.video-link__play::after {
    background-image: url("../img/pause-ic.svg");
    opacity: 0;
    visibility: hidden;
}
.video-link:hover .video-link__play {
    transform: translate(-50%, -50%) scale(1.08);
}
.video-link.is-playing::before {
    opacity: 0;
}
.video-link.is-playing .video-link__play::before {
    opacity: 0;
    visibility: hidden;
}
.video-link.is-playing .video-link__play::after,
.video-link.is-playing .video-link__play {
    opacity: 0;
    visibility: hidden;
}
.video-link.is-playing:hover::before {
    opacity: .25;
}
.video-link.is-playing:hover .video-link__play,
.video-link.is-playing:hover .video-link__play::after {
    opacity: 1;
    visibility: visible;
}
.stay-terms {
    margin: 80px 0 0;
}
.stay-terms__panel {
    background-color: #f7f4ee;
    border-radius: 28px;
    padding: 35px 40px;
    min-height: 500px;
    width: calc(65.5% - 10px);
}
.stay-terms__title {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 44px;
}
.stay-terms__list {
    display: grid;
    gap: 24px;
}
.stay-terms__row {
    display: grid;
    grid-template-columns: 35% minmax(0, 1fr);
    column-gap: 40px;
}
.stay-terms__row dt {
    font-family: "ivypresto-display", serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    color: #333331;
}
.stay-terms__row dd {
    color: #3f3f3d;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    max-width: 420px;
    letter-spacing: 0.4px;
}
.calendar {
    --calendar-day-size: 32px;
    margin: 50px 0 60px;
}
.calendar__panel {
    background-color: #f7f4ee;
    border-radius: 28px;
    padding: 41px 52px 40px;
    min-height: 642px;
}
.calendar__header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 44px;
}
.calendar__title {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 16px;
}
.calendar__subtitle {
    color: #7f7f7f;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
}
.calendar__nav {
    display: flex;
    gap: 52px;
    padding-top: 49px;
}
.calendar__arrow {
    width: 29px;
    height: 29px;
    border: 1px solid #6f6f6f;
    border-radius: 50%;
    background-color: transparent;
    cursor: pointer;
    position: relative;
    transition: opacity .3s ease;
}
.calendar__arrow:hover {
    opacity: .65;
}
.calendar__arrow:disabled {
    cursor: default;
    opacity: .35;
}
.calendar__arrow:focus-visible,
.calendar__days button:focus-visible,
.calendar__clear:focus-visible,
.calendar__apply:focus-visible {
    outline: 1px solid #565656;
    outline-offset: 4px;
}
.calendar__arrow span {
    width: 7px;
    height: 7px;
    border-left: 1px solid #565656;
    border-bottom: 1px solid #565656;
    position: absolute;
    left: 11px;
    top: 10px;
    transform: rotate(45deg);
}
.calendar__arrow--next span {
    left: 9px;
    transform: rotate(225deg);
}
.calendar__months {
    overflow: hidden;
}
.calendar__months-wrapper {
    display: flex;
    transition: transform .7s ease;
}
.calendar__months:not(.swiper-initialized) .calendar__months-wrapper {
    gap: 52px;
}
.calendar__month {
    flex-shrink: 0;
    min-width: 0;
}
.calendar__months:not(.swiper-initialized) .calendar__month {
    flex-basis: calc((100% - 104px) / 3);
}
.calendar__month-title {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0.46px;
    margin-bottom: 30px;
}
.calendar__weekdays,
.calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(var(--calendar-day-size), 1fr));
}
.calendar__weekdays {
    color: #5f5f5d;
    font-size: 14px;
    line-height: 24px;
    margin-bottom: 8px;
}
.calendar__weekdays span {
    text-align: center;
}
.calendar__days {
    row-gap: 6px;
}
.calendar__days span,
.calendar__days button {
    width: 100%;
    height: var(--calendar-day-size);
}
.calendar__days button {
    border: 0;
    border-radius: 0;
    background-color: transparent;
    color: #333331;
    cursor: pointer;
    font-family: "ivypresto-display", serif;
    font-size: 14px;
    font-weight: 300;
    line-height: var(--calendar-day-size);
    padding: 0;
    position: relative;
    transition: background-color .25s ease, color .25s ease;
    z-index: 1;
}
.calendar__days button::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--black);
    opacity: 0;
    z-index: -1;
}
.calendar__days button::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: var(--calendar-day-size);
    height: var(--calendar-day-size);
    border-radius: 50%;
    background-color: #050505;
    opacity: 0;
    transform: translateX(-50%);
    z-index: -1;
}
.calendar__days button.is-range::before {
    opacity: 0.1;
}
.calendar__days button.is-range-start::before,
.calendar__days button.is-range-row-start::before {
    border-radius: 16px 0 0 16px;
}
.calendar__days button.is-range-end::before,
.calendar__days button.is-range-row-end::before {
    border-radius: 0 16px 16px 0;
}
.calendar__days button.is-selected {
    color: #fffef9;
}
.calendar__days button.is-selected::after {
    opacity: 1;
}
.calendar__days button.is-disabled {
    color: #bdbdb8;
    cursor: default;
    opacity: .7;
    pointer-events: none;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}
.calendar__clear {
    display: block;
    margin: 20px 0 0 auto;
    border: 0;
    border-bottom: none;
    background-color: transparent;
    color: #4d4d4b;
    cursor: pointer;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    padding: 0 0 5px;
    transition: color .3s ease;
    text-decoration: underline;
    text-underline-offset: 5px;
    transition: all .5s ease;
}
.calendar__clear:hover {
    color: var(--black);
}
.calendar__clear:hover {
    transition: all .5s ease;
    text-decoration-color: transparent;
}
.guest-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 40px 20px;
    pointer-events: none;
    position: fixed;
    transition: opacity .3s ease, visibility .3s ease;
    visibility: hidden;
    z-index: 1200;
}
.guest-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.guest-modal__overlay {
    background-color: rgba(0, 0, 0, .66);
    inset: 0;
    position: absolute;
}
.guest-modal__dialog {
    background-color: #f7f4ee;
    border-radius: 22px;
    max-width: 370px;
    min-height: 370px;
    padding: 30px 40px 30px;
    position: relative;
    transform: translateY(18px) scale(.98);
    transition: transform .3s ease;
    width: min(370px, 100%);
    z-index: 1;
}
.guest-modal:not(.room-modal) {
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0;
}
.guest-modal:not(.room-modal) .guest-modal__dialog {
    left: 50%;
    position: absolute;
    top: 50%;
}
.guest-modal.guest-modal--centered {
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}
.guest-modal.guest-modal--centered .guest-modal__dialog {
    left: auto;
    position: relative;
    top: auto;
}
.room-modal {
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0;
}
.room-modal .guest-modal__dialog {
    left: 50%;
    max-width: 360px;
    position: absolute;
    top: 50%;
    width: min(360px, 100%);
}
.guest-modal.is-open .guest-modal__dialog {
    transform: translateY(0) scale(1);
}
.guest-modal__close {
    background-color: transparent;
    border: 0;
    cursor: pointer;
    height: 28px;
    position: absolute;
  right: 8px;
  top: 8px;
    width: 28px;
}
.guest-modal__close::before,
.guest-modal__close::after {
    background-color: var(--black);
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 16px;
}
.guest-modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.guest-modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.guest-modal__title {
    font-size: 24px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 22px;
}
.guest-modal__subtitle {
    color: #8f8f8a;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    margin-bottom: 25px;
}
.guest-modal__rows {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin-bottom: 44px;
}
.guest-modal__row {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
.guest-modal__label {
    color: #2f2f2d;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    font-family: 'ivypresto-display';
    letter-spacing: 0.32px;
}
.guest-modal__counter {
    align-items: center;
    background-color: rgba(5, 5, 5, .08);
    border-radius: 18px;
    display: grid;
    grid-template-columns: 30px 40px 30px;
    height: 30px;
}
.guest-modal__value {
    color: #2f2f2d;
    font-size: 14px;
    font-weight: 300;
    line-height: 30px;
    text-align: center;
    font-family: 'ivypresto-display';
}
.guest-modal__control {
    background-color: var(--black);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    height: 30px;
    position: relative;
    width: 30px;
}
.guest-modal__control::before,
.guest-modal__control--plus::after {
    background-color: #fffef9;
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 14px;
}
.guest-modal__control--plus::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
.guest-modal__apply {
    align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 30px;
    color: #fffef9;
    cursor: pointer;
    display: flex;
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    height: 49px;
    justify-content: center;
    line-height: 22px;
    margin-bottom: 16px;
    width: 100%;
}
.guest-modal__clear {
    background-color: transparent;
    border: 0;
    color: #2f2f2d;
    cursor: pointer;
    display: block;
    font-family: 'Mabry Pro';
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    margin-left: auto;
    padding: 0 0 5px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
}
.guest-modal__apply:hover {
    opacity: .9;
}
.guest-modal__clear:hover {
    text-decoration-color: transparent;
}
.booking-calendar-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 40px 20px;
    pointer-events: none;
    position: fixed;
    transition: opacity .3s ease, visibility .3s ease;
    visibility: hidden;
    z-index: 1200;
}
.booking-calendar-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.booking-calendar-modal__overlay {
    background-color: rgba(0, 0, 0, .66);
    inset: 0;
    position: absolute;
}
.booking-calendar-modal__dialog {
    max-width: 1130px;
    position: relative;
    transform: translateY(18px) scale(.98);
    transition: transform .3s ease;
    width: min(1130px, 100%);
    z-index: 1;
}
.booking-calendar-modal.is-open .booking-calendar-modal__dialog {
    transform: translateY(0) scale(1);
}
.booking-calendar-modal__close {
    background-color: transparent;
    border: 0;
    cursor: pointer;
    height: 28px;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 28px;
    z-index: 3;
}
.booking-calendar-modal__close::before,
.booking-calendar-modal__close::after {
    background-color: var(--black);
    content: "";
    height: 1px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 16px;
}
.booking-calendar-modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.booking-calendar-modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.calendar--booking {
    margin: 0;
}
.calendar--booking .calendar__panel {
    border-radius: 22px;
    min-height: 520px;
    padding: 42px 52px 46px;
    width: 100%;
}
.calendar--booking .calendar__header {
    margin-bottom: 34px;
}
.calendar--booking .calendar__nav {
    gap: 42px;
    padding-right: 0;
    padding-top: 40px;
}
.calendar--booking .calendar__months:not(.swiper-initialized) .calendar__months-wrapper {
    gap: 52px;
}
.calendar__footer {
    align-items: center;
    display: flex;
    gap: 24px;
    justify-content: flex-end;
    margin-top: 20px;
}
.calendar--booking .calendar__clear {
    display: none;
}
.calendar__apply {
align-items: center;
    background-color: var(--black);
    border: 0;
    border-radius: 30px;
    color: #fffef9;
    cursor: pointer;
    display: inline-flex;
    font-family: 'Mabry Pro';
    font-size: 16px;
    font-weight: 300;
    height: 49px;
    justify-content: center;
    line-height: 36px;
    min-width: 280px;
    padding: 0 40px;
    transition: opacity .3s ease;
}
.calendar__apply:hover {
    opacity: .9;
    cursor: pointer;
}
.calendar__panel {
    background-color: #f7f4ee;
    border-radius: 28px;
    padding: 35px 40px 35px;
    min-height: 500px;
    width: calc(65.5% - 10px);
}
.calendar__nav {
    display: flex;
    gap: 42px;
    padding-top: 30px;
}
.apartment-notes {
    margin: 58px 0 0;
}
.apartment-notes__content,
.apartment-location__content {
    width: calc(65.5% - 10px);
    padding-left: 40px;
}
.apartment-location__content {
    padding-left: 0;
}
h2.apartment-location__title {
    padding-left: 40px;
}
address.apartment-location__address {
    padding-left: 40px;
}
.apartment-notes__title,
.apartment-location__title {
    font-size: 24px;
    line-height: 24px;
    letter-spacing: 0;
    margin-bottom: 14px;
}
.apartment-notes__text {
    max-width: 650px;
}
.apartment-notes__text p {
    color: #3f3f3d;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 26px;
}
.apartment-notes__text p:last-child {
    margin-bottom: 0;
}
.apartment-location {
    margin: 56px 0 80px;
}
.apartment-location__address {
    color: #3f3f3d;
    display: block;
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 24px;
    margin-bottom: 28px;
}
.apartment-location__map {
    aspect-ratio: 1040 / 520;
    border-radius: 28px;
    overflow: hidden;
    background-color: #f7f4ee;
}
.apartment-location__map iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}
h2.apartment-notes__title {
    margin-bottom: 28px;
}
section.apartment.apartment-inner {
    margin-bottom: 27px;
}
.container {
    max-width: 1440px;
    margin: 0 auto;
}
.container.header__main-container, .container.header__top-container {
    max-width: 100%;
}

.footer__container.container {
    max-width: 100%;
}
.copyright .container {
    max-width: 100%;
}
@media (max-width: 1100px) {
    .open-moscow__grid,
    .open-other__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .moscow-inner__content {
        gap: 40px;
        grid-template-columns: 1fr;
        padding-left: 0;
    }
    .moscow-inner__booking {
        margin-top: 0;
        max-width: 420px;
    }
    .moscow-inner__gallery {
        grid-template-columns: 1fr 1fr;
    }
    .about-team__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .about-cooperation__container {
        gap: 48px;
        grid-template-columns: 1fr;
    }
    .about-cooperation__content {
        max-width: 620px;
        padding-left: 0;
        padding-top: 0;
    }
    .about-vacancy__container {
        padding-left: 40px;
    }
    .profile-page__body {
        gap: 36px;
        grid-template-columns: 1fr;
    }
    .profile-edit__form {
        gap: 36px;
        grid-template-columns: 1fr;
    }
    .profile-edit__card {
        max-width: 420px;
    }
    .profile-card {
        margin-top: 0;
        max-width: 420px;
    }
    .profile-trip-card {
        min-height: 390px;
    }
    .profile-trip-card__content {
        padding: 28px 30px 30px;
    }
    .booking-hero__container,
    .booking-results__container {
        padding-left: 24px;
        padding-right: 24px;
    }
    .booking-hero {
        padding-bottom: 42px;
    }
    form.booking-search {
        max-width: none;
    }
    .booking-search .search__form-inner {
        align-items: stretch;
        flex-wrap: wrap;
        gap: 10px;
        padding: 0;
    }
    .booking-search .search__form--left,
    .booking-search .search__form--right {
        width: calc(50% - 5px);
    }
    .booking-search .search-form__submit {
        width: 100%;
    }
    .booking-results__layout {
        grid-template-columns: 1fr;
    }
    .booking-results__map {
        aspect-ratio: 1040 / 520;
        min-height: 360px;
        position: static;
    }
    .questions-section__container {
        gap: 60px;
        padding-left: 48px;
        padding-right: 48px;
    }
    .questions-section__content {
        width: min(380px, 48%);
    }
    .questions-section__image {
        height: auto;
        max-width: 440px;
        width: 44%;
    }
    .stay-terms__panel {
        padding: 36px 28px 34px;
        min-height: 0;
    }
    .stay-terms__row {
        grid-template-columns: 34% minmax(0, 1fr);
        column-gap: 30px;
    }
    .stay-terms__row dt,
    .stay-terms__row dd {
        line-height: 24px;
    }
    .calendar {
        --calendar-day-size: 30px;
    }
    .calendar__panel {
        padding: 36px 28px 34px;
        min-height: 0;
    }
    .apartment-notes__content,
    .apartment-location__content,
    .calendar__panel,
    .stay-terms__panel {
        width: 100%;
    }
    .calendar__months:not(.swiper-initialized) .calendar__months-wrapper {
        gap: 28px;
    }
    .calendar__months:not(.swiper-initialized) .calendar__month {
        flex-basis: calc((100% - 28px) / 2);
    }
    .calendar__days button {
        font-size: 18px;
    }
}
@media (max-width: 768px) {
    .header:not(.header__transparent) {
        min-height: 85px;
    }
    body {
        overflow-x: hidden;
    }
    .container {
        padding-left: 17px;
        padding-right: 17px;
    }
    .questions-section {
        padding: 40px 0 0;
    }
    .questions-section__container {
        align-items: stretch;
        flex-direction: column;
        gap: 40px;
        padding-left: 17px;
        padding-right: 17px;
    }
    .questions-section__content {
        width: 100%;
    }
    .questions-section__title {
        font-size: 28px;
        line-height: 32px;
        margin-bottom: 18px;
    }
    .questions-section__text {
        font-size: 14px;
        line-height: 20px;
        margin-bottom: 28px;
        max-width: 360px;
    }
    .questions-section__field,
    .questions-section__submit {
        height: 54px;
    }
    .questions-section__image {
        aspect-ratio: 744 / 1032;
        height: auto;
        max-width: none;
        object-fit: cover;
        width: 100%;
    }
    .header__top {
    font-size: 10px;
        height: 25px;
        line-height: 10px;
        overflow: hidden;
        padding: 0;
    }
  .container.header__top-container {
        align-items: center;
        display: flex;
    gap: 8px;
    height: 25px;
    justify-content: space-between;
    padding-right: 10px;
    padding-left: 10px;
        white-space: nowrap;
    }
    .header__address {
        max-width: 132px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .header__contacts {
        align-items: center;
        gap: 8px;
        height: 100%;
        justify-content: space-between;
        margin-left: 0;
        width: 100%;
    }
    
    .header__contact--messengers,
    .lang-switcher {
        display: none;
    }
    .header__contact--email,
    .header__contact--phone {
        align-items: center;
        display: flex;
        flex: 0 1 auto;
        font-size: 0;
        height: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .header__contact--email::after,
    .header__contact--phone::after {
        font-size: 10px;
        line-height: 10px;
    }
    .header__contact--email::after {
        content: "guestrelation@gmapartments.ru";
    }
    .header__contact--phone::after {
        content: "8 (800) 600 49 93";
    }
    span.header__address {
        display: none;
    }
    .header__main {
        padding: 20px 0 20px;
        position: relative;
    }
    .header.is-menu-open .header__main {
        background-color: #fffef9;
    }
    .header__main-container {
        align-items: center;
        flex-wrap: nowrap;
        padding-left: 16px;
        padding-right: 16px;
        position: relative;
    }
    .haader__col {
        width: auto;
    }
    .header__left,
    .header__right {
        flex: 1 1 0;
    }
    .header__center {
        flex: 0 0 auto;
    }
    nav.header__nav.nav {
        display: none;
    }
        a.header__logo.logo {
        font-size: 20px;
        line-height: 22px;
        letter-spacing: .44px;
    }
    .hero__content {
        padding: 0;
    }
    button.header__burger {
        width: 20px;
    }
    button.header__burger span {
        background-color: var(--black);
        transition: transform .25s ease, opacity .25s ease;
    }
    .header.is-menu-open button.header__burger span:first-child {
        transform: translateY(5px) rotate(45deg);
    }
    .header.is-menu-open button.header__burger span:nth-child(2) {
        opacity: 0;
    }
    .header.is-menu-open button.header__burger span:last-child {
        width: 100%;
        transform: translateY(-5px) rotate(-45deg);
    }
    header.header.header__transparent .header__main {
        color: var(--white);
    }
    header.header.header__transparent button.header__burger span {
        background-color: var(--white);
    }
    header.header.header__transparent.is-menu-open button.header__burger span {
        background-color: var(--black);
    }
    header.header.header__transparent a.header__logo.logo {
        color: var(--white);
    }
    header.header.header__transparent.is-menu-open a.header__logo.logo {
        color: var(--black);
    }
    header.header.header__transparent.header-fixed .header__main {
        background-color: #fffef9;
        color: var(--black);
    }
    header.header.header__transparent.header-fixed button.header__burger span {
        background-color: var(--black);
    }
    header.header.header__transparent.header-fixed a.header__logo.logo {
        color: var(--black);
    }
    .header.header-fixed .mobile-menu {
        max-height: calc(100dvh - 62px);
        overflow-y: auto;
    }
    .mobile-menu {
        background-color: #fffef9;
        border-top: 1px solid rgba(26, 26, 25, .12);
        box-shadow: 0 18px 30px rgba(26, 26, 25, .08);
        display: flex;
        flex-direction: column;
        gap: 18px;
        left: 0;
        opacity: 0;
        padding: 26px 17px 30px;
        pointer-events: none;
        position: absolute;
        right: 0;
        top: 100%;
        transform: translateY(-8px);
        transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
        visibility: hidden;
        z-index: 20;
    }
    .header.is-menu-open .mobile-menu {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
        visibility: visible;
    }
    .mobile-menu__link {
        color: var(--black);
        display: block;
        font-size: 20px;
        line-height: 24px;
        text-decoration-color: transparent;
    }
    .mobile-menu__link.nav__link--active {
        text-decoration-color: inherit;
    }
    .breadcrumbs {
        display: block;
        font-size: 10px;
        line-height: 14px;
        margin-bottom: 15px !important;
        opacity: .65;
    }
    .apartment-preview__progressbar.swiper-pagination-progressbar {
        margin-top: 21px;
    }
    .apartment-info__layout {
        flex-direction: column-reverse;
    }
    section.apartment.apartment-inner {
        margin-bottom: 15px;
    }
    .calendar__clear {
        margin-top: -12px;
    }
    .title, h1.apartment__title, .open-moscow__title, .moscow-inner__title, .open-section-title {
        font-size: 22px;
        line-height: 36px;
        letter-spacing: 0;
    }
    .subtitle, .open-moscow__text, .open-section-text, .moscow-inner__subtitle {
        font-size: 14px;
        line-height: 18px;
        margin-bottom: 20px;
    }
    .section {
        padding: 40px 0 52px;
    }
    section.hero {
        min-height: 594px;
    }
    .hero__slide,
    .hero__image {
        height: 594px;
    }
    .hero__details {
        bottom: 0;
        padding: 0;
    }
    .hero__content {
        padding: 0 17px;
    }
    h1.hero__title {
        font-size: 25px;
        line-height: 30px;
        letter-spacing: 0;
        margin-bottom: 16px;
    }
    h1.hero__title br {
        display: none;
    }
    p.hero__text {
        font-size: 14px;
        line-height: 18px;
        margin-bottom: 44px;
    }
    p.hero__text br {
        display: none;
    }
    form.hero__search.search-form {
        background: transparent;
        border-radius: 0;
        padding: 0;
        width: 100%;
    }
    .hero__search .search__form-inner {
        background: transparent;
        border-radius: 0;
        display: block;
    }
    .hero__search .search__form--left,
    .hero__search .search__form--right,
    .hero__search .search-form__arrow,
    .hero__search .search-form__divider {
        display: none;
    }
    .hero__search button.search-form__submit {
        border-radius: 0;
        height: 64px;
        width: 100%;
        font-size: 14px;
    }
    .hero__search button.search-form__submit::before {
        content: 'Забронировать';
        font-size: 12px;
    }
    .hero__search button.search-form__submit {
        font-size: 0;
    }
    .hero__bottom {
        display: none;
    }
    .advanced__filter {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
        justify-content: flex-end;
        padding: 12px 16px 0;
    }
    a.search-form__map-link {
        font-size: 12px;
        line-height: 18px;
        margin-bottom: 0;
    }
    a.search-form__advanced {
        font-size: 0;
        line-height: 18px;
        margin-bottom: 0;
    }
    a.search-form__advanced::before {
        content: 'Расширенный фильтр';
        font-size: 12px;
    }
    .apartments__container.container,
    .dream-city__container.container,
    .locations__container.container {
        padding-left: 16px;
        padding-right: 0;
    }
    .apartments__head {
        align-items: flex-start;
        display: flex;
        gap: 16px;
        justify-content: space-between;
        padding-right: 16px;
    }
    .apartments__controls {
        display: none;
    }
    .apartments__title {
        margin-bottom: 12px;
    }
    .apartments__text {
        max-width: 100%;
    }
    p.apartments__text.subtitle br {    
        display: none;
    }
    section.apartments.section {
        padding-bottom: 54px;
    }
    .apartments__slider {
        overflow: visible;
    }
    .apartments__slider:not(.swiper-initialized) .apartments__wrapper {
        display: block;
    }
    .apartments__slider:not(.swiper-initialized) .apartments__slide {
        width: calc(100% - 16px) !important;
    }
    .apartments__slider:not(.swiper-initialized) .apartments__slide:not(:last-child) {
        margin-bottom: 34px;
    }
    .open-other__slider.swiper-initialized .apartments__wrapper {
        display: flex;
    }
    .open-other__slider.swiper-initialized .apartments__slide {
        margin-bottom: 0;
    }
    .card-slider:not(.swiper-initialized) .card-slider__wrapper {
        display: block;
    }
    .card-slider:not(.swiper-initialized) .card-slider__slide {
        display: block;
        width: 100% !important;
    }
    .card-slider:not(.swiper-initialized) .card-slider__slide:not(:last-child) {
        margin-bottom: 10px;
    }
    .apartment-card__slider.card-slider.swiper > div > div {
        white-space: nowrap;
        display: inline-block;
        aspect-ratio: 300 / 371;
        width: 300px !important;
        vertical-align: top;
    }
    .card-slider__wrapper.swiper-wrapper {
        display: inline-block;
        white-space: nowrap;
        overflow: scroll;
    }
    .apartments__slider:not(.swiper-initialized) .apartments__slide {
        width: 100%!important;
    }
    .card-slider__wrapper.swiper-wrapper > div:last-child {
        margin-right: 17px;
    }
    .card-slider__wrapper.swiper-wrapper img {
        display: block;
    }
    .card-slider:not(.swiper-initialized) .card-slider__pagination {
        display: none;
    }
    h3.apartment-card__title {
        font-size: 18px;
        line-height: 36px;
        margin: 7px 0 5px;
    }
    ul.apartment-card__features {
        gap: 14px;
        font-size: 14px;
        line-height: 18px;
    }
    p.apartment-card__address,
    p.apartment-card__price {
        font-size: 14px;
        line-height: 18px;
    }
    .appointments {
        display: block;
        padding-right: 16px;
    }
    .appointments article.apartment-card {
        width: 100%;
    }
    .appointments article.apartment-card:not(:last-child) {
        margin-bottom: 34px;
    }
    .view-in-cart-wrap {
        gap: 14px;
        padding-top: 6px;
    }
    .view-in-cart-link {
        font-size: 11px;
        line-height: 16px;
        text-underline-offset: 5px;
        white-space: nowrap;
    }
    section.dream-city.section {
        padding: 24px 0 46px;
    }
    .dream-city__container.container {
        align-items: stretch;
        display: block;
        padding-left: 16px;
        padding-right: 16px;
        display: flex;
        flex-direction: column-reverse;
    }
    .dream-city__image {
        margin-bottom: 24px;
        width: 100%;
    }
    img.dream-city__image {
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }
    .dream-city__title {
        font-size: 24px;
        line-height: 28px;
        margin-bottom: 18px;
    }
    .dream-city__text {
        font-size: 13px;
        line-height: 18px;
        margin-bottom: 26px;
    }
    .title {
        margin-bottom: 10px;
    }
    h2.apartments__title.title {
        line-height: 28px;
    }
    img.locations__image {
        aspect-ratio: 165 / 108;
        object-fit: cover;
    }
    .locations__grid-center {
        display: none!important;
    }
    section.locations.section {
        padding-bottom: 60px;
    }
     
    a.dream-city__link,
    .about-link {
        font-size: 13px;
        line-height: 18px;
    }
    .locations__grid {
        display: grid;
        gap: 22px 12px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-right: 16px;
    }
    .faq {
        background-color: #f7f4ee;
        padding: 40px 0 120px;
    }
    p.faq__subtitle br {
        display: none;
    }
    .faq__list {
        padding: 0 17px;
    }
    .faq__item {
        border-top: 1px solid var(--black);
        padding: 21px 20px 0;
    }
    .hero__search button.search-form__submit::before {
        content: 'Забронировать';
        font-size: 14px;
    }
    a.apartment__map-link {
        display: none;
    }
    button.faq__question {
        width: 100%;
        text-align: left;
        padding: 0;
        margin: 0;
        border: none;
        background: transparent;
        font-size: 16px;
        font-weight: 300 !important;
        font-family: 'Mabry Pro';
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        font-size: 14px;
        line-height: 20px;
    }
    span.faq__question-text {
        width: 90%;
    }
    .faq__item {
        border-top: 1px solid var(--black);
        padding: 13px 0px 0;
    }
    .faq__answer {
        padding: 7px 0;
    }
    .faq {
        background-color: #f7f4ee;
        padding: 40px 0 60px;
    }
    
    .locations__grid > div {
        display: contents;
        width: auto;
    }
    img.locations__image {
        margin-bottom: 8px;
    }
    h3.locations__name {
        font-size: 14px;
        line-height: 18px;
    }
    .locations__slider {
        margin-bottom: 12px;
    }
    a.nav__link.mobile-menu__link {
        color: var(--black) !important;
    }
    .dream-city__content {
        padding: 0 20px;
    }
    .comfort {
        background-position: center;
        min-height: 80svh;
        padding: 236px 0 52px;
        display: flex;
        align-items: end;
    }
       .comfort__container {
        padding: 0 38px;
    }
    footer.footer {
        margin-top: 40px;
        padding: 76px 0 12px;
    }
        a.footer__logo {
        display: block;
        font-size: 18px;
        margin-bottom: 48px!important;
        font-weight: 500;
        line-height: 18px;
    }
    .card-slider:not(.swiper-initialized) .card-slider__slide:not(:last-child) {
        margin-bottom: 0;
    }
    .card-slider__slide.swiper-slide {
        height: auto;
    }
        .copyright__col.copyright__col1 {
        font-size: 10px;
        line-height: 14px;
        margin-top: 14px;
        text-transform: uppercase;
        font-weight: 400;
    }
    .footer__container.container {
        display: block;
        padding-left: 16px;
        padding-right: 16px;
    }
    
    .footer__col {
        width: 100%;
    }
    .footer__col.footer__col2,
    .footer__col.footer__col3 {
        display: none;
    }
    a.footer__logo {
        display: block;
        font-size: 16px;
        margin-bottom: 28px;
    }
    .footer__col.footer__col4 {
        text-align: left;
    }
    .footer__col.footer__col4 a {
        font-size: 14px;
        line-height: 24px;
    }
    .copyright {
        padding: 0 0 18px;
    }
    .copyright > div {
        display: block;
        padding-left: 16px;
        padding-right: 16px;
    }
    .copyright__col {
        width: 100%;
    }
    .copyright__col.copyright__col1 {
        font-size: 10px;
        line-height: 14px;
        margin-top: 14px;
    }
    .copyright__col.copyright__col2 {
        display: none;
    }
    .open-moscow {
        padding: 6px 0 64px;
    }
    .open-moscow__container,
    .moscow-inner__container,
    .open-nearby__container,
    .open-other__container {
        padding-left: 16px;
        padding-right: 16px;
    }
    .open-moscow__head,
    .moscow-inner__top,
    .open-section-head {
        display: block;
        margin-top: 28px;
    }
    .open-moscow__head {
        margin-bottom: 28px;
    }
    .open-moscow__filter {
        display: none;
    }
    .open-moscow__grid,
    .open-other__grid {
        gap: 28px;
        grid-template-columns: 1fr;
    }
    .open-moscow__grid {
        max-width: 285px;
        margin-left: auto;
        margin-right: auto;
    }
    .moscow-card img {
        aspect-ratio: 285 / 350;
        margin-bottom: 12px;
    }
    .moscow-card h2 {
        font-size: 20px;
        line-height: 24px;
        margin-bottom: 6px;
    }
    .moscow-card p,
    .moscow-card span {
        font-size: 11px;
        line-height: 15px;
        margin: 0 0 4px;
    }
    .moscow-inner {
        padding-bottom: 58px;
    }
    .district-page {
        padding-bottom: 0;
    }
    .district-page__preview {
        padding-bottom: 28px;
    }
    .district-page__preview .apartment-preview__slide img {
        aspect-ratio: 343 / 220;
        width: 82vw;
    }
    .district-apartments {
        padding-top: 32px;
    }
    .moscow-inner__arrows,
    .open-nearby__controls,
    .open-other__controls {
        margin-top: 24px;
    }
    .moscow-inner__gallery {
        margin-top: 30px;
    }
    .moscow-inner__slide,
    .moscow-inner__slide--wide {
        flex-basis: 100%;
        width: 100%;
    }
    .moscow-inner__content {
        margin-top: 26px;
        padding-top: 30px;
    }
    .moscow-inner__booking {
        max-width: none;
    }
    .apart-header {
        display: block;
        margin-bottom: 24px;
    }
    .apartment__header {
        display: block;
        width: 100%;
    }
    .apartment-preview__top {
        display: none;
    }
    section.apartment-preview {
        padding-left: 16px;
    }
    .apartment-preview__slider {
        overflow: visible;
    }
    .apartment-preview__slide img {
        height: auto;
        max-width: none;
        width: 82vw;
    }
    .apartment-info__layout {
        display: flex;
        gap: 28px;
    }
    aside.apartment-info__sidebar {
        align-items: stretch;
        order: -1;
        width: 100%;
    }
    .apartment-details {
        padding-left: 0;
        width: 100%;
    }
    section.apartment-details__section {
        max-width: none;
    }
    .booking-card,
    .promo-card {
        max-width: none;
    }
    .open-nearby {
        padding-bottom: 58px;
    }
    .open-other {
        padding: 58px 0 70px;
    }
    .open-other .apartments__head {
        display: flex;
        margin-bottom: 24px;
    }
    .open-other__slider {
        overflow: visible;
    }
    .about-page {
        padding-bottom: 58px;
    }
    .about-page__container,
    .about-team__container,
    .about-cooperation__container {
        padding-left: 18px;
        padding-right: 18px;
    }
    .about-page__header {
        margin-top: 42px;
    }
    .about-page__title {
        margin-bottom: 26px;
    }
    .about-page__hero {
        aspect-ratio: 4 / 3;
    }
    .about-story {
        margin: 42px 0 0;
        max-width: none;
    }
    .about__person {
        margin: 42px 0 0;
    }
    .person {
        display: grid;
        gap: 24px;
        grid-template-columns: 1fr;
        max-width: none;
    }
    .person__name {
        font-size: 24px;
        line-height: 30px;
        margin-bottom: 16px;
    }
    .person__quote {
        font-size: 16px;
        line-height: 24px;
    }
    .person__video {
        aspect-ratio: 343 / 220;
    }
    .about-team {
        padding: 48px 0 62px;
    }
    .about-team__head {
        display: block;
        margin-bottom: 32px;
    }
    .about-team__tabs {
        gap: 24px;
        padding-top: 22px;
    }
    .about-team {
        padding: 48px 0 52px;
    }
    .about-page__title {
        margin-bottom: 16px;
    }
        .open-moscow__grid {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
        .moscow-card p, .moscow-card span {
        font-size: 14px;
        line-height: 18px;
        margin: 0 0 4px;
    }
        .moscow-card h2 {
        font-size: 20px;
        line-height: 24px;
        margin-bottom: 8px;
    }
    .dream-city__text {
        font-size: 14px;
        line-height: 18px;
        margin-bottom: 18px;
    }
    .dream-city__title {
        font-size: 24px;
        line-height: 36px;
        margin-bottom: 18px;
    }
    .open-moscow {
        padding: 6px 0 44px;
    }
    .apartment-preview__slide img {
        height: auto;
        max-width: none;
        width: 82vw;
        aspect-ratio: 307 / 205;
    }
    p.moscow-inner__subtitle br {
        display: none;
    }
    h1.apartment__title {
        font-size: 22px;
        line-height: 30px;
    }
    section.apartment-preview.moscow-inner__preview {
        margin-bottom: 40px;
    }
    .apartments__container.container.open-other__container {
        padding-right: 17px;
    }
    .about-team__grid,
    .about-cooperation__cards {
        gap: 28px;
        grid-template-columns: 1fr;
    }
    .about-vacancy {
        min-height: 460px;
        padding: 84px 0 80px;
    }
    .about-vacancy__container {
        padding-left: 18px;
        padding-right: 18px;
    }
    .about-cooperation {
        padding: 64px 0 78px;
    }
    .about-cooperation__container {
        gap: 38px;
    }
    .profile-page {
        padding-bottom: 70px;
    }
    .profile-page__container {
        padding-left: 18px;
        padding-right: 18px;
    }
    .profile-page__header {
        margin-top: 42px;
    }
    .profile-page__title {
        font-size: 28px;
        line-height: 34px;
        margin-bottom: 30px;
    }
    .profile-trips__head {
        align-items: flex-start;
        grid-template-columns: 1fr;
        gap: 18px;
        margin-bottom: 24px;
    }
    .profile-trips__tabs {
        gap: 24px;
        margin-right: 0;
    }
    .profile-trip-card {
        border-radius: 20px;
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .profile-trip-card__image {
        height: 260px;
    }
    .profile-trip-card__content {
        padding: 24px 20px 28px;
    }
    .profile-trip-card__title {
        font-size: 23px;
        line-height: 27px;
    }
    .profile-trip-card__details {
        margin-top: 42px;
    }
    .profile-trip-card__row {
        grid-template-columns: 112px minmax(0, 1fr);
    }
    .profile-trip-card__row--manager {
        margin-top: 34px;
    }
    .profile-card {
        max-width: none;
        min-height: 0;
        padding: 30px 18px 28px;
    }
    .profile-edit__tabs {
        gap: 24px;
        margin-bottom: 28px;
    }
    .profile-edit__panel {
        border-radius: 20px;
        padding: 28px 20px 32px;
    }
    .profile-edit__head {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
        margin-bottom: 30px;
    }
    .profile-edit__form {
        gap: 28px;
        grid-template-columns: 1fr;
    }
    .profile-edit__field {
        align-items: stretch;
        gap: 8px;
        grid-template-columns: 1fr;
    }
    .profile-edit__save {
        width: 100%;
    }
    .booking-hero {
        padding: 6px 0 28px;
    }
    .booking-hero__container,
    .booking-results__container {
        padding-left: 18px;
        padding-right: 18px;
    }
    .booking-hero__title {
        font-size: 24px;
        line-height: 30px;
        margin-bottom: 12px;
    }
    .booking-hero__text {
        margin-bottom: 26px;
    }
    form.booking-search {
        background: transparent;
        border-radius: 0;
        padding: 0;
    }
        .booking-search .search__form-inner {
        background: transparent;
        border-radius: 0;
        display: block;
        gap: 0;
        box-shadow: none;
    }
    .booking-search .search__form--left,
    .booking-search .search__form--right {
        background-color: #fffef9;
        border: 1px solid #ebeae5;
        border-radius: 20px;
        box-shadow: none;
        display: flex;
        height: 40px;
        min-height: 0;
        padding: 0 16px;
        width: 100%;
    }
    .search__form--right {
        flex-direction: column;
    }
    .booking-hero__title {
        font-size: 20px;
        line-height: 30px;
        margin-bottom: 12px;
    }
    .booking-hero {
        padding: 0px 0 28px;
    }
    section.apartment {
        margin-bottom: 30px;
    }
    .booking-search .search__form--left, .booking-search .search__form--right {
        height: 49px;
    }
    .booking-search .search__form--right {
        margin-top: 8px;
    }
    
    .booking-search .search-form__field {
        font-size: 14px;
        height: 100%;
        line-height: 36px;
    }
    span.search-form__arrow {
        display: flex !important;
        text-align: center;
    }
    .search__form--right {
        background: transparent;
        height: auto !important;
        box-shadow: none!important;
        border: none!important;
    }
    .search__form--right {
        padding: 0 !important;
        display: flex;
        gap: 10px;
    }
    .search__form--right button {
        width: 100%;
        height: 49px !important;
        border-radius: 24px;
        border: 1px solid #ebeae5;
    }
    .hero__search button.search-form__submit {
        font-size: 0;
        border-radius: 24px;
    }
    .booking-apartment-card__content {
        padding: 12px 20px 23px;
    }
    .booking-apartment-card__title {
        font-size: 18px;
        line-height: 24px;
    }
    a.booking-apartment-card__book {
        height: 49px;
        font-size: 14px;
        font-weight: 400;
    }
    a.booking-apartment-card__details {
        position: absolute;
        bottom: 82px;
        right: 20px;
        text-decoration: underline;
        text-underline-offset: 7px;
        text-decoration-thickness: 1px;
        font-weight: 400;
    }
    p.booking-apartment-card__address {
        margin-bottom: 10px;
    }
    
    .booking-search .search-form__arrow img {
        width: 16px;
    }
    .booking-search .search-form__divider {
        height: 8px;
    }
    .booking-search .search-form__submit {
        border-radius: 20px;
        height: 40px;
        margin-top: 8px;
        width: 100%;
    }
    .booking-results {
        padding-bottom: 64px;
    }
    .booking-results__header {
        align-items: center;
        flex-direction: row;
        gap: 12px;
        justify-content: space-between;
        margin-bottom: 24px;
    }
    .booking-results__count {
        font-size: 12px;
        line-height: 17px;
    }
    .booking-sort__toggle,
    .booking-sort__option {
        font-size: 12px;
        line-height: 17px;
    }
    .booking-sort__menu {
        min-width: 160px;
        padding: 8px;
    }
    .booking-results__map-link {
        font-size: 0;
        line-height: 17px;
        white-space: nowrap;
    }
    .booking-results__map-link::before {
        content: 'Показать карту';
        font-size: 12px;
    }
    .booking-apartment-card {
        border-radius: 18px;
        grid-template-columns: 1fr;
        overflow: hidden;
    }
    .booking-apartment-card__image {
        min-height: 0;
        aspect-ratio: 343 / 240;
    }
    .booking-apartment-card__content {
        padding: 18px 16px 18px;
    }
    .booking-apartment-card__title {
        font-size: 18px;
        line-height: 24px;
    }
    .appointments {
        padding-right: 0;
    }
    .view-in-cart-wrap {
        gap: 14px;
        position: absolute;
        right: 20px;
    }
    .apartments__text {
        max-width: 100%;
        max-width: 270px !important;
    }
    .booking-apartment-card__features {
        gap: 8px 16px;
        font-size: 12px;
        line-height: 16px;
    }
    .booking-apartment-card__address,
    .booking-apartment-card__details,
    .booking-apartment-card__book,
    .booking-apartment-card__price {
        font-size: 12px;
        line-height: 17px;
    }
    .booking-apartment-card__details {
        display: block;
        margin-top: 10px;
        text-align: right;
    }
    .booking-apartment-card__bottom {
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        margin-top: 20px;
    }
    .booking-apartment-card__book {
        align-items: center;
        background-color: var(--black);
        border-radius: 20px;
        color: var(--white);
        display: flex;
        height: 40px;
        justify-content: center;
        margin-top: 16px;
        text-decoration: none;
        width: 100%;
    }
    .booking-results__map {
        display: none;
    }
    .booking-map-modal {
        padding: 18px;
    }
    .booking-map-modal__content {
        border-radius: 22px;
        height: calc(100vh - 36px);
        width: calc(100vw - 36px);
    }
    .booking-map-modal__close {
        right: 12px;
        top: 12px;
    }
    .privacy {
        padding: 24px 0 64px;
    }
    .privacy__container {
        padding-left: 16px;
        padding-right: 16px;
    }
    .privacy__head {
        margin-bottom: 34px;
    }
    .privacy__updated,
    .privacy__block p {
        font-size: 14px;
        line-height: 22px;
    }
    .privacy__block h2 {
        font-size: 20px;
        line-height: 26px;
    }
    .privacy__block:not(:last-child) {
        margin-bottom: 28px;
    }
    .guest-modal {
        padding: 18px;
    }
    .guest-modal:not(.room-modal) {
        align-items: center;
        justify-content: center;
        padding: 18px;
    }
    .guest-modal:not(.room-modal) .guest-modal__dialog {
        left: auto;
        position: relative;
        top: auto;
    }
    .room-modal {
        align-items: center;
        justify-content: center;
        padding: 18px;
    }
    .room-modal .guest-modal__dialog {
        left: auto;
        position: relative;
        top: auto;
    }
    .guest-modal__dialog {
        max-width: 360px;
        min-height: 0;
        padding: 28px 28px 28px;
    }
    .guest-modal__title {
        font-size: 26px;
        line-height: 32px;
    }
    .guest-modal__rows {
        gap: 24px;
        margin-bottom: 38px;
    }
    .guest-modal__label,
    .guest-modal__value,
    .guest-modal__apply {
        font-size: 14px;
    }
  .booking-popup__modal {
        grid-template-columns: 1fr;
        max-width: 420px;
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px);
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
    }
    .booking-popup {
        align-items: center;
        padding: 8px 16px;
    }
    .booking-popup__close {
        right: 6px;
        top: 6px;
    }

    .booking-popup__image {
        flex: 0 0 auto;
        height: 160px;
    }

    .booking-popup__content {
        padding: 20px 20px 22px;
    }

    .booking-popup__title {
        font-size: 22px;
        line-height: 26px;
    }
    .booking-popup__title br,
    .booking-popup__text br {
        display: none;
    }
    ul.apartment__features {
        font-family: "ivypresto-display", serif;
        font-size: 16px;
        line-height: 24px;
        display: flex;
        gap: 16px;
    }
    address.apartment__address {
        display: flex;
        flex-direction: column;
        font-size: 14px;
        font-weight: 300;
        line-height: 18px;
        margin-top: 14px;
    }
    .apartment-media__group {
        width: 100%;
    }
    h2.apartment-media__title {
        font-size: 20px;
        line-height: 24px;
        letter-spacing: 0.48px;
        margin-bottom: 20px;
    }
    h2.apartment-media__title {
        padding-left: 0;
    }
    h3.apartment-media__name {
        font-size: 16px;
        line-height: 13px;
        letter-spacing: 0.4px;
        margin-bottom: 8px;
    }
    .apartment-details__section h2 {
        font-size: 20px;
        line-height: 24px;
        letter-spacing: 0.48px;
        margin-bottom: 16px;
    }
    section.apartment-preview {
        padding-left: 16px;
        overflow: hidden;
    }
    article.apartment-media__card.apartment-media__card--video {
        width: calc(50% - 10px);
    }
    .apartment-media__group.apartment-media__group--reels {
        width: 100%;
    }
    article.apartment-media__card.apartment-media__card--video.apartment-media__card--wide {
        width: 100%;
    }
    .apartment-notes__content, .apartment-location__content {
        padding-left: 0;
    }
    h2.apartment-location__title {
        padding-left: 0;
    }
    address.apartment-location__address {
        padding-left: 0;
    }
    h2.apartment-location__title {
        margin-bottom: 10px;
    }
    .apartment__rating {
        margin-bottom: 20px;
    }
    a.apartment__map-link {
        font-size: 14px;
        line-height: 18px;
        font-weight: 300;
        text-decoration: underline;
        text-underline-offset: 5px;
        text-decoration-thickness: 1px;
        text-decoration-color: inherit;
        transition: all .5s ease;
    }
        .profile-trips__head {
        align-items: flex-start;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-bottom: 24px;
    }
    .booking-popup__text {
        font-size: 14px;
        line-height: 20px;
        margin: 22px 0 24px;
    }
    .about-team__grid, .about-cooperation__cards {
        gap: 20px;
        grid-template-columns: 1fr 1fr;
    }
    h2.about-vacancy__title {
        font-size: 26px;
        line-height: 26px;
        margin-bottom: 20px;
    }
    .about-story__text, .about-section-text, .about-cooperation__text, .about-vacancy__text {
        font-size: 14px;
        font-weight: 300;
        line-height: 24px;
    }
    .about-cooperation {
        padding: 34px 0 48px;
    }
    .about-cooperation {
        padding: 34px 0 48px;
    }
    h2.about-section-title {
        font-size: 24px;
        line-height: 24px;
        margin-bottom: 24px;
    }
    .about-cooperation-card span {
        font-family: "ivypresto-display", serif;
        font-size: 16px;
        font-weight: 300;
        line-height: 24px;
    }
    .about-cooperation-card img {
        display: block;
        margin-bottom: 10px;
        width: 100%;
    }
    .booking-popup__button {
        height: 54px;
        width: 100%;
    }
    .gallery-lightbox__viewer {
        align-items: flex-start;
        display: block;
        height: 100vh;
        overflow-y: auto;
        padding: 38px 16px 24px;
    }
    .gallery-lightbox__slider,
    .gallery-lightbox__wrapper {
        display: block;
        height: auto;
        transform: none !important;
    }
    .gallery-lightbox__slide {
        display: block;
        height: auto;
        margin-bottom: 12px;
        width: 100% !important;
    }
    .gallery-lightbox__figure {
        display: block;
        height: auto;
        max-width: 100%;
    }
    .gallery-lightbox__slide img {
        max-width: 100%;
        width: 100%;
    }
    .gallery-lightbox__caption {
        bottom: 12px;
        font-size: 12px;
        left: 12px;
        line-height: 16px;
    }
    .gallery-lightbox__arrow,
    .gallery-lightbox__thumbs {
        display: none;
    }
    .gallery-lightbox__close {
        right: 18px;
        top: 18px;
    }
    .gallery-lightbox__arrow {
        bottom: 94px;
        top: auto;
        transform: none;
    }
    .gallery-lightbox__arrow--prev {
        left: 18px;
    }
    .gallery-lightbox__arrow--next {
        right: 18px;
    }
    .gallery-lightbox__thumbs {
        bottom: 18px;
        max-width: calc(100vw - 36px);
    }
    .gallery-lightbox__thumb {
        height: 52px;
        width: 82px;
    }
    .stay-terms {
        margin: 50px 0 0;
    }
    .stay-terms__panel {
        border-radius: 22px;
        padding: 30px 20px 34px;
        width: 100%;
    }
    .stay-terms__title {
        font-size: 24px;
        line-height: 24px;
        margin-bottom: 28px;
    }
    .stay-terms__list {
        gap: 20px;
    }
    .stay-terms__row {
        grid-template-columns: 1fr;
        row-gap: 8px;
    }
    .stay-terms__row dt {
        font-size: 16px;
        line-height: 24px;
    }
    .stay-terms__row dd {
        font-size: 16px;
        line-height: 24px;
    }
    .calendar {
        margin: 50px 0 40px;
    }
    .apartment-notes {
        margin-top: 44px;
    }
    .apartment-notes__title,
    .apartment-location__title {
        font-size: 24px;
        line-height: 24px;
        margin-bottom: 24px;
    }
    .apartment-notes__text p {
        margin-bottom: 22px;
    }
    .apartment-location {
        margin: 44px 0 52px;
    }
    .apartment-location__map {
        aspect-ratio: 1 / 1;
        border-radius: 22px;
    }
    .calendar__panel {
        border-radius: 22px;
        min-height: 0;
        padding: 28px 18px 30px;
    }
    .booking-calendar-modal {
        align-items: flex-start;
        overflow-y: auto;
        padding: 18px 12px;
    }
    .booking-calendar-modal__dialog {
        max-width: none;
    }
    .calendar--booking .calendar__panel {
        border-radius: 18px;
        padding: 28px 18px 30px;
    }
    .calendar--booking .calendar__nav {
        gap: 12px;
        padding-top: 4px;
    }
    .calendar__footer {
        margin-top: 30px;
    }
    .calendar__apply {
        border-radius: 24px;
        font-size: 16px;
        height: 56px;
        min-width: 0;
        width: 100%;
    }
    .calendar__header {
        align-items: flex-start;
        margin-bottom: 34px;
    }
    .calendar__title {
        font-size: 30px;
        line-height: 34px;
        margin-bottom: 12px;
    }
    .calendar__nav {
        gap: 12px;
        padding-top: 4px;
    }
    .calendar__arrow {
        width: 34px;
        height: 34px;
    }
    .calendar__arrow span {
        left: 13px;
        top: 11px;
    }
    .calendar__arrow--next span {
        left: 10px;
    }
    .calendar__months:not(.swiper-initialized) .calendar__months-wrapper {
        gap: 0;
    }
    .calendar__months:not(.swiper-initialized) .calendar__month {
        flex-basis: 100%;
    }
    .calendar__month-title {
        margin-bottom: 24px;
    }
    .calendar__clear {
        margin-top: 38px;
    }
    nav.breadcrumbs.apartment__breadcrumbs,
    nav.breadcrumbs.apartment__breadcrumbs a,
    .separator {
        font-size: 10px;
        line-height: 14px;
    }
    .moscow-inner__booking-note,
    .open-apartment-card li,
    .open-apartment-card p,
    .open-apartment-card span,
    a.copyright__link {
        font-size: 12px;
        line-height: 18px;
    }
    h3.apartment-media__name {
        line-height: 18px;
    }
    .hero__slide.swiper-slide.swiper-slide-next {
        height: 100svh;
    }
        .calendar__arrow span {
        left: 14px;
        top: 13px;
    }
    button.calendar__arrow.calendar__arrow--next span {
        left: 11px;
    }
    .calendar__clear {
        margin-top: 0px;
    }
    .apartment-preview__progressbar.swiper-pagination-progressbar {
        width: calc(100% - 20px);
    }
}

@media (max-width: 700px) {
    .apartment-amenities {
        border-radius: 22px;
        margin-left: 0;
        margin-top: 28px;
        padding: 26px 20px 28px;
    }
    .apartment-amenities__title,
    .amenities-modal__title {
        font-size: 22px;
        line-height: 26px;
    }
    .apartment-amenities__list,
    .amenities-modal__list {
        grid-auto-flow: row;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: none;
        margin-top: 24px;
        row-gap: 16px;
    }
    .apartment-amenities__item,
    .amenities-modal__item {
        font-size: 12px;
        gap: 10px;
        line-height: 16px;
    }
    .apartment-amenities__item svg,
    .amenities-modal__item svg,
    .apartment-amenities__item img,
    .amenities-modal__item img {
        flex-basis: 20px;
        height: 20px;
        width: 20px;
    }
    .apartment-amenities__more {
        font-size: 12px;
        margin-top: 30px;
    }
    .amenities-modal {
        padding: 16px;
    }
    .amenities-modal__dialog {
        border-radius: 20px;
        max-height: calc(100dvh - 32px);
        padding: 28px 20px 30px;
    }
    .amenities-modal__close {
        right: 10px;
        top: 10px;
    }
}
