/* obj-landing.css — посадочная объектов v3 (obj_landing/30_view.php; t_638e8fde, t_1a12f4d8).
   Раскладка, шапка («Куда | Даты и гости»), ряд инструментов, карта (#hfMapPane, превью .hf-dock), карточки и блоки ниже выдачи —
   стили списка отелей (hotels-list.css) и кита (vse-ui.css): посадочная = тот же список. Здесь — только отличия посадочной.
   Только токены кита. */

/* ---------- чип фильтра страницы: явный крестик VS::chip x вместо текстового «×» ::after выбранного .hf-qchip (vse-ui.css 2254/2275).
   ::after остаётся зоной нажатия (vse-ui.css 2394), ему нужен relative у чипа. ВРЕМЕННО здесь: vse-ui.css занят t_5353f35e —
   перенести к правилам .vs-chip__x в vse-ui.css (тогда же подхватят подборки отелей, t_6f89b5ee). ---------- */
.ol-wrap .vs-chip:has(> .vs-chip__x){position:relative;}
.ol-wrap .hf-qchip.is-on:has(> .vs-chip__x)::after{content:'';margin:0;}

/* ---------- панель «Фильтры» 1024–1279 (obj-landing.js): выезжает справа, как на главной v3 (vsh-home.css .vsh-d3panel).
   ≥1280 — панель слева от широкой карты ведёт hf-deskmap.js (как у отелей); телефон — нижняя шторка кита.
   Оболочка .hf-fpanel обязательна: стили шторки в ките — «.hf-fpanel #hfFilterSheet». ДАЛЬШЕ: одно правило в ките для главной и посадочных. ---------- */
html.ol-lock,html.ol-lock body{overflow:hidden;}
@media (min-width:1024px){
  .ol-fpanel{display:block;position:fixed;top:16px;right:16px;bottom:16px;width:min(560px,calc(100vw - 32px));z-index:1200;transform:translateX(calc(100% + 32px));visibility:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),visibility 0s linear .25s;}
  .ol-fpanel.is-open{transform:none;visibility:visible;transition:transform .25s cubic-bezier(.2,.8,.2,1);}
  .ol-fpanel #hfFilterSheet{height:100%;max-height:none;transform:none !important;opacity:1 !important;visibility:visible !important;}
}
@media (max-width:1023.98px){ .ol-fpanel{display:contents !important;} }
/* у шторки v2 кит держит левую колонку под навигацию по разделам (hf-sheet-nav.js) — у посадочной групп пять, навигации нет: одна колонка */
#hfFilterSheet.ol-sheet.hf-sheet--v2{grid-template-columns:minmax(0,1fr) !important;}
#hfFilterSheet.ol-sheet.hf-sheet--v2 > .hf-sheet__body{grid-column:1 / -1 !important;}
/* цена: первой, поля «от–до» и быстрый выбор видны сразу (у отелей поля прячутся за гистограммой hf-price-range.js) */
#hfFilterSheet.ol-sheet #hfHomePrice{order:-1;}
#hfFilterSheet.ol-sheet #hfGrpHot{order:-2;}   /* t_5fcfa0f0: «Часто выбирают» — первым, как у отелей */
#hfFilterSheet.ol-sheet #hfGrpPrice .hf-row2{display:flex !important;margin-top:4px;}
#hfFilterSheet.ol-sheet.hf-sheet--v2 #hfGrpPrice .hf-ppre{display:flex;}
#hfFilterSheet.ol-sheet .hf-chip:disabled{opacity:.4;cursor:default;}

/* ---------- блоки ниже выдачи ---------- */
.ol-prices .vs-facts{margin-bottom:var(--sp-4);}
.ol-more{margin-top:var(--sp-4);}

/* ---------- даты поверх выдачи (t_1a12f4d8) ----------
   Поле дат (#olFieldDates) на ≥1024 переезжает в «Куда | Даты и гости» шапки (VS::search d), на телефоне даты открывает кнопка
   нижней панели — исходное место поля и поле гостей (гости внутри экрана дат) не показываем. */
.ol-wrap .ol-dates{display:none;}
/* занятые на выбранные даты — приглушены (подпись «Занято на эти даты» — vs-price--muted кита), в конце страницы */
.ol-wrap .hf-card.is-busy{opacity:.55;}
.ol-pricing .ol-wrap .hf-grid{cursor:progress;}

/* ---------- t_5fcfa0f0: экран «Куда» (#olWhere = VS::sheet + VS::field + VS::where; поведение — obj-landing.js) ----------
   Телефон — шторка снизу почти во весь экран (геометрия шторок кита), десктоп — окно под полем «Куда» (JS ставит left/top/width).
   Видны первые 12 мест, остальные — по поиску (.is-q). */
#olWhere{max-height:calc(100dvh - 40px);}
#olWhere .vs-sheet__body,#olWhere > .hf-sheet__body{overflow-y:auto;-webkit-overflow-scrolling:touch;}
#olWhere .ol-where__qf{margin:4px 16px 12px;width:auto;max-width:none;box-sizing:border-box;}
#olWhere .vs-where{padding:0 16px 16px;}
#olWhere:not(.is-q) .vs-where__chips > [data-wq-loc]:nth-child(n+13){display:none;}
#olWhere [data-wq-loc][hidden]{display:none !important /*!A: VS::chip задаёт display у чипа, [hidden] без этого не прячет*/;}
#olWhere.is-q .vs-where__act{display:none;}
.ol-where__none{margin:0 16px 16px;font:400 var(--fs-14)/1.4 var(--font);color:var(--muted);}
@media (min-width:1024px){
  #olWhere{position:fixed;right:auto;bottom:auto;max-height:min(640px,calc(100vh - 120px));border-radius:var(--r-lg);box-shadow:var(--sh-3, 0 12px 40px rgba(18,33,59,.18));
    transform:none !important /*!A: шторка кита на десктопе уезжает вниз*/;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility 0s linear .15s;z-index:1300;display:flex;flex-direction:column;}
  #olWhere.hf-on{opacity:1;visibility:visible;transition:opacity .15s ease;}
  #olWhere .vs-sheet__grab{display:none;}
}

/* ---------- t_5fcfa0f0: режим мест на карте (Метро · Районы · Вокзалы · Аэропорты) — метки мест ----------
   Цвет точки — ветка метро (--c), у районов/вокзалов — синий; текущее место — красное (показываем «ты здесь»). */
.ol-gpt{display:inline-flex;align-items:center;gap:6px;transform:translate(-7px,-50%);white-space:nowrap;cursor:pointer;}
.ol-gpt i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--card);border:3px solid var(--c, var(--blue));box-shadow:0 1px 3px rgba(18,33,59,.25);}
.ol-gpt span{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);background:var(--card);color:var(--ink);
  font:600 12px/1.2 var(--font);box-shadow:0 1px 4px rgba(18,33,59,.18);}
.ol-gpt b{color:var(--blue);font-weight:700;}
.ol-gpt b:empty{display:none;}
.ol-gpt:hover span{box-shadow:0 0 0 2px var(--blue);}
.ol-gpt.is-on i{border-color:var(--red);background:var(--red);}
.ol-gpt.is-on span{background:var(--red);color:var(--on-accent);}
.ol-gpt.is-on b{color:var(--on-accent);}
.ol-gpt--rayon i{display:none;}
.ol-gpt--rayon{transform:translate(-50%,-50%);}
/* капсула режимов: кнопки не сжимаются (5 режимов + «Фильтры» шире 375 — капсула листается) */
.ol-mmodes{overflow-x:auto;scrollbar-width:none;}
.ol-mmodes button{flex:0 0 auto !important /*!A: общий сброс кнопок карты сжимал подписи («Квартир», «Вокзалы» налезали)*/;}
/* десктоп: капсула режимов видна только пока режим мест включён (у отелей — только на раскрытой карте) */
@media (min-width:1280px){
  /* .hf-dm и .ol-geo-on — оба на <html> (было «html.ol-geo-on .hf-dm …» — не срабатывало никогда) */
  html.ol-geo-on.hf-dm .ol-mmodes{display:flex !important /*!A: перебивает .hf-dm .hf-mmodes{display:none !important}*/;}
  /* видимая часть карты — от --hf-cut до ± справа: капсула в неё помещается и листается, не налезая на ± и «Фильтры» */
  html.ol-geo-on.hf-dm .ol-mmodes{max-width:calc(100% - var(--hf-cut) - 14px - 64px);overflow-x:auto;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),transparent);}
  html.ol-geo-on.hf-dm .ol-mmodes .hf-mmodes__f{display:none !important /*!A: «Фильтры» на десктопе уже есть в .hf-dm-ctl*/;}
  html.ol-geo-on.hf-dm .hf-dm-ctl{top:122px;}
  html.ol-geo-on.hf-dm .hf-dm-loc{display:none;}
}
