/* ============================================
   КАСТОМИЗАЦИЯ ВИДЖЕТА БРОНИРОВАНИЯ uHotels
   Усадьба У Альберта
   Версия v23 — CSS-hotfix over v22 (JS v22 НЕ трогаем)
   База: booking-widget-v22.css (копия целиком + правки v23 в разделе v22-4)

   Что нового в v23 (ТОЛЬКО CSS):
   1) MOBILE ИСПРАВЛЕНИЕ имени класса weekdays: в v22-4 было
      `__calendar-weekdays` — такого класса в DOM uHotels НЕТ.
      Правильное имя — `__calendar-week-day-names` (контейнер ряда
      Пн..Вс) и `__calendar-week-day-name` (одна ячейка). Переименовано.
   2) MOBILE COUNTER: удалены v22-4 правила, ломавшие absolute-layout
      uHotels для __guests-counter/-btn (pseudo-::before/::after со
      знаками −/+ исчезали). На десктопе uHotels-default корректен,
      отдельные мобильные правила не нужны — DOM одинаковый.
   3) MOBILE GRID без ancestor: добавлены grid-правила для
      __calendar-week-day-names и __calendar-days БЕЗ `.is-open` на
      предке — работают всегда на mobile viewport, даже если popup
      ещё не получил класс .is-open (гонка рендера в iOS Safari).
   4) MOBILE CLOSE: крестик ×-кнопки popup'а (`__dropdown-close`)
      перекрывался одним из v22-4 правил (видимо overflow/position).
      Явно восстанавливаем position:absolute + видимый SVG через
      ::after с inline-data-URI (×, stroke #1e261f).

   JS-патч ОСТАЁТСЯ v22 — пользователь НИЧЕГО в Tilda T123 не меняет,
   кроме номера версии CSS в URL `customCSS`.

   Версия v22 — CSS + JS hotfix over v21 + чистка v16-5
   База: booking-widget-v21.css (копия целиком + раздел v22 в конце,
   удалён shadowed v16-5 блок, см. docs/booking-widget-v22-changelog.md)

   Что нового в v22:
   1) DESKTOP БАГ 1: popup гостей ужат → width:560px min-width:560px
      на @media (min-width:1025px).
   2) DESKTOP БАГ 2: scrollbar у popup'а → overflow:visible для
      __dropdown_calendar/guests на (min-width:1025px).
   3) MOBILE БАГ 4 (крит.): календарь рендерился столбцом, counter-кнопки
      без SVG на iOS Safari. Фикс — high-specificity (0, 8, 0) правила
      с 6x [class*="booking-widget-"] + .is-open + __dropdown_* + child;
      явно принуждаем display:grid + grid-template-columns:repeat(7, 1fr).
   4) JS БАГ 3: scroll-closeHandler в JS-5 portal закрывал age-list при
      прокрутке внутри списка. Фикс в JS-патче v22 (не CSS).
   5) ЧИСТКА: удалён блок v16-5 (полностью shadowed v17-2).

   JS-патч ОБНОВЛЁН — пользователь заменяет его в Tilda T123 целиком.

   Версия v21 — CSS + JS hotfix over v20/v19
   База: booking-widget-v20.css (копия целиком + раздел v21 в конце)

   Что нового в v21:
   1) MOBILE КРИТ. ФИКС: календарь показывал дни столбцом (вместо сетки 7×N),
      счётчики гостей схлопывались без иконок [-][+]. Причина: в flex-column
      popup вложенный __dropdown-content + __calendar-days не получал
      width:100% / display:block, grid-ребёнок терял ширину. Фикс — явный
      width:100%/display:block на .is-open __dropdown-content; безопасная
      защита min-width:0 на __calendar-months/month/days; counter-btn
      фикс-размер 28×28 + display:inline-flex + flex-shrink:0.
   2) DESKTOP: list .bw-age-list обрезался popup'ом гостей (overflow:auto
      на родителе). JS-патч v21 переносит список в document.body (portal)
      при открытии и позиционирует через getBoundingClientRect().
      CSS: .bw-age-list.is-portaled { position:fixed; z-index:100002 }.
   3) JS-5 v21: грамматика AGE_LABELS (мап value→label, вместо textContent).
   JS-патч ОБНОВЛЁН — пользователь заменяет его в Tilda T123 целиком.

   Версия v20 — CSS hotfix over v19 (JS-патч v19 остаётся без изменений!)
   База: booking-widget-v19.css

   ИСПРАВЛЕНИЯ В v20 (по итогам MCP-ревью v19):

   БАГ1 — DESKTOP: кастомный age-dropdown обрезал текст «до 1 года»
   Причина: .bw-age-btn имел min-width:120px, не хватало ~30px для самого
   длинного option при Manrope 15/500 -0.03em + padding 14+14 + gap 8 + arrow 12.
   Фикс: min-width 120 → 150; white-space:nowrap на .bw-age-btn и .bw-age-item;
   .bw-age-dropdown получил max-width:100% (display:inline-block был в v19).

   БАГ2 — MOBILE (критический): guests popup «прибит» к hero-блоку, скроллится
   с ним, всегда виден при init.
   Причина: мобильные правила v9 / v16-5 / v17-2 делали
   display:flex !important + position:fixed !important БЕЗ условия `.is-open`.
   При этом родитель .t396__elem на Tilda имеет `transform:...` (создаёт
   containing block для fixed), из-за чего position:fixed внутри ведёт себя
   как position:absolute → popup визуально «прикреплён» к hero и скроллится
   вместе с ним. Плюс display:flex !important перебивает дефолтный display:none
   uHotels — попап ВИДЕН постоянно (не только при клике по полю).
   Фикс: ко ВСЕМ мобильным правилам для __dropdown_calendar / __dropdown_guests
   и их вложенных частей добавлен модификатор `.is-open`. Без него — default
   uHotels (display:none) побеждает, попап скрыт. После клика по полю uHotels
   добавляет класс is-open → наши стили срабатывают и делают правильный popup.

   НЕ ТРОНУТО в v20:
   - JS-патч (v19 остаётся в Tilda как есть)
   - v17-1 стилизация <select> (closed state)
   - Кастомный dropdown JS + CSS-структура .bw-age-* (кроме правок выше)
   - Вся v1–v18 CSS-логика

   ============================================ */

/* ============================================
   КАСТОМИЗАЦИЯ ВИДЖЕТА БРОНИРОВАНИЯ uHotels
   Усадьба У Альберта
   Версия v19 — БЕЗ CSS-ИЗМЕНЕНИЙ (все фиксы в JS-патче)
   База: booking-widget-v17.css (идентичный CSS)

   В v18 ТОЛЬКО JS-ПАТЧ МЕНЯЕТСЯ (см. docs/booking-widget-v19-changelog.md):
   - Удалена «anti-premature-close» логика (вызывала застревание мобильного
     guests-popup поверх сайта при init на iPhone Safari — БАГ v17).
   - Portal попапа теперь only-on-user-intent (флаг userOpenedRecently),
     а не на любом !had && has → не ловим init-толчки uHotels.
   - Hover-превью обрабатывает все три случая (!din / din&&!dout / din&&dout)
     вместо старого узкого `if (din && !dout)` (БАГ hover v17).

   CSS v17 оставлен без изменений — v17-1/v17-2/v17-3 работают корректно.

   Старый заголовок v17 ниже для истории:
/* ============================================
   КАСТОМИЗАЦИЯ ВИДЖЕТА БРОНИРОВАНИЯ uHotels
   Усадьба У Альберта
   Версия v17 — фикс select specificity + мобильный flex-column popup + safe-area + sticky footer
   База: booking-widget-v16.css

   ДОБАВЛЕНО В v17 (разделы в конце файла):
   - v17-1 «FIX SELECT ВОЗРАСТА РЕБЁНКА — ПЕРЕБИТЬ v8-1 СПЕЦИФИЧНОСТЬ»
     v8-1 селектор = (select + 9×class-attr) = специфичность (0,10,1).
     v16-4 имел только 9×class-attr = (0,10,0) → проигрывал v8-1.
     v17-1 добавляет select-тег → (0,10,1) = v8-1, но v17-1 физически
     позже → выигрывает по cascade. border-radius:30px, h:44px, Manrope 15/500.
   - v17-2 «МОБИЛЬНЫЙ POPUP — FLEX-COLUMN + STICKY GOTOVO-FOOTER + SAFE-AREA»
     Отменяем v16-5 top:80 + max-height. Вместо: position:fixed;
     top:env-safe+20; bottom:env-safe+20; display:flex; flex-direction:column.
     __dropdown-content flex:1 1 auto + overflow-y:auto, __dropdown-footer
     flex:0 0 auto + bg:#fff. Решает недоступность «Готово» под iOS-тулбаром.
   - v17-3 (CSS-часть: оставлена v16-2 как fallback; основной фикс в JS)
     JS-portal попапа в document.body на мобайле, чтобы z-index:100000
     не был замкнут в stacking-context .t396__elem(z:3). CSS делать не может.

   НЕ ТРОНУТО в v17: vся v1-v16 работает как прежде. v16-5 правило остаётся
   (переопределяется v17-2 позже). v16-1/v16-2/v16-3/v13/v4/v5/v6/v15-1/v15-2 — все на месте.

   РИСК-ФАКТОРЫ v17:
   1. JS-portal: если uHotels ищет попап через ancestor-chain от инпута —
      после переноса сломается. MO и listener-ы reparent переживают,
      но uHotels internals — нет гарантии. Симптом отката: выбрал даты,
      а hidden input не обновился. Mitigation: откатить portal в v18 без него.
   2. v17-1 специфичность: select + 9×class-attr = (0,10,1) = v8-1. Выигрыш
      только порядком (v17 позже). Проверено вручную.
   3. v17-2 flex-column: если uHotels кладёт динамические элементы между
      content и footer — могут сжаться до 0. На текущей версии uHotels ок.

   ====== НАЧАЛО БАЗОВОГО v16 (не трогать, v17-разделы в конце) ======
   ============================================
   КАСТОМИЗАЦИЯ ВИДЖЕТА БРОНИРОВАНИЯ uHotels
   (v16 заголовок сохранён ниже для истории)
   База v16: booking-widget-v15.css

   ДОБАВЛЕНО В v16:
   - v16-1 «УБРАТЬ ГОРИЗОНТАЛЬНЫЙ СКРОЛЛ ПОПАПА КАЛЕНДАРЯ НА DESKTOP»
     В v15-1 попап получил overflow-x:auto. Это создавало скролл при hover
     на крайние правые даты: tooltip __calendar-tooltip-content (position:absolute;
     left:50%; width:auto; ~140px) вылетает за правый край попапа → scrollbar.
     Фикс — 9x-спец-стью перекрыть на overflow:visible / overflow-x:visible /
     overflow-y:visible. Ширина 574px сохраняется.
   - v16-2 «Z-INDEX ПОПАПОВ НА МОБАЙЛЕ ВЫШЕ TILDA HEADER»
     Tilda uc-header-container имеет z-index:99990. Поднимаем z-index попапов
     календаря/гостей до 100000 на @media (max-width:1024px) с 9x спец-стью.
   - v16-3 «ОБЛЕГЧЁННАЯ ТЕНЬ + BACKDROP ЧЕРЕЗ ::before НА МОБАЙЛЕ»
     Заменяем 100vmax box-shadow на 0 8px 24px rgba(0,0,0,0.15) на мобайле
     и делаем реальный backdrop через body.uhotels-popup-open::before
     (position:fixed; inset:0; z-index:9998; pointer-events:none). Десктоп
     не трогаем.
   - v16-4 «SELECT ВОЗРАСТА РЕБЁНКА КАК COUNTER В GUESTS-ROW»
     __guests-select: h:40 br:52 bg:rgba(237,247,238,0.45) font:16/600
     padding:0 32px 0 14px, стрелка background-position right 10px center.
   - v16-5 «TOP ПОПАПА НА МОБАЙЛЕ = 80px»
     На @media (max-width:640px) фиксируем top:80px чтобы не наезжал на
     логотип/бургер Tilda. Работает вместе с position:fixed из v9.

   НЕ ТРОНУТО в v16: вся v1-v15 работает как прежде, кроме overflow на попапе
   календаря (v15-1 значения width сохранены, только overflow переопределён).

   РИСК-ФАКТОРЫ v16:
   1. Если tooltip очень длинный — он теперь выезжает за край попапа
      (это визуально ок, всё равно поверх). Проверить, что на экране
      1024-1200px tooltip справа не вылетает за край viewport.
   2. v16-3 backdrop-::before работает только когда body имеет класс
      uhotels-popup-open. Этот класс ставит сам uHotels (подтверждено MCP).
      Fallback: v9 box-shadow активным на десктопе оставили.
   3. v16-2 z-index:100000 перебивает Tilda header. Если Tilda обновит свой
      header до 100001 — пересмотреть.
   ============================================ */

/* ============================================
   ИСТОРИЧЕСКАЯ ШАПКА v15 (для аудита):
   Версия v15 — ограничение ширины попапа календаря + белый текст в тултипе
   База: booking-widget-v14.css

   ДОБАВЛЕНО В v15:
   - v15-1 «ШИРИНА ПОПАПА КАЛЕНДАРЯ НА DESKTOP = 574px»
     Ограничение width/max-width попапа __dropdown_calendar на viewport >=1025px.
     574px = datein.width(281) + gap(12) + dateout.width(281), т.е. попап
     выравнивается по правому краю второго поля даты. Спец-сть 9x по
     [class*="booking-widget-"] для перебивания любых inline-стилей якорения.
   - v15-2 «БЕЛЫЙ ТЕКСТ В ТУЛТИПЕ КАЛЕНДАРЯ»
     Тултип __calendar-tooltip / __calendar-tooltip-content имеет тёмный фон
     rgb(36,36,36), но v4-правило `-calendar-` наследовало цвет #1e261f на
     детей тултипа → тёмный текст на тёмном фоне. Фикс: явно выставляем white
     с 9x спец-стью и -webkit-text-fill-color: white для перебивания v4.
   ============================================ */

/* ============================================
   ИСТОРИЧЕСКАЯ ШАПКА v14 (сохранена для аудита):
   Версия v14 — уборка мёртвого кода + параллельные РЕАЛЬНЫЕ селекторы попапов
   База: booking-widget-v13.css

   УДАЛЕНО В v14 (DevTools-инспекция подтвердила: селекторы не матчились):
   - v10-2 «ПОДСКАЗКА "ВЫБЕРИТЕ ДАТУ ЗАЕЗДА" НАВЕРХ ПОПАПА КАЛЕНДАРЯ»
     Селекторы -calendar-error / -message / -info / -hint / -empty / -notice /
     -validation / -status / -title / -header и -calendar-month / -grid /
     -body / -table / -months / -submit order:10 — всё мёртвое. Реальный
     заголовок подсказки — __dropdown-footer-title (стилизуется в v13-2).
   - v10-3 «ПОДСКАЗКА "УКАЖИТЕ КОЛИЧЕСТВО ГОСТЕЙ" НАВЕРХ ПОПАПА ГОСТЕЙ»
     Аналогично — все -guests-error/-message/.../-header / -guests-row/-item/
     -list order:0 / -guests-submit order:10 — мёртвые.
   - v12-1 «ФУТЕР ПОПАПА ОРГАНИЧНО»
     Шотган -guests-footer / -actions / -bottom / -submit-wrap / -buttons /
     -bottom-bar и -calendar-* аналоги — ни один суффикс не совпал. Реальный
     класс футера — __dropdown-footer, уже обрабатывается в v13-1.

   ДОБАВЛЕНО В v14: параллельно со старыми -guests-popup / -guests-dropdown /
   -calendar-popup / -calendar-dropdown / __guests-popup / __guests-dropdown /
   __calendar-popup / __calendar-dropdown В КАЖДОЕ правило подмешаны реальные
   классы попапов uHotels:
     - [class*="__dropdown_guests"]    — модификатор попапа гостей
     - [class*="__dropdown_calendar"]  — модификатор попапа календаря
     - [class*="__dropdown"]           — общий класс попапа (для универсальных правил)
   Старые селекторы оставлены как есть — вдруг в другой версии uHotels классы
   вернутся. Это не увеличивает размер DOM-запроса, только правило CSS.

   НЕ ТРОНУТО: v1-v9, v10-1 (max-height мобильных попапов), v10-4 (единый стиль
   кнопок «Готово»), v12-2 (белый текст на кнопках), v13-1/2/3/4 (футер через
   реальный __dropdown-footer) — всё работает, подтверждено в проде.

   РИСК-ФАКТОРЫ:
   1. Реальные правила попапов теперь применяются (до v14 большая часть v5/v8/v9/
      v10-1 не матчилась). Возможны визуальные изменения: скругления 30px,
      padding 20px 24px, max-height:calc(100vh - 160px) теперь РЕАЛЬНО сработают
      на мобайле. Если увидите «перекос» — откатитесь на v13 и сверим Computed.
   2. v9 position:fixed по центру на мобайле теперь тоже реально сработает.
      Если uHotels ставит inline top/left для якорения — специфичность 11x
      должна перебить, но проверьте в DevTools.
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600&display=swap');

/* CSS-переменные виджета */
[id^="booking-widget-"] {
    --accent-color: #ffffff !important;
    --button-color: #1e261f !important;
    --button-bg: #ffffff !important;
    --button-border-color: #ffffff !important;
    --field-bg: rgba(237, 247, 238, 0.25) !important;
    --field-color: #ffffff !important;
    --field-border-color: transparent !important;
    --border-radius: 52px !important;
}

/* Контейнер-форма */
[class*="booking-widget-"][class*="__row"] {
    background: transparent !important;
    background-color: transparent !important;
    padding: 0 !important;
    gap: 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    align-items: stretch !important;
}

/* Ячейки */
[class*="booking-widget-"][class*="__cell"] {
    flex: 1 1 200px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

[class*="booking-widget-"][class*="__cell"]:last-child {
    flex: 0 0 auto !important;
}

/* Поле-обёртка */
[class*="booking-widget-"][class*="__field"] {
    position: relative !important;
    height: 52px !important;
}

/* Input-поля */
[class*="booking-widget-"][class*="__field-input"] {
    background-color: rgba(237, 247, 238, 0.25) !important;
    background-image: none !important;
    border: none !important;
    border-radius: 52px !important;
    height: 52px !important;
    width: 100% !important;
    padding: 14px 50px 14px 22px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
    cursor: pointer !important;
}

/* Плейсхолдер (на случай, если поле всё-таки пустое) */
[class*="booking-widget-"][class*="__field-input"]::placeholder {
    color: rgba(255, 255, 255, 0.85) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
    opacity: 1 !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: -0.03em !important;
}

/* Лейблы — скрываем */
[class*="booking-widget-"][class*="__field-label"] {
    display: none !important;
}

/* === ИКОНКИ === */

/* Календарь — для дат */
[class*="js-booking-widget-"][class*="-datein"],
[class*="js-booking-widget-"][class*="-dateout"] {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none'><rect x='3.5' y='5.5' width='17' height='15' rx='2' stroke='white' stroke-width='1.5'/><path d='M3.5 10h17' stroke='white' stroke-width='1.5'/><path d='M8 3.5v3.5' stroke='white' stroke-width='1.5' stroke-linecap='round'/><path d='M16 3.5v3.5' stroke='white' stroke-width='1.5' stroke-linecap='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 22px center !important;
    background-size: 20px 20px !important;
}

/* Люди — для гостей. */
[class*="js-booking-widget-"][class*="-guest"]:not([class*="-guests-"]) {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none'><circle cx='9' cy='8.5' r='3' stroke='white' stroke-width='1.5'/><circle cx='16' cy='9.5' r='2.3' stroke='white' stroke-width='1.5'/><path d='M3.5 18.5c0-2.3 2.5-4 5.5-4s5.5 1.7 5.5 4' stroke='white' stroke-width='1.5' stroke-linecap='round'/><path d='M15 18.5c0-1.8 2-3 4-3s3 1.2 3 3' stroke='white' stroke-width='1.5' stroke-linecap='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 22px center !important;
    background-size: 22px 22px !important;
}

/* === ВАРИАНТ А: показываем нативные значения uHotels === */
[class*="js-booking-widget-"][class*="-datein"],
[class*="js-booking-widget-"][class*="-dateout"],
[class*="js-booking-widget-"][class*="-guest"]:not([class*="-guests-"]) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* === ФИКС v3: поле гостей === */
[class*="js-booking-widget-"][class*="-guests"]:not([class*="-guests-row"]):not([class*="-guests-list"]):not([class*="-guests-amount"]):not([class*="-guests-submit"]):not([class*="-guests-popup"]):not([class*="-guests-dropdown"]):not([class*="-guests-counter"]):not([class*="-guests-header"]),
[class*="booking-widget-"][class*="__field-input"][class*="guest"],
[class*="booking-widget-"][class*="__field-input"][class*="guests"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* === СТРАХОВОЧНЫЙ КАСКАД === */
[class*="booking-widget-"][class*="__field-input"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g) {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
}

/* === КНОПКА === */
[class*="booking-widget-"][class*="__btn"][type="submit"] {
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
    color: transparent !important;
    border: none !important;
    border-radius: 52px !important;
    padding: 12px 36px !important;
    height: 52px !important;
    width: 280px !important;
    max-width: 100% !important;
    font-size: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    transition: opacity 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

[class*="booking-widget-"][class*="__btn"][type="submit"]::after {
    content: 'Забронировать отдых';
    font-family: 'Manrope', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
    color: #1e261f !important;
}

[class*="booking-widget-"][class*="__btn"][type="submit"]:hover {
    opacity: 0.9 !important;
}

/* Кнопки "Готово" внутри дропдаунов */
[class*="js-booking-widget-"][class*="-calendar-submit"],
[class*="js-booking-widget-"][class*="-guests-submit"] {
    font-size: 14px !important;
    color: #ffffff !important;
}
[class*="js-booking-widget-"][class*="-calendar-submit"]::after,
[class*="js-booking-widget-"][class*="-guests-submit"]::after {
    content: none !important;
}

/* === АДАПТИВ === */
@media (max-width: 1024px) {
    [class*="booking-widget-"][class*="__cell"] {
        flex: 1 1 calc(50% - 6px) !important;
    }
    [class*="booking-widget-"][class*="__cell"]:last-child {
        flex: 1 1 100% !important;
    }
    [class*="booking-widget-"][class*="__row"] {
        gap: 16px !important;
    }
    [class*="booking-widget-"][class*="__btn"][type="submit"] {
        width: 100% !important;
    }
}

@media (max-width: 640px) {
    [class*="booking-widget-"][class*="__row"] {
        flex-direction: column !important;
        gap: 8px !important;
    }
    [class*="booking-widget-"][class*="__cell"] {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
}

/* === ФИКС v4: цвет цифр в дропдауне гостей === */
[class*="js-booking-widget-"][class*="-guests-"]:not(input),
[class*="js-booking-widget-"][class*="-guests-"]:not(input) * {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
}
[class*="js-booking-widget-"][class*="-calendar-"]:not(input):not([class*="-calendar-submit"]),
[class*="js-booking-widget-"][class*="-calendar-"]:not(input):not([class*="-calendar-submit"]) * {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
}

/* === ФИКС v5: цифры-счётчики в дропдауне гостей (шотган) === */
[id^="booking-widget-"] input[type="number"],
[id^="booking-widget-"] input[type="text"][class*="counter"],
[id^="booking-widget-"] input[type="text"][class*="amount"],
[id^="booking-widget-"] input[class*="counter"],
[id^="booking-widget-"] input[class*="amount"],
[id^="booking-widget-"] [class*="-counter-value"],
[id^="booking-widget-"] [class*="-counter-input"],
[id^="booking-widget-"] [class*="-counter-num"],
[id^="booking-widget-"] [class*="-amount-value"],
[id^="booking-widget-"] [class*="-amount-input"],
[id^="booking-widget-"] [class*="-amount-num"],
[class*="js-booking-widget-"][class*="-guests-row"] > div,
[class*="js-booking-widget-"][class*="-guests-row"] > span,
[class*="js-booking-widget-"][class*="-guests-row"] > input,
[class*="js-booking-widget-"][class*="-guests-item"] > div,
[class*="js-booking-widget-"][class*="-guests-item"] > span,
[class*="js-booking-widget-"][class*="-guests-item"] > input {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    background-color: transparent !important;
    background: transparent !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    text-align: center !important;
    border: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: textfield !important;
    appearance: none !important;
}

/* Убираем нативные стрелочки у input[type="number"] (Webkit) */
[id^="booking-widget-"] input[type="number"]::-webkit-inner-spin-button,
[id^="booking-widget-"] input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* === ФИКС v5: облагораживание дропдауна гостей === */
[class*="js-booking-widget-"][class*="-guests-popup"],
[class*="js-booking-widget-"][class*="-guests-dropdown"],
[class*="js-booking-widget-"][class*="-guests-list"],
[class*="js-booking-widget-"][class*="-guests-wrap"],
[class*="js-booking-widget-"][class*="-guests-container"],
[class*="booking-widget-"][class*="__guests-popup"],
[class*="booking-widget-"][class*="__guests-dropdown"],
[class*="booking-widget-"][class*="__dropdown_guests"] {
    border-radius: 30px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12) !important;
    background-color: #ffffff !important;
    font-family: 'Manrope', sans-serif !important;
    padding: 20px 24px !important;
    border: none !important;
}

/* Аналогичное скругление 30px для дропдауна календаря */
[class*="js-booking-widget-"][class*="-calendar-popup"],
[class*="js-booking-widget-"][class*="-calendar-dropdown"],
[class*="js-booking-widget-"][class*="-calendar-wrap"],
[class*="js-booking-widget-"][class*="-calendar-container"],
[class*="booking-widget-"][class*="__calendar-popup"],
[class*="booking-widget-"][class*="__calendar-dropdown"],
[class*="booking-widget-"][class*="__dropdown_calendar"] {
    border-radius: 30px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12) !important;
    background-color: #ffffff !important;
    font-family: 'Manrope', sans-serif !important;
    border: none !important;
}

/* Кнопки − и + внутри дропдауна гостей */
[class*="js-booking-widget-"][class*="-guests-"][class*="-minus"],
[class*="js-booking-widget-"][class*="-guests-"][class*="-plus"],
[class*="js-booking-widget-"][class*="-guests-"][class*="-dec"],
[class*="js-booking-widget-"][class*="-guests-"][class*="-inc"],
[class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"] {
    transition: background-color 0.15s ease !important;
}
[class*="js-booking-widget-"][class*="-guests-"][class*="-minus"]:hover,
[class*="js-booking-widget-"][class*="-guests-"][class*="-plus"]:hover,
[class*="js-booking-widget-"][class*="-guests-"][class*="-dec"]:hover,
[class*="js-booking-widget-"][class*="-guests-"][class*="-inc"]:hover,
[class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"]:hover {
    background-color: rgba(46, 164, 79, 0.08) !important;
}

/* === ФИКС v6: ДОБИВКА ЦИФР-СЧЁТЧИКОВ === */
/* Правило специфичности 0,11,1 — дублируем атрибут [class*="js-booking-widget-"] 10 раз
   для перебивания v3 правила (0,10,0). Селектор охватывает ВСЕ <input> внутри ЛЮБОГО
   контейнера дропдауна гостей. */

[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-dropdown"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-list"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-wrap"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-container"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-row"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-item"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-counter"] input,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-amount"] input,
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"] input {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    background-color: transparent !important;
    background: transparent !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    text-align: center !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: textfield !important;
    appearance: none !important;
    caret-color: #1e261f !important;
}

/* Стиль выделения текста в инпуте счётчика */
[class*="js-booking-widget-"][class*="-guests-popup"] input::selection,
[class*="js-booking-widget-"][class*="-guests-dropdown"] input::selection,
[class*="js-booking-widget-"][class*="-guests-row"] input::selection,
[class*="js-booking-widget-"][class*="-guests-item"] input::selection,
[class*="js-booking-widget-"][class*="-guests-counter"] input::selection,
[class*="booking-widget-"][class*="__dropdown_guests"] input::selection {
    background-color: rgba(46, 164, 79, 0.18) !important;
    color: #1e261f !important;
}

/* Дополнительная страховка для случая, когда счётчик — не <input>, а <span>/<div>/<button> */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g),
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-dropdown"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g),
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-wrap"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g),
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-container"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g),
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g) {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
}

/* ============================================
   v8 — РАЗДЕЛ 1: СТИЛИЗАЦИЯ SELECT «ВОЗРАСТ РЕБЁНКА» (ИСПРАВЛЕНО)
   ============================================
   ПОЧИНКА БАГОВ v7:
   В v7 стилизация цепляла не только <select>, но и его контейнеры из-за слишком
   общих селекторов [class*="-child-age"] / [class*="-children-age"] / [class*="-age"]
   без фильтра по тегу. Результат: между счётчиками и строками возраста появлялось
   «пустое поле со стрелкой» (это был стилизованный контейнер-обёртка), а 2-я и 3-я
   строки «Возраст ребёнка» схлопывались под height:44px родителя.

   ИСПРАВЛЕНИЕ: всюду в этом разделе -child-age/-children-age идут ТОЛЬКО в сочетании
   с тегом select (через descendant-комбинатор " select" или через select[class*="..."]).
   Селектор [class*="-age"] удалён полностью (слишком общий: ловит -language, -page,
   -message и т.п.). */

/* БАЗОВАЯ СТИЛИЗАЦИЯ select */
select[class*="js-booking-widget-"][class*="-child-age"],
select[class*="js-booking-widget-"][class*="-children-age"],
[class*="js-booking-widget-"][class*="-child-age"] select,
[class*="js-booking-widget-"][class*="-children-age"] select,
[class*="js-booking-widget-"][class*="-guests-popup"] select,
[class*="js-booking-widget-"][class*="-guests-dropdown"] select,
[class*="js-booking-widget-"][class*="-guests-list"] select,
[class*="js-booking-widget-"][class*="-guests-wrap"] select,
[class*="js-booking-widget-"][class*="-guests-container"] select,
[class*="js-booking-widget-"][class*="-guests-row"] select,
[class*="js-booking-widget-"][class*="-guests-item"] select,
[class*="booking-widget-"][class*="__dropdown_guests"] select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    height: 44px !important;
    min-width: 100px !important;
    width: auto !important;
    padding: 10px 36px 10px 16px !important;
    border: none !important;
    border-radius: 28px !important;
    box-shadow: none !important;
    outline: none !important;
    background-color: rgba(237, 247, 238, 0.45) !important;
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
    cursor: pointer !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%231e261f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 14px 14px !important;
}

/* Высокоспецифичная добивка — чтобы перебить v4-правило -guests-,
   которое красит ВСЕ потомки -guests- (включая select). Дублируем атрибут 9 раз. */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-dropdown"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-list"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-wrap"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-container"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-row"] select,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-item"] select,
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"] select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    height: 44px !important;
    padding: 10px 36px 10px 16px !important;
    border: none !important;
    border-radius: 28px !important;
    background-color: rgba(237, 247, 238, 0.45) !important;
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%231e261f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 14px 14px !important;
}

/* Hover/focus состояния select — только на теге select, без голых контейнеров */
[class*="js-booking-widget-"][class*="-guests-popup"] select:hover,
[class*="js-booking-widget-"][class*="-guests-dropdown"] select:hover,
[class*="js-booking-widget-"][class*="-guests-row"] select:hover,
[class*="js-booking-widget-"][class*="-guests-item"] select:hover,
[class*="js-booking-widget-"][class*="-child-age"] select:hover,
[class*="js-booking-widget-"][class*="-children-age"] select:hover,
select[class*="js-booking-widget-"][class*="-child-age"]:hover,
select[class*="js-booking-widget-"][class*="-children-age"]:hover,
[class*="booking-widget-"][class*="__dropdown_guests"] select:hover {
    background-color: rgba(237, 247, 238, 0.65) !important;
}

[class*="js-booking-widget-"][class*="-guests-popup"] select:focus,
[class*="js-booking-widget-"][class*="-guests-dropdown"] select:focus,
[class*="js-booking-widget-"][class*="-guests-row"] select:focus,
[class*="js-booking-widget-"][class*="-guests-item"] select:focus,
[class*="js-booking-widget-"][class*="-child-age"] select:focus,
[class*="js-booking-widget-"][class*="-children-age"] select:focus,
select[class*="js-booking-widget-"][class*="-child-age"]:focus,
select[class*="js-booking-widget-"][class*="-children-age"]:focus,
[class*="booking-widget-"][class*="__dropdown_guests"] select:focus {
    outline: none !important;
    background-color: rgba(237, 247, 238, 0.7) !important;
    box-shadow: 0 0 0 2px rgba(46, 164, 79, 0.25) !important;
}

/* Стилизация <option> внутри select. */
[class*="js-booking-widget-"][class*="-guests-popup"] select option,
[class*="js-booking-widget-"][class*="-guests-dropdown"] select option,
[class*="js-booking-widget-"][class*="-guests-row"] select option,
[class*="js-booking-widget-"][class*="-guests-item"] select option,
[class*="js-booking-widget-"][class*="-child-age"] select option,
[class*="js-booking-widget-"][class*="-children-age"] select option,
select[class*="js-booking-widget-"][class*="-child-age"] option,
select[class*="js-booking-widget-"][class*="-children-age"] option,
[class*="booking-widget-"][class*="__dropdown_guests"] select option {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    background-color: #ffffff !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    padding: 8px 12px !important;
}

/* ============================================
   v8 — РАЗДЕЛ 2: МОБИЛЬНАЯ АДАПТАЦИЯ ПОПАПОВ
   ============================================
   На смартфоне попапы (календарь, гости) перекрывали весь экран — это критично.
   Решение: ограничиваем размеры через max-width/max-height, добавляем внутренний скролл.
   ВАЖНО: НЕ position: fixed — uHotels якорит попап к инпуту через JS,
   fixed сломает якорение и обработчик кликов снаружи. */

@media (max-width: 640px) {
    [class*="js-booking-widget-"][class*="-guests-popup"],
    [class*="js-booking-widget-"][class*="-guests-dropdown"],
    [class*="js-booking-widget-"][class*="-guests-list"],
    [class*="js-booking-widget-"][class*="-guests-wrap"],
    [class*="js-booking-widget-"][class*="-guests-container"],
    [class*="booking-widget-"][class*="__guests-popup"],
    [class*="booking-widget-"][class*="__guests-dropdown"],
    [class*="js-booking-widget-"][class*="-calendar-popup"],
    [class*="js-booking-widget-"][class*="-calendar-dropdown"],
    [class*="js-booking-widget-"][class*="-calendar-wrap"],
    [class*="js-booking-widget-"][class*="-calendar-container"],
    [class*="booking-widget-"][class*="__calendar-popup"],
    [class*="booking-widget-"][class*="__calendar-dropdown"],
    [class*="booking-widget-"][class*="__dropdown_guests"],
    [class*="booking-widget-"][class*="__dropdown_calendar"] {
        max-width: calc(100vw - 32px) !important;
        max-height: 80vh !important;
        width: auto !important;
        padding: 16px !important;
        border-radius: 30px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        box-sizing: border-box !important;
    }

    [class*="js-booking-widget-"][class*="-guests-row"],
    [class*="js-booking-widget-"][class*="-guests-item"] {
        gap: 8px !important;
        flex-wrap: nowrap !important;
    }

    [class*="js-booking-widget-"][class*="-guests-"][class*="-minus"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-plus"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-dec"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-inc"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"] {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        flex-shrink: 0 !important;
    }

    [class*="js-booking-widget-"][class*="-guests-popup"] select,
    [class*="js-booking-widget-"][class*="-guests-dropdown"] select,
    [class*="js-booking-widget-"][class*="-guests-row"] select,
    [class*="js-booking-widget-"][class*="-guests-item"] select,
    [class*="js-booking-widget-"][class*="-child-age"] select,
    [class*="js-booking-widget-"][class*="-children-age"] select,
    select[class*="js-booking-widget-"][class*="-child-age"],
    select[class*="js-booking-widget-"][class*="-children-age"],
    [class*="booking-widget-"][class*="__dropdown_guests"] select {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* ============================================
   v9 — РАЗДЕЛ 1: МОБИЛЬНЫЕ ПОПАПЫ КАК МОДАЛКИ ПО ЦЕНТРУ
   ============================================
   Меняем подход v8: вместо «ограниченный по высоте попап, якорённый к инпуту» —
   теперь на мобайле попап ведёт себя как центрированная модалка:
   - position: fixed
   - top/left: 50% + transform: translate(-50%, -50%)
   - плавное появление через animation (fadeInScale)
   - backdrop через box-shadow 0 0 0 100vmax + clip-path, не требует доп. элемента

   КЛЮЧЕВОЙ МОМЕНТ: !important на position/top/left/transform нужен, чтобы
   перекрыть inline-стили uHotels, которые якорят попап к инпуту координатами.
   Если uHotels ставит inline !important (в последних версиях loader v7 —
   не ставит), придётся усиливать через JS-патч (см. HTML-блок).
   ============================================ */

@keyframes uhotelsPopupFadeIn {
    from {
        opacity: 0;
        transform: translate(-50%, -40%) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

@media (max-width: 640px) {
    /* Попап гостей — центрированная модалка */
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-dropdown"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-wrap"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-container"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-popup"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-dropdown"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;

        width: calc(100vw - 32px) !important;
        max-width: 420px !important;
        max-height: 80vh !important;

        padding: 20px 20px !important;
        border-radius: 28px !important;
        background-color: #ffffff !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        box-sizing: border-box !important;

        /* Backdrop через box-shadow + clip-path — без доп. элемента */
        box-shadow:
            0 20px 60px rgba(0, 0, 0, 0.25),
            0 0 0 100vmax rgba(0, 0, 0, 0.45) !important;
        clip-path: inset(-100vh -100vmax) !important;

        z-index: 9999 !important;

        animation: uhotelsPopupFadeIn 0.25s ease both !important;
    }

    /* Попап календаря — центрированная модалка */
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-popup"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-dropdown"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-wrap"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-container"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-popup"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-dropdown"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;

        width: calc(100vw - 32px) !important;
        max-width: 420px !important;
        max-height: 85vh !important;

        padding: 16px !important;
        border-radius: 28px !important;
        background-color: #ffffff !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        box-sizing: border-box !important;

        box-shadow:
            0 20px 60px rgba(0, 0, 0, 0.25),
            0 0 0 100vmax rgba(0, 0, 0, 0.45) !important;
        clip-path: inset(-100vh -100vmax) !important;

        z-index: 9999 !important;

        animation: uhotelsPopupFadeIn 0.25s ease both !important;
    }
}

/* ============================================
   v9 — РАЗДЕЛ 2: СКРЫТИЕ СКРОЛЛБАРА И МЕЛКИЕ ПОДКРУТКИ
   ============================================
   Для лучшего вида модалки на iOS/Android скрываем дефолтный скроллбар
   (он всё равно доступен свайпом). */

@media (max-width: 640px) {
    [class*="js-booking-widget-"][class*="-guests-popup"]::-webkit-scrollbar,
    [class*="js-booking-widget-"][class*="-guests-dropdown"]::-webkit-scrollbar,
    [class*="js-booking-widget-"][class*="-calendar-popup"]::-webkit-scrollbar,
    [class*="js-booking-widget-"][class*="-calendar-dropdown"]::-webkit-scrollbar,
    [class*="booking-widget-"][class*="__dropdown_guests"]::-webkit-scrollbar,
    [class*="booking-widget-"][class*="__dropdown_calendar"]::-webkit-scrollbar {
        width: 0 !important;
        height: 0 !important;
        display: none !important;
    }

    /* Блокируем body-скролл косвенно: модалка перекрывает tap через backdrop.
       Полная блокировка скролла body делается JS-ом в HTML-блоке. */

    /* На совсем узких экранах — ещё компактнее */
    [class*="js-booking-widget-"][class*="-guests-popup"],
    [class*="js-booking-widget-"][class*="-guests-dropdown"],
    [class*="js-booking-widget-"][class*="-calendar-popup"],
    [class*="js-booking-widget-"][class*="-calendar-dropdown"],
    [class*="booking-widget-"][class*="__dropdown_guests"],
    [class*="booking-widget-"][class*="__dropdown_calendar"] {
        scrollbar-width: none !important; /* Firefox */
    }
}

/* ============================================
   v9 — РАЗДЕЛ 3: АДАПТАЦИЯ body при открытом мобильном попапе
   ============================================
   Класс uhotels-popup-open ставится на <html> или <body> JS-ом в HTML-блоке
   при открытии попапа. Блокирует скролл фоновой страницы. */

html.uhotels-popup-open,
body.uhotels-popup-open {
    overflow: hidden !important;
    touch-action: none !important;
}

/* ============================================
   КОНЕЦ v9
   ============================================ */


/* ============================================
   v10 — РАЗДЕЛ 1: ОГРАНИЧЕНИЕ ВЫСОТЫ МОБИЛЬНЫХ ПОПАПОВ ПОД HEADER
   ============================================
   ПРОБЛЕМА: на iPhone попап календаря перекрывал верх страницы — невозможно
   нажать логотип «Усадьба у Альберта» и кнопку-бургер мобильного меню Tilda.
   Текущий v9 использовал max-height: 80vh / 85vh + position: fixed по центру,
   что давало мало места сверху на маленьких экранах.

   РЕШЕНИЕ: max-height: calc(100vh - 160px). Гарантирует:
     - 80px сверху (хватает на header Tilda с логотипом + бургером),
     - 80px снизу (запас).
   Попап остаётся центрированным (top: 50% + translate -50%,-50%), но не растёт
   выше доступной зоны. На viewport 750px → 590px max-height → центр на 295px,
   верхняя кромка попапа ≈ y=80px. Идеально.

   Специфичность через дублирование атрибута 9x — чтобы перебить v9-правила
   (max-height: 80vh / 85vh), у которых уже та же спец-сть.
   ============================================ */

@media (max-width: 640px) {
    /* Попап гостей — ограниченная высота */
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-dropdown"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-wrap"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-container"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-popup"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-dropdown"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"] {
        max-height: calc(100vh - 160px) !important;
    }

    /* Попап календаря — ограниченная высота */
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-popup"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-dropdown"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-wrap"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-container"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-popup"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-dropdown"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"] {
        max-height: calc(100vh - 160px) !important;
    }
}

/* ============================================
   v10 — РАЗДЕЛ 4: ЕДИНЫЙ СТИЛЬ КНОПОК «ГОТОВО» (КАЛЕНДАРЬ + ГОСТИ)
   ============================================
   Старый стиль кнопок «Готово» в v9 был минималистичным (font-size: 14px,
   color: #ffffff). Дизайн обновлён: зелёная заливка #00791c, скругление 38px,
   ширина 260px, шрифт 20px Manrope 500. Высокая специфичность через дублирование
   атрибута 9x — нужна, потому что v4 правило -calendar-/-guests-:not(input):not(submit)
   не цепляет submit, но красит inner-spans внутри submit в #1e261f. Перебиваем.

   ВАЖНО: применяется на ВСЕХ брейкпоинтах (не оборачиваем в @media).
   ============================================ */

[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"],
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] {
    background: #00791c !important;
    background-color: #00791c !important;
    background-image: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    border-radius: 38px !important;
    padding: 16px 20px !important;
    width: 260px !important;
    max-width: calc(100% - 24px) !important;
    height: 54px !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 16px auto 0 !important;
    transition: background-color 0.2s ease, transform 0.1s ease !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Текст ВНУТРИ кнопки (если uHotels рендерит span/div внутри button) — белый */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] *,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
}

/* Hover — темнее на оттенок */
[class*="js-booking-widget-"][class*="-calendar-submit"]:hover,
[class*="js-booking-widget-"][class*="-guests-submit"]:hover {
    background-color: #006019 !important;
    background: #006019 !important;
}

/* Active — ещё темнее + лёгкое смещение */
[class*="js-booking-widget-"][class*="-calendar-submit"]:active,
[class*="js-booking-widget-"][class*="-guests-submit"]:active {
    background-color: #00541a !important;
    background: #00541a !important;
    transform: translateY(1px) !important;
}

/* Перебиваем v9 правило fontSize:14px и color:#ffffff на корне submit (на случай
   старой записи, которая остаётся в каскаде) — высокая специфичность побеждает. */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"]::after,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"]::after {
    content: none !important;
}

/* ============================================
   КОНЕЦ v10
   ============================================ */


/* ============================================
   v12 — РАЗДЕЛ 2: БЕЛЫЙ ТЕКСТ НА КНОПКАХ «ГОТОВО» (УСИЛЕНИЕ)
   ============================================
   ПРОБЛЕМА: в v10-4 уже стоит `color: #ffffff !important` со спец-стью 0,11,1
   на -calendar-submit/-guests-submit и их дочерних элементах, но на скрине
   iPhone текст «Готово» рендерится тёмным (почти чёрным).

   ГИПОТЕЗЫ:
   1. Safari iOS применяет -webkit-text-fill-color от native <button> стиля —
      нужно ЯВНО выставить -webkit-text-fill-color: #ffffff (он имеет приоритет
      над color в WebKit).
   2. Кнопка — <input type="submit"> (а не <button>) — у него свой native color.
      Покрываем через input[type="submit"][class*=...].
   3. Текст в ::before/::after — покрываем псевдоэлементы.
   4. Inline style="color: ..." !important на обёртке текста — перебиваем через
      дублирование атрибута 11 раз (спец-ть 0,11,0 → 0,13,0 для селектора-потомка).

   ВСЕ ТРИ шотгана применяются одновременно. Гарантированно перебивают любой
   вариант CSS-правила от uHotels. Единственный способ НЕ сработать — если
   uHotels ставит на текст inline-style с !important (тогда нужен JS).
   ============================================ */

/* 2.1. САМА КНОПКА (root-элемент submit): 11-дублирование + appearance reset */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"],
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-color: #00791c !important;
    background: #00791c !important;
    background-image: none !important;
}

/* 2.2. ВСЕ ПОТОМКИ кнопки (span/div/p/a/etc) + псевдоэлементы */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] *,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] *::before,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] *::after,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"]::before,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"]::after,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] *,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] *::before,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] *::after,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"]::before,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"]::after {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
}

/* 2.3. КОНКРЕТНЫЕ ТЕГИ внутри submit — span/div/p/a/b/strong/em */
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] span,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] div,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] p,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] a,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] b,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] strong,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] em,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] span,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] div,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] p,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] a,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] b,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] strong,
[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] em {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
}

/* 2.4. СЛУЧАЙ input[type="submit"] — у Safari свой нативный цвет для input submit.
   Требуется явно указать color + -webkit-text-fill-color + appearance: none. */
input[type="submit"][class*="js-booking-widget-"][class*="-calendar-submit"],
input[type="submit"][class*="js-booking-widget-"][class*="-guests-submit"],
button[type="submit"][class*="js-booking-widget-"][class*="-calendar-submit"],
button[type="submit"][class*="js-booking-widget-"][class*="-guests-submit"],
input[class*="js-booking-widget-"][class*="-calendar-submit"],
input[class*="js-booking-widget-"][class*="-guests-submit"],
button[class*="js-booking-widget-"][class*="-calendar-submit"],
button[class*="js-booking-widget-"][class*="-guests-submit"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-color: #00791c !important;
    background: #00791c !important;
    background-image: none !important;
    border: none !important;
}

/* ============================================
   КОНЕЦ v12
   ============================================ */


/* ============================================
   v13 — ФУТЕР ПОПАПА ЧЕРЕЗ РЕАЛЬНЫЙ СЕЛЕКТОР __dropdown-footer
   ============================================
   КОНТЕКСТ: DevTools-инспекция (ID виджета 863941) показала реальную структуру
   футера попапа uHotels. v12-1 использовал шотган по несуществующим суффиксам
   (-guests-footer, -calendar-footer, -submit-wrap и т.п.) — НИ ОДИН не совпал
   с реальным DOM, поэтому «белый остров» остался.

   РЕАЛЬНАЯ РАЗМЕТКА ФУТЕРА (общая для календаря и гостей):
     <div class="booking-widget-863941__dropdown-footer">
       <div class="booking-widget-863941__dropdown-footer-title">Выберите дату заезда</div>
       <div class="booking-widget-863941__dropdown-footer-info">
         <strong>Лучшие цены для 1 гостя за ночь</strong> ...
       </div>
       <button class="booking-widget-863941__dropdown-footer-btn booking-widget-863941__btn
                      js-booking-widget-863941-calendar-submit">Готово</button>
     </div>

   COMPUTED STYLE футера ДО исправления:
     border-top: 0.666667px solid rgb(221, 221, 221);  ← серая линия
     margin: 16px 0 0;
     padding: 8px 0 0;                                 ← создаёт отрыв
     background: transparent;

   ЗАДАЧИ v13:
     v13-1: сам футер (__dropdown-footer, БЕЗ детей) — убрать border-top,
            padding-top:0, margin-top:12px, background:transparent,
            box-shadow:none. Склеить с телом попапа.
     v13-2: заголовок __dropdown-footer-title — Manrope 600 17px #1e261f,
            text-align:center, margin-bottom:8px.
     v13-3: подпись __dropdown-footer-info — Manrope 12px #5a5a5a,
            text-align:center, margin-bottom:12px, line-height:140%.
     v13-4: на мобайле (max-width: 640px) скрыть __dropdown-footer-info
            (display:none) — подпись «Лучшие цены…» на мобайле избыточна,
            главное — кнопка.

   СЕЛЕКТОРЫ:
     - Для родителя-футера (без детей): [class*="__dropdown-footer"]:not([class*="__dropdown-footer-"])
       (минус на конце суффикса дочерних: `footer-title`, `footer-info`, `footer-btn`).
     - Для детей — полные суффиксы: __dropdown-footer-title, -info.

   СПЕЦИФИЧНОСТЬ:
     Дублируем атрибут 9 раз как в v9/v10/v12 — перебивает ctl.css и v12-1 шотган.
     Формула: 9 × [class*="booking-widget-"] + 1 × [class*="__dropdown-footer..."]
            = спец-сть 0,10,0 (родитель с :not() +0,1 = 0,11,0).
   ============================================ */

/* --- v13-1: САМ ФУТЕР (__dropdown-footer без детей) --- */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer"]:not([class*="__dropdown-footer-"]) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 12px !important;
    margin-bottom: 0 !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

/* --- v13-2: ЗАГОЛОВОК футера (__dropdown-footer-title) --- */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-title"] {
    text-align: center !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 600 !important;
    font-size: 17px !important;
    line-height: 120% !important;
    letter-spacing: -0.02em !important;
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

/* Покрываем также inner-span/strong/b внутри title, если uHotels оборачивает текст */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-title"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g) {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 600 !important;
    font-size: 17px !important;
    line-height: 120% !important;
}

/* --- v13-3: ПОДПИСЬ футера (__dropdown-footer-info) --- */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-info"] {
    text-align: center !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 400 !important;
    font-size: 12px !important;
    line-height: 140% !important;
    letter-spacing: -0.01em !important;
    color: #5a5a5a !important;
    -webkit-text-fill-color: #5a5a5a !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

/* Внутренние теги info (<strong>, <span>, <b>…) — тот же стиль, серый */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-info"] *:not(svg):not(path):not(circle):not(rect):not(line):not(g) {
    color: #5a5a5a !important;
    -webkit-text-fill-color: #5a5a5a !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 12px !important;
    line-height: 140% !important;
    background: transparent !important;
}

/* <strong> делаем чуть темнее/плотнее, чтобы выделялся */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-info"] strong,
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-info"] b {
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    font-weight: 600 !important;
}

/* --- v13-4: НА МОБАЙЛЕ СКРЫВАЕМ ПОДПИСЬ --- */
@media (max-width: 640px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-info"] {
        display: none !important;
    }

    /* Компенсация margin у заголовка — раз подписи нет, приближаем его к кнопке */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-title"] {
        margin-bottom: 12px !important;
        font-size: 16px !important;
    }
}

/* ============================================
   КОНЕЦ v13
   ============================================ */


/* ============================================
   КОНЕЦ v14
   ============================================ */


/* ============================================
   v15-1: ШИРИНА ПОПАПА КАЛЕНДАРЯ НА DESKTOP = 574px
   ============================================
   Геометрия формы (viewport 1440):
     - datein: left=133, right=414, width=281
     - dateout: left=426, right=707, width=281
     - gap между полями: 12px
   Хотим, чтобы попап при открытии от datein шёл по правый край dateout:
     width = 281 + 12 + 281 = 574px
   Сейчас uHotels рендерит попап 640px (два месяца рядом + padding).
   На мобайле (<=1024px) не трогаем — там v9/v10-1 уже делают
   max-width:calc(100vw - 32px) и/или position:fixed по центру.

   Специфичность 9x по [class*="booking-widget-"] — достаточно, чтобы перебить
   любые v5/v8/v9/v10-1 правила (до 7x) и inline-стиль width от uHotels.
   Если внутри попапа два месяца не влезут — сработает их собственный flex-wrap
   (переход в колонку) или горизонтальный скролл. Добавили overflow-x:auto
   на всякий случай.
*/
@media (min-width: 1025px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"] {
        width: 574px !important;
        max-width: 574px !important;
        min-width: 574px !important;
        box-sizing: border-box !important;
        overflow-x: auto !important;
    }
}

/* ============================================
   v15-2: БЕЛЫЙ ТЕКСТ В ТУЛТИПЕ КАЛЕНДАРЯ
   ============================================
   Тултип __calendar-tooltip-content отображает сообщения uHotels (например,
   «Минимальный заезд 2 ночи» или «Дата недоступна»). Фон уже тёмный rgb(36,36,36),
   но v4-правило
     [class*="js-booking-widget-"][class*="-calendar-"]:not(input):not([class*="-calendar-submit"])
   { color: #1e261f !important; }
   красит ВСЕ дочерние элементы попапа календаря, включая тултип,
   в тёмный цвет → невидимый текст на тёмном фоне.

   Решение: явно перекрашиваем тултип в белый с 9x спец-стью + дублируем
   -webkit-text-fill-color (для Safari / для перебивания случаев,
   когда -webkit-text-fill-color унаследован).
*/
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip"],
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip"] *,
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip-content"],
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip-content"] * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Сам бокс тултипа — форма, типографика, тень */
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip-content"] {
    background-color: rgb(36, 36, 36) !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 120% !important;
    letter-spacing: -0.02em !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

/* ============================================
   КОНЕЦ v15 — начало v16
   ============================================ */


/* ============================================
   v16-1: УБРАТЬ HORIZONTAL-SCROLL ПОПАПА КАЛЕНДАРЯ (DESKTOP)
   ============================================
   В v15-1 попап получил overflow-x:auto для страховки от переполнения
   двумя месяцами. На практике два месяца влезают в 574px (calendar-months
   ~558px), а scrollbar появляется ТОЛЬКО при hover на даты у правого края:
   tooltip __calendar-tooltip-content имеет position:absolute; left:50%;
   width:auto (~140px по тексту) — выезжает за правый край попапа → auto
   включает scrollbar.

   Фикс: на той же 9x спец-сти и том же @media (min-width:1025px) выставляем
   overflow:visible с дубликатом overflow-x/overflow-y. Ширина 574px и
   max/min-width из v15-1 сохраняются (не трогаем). Tooltip теперь свободно
   выезжает за край попапа — это визуально корректно, он всё равно на верхнем
   слое и не включает scrollbar контейнера.
*/
@media (min-width: 1025px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"] {
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
    }
}

/* ============================================
   v16-2: Z-INDEX ПОПАПОВ НА МОБАЙЛЕ ВЫШЕ TILDA HEADER
   ============================================
   Tilda uc-header-container имеет z-index:99990 (измерено на проде).
   Дефолтный z-index попапа uHotels = 9999 — при раскрытом Tilda-меню
   попап оказывается ПОД ним. Поднимаем z-index попапов календаря и
   гостей до 100000 только на @media (max-width:1024px) с 9x-спец-стью.
*/
@media (max-width: 1024px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open {
        z-index: 100000 !important;
    }
}

/* ============================================
   v16-3: ОБЛЕГЧЁННАЯ ТЕНЬ + BACKDROP ЧЕРЕЗ ::before НА МОБАЙЛЕ
   ============================================
   На мобайле v9 использовал box-shadow:0 0 0 100vmax rgba(0,0,0,0.4) для
   создания backdrop-эффекта. Огромный spread 100vmax у fixed-popup на
   iOS Safari может вести себя нестабильно. Заменяем на мягкий
   0 8px 24px rgba(0,0,0,0.15) ТОЛЬКО на мобайле, а реальный backdrop
   делаем через body.uhotels-popup-open::before (класс ставит сам uHotels
   при открытии попапа — подтверждено измерением).

   Десктоп НЕ ТРОГАЕМ — там v9 100vmax работает штатно.
*/
@media (max-width: 1024px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open {
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
    }

    /* Backdrop-слой. Класс uhotels-popup-open проставляет сам uHotels на body. */
    body.uhotels-popup-open::before {
        content: '' !important;
        position: fixed !important;
        inset: 0 !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background: rgba(0, 0, 0, 0.4) !important;
        z-index: 9998 !important;
        pointer-events: none !important;
    }
}

/* ============================================
   v16-4: SELECT ВОЗРАСТА РЕБЁНКА — КАК COUNTER В GUESTS-ROW
   ============================================
   Реальный класс (подтверждено MCP-ревью): booking-widget-XXXXXX__guests-select.
   Сейчас select отличается от соседнего counter input в той же строке:
     select:  h:44 br:28 bg:rgba(237,247,238,0.45) font:15/500 pad:10 36 10 16
     counter: h:40 br:52 bg:transparent              font:16/600
   Приводим select к счётчику по высоте/радиусу/типографике, фон оставляем
   слегка подсвеченным для визуального отличия «это выбор», но радиус/шрифт/
   высота как у counter.
*/
[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-select"],
select[class*="booking-widget-"][class*="__guests-select"] {
    height: 40px !important;
    min-height: 40px !important;
    border-radius: 52px !important;
    background-color: rgba(237, 247, 238, 0.45) !important;
    color: #1e261f !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 110% !important;
    letter-spacing: -0.02em !important;
    padding: 0 32px 0 14px !important;
    min-width: auto !important;
    background-position: right 10px center !important;
    background-repeat: no-repeat !important;
    border: none !important;
    box-sizing: border-box !important;
}

/* На мобайле (@media max-width:640px) select может ужиматься — гарантируем 40px */
@media (max-width: 640px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-select"] {
        height: 40px !important;
        min-height: 40px !important;
        font-size: 16px !important;
    }
}

/* ============================================
   v16-5: УДАЛЕНО в v22 (см. changelog)
   ============================================
   Полностью shadowed by v17-2: оба правила таргетят одинаковые селекторы
   в @media (max-width: 640px) (.is-open __dropdown_calendar/guests),
   v17-2 идёт позже в файле и переопределяет top/left/transform/max-height;
   overflow-y:auto из v16-5 был плохой практикой (скроллил весь попап
   вместе с футером), v17-2 корректно разделяет скролл только для
   __dropdown-content (flex:1 1 auto).
   ============================================ */


/* ============================================
   КОНЕЦ v16 (дальше — разделы v17)
   ============================================ */


/* ============================================
   v17-1: FIX SELECT ВОЗРАСТА РЕБЁНКА — ПЕРЕБИТЬ v8-1 СПЕЦИФИЧНОСТЬ
   ============================================
   Проблема: v8-1 использовал (select + 9 attr-селекторов), итоговая
   специфичность (0,10,1). v16-4 имел только 9×class-attr = (0,10,0)
   → проигрывал v8-1 по 1 баллу. Фикс: в начало КАЖДОЙ группы селекторов
   добавляем `select` тег → (0,10,1). Равно v8-1, но v17-1 физически позже
   в файле → побеждает по cascade.

   Дизайн (user-req): border-radius:30 (скругление как у полей ввода),
   h:44, Manrope 15/500, letter-spacing:-0.03em, line-height:110%,
   padding:0 32px 0 14px, кастомная SVG-стрелка #1e261f.
   ============================================
*/
select[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-select"],
select[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"],
select[class*="__guests-select"] {
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 30px !important;
    background-color: rgba(237, 247, 238, 0.45) !important;
    color: #1e261f !important;
    -webkit-text-fill-color: #1e261f !important;
    font-family: "Manrope", sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 110% !important;
    letter-spacing: -0.03em !important;
    padding: 0 32px 0 14px !important;
    min-width: auto !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%231e261f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 12px 12px !important;
    cursor: pointer !important;
}

/* Мобильная подстраховка — те же стили, уже включают select-тег (0,10,1) */
@media (max-width: 640px) {
    select[class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-select"],
    select[class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-popup"],
    select[class*="__guests-select"] {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 15px !important;
        border-radius: 30px !important;
    }
}


/* ============================================
   v17-2: МОБИЛЬНЫЙ POPUP — FLEX-COLUMN + STICKY GOTOVO-FOOTER + SAFE-AREA
   ============================================
   БАГ v16: top:80 + max-height:calc(100vh-100px) оставлял попап высотой ~750.
   __dropdown-content (position:static) скроллил месяцы, __dropdown-footer
   шёл ПОСЛЕ content. В iOS Safari нижние ~90px скрыты тулбаром →
   кнопка «Готово» физически под тулбаром, внутренний скролл не вытаскивает.

   Фикс: попап тянется от top:env-safe+20 до bottom:env-safe+20;
   display:flex; flex-direction:column; overflow:hidden.
   Внутри — content flex:1 1 auto с overflow-y:auto (скроллит только он),
   footer flex:0 0 auto с белым фоном (всегда виден).
   ============================================
*/
@media (max-width: 640px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open {
        position: fixed !important;
        top: calc(80px + env(safe-area-inset-top, 0px)) !important;
        bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
        left: 16px !important;
        right: 16px !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        max-height: none !important;
        transform: none !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }

    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__dropdown-content"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="__dropdown-content"] {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__dropdown-footer"]:not([class*="footer-"]),
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="__dropdown-footer"]:not([class*="footer-"]) {
        flex: 0 0 auto !important;
        background: #ffffff !important;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
        z-index: 2 !important;
        position: relative !important;
    }

    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-btn"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"],
    [class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"] {
        width: 100% !important;
        min-height: 48px !important;
    }
}


/* ============================================
   v17-3: ПОРТАЛ ПОПАПА В body (CSS-часть)
   ============================================
   Основная часть v17-3 — в JS-патче (docs/booking-widget-v17-changelog.md).
   При переносе popup в document.body его класс-атрибуты не меняются, и все
   правила, построенные на [class*="__dropdown_calendar"] / [class*="__dropdown_guests"],
   продолжают работать. Специальных CSS-правил для портированного состояния
   не требуется — v9/v16-2/v17-2 уже покрывают.
   ============================================
*/


/* ============================================
   КОНЕЦ v17
   ============================================ */


/* ============================================
   v18: МАРКЕР — БЕЗ CSS-ИЗМЕНЕНИЙ
   ============================================
   Все изменения v18 находятся в JS-патче.
   См. docs/booking-widget-v19-changelog.md
   ============================================ */


/* ============================================
   v19-1: КАСТОМНЫЙ DROPDOWN для возраста ребёнка
   ============================================
   Нативный <option> не стилизуется. Заменяем раскрытый список на div-список,
   нативный <select> оставлен в DOM (невидим) для uHotels.
   Реализация: JS-5 в патче v19 (document-level script в блоке T123).
   CSS v17-1 (стилизация нативного <select>) оставлен как fallback на случай
   если JS не загрузился.
   ============================================
*/
.bw-age-dropdown {
    position: relative;
    display: inline-block;
    max-width: 100%;
    font-family: Manrope, sans-serif;
}

.bw-age-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    height: 44px;
    min-width: 150px;
    padding: 0 14px;
    border: none;
    border-radius: 30px;
    background: rgba(237, 247, 238, 0.45);
    color: #1e261f;
    font-family: Manrope, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 110%;
    letter-spacing: -0.03em;
    cursor: pointer;
    outline: none;
    box-sizing: border-box;
    white-space: nowrap;
    transition: background 0.15s ease;
}
.bw-age-btn:hover { background: rgba(237, 247, 238, 0.75); }
.bw-age-btn:focus-visible { box-shadow: 0 0 0 2px rgba(46, 164, 79, 0.35); }

.bw-age-arrow {
    display: inline-flex;
    margin-left: 8px;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.bw-age-dropdown.is-open .bw-age-arrow { transform: rotate(180deg); }

.bw-age-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 100%;
    max-height: 260px;
    overflow-y: auto;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    padding: 6px;
    z-index: 100001;
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
}

.bw-age-item {
    padding: 10px 14px;
    border-radius: 12px;
    color: #1e261f;
    font-family: Manrope, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 110%;
    letter-spacing: -0.03em;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.1s ease, color 0.1s ease;
}
.bw-age-item:hover { background: rgba(46, 164, 79, 0.08); }
.bw-age-item.is-selected {
    background: #2ea44f;
    color: #ffffff;
}
.bw-age-item.is-selected:hover {
    background: #258a42;
    color: #ffffff;
}

@media (max-width: 640px) {
    .bw-age-list { max-height: 220px; }
    .bw-age-btn { font-size: 14px; height: 40px; }
}


/* ============================================
   v20 — HOTFIX MARKER
   ============================================
   Версия v20 затрагивает только два места (см. шапку файла):
   1) БАГ1 — .bw-age-btn min-width 120→150 + white-space:nowrap,
      .bw-age-dropdown max-width:100%.
   2) БАГ2 — ко ВСЕМ селекторам в @media(max-width:...) правилах,
      которые упоминают [class*="__dropdown_calendar"] или
      [class*="__dropdown_guests"] (и их вложенные content/footer/btn),
      добавлен `.is-open` — чтобы CSS включался только на реально
      открытом попапе. Раньше display:flex+position:fixed ставились
      ВСЕГДА, и в совокупности с transform-ancestor .t396__elem
      попап «висел» на hero-блоке.

   JS-патч v19 в Tilda остаётся без изменений.
   ============================================ */


/* ============================================
   v21 — HOTFIX: mobile calendar/counter + desktop age-list portal
   ============================================
   Изменения относительно v20:

   1. MOBILE (БАГ 1) — внутри .is-open popup (display:flex+flex-direction:column)
      .__dropdown-content становится flex-item. У flex-item по умолчанию
      min-width:auto (= content-size), и grid-ребёнок .__calendar-days со
      своим grid-template-columns: repeat(7, 1fr) терял доступную ширину.
      На iPhone это приводило к схлопыванию дней в столбец. Фикс — на .is-open
      явно задаём width:100% на __dropdown-content и __calendar-month(s)/days,
      плюс min-width:0 (разрешает flex-item ужиматься/растягиваться по
      доступной ширине). display:block на __dropdown-content (не flex) чтобы
      сам контент не стал flex-контейнером и не ломал grid внутри.

   2. MOBILE (БАГ 1) — counter-btn схлопывались в 0x0. В v8 на мобайле уже
      задано 32x32 flex-shrink:0, но без display:inline-flex + align-items:center
      кнопки могли сжиматься. Дополнительно принуждаем inline-flex + центрирование
      иконки + гарантированное svg sizing.

   3. DESKTOP (БАГ 2) — age-list обрезается popup гостей. Раньше список
      рендерился как absolute-child .bw-age-dropdown внутри __dropdown_guests,
      у которого overflow:auto и фиксированная высота. Решение: JS-патч v21
      переносит .bw-age-list в document.body (portal) и ставит position:fixed
      + вычисленные top/left через getBoundingClientRect. CSS здесь — только
      стили для portal-состояния (.is-portaled).

   4. DESKTOP popup guests width (БАГ 4, проверка): в v20 нет override
      width/max-width для __dropdown_guests на min-width:1025px. Ширина идёт
      от движка uHotels. Правок не вносим — документируем.

   ============================================ */


/* ---- 1+2. MOBILE: grid-раскладка календаря и counter-кнопки ---- */
@media (max-width: 640px) {

    /* Гарантируем block-поведение __dropdown-content внутри is-open popup
       чтобы grid-потомки получали полную ширину. v17-2 правило
       `flex: 1 1 auto; overflow-y:auto;` остаётся в силе, но нужны
       width:100% + min-width:0 + display:block для корректного grid. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__dropdown-content"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="__dropdown-content"] {
        width: 100% !important;
        min-width: 0 !important;
        display: block !important;
        /* flex:1 1 auto + overflow:auto от v17-2 остаются — каскад их не стирает */
    }

    /* Календарь: контейнеры месяцев и сама сетка дней — полная ширина,
       min-width:0 на случай если родитель flex. */
    [class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-months"],
    [class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-month"] {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* __calendar-days — grid 7xN от uHotels. Не трогаем grid-template-columns,
       только гарантируем что блок занимает всю ширину родителя. */
    [class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-days"] {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Заголовки дней (Пн Вт Ср ...) — каждая grid-cell занимает 1 колонку. */
    [class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-weekdays"],
    [class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-weekday"] {
        width: auto !important;
        min-width: 0 !important;
    }

    /* Counter-btn: в v8 задано 32x32 flex-shrink:0. Усиляем — обязательный
       inline-flex + center + квадратная форма. */
    [class*="js-booking-widget-"][class*="-guests-"][class*="-minus"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-plus"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-dec"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-inc"],
    [class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"] {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        max-width: 32px !important;
        max-height: 32px !important;
        flex: 0 0 32px !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        border-radius: 50% !important;
    }

    /* SVG-иконка внутри counter-btn — гарантируем видимость */
    [class*="js-booking-widget-"][class*="-guests-"][class*="-minus"] svg,
    [class*="js-booking-widget-"][class*="-guests-"][class*="-plus"] svg,
    [class*="js-booking-widget-"][class*="-guests-"][class*="-dec"] svg,
    [class*="js-booking-widget-"][class*="-guests-"][class*="-inc"] svg,
    [class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"] svg {
        width: 14px !important;
        height: 14px !important;
        display: block !important;
        flex-shrink: 0 !important;
    }

    /* Row со счётчиком: guest-row / guest-item — flex nowrap, input-ы
       не съедают ширину у counter-кнопок. */
    [class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="js-booking-widget-"][class*="-guests-row"],
    [class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="js-booking-widget-"][class*="-guests-item"] {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}


/* ---- 3. DESKTOP + ALL BREAKPOINTS: portal-режим для .bw-age-list ---- */

/* Класс .is-portaled ставится JS'ом при открытии списка. В portal-режиме
   список перенесён в document.body — position:fixed, top/left выставляются
   inline через getBoundingClientRect(). z-index выше popup гостей. */
.bw-age-list.is-portaled {
    position: fixed !important;
    z-index: 100002 !important;
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18) !important;
    padding: 6px !important;
    max-height: 260px !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch !important;
    font-family: Manrope, sans-serif !important;
}

@media (max-width: 640px) {
    .bw-age-list.is-portaled {
        max-height: 220px !important;
    }
}

/* ============================================
   КОНЕЦ v21
   ============================================ */


/* ============================================
   v22 — HOTFIX: desktop popup width/overflow + mobile high-specificity grid
   ============================================
   Изменения относительно v21:

   БАГ 1 (DESKTOP) — popup гостей слишком узкий: «Возраст ребёнка» + select
     «5 лет» впритык. Фикс: на (min-width:1025px) задаём width:560px для
     __dropdown_guests (max-width:90vw на всякий случай).

   БАГ 2 (DESKTOP) — визуальная scrollbar-полоса справа у popup'а. В v21
     на десктопе __dropdown_calendar/guests наследовал overflow от базовых
     правил (line 461/478 — overflow:hidden), но где-то проскакивал
     overflow:auto. Явно выставляем overflow:visible на десктопе для
     __dropdown_calendar/guests — контент всегда влезает (на десктопе
     высота popup'а рассчитывается uHotels без max-height).

   БАГ 4 (MOBILE КРИТ.) — календарь-дни столбцом, counter-кнопки без SVG.
     Причина: v21 правила имели специфичность (0, 4-5, 0), а ctl.css
     uHotels ставит `.booking-widget-XXX__calendar-days { display:grid }`
     с (0, 1, 0) + !important — равно важно, но конфликтуют значения
     `display:grid` (наш!important) vs WebKit intrinsic-sizing внутри
     flex-item. Усиливаем: 6x `[class*=]` + .is-open + `__dropdown_*` +
     child selector = (0, 8, 0) с !important. Явно принуждаем display:grid
     grid-template-columns:repeat(7,1fr) на weekdays и days.

   БАГ 5 (CHISTKA) — удалён v16-5 (lines 1459-1481, 22 строк).
     Причина: полностью shadowed by v17-2 (см. changelog v22).

   ============================================ */


/* ---- БАГ 1: DESKTOP popup guests width ---- */
@media (min-width: 1025px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"] {
        width: 560px !important;
        max-width: 90vw !important;
        min-width: 560px !important;
        box-sizing: border-box !important;
    }
}


/* ---- БАГ 2: DESKTOP popup overflow:visible ---- */
@media (min-width: 1025px) {
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"] {
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        max-height: none !important;
    }
}


/* ---- БАГ 4: MOBILE HIGH-SPECIFICITY grid/flex для calendar-days и counter ---- */
@media (max-width: 640px) {
    /* Grid-сетка дней календаря: явно repeat(7, 1fr) + полная ширина.
       Специфичность 6×[class*=] + .is-open + __dropdown_calendar + __calendar-days
       = (0, 8, 0) — гарантированно перебивает ctl.css (0, 1, 0) даже при равном !important. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-days"] {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Weekdays header (Пн Вт Ср ...) — та же grid 7 колонок.
       v23: правильное имя класса — __calendar-week-day-names. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-week-day-names"] {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Calendar-month/months обёртки — block layout с полной шириной */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-month"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_calendar"].is-open [class*="__calendar-months"] {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* v23: правила для __guests-counter / __guests-counter-btn /
       __guests-row / __guests-col УДАЛЕНЫ. Причина: они ломали
       absolute-layout uHotels (контейнер position:relative + две
       position:absolute кнопки с pseudo ::before/::after для −/+).
       На десктопе uHotels-default корректен — DOM/стили одинаковые,
       отдельные мобильные правила не нужны. */

    /* v23: GRID БЕЗ .is-open ANCESTOR — срабатывает всегда при
       mobile viewport, защищает от гонки рендера (iOS Safari
       иногда устанавливает .is-open позже, чем рендерит календарь). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-week-day-names"] {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-days"] {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-week-day-name"]:not([class*="-names"]) {
        text-align: center !important;
        min-width: 0 !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"]:not([class*="-date"]):not([class*="-text"]) {
        text-align: center !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* v23: восстановить видимость × на __dropdown-close. uHotels рисует
       крестик через ::after с SVG-X, но что-то в v22 его перекрывало
       (overflow/position). Задаём явно: absolute в углу, круглый серый
       фон, inline-data-URI с SVG × (stroke #1e261f). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-close"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: absolute !important;
        top: 16px !important;
        right: 16px !important;
        width: 32px !important;
        height: 32px !important;
        z-index: 10 !important;
        background-color: rgba(0, 0, 0, 0.08) !important;
        border-radius: 50% !important;
        border: none !important;
        cursor: pointer !important;
        padding: 0 !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-close"]::after {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 12px !important;
        height: 12px !important;
        transform: translate(-50%, -50%) !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%231e261f' stroke-width='1.5' stroke-linecap='round'><path d='M2 2l8 8M10 2l-8 8'/></svg>") !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center !important;
    }
}

/* ============================================
   КОНЕЦ v22 + v23 mobile CSS-hotfix
   ============================================ */


/* ============================================
   v24 — MOBILE FIX: восстановление −/+ иконок в counter-btn гостей
   ============================================
   Изменения относительно v23:

   ПРОБЛЕМА: на мобайле (max-width:640px) кнопки +/- в попапе «Гости»
   отображаются как серые круги без знаков. На десктопе — работают.

   ПРИЧИНА: uHotels рисует знаки через pseudo-элементы
   __guests-counter-btn_minus::before (горизонтальная линия 12x2px)
   и __guests-counter-btn_plus::before + ::after (две линии, +).
   Pseudo позиционируются absolute (top:50%; left:50%; transform:translate).

   В v21 мы поставили display: inline-flex !important на counter-btn,
   НО не выставили position: relative. В итоге:
   - Если uHotels нативно ставит на btn position:relative — всё ок
     (десктоп, где наше mobile-правило не срабатывает).
   - На мобайле WebKit / Safari при inline-flex без явного position
     может сбрасывать containing block для abs-потомков, и pseudos
     улетают за пределы кнопки или получают width:0 из-за того, что
     uHotels стили pseudo в мобильной версии имеют меньший приоритет.

   ФИКС (только CSS, HTML/JS не трогаем):
   1) Явно выставляем position: relative !important на counter-btn
      (выше специфичность чем v21 — 6x[class*=]).
   2) Принудительно восстанавливаем pseudos с тем же визуалом что и
      десктопный uHotels: прямоугольники 12x2 (минус) и 12x2 + 2x12 (плюс),
      цвет #1e261f, центр через top/left 50% + translate.
   3) overflow:visible на btn — гарантируем что pseudos не обрежутся.

   БЕЗОПАСНОСТЬ:
   - Не удаляем НИ ОДНО v21/v22/v23 правило.
   - Работает только в @media (max-width:640px) — десктоп не задет.
   - Календарь (grid-days, weekdays, __dropdown-close крестик) не задет.
   - Селекторы высокой специфичности, не конфликтуют с v9 модалкой.
   ============================================ */

@media (max-width: 640px) {
    /* 1) Counter-btn: гарантируем position:relative + overflow:visible,
       чтобы pseudo ::before/::after нашли containing block и не обрезались.
       Перебиваем v21 (0,3,0) через 6x дубликата [class*="booking-widget-"] +
       1x [class*="js-booking-widget-"] = (0, 9, 0). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-minus"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-plus"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-dec"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-inc"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-counter-btn"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_minus"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_plus"] {
        position: relative !important;
        overflow: visible !important;
    }

    /* 2a) ПСЕВДО-ЗНАК «МИНУС» — горизонтальная линия 12x2px в центре кнопки.
       Селектор ловит и __guests-counter-btn_minus, и общие -minus/-dec
       (на случай если uHotels использует разные имена в разных версиях).
       Специфичность (0, 9, 1) за счёт 6x + pseudo. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_minus"]::before,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-minus"]::before,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-dec"]::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 12px !important;
        height: 2px !important;
        transform: translate(-50%, -50%) !important;
        background-color: #1e261f !important;
        background-image: none !important;
        border-radius: 1px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 2b) ПСЕВДО-ЗНАК «ПЛЮС» — горизонтальная линия 12x2px (::before). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_plus"]::before,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-plus"]::before,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-inc"]::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 12px !important;
        height: 2px !important;
        transform: translate(-50%, -50%) !important;
        background-color: #1e261f !important;
        background-image: none !important;
        border-radius: 1px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 2c) ПСЕВДО-ЗНАК «ПЛЮС» — вертикальная линия 2x12px (::after). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_plus"]::after,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-plus"]::after,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-"][class*="-inc"]::after {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 2px !important;
        height: 12px !important;
        transform: translate(-50%, -50%) !important;
        background-color: #1e261f !important;
        background-image: none !important;
        border-radius: 1px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* ============================================
   КОНЕЦ v24 mobile counter icons fix
   ============================================ */


/* ============================================
   v25 — ПОЛНЫЙ ФИКС МОБИЛЬНОЙ ВЕРСИИ (counter + row layout)
   ============================================
   БАЗА: v24 (все правила выше не трогаются).

   ПРОБЛЕМА, подтверждённая через живой MCP-инспект viewport 400px:
   1. __guests-counter-btn имеет computed width:0 height:0 display:inline-block
      border-radius:0 background:rgb(240,240,240) padding:1px 6px.
      uHotels-mobile-CSS форсит эти значения, наши v21+v24 правила (с
      селектором -guests- через одинарный дефис) НЕ МАТЧАТ реальный DOM
      __guests-counter-btn (двойное подчёркивание). Это root cause всей
      мобильной поломки.
   2. __guests-row имеет display:block (на десктопе — flex) → метка
      «Взрослые» и счётчик идут в два ряда, а не side-by-side.
   3. __guests-counter имеет display:block → input + btnMinus + btnPlus
      идут inline-stream без центрирования.
   4. Pseudo ::before/::after от v24 срабатывают, но внутри 0×0 box'а
      отображаются как 12×2 / 2×12 чёрточки без обрамляющего круга,
      что создаёт впечатление «серые точки с палочками».

   ФИКС (только mobile, @media max-width: 640px, десктоп не трогаем):
   A. Правильные селекторы через __guests- (двойное подчёркивание),
      специфичность (0, 9, 0) через 9x дубликат [class*="booking-widget-"].
   B. __guests-row → flex align-items:center justify-content:space-between
      gap:12px.
   C. __guests-col → flex align-items:center (первый col — с меткой —
      flex:1 min-width:0; остальные — flex-shrink:0 gap:8px).
   D. __guests-counter → flex align-items:center justify-content:flex-end
      gap:8px flex-shrink:0.
   E. __guests-counter-input → 28px × 32px text-align:center
      font-weight:600 font-size:16px no-border no-bg.
   F. __guests-counter-btn → 32×32 круг (border-radius:50%)
      display:inline-flex align-items:center justify-content:center
      padding:0 position:relative background:rgba(0,0,0,0.08)
      flex-shrink:0. БЕЗ 0×0 уже, с нормальным containing block для pseudo.
   G. __guests-lable → font-family:Manrope font-size:15px
      font-weight:500 color:#1e261f.
   H. Pseudo ::before/::after — переписываем v24 правила, теперь внутри
      32×32 box'а они будут по центру.

   БЕЗОПАСНОСТЬ:
   - Только @media (max-width: 640px) — десктоп не задет.
   - Все селекторы через __guests- (двойное подчёркивание) — нет риска
     задеть __calendar-* / __cell / __field.
   - Не удалено НИ ОДНО существующее правило v1–v24.
   - Ниже v24-pseudo правил каскадно, та же или выше специфичность.
   ============================================ */

@media (max-width: 640px) {
    /* A. ROW: на мобайле стакаем cols вертикально по умолчанию.
       Реальный DOM uHotels: row 0 может содержать два col (взрослые и дети),
       каждый со своей меткой+счётчиком — на 328px-экране они не помещаются
       рядом. Поэтому flex-direction: column, каждый col занимает всю ширину. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-row"] {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 12px !important;
        margin-bottom: 12px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* A2. ROW с `-child-row` (возраст ребёнка) — там 2 col: label + btn.
       Для них лучше горизонтально: label слева, btn справа. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    /* B. COL: flex-row, метка слева, контент справа (label + counter). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-col"] {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* B2. В age-row col'ы уже половинки, не нужна фул-ширина, но нужна
       корректная вертикальная центровка. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] [class*="__guests-col"] {
        width: auto !important;
        flex: 0 1 auto !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] [class*="__guests-col"]:first-child {
        flex: 1 1 auto !important;
        justify-content: flex-start !important;
    }

    /* C. COUNTER: − N + на одной строке, компактно, выровнено справа */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter"]:not([class*="__guests-counter-btn"]):not([class*="__guests-counter-input"]) {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: 0 !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* D. COUNTER-INPUT: цифра по центру, без рамок, 28px wide */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-input"] {
        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;
        height: 32px !important;
        padding: 0 !important;
        margin: 0 !important;
        text-align: center !important;
        font-family: 'Manrope', sans-serif !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        color: #1e261f !important;
        -webkit-text-fill-color: #1e261f !important;
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        outline: none !important;
        -webkit-appearance: none !important;
        -moz-appearance: textfield !important;
        appearance: none !important;
        flex: 0 0 auto !important;
        display: inline-block !important;
        box-sizing: border-box !important;
        line-height: 32px !important;
    }

    /* E. COUNTER-BTN: 32×32 круг, серый фон, центр для pseudo.
       Это ГЛАВНОЕ правило v25 — перебивает uHotels-mobile width:0 height:0. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn"] {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
        max-height: 32px !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        border-radius: 50% !important;
        background-color: rgba(0, 0, 0, 0.08) !important;
        background-image: none !important;
        position: relative !important;
        overflow: visible !important;
        cursor: pointer !important;
        flex: 0 0 auto !important;
        vertical-align: middle !important;
        box-sizing: border-box !important;
        font-size: 0 !important;
        line-height: 0 !important;
        color: transparent !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        outline: none !important;
        box-shadow: none !important;
    }

    /* E-hover/active */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn"]:hover,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn"]:active {
        background-color: rgba(46, 164, 79, 0.18) !important;
    }

    /* F. LABEL — Manrope 15/500 */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-lable"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-label"] {
        font-family: 'Manrope', sans-serif !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        color: #1e261f !important;
        letter-spacing: -0.02em !important;
        line-height: 1.2 !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        white-space: normal !important;
    }

    /* G. PSEUDO — ПЕРЕНАБИВАЕМ v24 с ПОЛНОЙ специфичностью (0,9,1).
       Теперь внутри 32×32 box'а pseudo center = (16, 16), pseudo 12×2
       и 2×12 рисуются точно по центру видимого круга. Цвет #1e261f. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_minus"]::before,
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_plus"]::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 12px !important;
        height: 2px !important;
        transform: translate(-50%, -50%) !important;
        background-color: #1e261f !important;
        background-image: none !important;
        border-radius: 1px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_plus"]::after {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 2px !important;
        height: 12px !important;
        transform: translate(-50%, -50%) !important;
        background-color: #1e261f !important;
        background-image: none !important;
        border-radius: 1px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* H. Гасим ::after на _minus */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-counter-btn_minus"]::after {
        content: none !important;
        display: none !important;
    }

    /* I. BW-AGE-ROW: последний col с кнопкой — sizing по контенту справа */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] [class*="__guests-col"]:last-child {
        flex: 0 0 auto !important;
        justify-content: flex-end !important;
    }

    /* K. Убираем возможный overflow на row/col */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-row"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-col"] {
        overflow: visible !important;
    }

    /* L. padding-top для dropdown-content попапа гостей, чтобы первая
       строка «Взрослые» не заезжала под кнопку закрытия × (×-btn позиционирован
       top:16 right:16, ширина 32). Даём content топ-paddingum 48px. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="__dropdown-content"] {
        padding-top: 48px !important;
    }

    /* M. Дополнительные отступы для body content попапа — чтобы bw-age-btn
       не прилипала к краям. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown_guests"].is-open [class*="__dropdown-content"] {
        padding-left: 20px !important;
        padding-right: 20px !important;
        padding-bottom: 20px !important;
    }
}

/* ============================================
   КОНЕЦ v25 mobile fix (counter + rows + cols)
   ============================================ */


/* ============================================
   v26 MOBILE HOTFIX — календарные tooltip'ы и «Готово»
   Дата: 2026-04-19
   Только @media (max-width: 640px).
   Десктоп не задет. Правила только добавлены в конец.
   ============================================ */

@media (max-width: 640px) {

    /* N. Скрыть hover-tooltip'ы в календаре на мобилке.
       На десктопе uHotels показывает «Проживание невозможно» / «Заезд невозможен»
       при наведении мыши на недоступный день — это hover-фича. На мобилке
       (где hover нет) эти tooltip'ы рендерятся со статическим display:block
       и сыплются вниз под календарь/под каждую дату текстом. Полностью прячем. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip-content"] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        height: 0 !important;
        width: 0 !important;
        max-width: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
        position: absolute !important;
        clip: rect(0, 0, 0, 0) !important;
    }

    /* O. Кнопка «Готово» в футерах попапов (гости + календарь) — уменьшить на мобилке.
       Десктоп: min-height: 48px, padding: 16px 20px, font-size: 20px, font-weight: 500
       (в реальности 54×320 с рамкой) — на мобилке 400px viewport это слишком громоздко.
       Делаем h=44, padding 10×16, font-size 15, и width 100% (убираем 280px из v17-2). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer-btn"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-guests-submit"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-calendar-submit"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding: 10px 16px !important;
        font-size: 15px !important;
        line-height: 1.2 !important;
        font-weight: 500 !important;
        border-radius: 52px !important;
        box-sizing: border-box !important;
    }

    /* P. Футер попапов — компактный контейнер вокруг кнопки. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-footer"] {
        padding: 12px 20px !important;
        min-height: 0 !important;
    }
}

/* ============================================
   КОНЕЦ v26 mobile hotfix
   ============================================ */


/* ============================================
   v27 MOBILE HOTFIX — календарь: стрелки, ячейки, цены, статусы
   Дата: 2026-04-19
   Только @media (max-width: 640px).
   Десктоп не задет. Правила только добавлены в конец.
   ============================================ */

@media (max-width: 640px) {

    /* Q. Скрыть сломанные на мобилке arrow-кнопки навигации.
       На мобилке __dropdown-arrow_prev/next рендерятся как пустые серые
       полосы 336×6 над календарём (выглядит как «две пустые серые строки»).
       На мобилке горизонтальная навигация не нужна — пользователь скроллит
       месяцы вертикально. Полностью прячем. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-arrow_prev"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-arrow_next"] {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        max-height: 0 !important;
        max-width: 0 !important;
        overflow: hidden !important;
    }

    /* R. Ячейки календаря — квадратные 44×44 с вертикальным центром содержимого.
       Было: 48×22 (просто block с текстом), рвало grid, все даты выглядели
       одинаково нестилизованными. Теперь: flex-column с датой сверху, ценой снизу. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"]:not([class*="week-day-name"]):not([class*="day-date"]):not([class*="day-text"]):not([class*="__calendar-days"]) {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
        font-family: 'Manrope', sans-serif !important;
        position: relative !important;
    }

    /* R2. Grid календаря — 7×44px с 4px gap, центрированный. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-days"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-week-day-names"] {
        grid-template-columns: repeat(7, 44px) !important;
        gap: 4px !important;
        justify-content: center !important;
    }

    /* S. Число даты внутри ячейки — 15px, Manrope 500, темно-зелёный. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"] [class*="__calendar-day-date"] {
        font-size: 15px !important;
        font-weight: 500 !important;
        line-height: 1 !important;
        color: #1e261f !important;
        display: block !important;
        text-align: center !important;
        font-family: 'Manrope', sans-serif !important;
    }

    /* T. Цена под числом — маленький 9px, чтобы уместилась в 44px-ячейку. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"] [class*="__calendar-day-text"] {
        font-size: 9px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        color: #5a5a5a !important;
        margin-top: 2px !important;
        display: block !important;
        text-align: center !important;
        white-space: nowrap !important;
        font-family: 'Manrope', sans-serif !important;
    }

    /* U. Недоступные даты [outofrange] — серый фон + перечёркнутое число.
       На десктопе эти даты показываются с крестиком × и серым фоном.
       На мобилке повторяем: серый bg + strikethrough. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][outofrange] {
        background-color: rgba(0, 0, 0, 0.06) !important;
        cursor: not-allowed !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][outofrange] [class*="__calendar-day-date"] {
        color: rgba(30, 38, 31, 0.35) !important;
        text-decoration: line-through !important;
        text-decoration-thickness: 1px !important;
    }

    /* V. Пустые ячейки [empty] — невидимы (заполнители начала месяца). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][empty] {
        background-color: transparent !important;
        visibility: hidden !important;
    }

    /* W. Доступные даты [selectable] — чёткий белый фон + pointer cursor. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][selectable] {
        cursor: pointer !important;
        background-color: #ffffff !important;
        color: #1e261f !important;
    }

    /* X. Названия месяцев Manrope 15/600, левое выравнивание. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-month-name"] {
        font-size: 15px !important;
        font-weight: 600 !important;
        text-align: left !important;
        padding: 16px 0 8px !important;
        color: #1e261f !important;
        font-family: 'Manrope', sans-serif !important;
    }

    /* Y. Заголовки дней недели Пн/Вт/... — серый 12px. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-week-day-name"] {
        font-size: 12px !important;
        font-weight: 400 !important;
        color: #5a5a5a !important;
        text-align: center !important;
        padding: 4px 0 !important;
        font-family: 'Manrope', sans-serif !important;
    }
}

/* ============================================
   КОНЕЦ v27 mobile hotfix
   ============================================ */

/* ============================================
   v28 mobile hotfix
   -------------------------------------------
   Фиксы поверх v27 (CSS-only, HTML/JS не тронуты):
   Z1. Попап гостей — контейнер __dropdown-content с border-box (убираем overflow
       из-за content-box + фиксированной ширины).
   Z2. Центрирование рядов попапа гостей (Взрослые / Дети / Возраст ребёнка)
       — max-width 280px + margin auto (строки были прижаты к правому краю).
   Z3. Летние даты июнь+ с атрибутами [selectable][is-disabled] — серый фон,
       перечёркнутое число, скрытая цена (на десктопе это [outofrange]+×,
       но на мобилке uHotels помечает их другой парой атрибутов).
       Комбинированный селектор [selectable][is-disabled] даёт +1 specificity
       против v27's [selectable] — (0, 12, 0) > (0, 11, 0).
   ============================================ */
@media (max-width: 640px) {
    /* Z1. Контейнер попапа __dropdown-content — border-box, чтобы padding не
       раздувал итоговую ширину за пределы попапа. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__dropdown-content"] {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Z2a. Обычные ряды (Взрослые / Дети): колонки __guests-col внутри
       __guests-row ограничиваем 280px с auto-margin для центрирования. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__guests-row"]:not([class*="-child-row"]) [class*="__guests-col"] {
        max-width: 280px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }

    /* Z2b. Ряд ребёнка (js-booking-widget-XXXXXX-child-row) центрируем
       на уровне САМОГО ряда (у него 2 колонки + dropdown возраста; если
       ограничить отдельные колонки, они расползаются). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] {
        max-width: 280px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Z2c. Внутри child-row сами колонки без доп. ограничений, чтобы ряд
       занял всю свою ширину (280px уже задана на уровне ряда). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] [class*="__guests-col"] {
        max-width: none !important;
        margin: 0 !important;
    }

    /* Z2d. Метка «Возраст ребёнка» не переносится на 2 строки при узких 280px. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="js-booking-widget-"][class*="-child-row"] [class*="__guests-lable"] {
        white-space: nowrap !important;
    }

    /* Z3a. Летние "недоступные" даты [selectable][is-disabled] — серый фон,
       not-allowed курсор. Комбинированный селектор +1 specificity над v27's
       [selectable] одиночным — (0, 12, 0) > (0, 11, 0). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][selectable][is-disabled] {
        background-color: rgba(0, 0, 0, 0.06) !important;
        cursor: not-allowed !important;
    }

    /* Z3b. Число даты — серое полупрозрачное с strikethrough. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][selectable][is-disabled] [class*="__calendar-day-date"] {
        color: rgba(30, 38, 31, 0.35) !important;
        text-decoration: line-through !important;
    }

    /* Z3c. Цена у недоступных дат — не показываем (на десктопе тоже скрыта). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][selectable][is-disabled] [class*="__calendar-day-text"] {
        display: none !important;
    }
}

/* ============================================
   КОНЕЦ v28 mobile hotfix
   ============================================ */

/* ============================================
   v29 mobile hotfix — fix кликов по календарю
   -------------------------------------------
   Баг v27/v28: клик по дате в мобильном календаре ставит дату,
   смещённую на 7 дней назад (8 мая → 1 мая, 22 → 15).

   Root cause (двойной — CSS + JS):
   1. CSS: v27 R2 gap: 4px между ячейками создаёт 4px «мёртвые
      зоны», где elementFromPoint возвращает __calendar-days
      (без click-handler), а не ячейку. Touch с радиусом ~10px
      на мобилке может попадать в эту зону.
   2. CSS: target клика часто — дочерний __calendar-day-date
      или __calendar-day-text, а не сам __calendar-day.
   3. JS: popup календаря на мобилке перепарентирован в body.
      uHotels outside-click handler (scripts.js:852-857)
      закрывает попап при любом клике вне .js-XXX-date-cell.
      Тот же паттерн, что v26 фиксил для __dropdown_guests.

   v29 CSS-фикс:
   AA. __calendar-days grid 7×48, gap: 0 — без «мёртвых зон».
   AB. __calendar-day 48×48 + padding 2px + background-clip
       content-box → визуально 44×44, click-area полная 48×48.
   AC. pointer-events: none на __calendar-day-date, -day-text,
       -tooltip, -tooltip-content → target клика ВСЕГДА сам
       __calendar-day.
   AD. __calendar-day[empty] 48×48, pointer-events: none.

   + ОБЯЗАТЕЛЬНЫЙ JS-ПАТЧ (в Tilda — см. changelog v29):
   добавить class="js-booking-widget-XXX-date-cell" на
   __dropdown_calendar, чтобы outside-click handler не закрывал
   попап при кликах на ячейки. 100% аналогия v26-патча.
   ============================================ */
@media (max-width: 640px) {
    /* AA. __calendar-days — grid 7×48px, gap: 0, без «мёртвых зон». */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-days"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-week-day-names"] {
        display: grid !important;
        grid-template-columns: repeat(7, 48px) !important;
        gap: 0 !important;
        justify-content: center !important;
    }

    /* AB. __calendar-day — 48×48 click-zone, visual 44×44 через
       padding 2px + background-clip content-box. Точная селектор-
       цепочка от v27 R, чтобы перезаписать его (v29 после в файле). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"]:not([class*="week-day-name"]):not([class*="day-date"]):not([class*="day-text"]):not([class*="__calendar-days"]) {
        width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        padding: 2px !important;
        background-clip: content-box !important;
        box-sizing: border-box !important;
        pointer-events: auto !important;
    }

    /* AC. Дочерние элементы ячейки — pointer-events: none.
       Гарантирует, что target клика ВСЕГДА __calendar-day. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day-date"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day-text"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-tooltip-content"] {
        pointer-events: none !important;
    }

    /* AD. Пустые ячейки заполнителя месяца — тоже 48×48,
       но pointer-events: none чтобы клики на них никогда не
       триггерили uHotels handler (у них нет data-date). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="__calendar-day"][empty] {
        width: 48px !important;
        height: 48px !important;
        padding: 2px !important;
        pointer-events: none !important;
    }
}


/* КОНЕЦ v29 mobile hotfix */

/* ============================================
   v31 mobile — подсветка выбранного диапазона
   календарных дат + iOS Safari Готово safe-area
   -------------------------------------------
   Баги v29:
   1. Нет визуальной индикации выбранных дат —
      [rangestart]/[rangeend]/[inrange] атрибуты
      ставятся uHotels, но CSS не рисует подсветку.
   2. Хуже: uHotels также ставит [is-disabled] на
      ячейки внутри диапазона, которые через v28 Z3
      (__calendar-day[selectable][is-disabled]) красятся
      серым + strikethrough -> выбранный диапазон визуально
      = недоступные даты. Пользователь не понимает что
      выбрано.
   3. iOS Safari: Готово-кнопка у нижнего края viewport —
      тапы съедаются URL-bar / gesture-zone, срабатывает
      только с 2-3 раза.

   v31 CSS-фикс:
   AE1. [inrange]:not([rangestart]):not([rangeend]) —
        светло-зелёный фон + нормальный тёмный текст,
        перебивает v28 Z3 серый (специфичность 0,13,0 > 0,12,0).
   AE2. [rangestart] / [rangeend] — брендовый зелёный фон +
        белый текст (endpoint'ы диапазона). Специфичность
        0,14,0 перебивает всё (включая v28 Z3 с is-disabled).
   AE3. Цена (__calendar-day-text) в ячейках диапазона —
        белая на endpoint'ах, серая в середине (display: block
        чтобы не ушла в display:none от v28 Z3c для is-disabled).
   AE4. Footer попапа календаря — padding-bottom с safe-area-inset
        чтобы Готово была выше iOS URL-bar zone.
   AE5. Готово-кнопка — touch-action: manipulation чтобы убрать
        300ms double-tap delay и избежать gesture-конфликтов.
   ============================================ */
@media (max-width: 640px) {
    /* AE1. Середина выбранного диапазона (inrange без rangestart/rangeend) —
       светло-зелёный фон. Перебивает v28 Z3 серый (и у ячеек с is-disabled тоже).
       Специфичность: 9× [class*="booking-widget-"] + [class*="__calendar-day"] +
       [selectable] + [is-disabled] + [inrange] = (0, 13, 0) > v28 Z3 (0, 12, 0).
       Вариант без [is-disabled] — на случай, если uHotels не ставит его
       (селектор [inrange]:not(start):not(end) тоже подхватит). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange]:not([rangestart]):not([rangeend]),
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange]:not([is-disabled]):not([rangestart]):not([rangeend]) {
        background-color: rgba(46, 164, 79, 0.18) !important;
        cursor: pointer !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange]:not([rangestart]):not([rangeend]) [class*="__calendar-day-date"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange]:not([is-disabled]):not([rangestart]):not([rangeend]) [class*="__calendar-day-date"] {
        color: #1e261f !important;
        text-decoration: none !important;
    }
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange]:not([rangestart]):not([rangeend]) [class*="__calendar-day-text"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange]:not([is-disabled]):not([rangestart]):not([rangeend]) [class*="__calendar-day-text"] {
        color: #5a5a5a !important;
        display: block !important;
    }

    /* AE2. Endpoint'ы диапазона (rangestart и rangeend) — брендовый зелёный.
       Специфичность: 9× + [class*="__calendar-day"] + [selectable] + [is-disabled] +
       [inrange] + [rangestart|rangeend] = (0, 14, 0) — перебивает всё предыдущее. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangestart],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangeend],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangestart],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangeend] {
        background-color: #2ea44f !important;
        cursor: pointer !important;
    }

    /* AE3. Число endpoint'а — белое, без strikethrough. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangestart] [class*="__calendar-day-date"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangeend] [class*="__calendar-day-date"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangestart] [class*="__calendar-day-date"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangeend] [class*="__calendar-day-date"] {
        color: #ffffff !important;
        text-decoration: none !important;
    }

    /* AE3b. Цена endpoint'а — полупрозрачно-белая, видна (не display:none). */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangestart] [class*="__calendar-day-text"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][inrange][rangeend] [class*="__calendar-day-text"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangestart] [class*="__calendar-day-text"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__calendar-day"][selectable][is-disabled][inrange][rangeend] [class*="__calendar-day-text"] {
        color: rgba(255, 255, 255, 0.9) !important;
        display: block !important;
    }

    /* AE4. Footer попапа календаря — safe-area padding снизу чтобы
       Готово не оказалась в iOS URL-bar / gesture zone. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__dropdown-footer"] {
        padding-bottom: max(16px, env(safe-area-inset-bottom, 16px)) !important;
    }

    /* AE5. Готово-кнопка — убираем 300ms double-tap delay + gesture-конфликты. */
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="-calendar-submit"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="-guests-submit"],
    [class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"][class*="booking-widget-"] [class*="__dropdown-footer-btn"] {
        touch-action: manipulation !important;
        -webkit-touch-callout: none !important;
    }
}

/* ============================================
   КОНЕЦ v31
   ============================================ */
