@media only screen and (min-width: 720px) {
    .catalog-item__gallery {
        height: 100%;
    }
}
.catalog-item__view-btn {
    margin-left: auto;
}
.catalog-item__title-main {
    text-transform: capitalize;
}
.filter-range .single {
    margin-top: 0 !important;
}
.filter-price-skeleton {
    display: none;
    margin-bottom: 24px;
}

.filter-price-skeleton.active {
    display: block;
}

.filter-price-skeleton span,
.filter-price-skeleton i {
    display: block;
    border-radius: 10px;
    background: linear-gradient(90deg, #eef0f4 0%, #f7f8fb 45%, #eef0f4 90%);
    background-size: 240% 100%;
    animation: filterSkeleton 1.15s ease-in-out infinite;
}

.filter-price-skeleton__grid {
    display: flex;
    grid-gap: 10px;
}
.filter-price-skeleton span {
    width: 100%;
    height: 34px;
}

.filter-price-skeleton i {
    height: 6px;
    margin-top: 8px;
}

@keyframes filterSkeleton {
    0% {
        background-position: 120% 0;
    }

    100% {
        background-position: -120% 0;
    }
}
.content-page {
    display: none;
}
.content-page.is-loaded {
    display: block;
}
.catalog-item__price {
    margin-left: auto;
}
.catalog-empty {
    font-size: 16px;
    padding: 12px 16px;
    border-radius: 16px;
    font-weight: 700;
    color: #F04438;
    text-align: center;
    background: #FEF3F2;
    box-shadow: 0 1px 3px 0 rgba(11, 11, 16, 0.02), 0 8px 16px 0 rgba(11, 11, 16, 0.04);
}
@media only screen and (max-width: 720px) {
    .catalog-empty {
        font-size: 14px;
    }
}
.region-drop__item {
    cursor: pointer;
}
.region-drop__item input {
    display: none;
}

.payment-title span {
    font-size: 24px;
    transform: translateY(-2px);
    display: inline-block;
}

.popup-qr {
    width: 470px;
    padding: 40px 25px;
    border-radius: 16px;
    background: #FFF;
    box-shadow: 0 1px 3px 0 rgba(11, 11, 16, 0.02), 0 8px 16px 0 rgba(11, 11, 16, 0.04);
}
.popup-qr__photo {
    width: fit-content;
    margin: 0 auto;
}
.popup-qr__link {
    font-size: 18px;
    text-align: center;
    word-wrap: break-word;
    font-weight: 700;
    margin-top: 45px;
}

@media only screen and (max-width: 720px) { 
    .popup-qr {
        width: 300px;
        padding: 30px 25px;
    }
    .popup-qr__link  {
        margin-top: 25px;
    }
}
@media only screen and (min-width: 1260px) {
    .footer .section-frame {
        max-width: 1240px;
    }
    
}
@media only screen and (min-width: 1200px) {
    .single-date {
        width: 215px;
        flex-shrink: 0;
    }
}
.catalog-banner__content p {
    font-size: 14px;
}

.catalog-banner__content span {
    color: #8B5CF6;
}

@media only screen and (max-width: 720px) {
    .catalog-banner__content br {
        display: none;
    }
}
.room-main__counter {
    display: none;
}
.open-frame {
    overflow: hidden !important;
}


.location-nearby,
.location-nearby * {
    direction: ltr;
    unicode-bidi: isolate;
}

.location-nearby__item,
.location-nearby-item {
    display: flex;
    align-items: center;
    gap: 8px;
    direction: ltr;
    unicode-bidi: isolate;
}

.location-nearby__name,
.location-item__title, .location-item__title span  {
    direction: ltr;
    unicode-bidi: isolate;
}

.location-nearby__distance,
.location-nearby-distance {
    margin-left: 6px;
    white-space: nowrap;
    direction: ltr;
    unicode-bidi: isolate;
}
.location-group {
    margin-bottom: 16px;
}
.location-group:last-child {
    margin-bottom: 0;
}
.single-content {
    justify-content: flex-start;
}
.single-gallery__item {
    cursor: pointer;
}

.services-wrap:nth-child(1) .services-list {
	column-count: 4;
	column-gap: 16px;
	display: block;
}

.services-wrap:nth-child(1) .services-group {
	break-inside: avoid;
	page-break-inside: avoid;
	margin-bottom: 28px;
}

.services-wrap:nth-child(1) .services-item {
	display: block;
}
@media only screen and (max-width: 720px) { 
    .services-wrap:nth-child(1)  .services-list {
        column-count: 2;
    }
}

.dop-info {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.dop-info h3 {
	margin: 0 0 10px;
	font-weight: 600;
}


.dop-info ul {
	margin: 0 0 12px;
	padding-left: 20px;
}

.dop-info li {
	list-style: disc;
	margin-bottom: 6px;
}

.dop-info a {
    color: #8B5CF6;
	text-decoration: underline;
}
.single-gallery__full {
    cursor: pointer;
}
.single-popular__item-title {
    transform: translateY(2px);
}


.catalog.hide .catalog-frame {
    display: none;
}
.catalog-full-skeleton {
    background: none !important;
}
.catalog-full-skeleton-wrap {
    background: none !important;
}
@media only screen and (max-width: 720px) { 
    .catalog-full-skeleton-wrap {
        padding: 0 !important;
    }
    .catalog-full-skeleton__main {
        width: 100%;
    }
    .catalog-full-skeleton__bottom {
        grid-gap: 10px;
    }
    .catalog-full-skeleton__box {
        width: 150px !important;
    }
    .catalog-full-skeleton__banner-top .catalog-full-skeleton__box {
        display: none !important;
    }
}

.global-kids-drop-scroll {
    height: 200px;
    overflow: hidden;
    overflow-y: scroll;
}

.global-kids-drop-scroll::-webkit-scrollbar {
        width: 4px;     
    }
.global-kids-drop-scroll::-webkit-scrollbar-track {
        background: #F4F4F5;
         
         border-radius: 10px; 
    }

.global-kids-drop-scroll::-webkit-scrollbar-thumb {
        background: #8B5CF6;
        border-radius: 20px;
    }
.room-price__nalog-info {
    font-size: 10px;
    margin-top: 5px;
}
/* Гражданство: прокручиваемый список при большом числе стран */
.booking-residency .filter-drop__list.active {
  overflow-y: auto;
  max-height: 280px;
}
.booking-residency .filter-drop__list::-webkit-scrollbar {
  width: 6px;
}
.booking-residency .filter-drop__list::-webkit-scrollbar-thumb {
  background: #d7d7e0;
  border-radius: 8px;
}

/* Single-room only (ETG сертификация): бронирование одного номера за тариф.
   Скрываем добавление нескольких номеров — бэкенд всё равно шлёт 1 комнату. */
.place-drop__add,
.place-drop__more {
  display: none !important;
}

/* Календарь в попапе «Выберите даты проживания» раскрывался absolute вниз и
   уезжал за нижнюю границу попапа/экрана (список месяцев уходил в бесконечность).
   Внутри попапа показываем его фиксированно по центру экрана с ограничением
   высоты и внутренним скроллом. Календарь в формах на страницах не трогаем. */
.popup-date .calendar {
  position: fixed;
  top: 50%;
  left: 50%;
  right: auto;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  max-height: 86vh;
  z-index: 30;
}
.popup-date .calendar.active {
  margin-top: 0;
}
.popup-date .calendar .date-month {
  max-height: calc(86vh - 16px);
}
.popup-date .calendar .date-wrap {
  overflow-y: auto;
  max-height: calc(86vh - 16px);
}

/* ============================================================
   QR-попап оплаты в стиле платёжного шлюза (тёмная карточка):
   «Ожидание платежа», сумма, адрес с копированием, жёлтый варнинг
   про сеть TRC20, QR на белой подложке, таймер, точки-прогресс.
   ============================================================ */
.popup-qr {
  width: 560px;
  max-width: 94vw;
  max-height: 92vh;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 34px 44px 30px;
  border-radius: 20px;
  background: #ffffff;
  color: #1a1a2e;
  text-align: center;
}
.popup-qr__title {
  font-size: 26px;
  font-weight: 800;
  color: #1a1a2e;
}
.popup-qr__due {
  margin-top: 10px;
  font-size: 16px;
  color: #6b6b85;
}
.popup-qr__due b { color: #1a1a2e; font-size: 18px; }
.popup-qr__label {
  margin-top: 22px;
  text-align: left;
  font-size: 14px;
  color: #6b6b85;
}
.popup-qr__addr {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f5f6f9;
  border: 1px solid #e4e6ef;
  border-radius: 10px;
  padding: 12px 12px 12px 14px;
}
.popup-qr__addr-text {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
  text-align: left;
  font-family: 'SF Mono', Menlo, Consolas, monospace;
  font-size: 13.5px;
  color: #1a1a2e;
}
.popup-qr__copy {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 8px;
  background: #e9eaf2;
  color: #55556b;
  cursor: pointer;
  transition: .2s;
}
.popup-qr__copy:hover { background: #dcdeeb; color: #1a1a2e; }
.popup-qr__copy.is-copied { background: #1a9e5f; color: #fff; }
.popup-qr__warn {
  margin-top: 14px;
  background: #fdf0c9;
  color: #7a5c17;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 13.5px;
  line-height: 1.5;
  text-align: left;
}
.popup-qr__photo-wrap {
  margin: 20px auto 0;
  width: 190px;
}
.popup-qr__photo { display: flex; justify-content: center; }
.popup-qr__photo img, .popup-qr__photo canvas { display: block; }
.popup-qr__scan {
  margin-top: 12px;
  font-size: 14px;
  color: #6b6b85;
}
.popup-qr__timer {
  margin: 14px auto 0;
  display: inline-block;
  background: #f1f2f6;
  border: 1px solid #e4e6ef;
  border-radius: 10px;
  padding: 9px 18px;
  font-size: 15px;
  font-weight: 700;
  color: #1a1a2e;
}
.popup-qr__dots {
  margin-top: 16px;
  display: flex;
  justify-content: center;
  gap: 9px;
}
.popup-qr__dots span {
  width: 13px;
  height: 13px;
  border-radius: 3px;
  background: #5b79f7;
  animation: aifQrDot 1.4s ease-in-out infinite;
}
.popup-qr__dots span:nth-child(2) { animation-delay: .15s; }
.popup-qr__dots span:nth-child(3) { animation-delay: .3s; }
.popup-qr__dots span:nth-child(4) { animation-delay: .45s; }
.popup-qr__dots span:nth-child(5) { animation-delay: .6s; }
@keyframes aifQrDot {
  0%, 100% { opacity: .35; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1); }
}
.popup-qr__wait {
  margin-top: 10px;
  font-size: 14px;
  color: #6b6b85;
}
.popup-qr__wait.is-ok { color: #1a9e5f; font-weight: 700; }
.popup-qr__wait.is-error { color: #cf222e; font-weight: 700; }
@media only screen and (max-width: 720px) {
  .popup-qr { padding: 24px 18px 22px; }
  .popup-qr__title { font-size: 21px; }
}

/* ============================================================
   Карточка «Стоимость номера» (правая колонка страницы оплаты)
   ============================================================ */
.pay-cost {
  margin-top: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid #ececf3;
}
.pay-cost__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.pay-cost__title { font-size: 17px; font-weight: 700; }
.pay-cost__sum { font-size: 16px; font-weight: 700; white-space: nowrap; }
.pay-cost__sub { margin-top: 4px; font-size: 13px; color: #8a8aa3; }
.pay-cost__links { margin-top: 10px; font-size: 13.5px; display: flex; gap: 8px; flex-wrap: wrap; }
.pay-cost__links a { color: #7C5CFF; text-decoration: none; }
.pay-cost__links a:hover { text-decoration: underline; }
.pay-cost__links span { color: #c4c4d4; }
.payment-step-note {
  margin-top: 10px;
  font-size: 13px;
  color: #8a8aa3;
  text-align: center;
  line-height: 1.45;
}

/* ============================================================
   Попапы «Детали тарифа» / «Важная информация» (стиль Ostrovok)
   ============================================================ */
.popup-ostrovok {
  position: relative;
  width: 760px;
  max-width: 94vw;
  max-height: 88vh;
  overflow-y: auto;
  box-sizing: border-box;
  background: #fff;
  border-radius: 16px;
  padding: 36px 40px 40px;
  text-align: left;
}
.popup-ostrovok__close {
  position: absolute;
  top: 22px;
  right: 24px;
  cursor: pointer;
}
.popup-ostrovok__title { font-size: 30px; font-weight: 800; margin-bottom: 6px; }
.popup-ostrovok__h2 { font-size: 19px; font-weight: 800; margin: 22px 0 10px; }
.popup-ostrovok__body { font-size: 14.5px; line-height: 1.6; color: #33333f; }
.popup-ostrovok__body p { margin: 0 0 10px; }
.popup-ostrovok__body a { color: #7C5CFF; }
.popup-ostrovok__mark {
  position: relative;
  padding-left: 16px;
}
.popup-ostrovok__mark::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 5px;
  height: 14px;
  border-radius: 2px;
  background: #b9bdcd;
}
.popup-ostrovok__mark.is-good::before { background: #29b26b; }
.popup-ostrovok__mark.is-bad::before { background: #e04a3a; }
.popup-ostrovok__checkin {
  display: flex;
  gap: 40px;
  background: #f5f6f9;
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 6px;
}
.popup-ostrovok__label { font-size: 13px; color: #8a8aa3; }
.popup-ostrovok__value { font-size: 15.5px; font-weight: 700; margin-top: 2px; }
.popup-ostrovok__note { font-size: 13px; color: #8a8aa3; }
@media only screen and (max-width: 720px) {
  .popup-ostrovok { padding: 24px 18px 26px; }
  .popup-ostrovok__title { font-size: 23px; }
  .popup-ostrovok__checkin { flex-direction: column; gap: 12px; }
}

/* ============================================================
   Форма «Контактные данные гостя» (стиль Ostrovok)
   ============================================================ */
.payment-form__item-note {
  font-size: 12.5px;
  color: #8a8aa3;
  margin: 4px 0 12px;
  line-height: 1.5;
}
.payment-form__select {
  appearance: auto;
  -webkit-appearance: menulist;
  cursor: pointer;
}
.payment-form__textarea {
  resize: vertical;
  min-height: 76px;
  font-family: inherit;
}
.payment-guests-extra { margin-top: 8px; }
.payment-guests-extra__toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f2effe;
  border: none;
  border-radius: 10px;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 600;
  color: #7C5CFF;
  cursor: pointer;
  transition: .2s;
  margin-top: 10px;
}
.payment-guests-extra__toggle:hover { background: #e9e4fd; }
.payment-guests-extra__toggle i { transition: transform .2s; font-size: 11px; }
.payment-guests-extra__toggle.is-open i { transform: rotate(180deg); }
.payment-guests-extra__note {
  font-size: 12.5px;
  color: #8a8aa3;
  margin: 8px 0 4px;
  line-height: 1.5;
}
.payment-form__item_extra { margin-top: 10px; }
.payment-form__item-title_small { font-size: 15px; }
.payment-arrival__row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.payment-arrival__time { flex: 0 0 220px; }
.payment-arrival__hint { font-size: 13px; color: #8a8aa3; }

/* ============================================================
   Layout страницы оплаты (по образцу Ostrovok): слева основной
   поток (шапка заказа, форма, доп. инфо), справа липкий сайдбар
   «Стоимость номера» — всё под рукой, без лишнего скролла.
   ============================================================ */
.payment-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 384px;
  gap: 28px;
  align-items: start;
  margin-top: 35px;
}
.payment-main {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.payment-main .payment-dop { margin-top: 0; }
.payment-side { position: sticky; top: 96px; }
.payment-side__card { padding: 18px 20px 20px; }
@media only screen and (max-width: 1100px) {
  .payment-layout { grid-template-columns: 1fr; }
  .payment-side { position: static; }
}

/* Шапка заказа: фото + название/адрес/номер + даты заезда/выезда */
.pay-head {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
}
.pay-head__photo {
  width: 128px;
  height: 100px;
  border-radius: 12px;
  background: #eef0f4 center/cover no-repeat;
}
.pay-head__name { font-size: 17px; font-weight: 800; line-height: 1.3; }
.pay-head__addr { font-size: 13px; color: #8a8aa3; margin-top: 3px; }
.pay-head__addr:empty { display: none; }
.pay-head__room { font-size: 14.5px; font-weight: 600; margin-top: 8px; }
.pay-head__bed { font-size: 13px; color: #8a8aa3; margin-top: 2px; }
.pay-head__bed:empty { display: none; }
.pay-head__dates {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-left: 18px;
  border-left: 1px solid #ececf3;
  min-width: 132px;
}
.pay-head__dates span { display: block; font-size: 12px; color: #8a8aa3; }
.pay-head__dates i { font-style: normal; }
.pay-head__dates b { font-size: 15px; font-weight: 700; }
.pay-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #f0f0f6;
}
.pay-badge { display: flex; align-items: flex-start; gap: 7px; font-size: 13.5px; }
.pay-badge span { font-size: 15px; line-height: 1.2; }
.pay-badge b { font-weight: 700; display: block; line-height: 1.25; }
.pay-badge small { display: block; font-size: 12px; color: #8a8aa3; }
.pay-badge.is-good b, .pay-badge.is-good span { color: #1a9e5f; }
.pay-badge.is-good small { color: #1a9e5f; }
.pay-badge.is-bad b, .pay-badge.is-bad span { color: #cf222e; }
.pay-guests {
  margin-top: 12px;
  font-size: 13.5px;
  color: #8a8aa3;
}
.pay-guests b { color: #1a1a2e; font-weight: 600; }
@media only screen and (max-width: 720px) {
  .pay-head { grid-template-columns: 96px minmax(0, 1fr); }
  .pay-head__photo { width: 96px; height: 84px; }
  .pay-head__dates {
    grid-column: 1 / -1;
    flex-direction: row;
    gap: 24px;
    border-left: none;
    padding-left: 0;
    padding-top: 10px;
    border-top: 1px solid #f0f0f6;
  }
}

/* Двухфазный поиск: баннер «Загружаем актуальные цены…» над мгновенными
   карточками + плейсхолдер цены на карточке */
.aif-prices-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 18px;
  margin-bottom: 16px;
  background: linear-gradient(120deg, #f6f3ff, #fff);
  border: 1px solid #e6defc;
  border-radius: 12px;
  font-size: 13.5px;
  color: #55556b;
  line-height: 1.5;
}
.aif-prices-note__plane {
  font-size: 18px;
  animation: aifFly 2.6s ease-in-out infinite;
}
.catalog-item__price_pending b {
  font-size: 14px;
  font-weight: 600;
  color: #8a8aa3;
  background: linear-gradient(90deg, #edf0f5 0%, #f8f9fc 45%, #edf0f5 90%);
  background-size: 240% 100%;
  animation: hotelSkeleton 1.15s ease-in-out infinite;
  border-radius: 8px;
  padding: 4px 10px;
}

/* Переключатель способа оплаты (USDT / СБП) в сайдбаре оплаты */
.pay-method {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0 4px;
}
.pay-method__item {
  border: 1.5px solid #e4e6ef;
  border-radius: 12px;
  padding: 10px 12px;
  text-align: center;
  cursor: pointer;
  transition: .18s;
  user-select: none;
}
.pay-method__item b { display: block; font-size: 14.5px; }
.pay-method__item span { display: block; font-size: 11.5px; color: #8a8aa3; margin-top: 1px; }
.pay-method__item:hover { border-color: #c9bcff; }
.pay-method__item.is-active {
  border-color: #7C5CFF;
  background: #f6f3ff;
}
.pay-method__item.is-active b { color: #7C5CFF; }

/* Кнопка «Открыть в приложении банка» в СБП-режиме окна оплаты */
.popup-qr__bank {
  display: block;
  margin-top: 14px;
  padding: 13px 16px;
  border-radius: 12px;
  background: #7C5CFF;
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: .18s;
}
.popup-qr__bank:hover { background: #6a4be6; }
