/* ==========================================================================
   Список отелей v3 (29.09.2026) — карточка и раскладка выдачи.
   t_181369c3 (карточка ← карточка варианта детальной), t_4d6569fe (раскладка + карта),
   t_19f611ae (метро), t_12f9ba70 (оценка словом), t_3b2ee782 (цена на даты), t_e5639578 (теги).
   Подключается ПОСЛЕ hotels-list-v2.css и перекрывает его. Только токены кита (/js/vse-ui.css).

   Моб (<600)   — одна колонка, вертикальная карточка: фото 16:10 → главное → цена + кнопка.
   600–1023     — две колонки вертикальных карточек.
   ≥1024        — карточка-строка (фото слева, главное, справа цена и кнопка), как вариант
                  на детальной; справа липкая карта (≥1280), 1024–1279 — карта по кнопке.
   ========================================================================== */

/* ---------- сетка выдачи ---------- */
.hf-cards.hf-cards--compwrap{display:block;padding-bottom:var(--sp-6);}
.hf-cards .items-list1,.hf-cards .group-content,.hf-cards .tab-pane{margin:0;padding:0;}
.hf-cards .catalog_block.items{display:grid !important;grid-template-columns:minmax(0,1fr);gap:var(--sp-4);margin:0 !important;padding:0 var(--sp-4);}
.hf-cards .catalog_block.items::before,.hf-cards .catalog_block.items::after{content:none;display:none;}
.hf-cards .catalog_block.items>.catalog-block-view__item{width:auto !important;max-width:none !important;min-width:0;float:none;padding:0 !important;margin:0 !important;display:flex;}
@media (min-width:600px){
  .hf-cards .catalog_block.items{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 var(--sp-6);gap:var(--sp-5);}
}
@media (min-width:1024px){
  .hf-cards .catalog_block.items{grid-template-columns:minmax(0,1fr);padding:0;gap:var(--sp-4);}
}

/* ---------- карточка: общее ---------- */
.hf-card.hf-card--v3{width:100%;height:auto;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:none;transition:box-shadow .2s ease,border-color .2s ease;}
@media (hover:hover){.hf-card.hf-card--v3:hover{box-shadow:var(--sh-2);border-color:var(--line-hover);}}
.hf-card--v3 .hf-card__ph{aspect-ratio:16/10;flex:none;border-radius:0;}
.hf-card--v3 .hf-card__ph img{width:100%;height:100%;object-fit:cover;}
.hf-card--v3 .hf-card__body{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-4);color:var(--ink);text-decoration:none;min-width:0;}
.hf-card--v3 .hf-card__body:hover{color:var(--ink);text-decoration:none;}
.hf-card--v3 .hf-card__main{display:flex;flex-direction:column;gap:6px;min-width:0;}

.hf-card--v3 h3.hf-card__nm{margin:0;min-height:0;font:600 var(--fs-17)/1.3 var(--font-display);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;}
.hf-card--v3 .hf-card__rate{min-height:0;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-14);color:var(--muted);}
.hf-card--v3 .hf-card__rate .vs-rate{flex:none;}
.hf-card--v3 .hf-card__rword{font-weight:600;color:var(--ink);}
.hf-card--v3 .hf-card__rword+.hf-card__rcnt::before{content:'·';margin-right:var(--sp-2);color:var(--muted-2);}

.hf-card--v3 .hf-card__loc{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--fs-14);color:var(--ink-2);}
.hf-card--v3 .hf-card__loc i{flex:none;width:9px;height:9px;border-radius:50%;background:var(--lc,var(--muted-3));}
.hf-card--v3 .hf-card__loc{flex-wrap:wrap;row-gap:0;}
.hf-card--v3 .hf-card__locn{min-width:0;}
.hf-card--v3 .hf-card__locm{flex:none;color:var(--muted);}
.hf-card--v3 .hf-card__locm::before{content:'·';margin-right:6px;color:var(--muted-2);}

.hf-card--v3 .hf-card__facts{min-height:0;font-size:var(--fs-14);line-height:1.4;color:var(--muted);white-space:normal;overflow:visible;}
.hf-card--v3 ul.hf-card__tags{display:flex;flex-wrap:wrap;gap:6px;min-height:0;margin:2px 0 0;padding:0;list-style:none;overflow:visible;}
.hf-card--v3 ul.hf-card__tags>li{margin:0;padding:3px 10px;border-radius:var(--r-pill);background:var(--paper);border:1px solid var(--line-2);font-size:var(--fs-12);font-weight:500;line-height:1.4;color:var(--ink-2);}
.hf-card--v3 ul.hf-card__tags>li::before{content:none;display:none;}

/* цена и кнопка */
.hf-card--v3 .hf-card__side{margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"avail avail" "price cta" "pn cta";align-items:end;column-gap:var(--sp-3);row-gap:2px;padding-top:var(--sp-3);border-top:1px solid var(--line-2);}
.hf-card--v3 .hf-card__avail{grid-area:avail;margin-bottom:4px;font-size:var(--fs-13);font-weight:600;color:var(--green);}
.hf-card--v3 .hf-card__avail::before{content:'';display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:currentColor;vertical-align:middle;}
.hf-card--v3 .hf-card__price{grid-area:price;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px;margin:0;font-size:inherit;color:var(--ink);}
.hf-card--v3 .hf-card__price b{font:700 var(--fs-20)/1.1 var(--font-display);white-space:nowrap;}
.hf-card--v3 .hf-card__price small{font-size:var(--fs-13);color:var(--muted);}
.hf-card--v3 .hf-card__price--muted small{font-size:var(--fs-14);}
.hf-card--v3 .hf-card__pnight{grid-area:pn;font-size:var(--fs-12);color:var(--muted);}
.hf-card--v3 .hf-card__cta{grid-area:cta;display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 var(--sp-4);border-radius:var(--r-m);background:var(--blue);color:var(--on-accent);font:600 var(--fs-14)/1 var(--font);white-space:nowrap;transition:background .15s ease;}
@media (hover:hover){.hf-card--v3 .hf-card__body:hover .hf-card__cta{background:var(--blue-deep);}}

/* ---------- ≥1024: карточка-строка ---------- */
@media (min-width:1024px){
  .hf-card.hf-card--v3{flex-direction:row;min-height:220px;}
  .hf-card--v3 .hf-card__ph{aspect-ratio:auto;width:clamp(220px,32%,300px);align-self:stretch;min-height:220px;}
  .hf-card--v3 .hf-card__ph{position:relative;}
  .hf-card--v3 .hf-card__ph>.hf-card__track,.hf-card--v3 .hf-card__ph>img{position:absolute;inset:0;width:100%;height:100%;}
  .hf-card--v3 .hf-card__ph .hf-card__track img{height:100%;object-fit:cover;}
  .hf-card--v3 .hf-card__body{flex-direction:row;align-items:stretch;gap:var(--sp-5);padding:var(--sp-4) var(--sp-5);}
  .hf-card--v3 .hf-card__main{flex:1;gap:var(--sp-2);}
  .hf-card--v3 h3.hf-card__nm{font-size:var(--fs-20);}
  .hf-card--v3 .hf-card__side{margin:0;flex:none;width:164px;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:2px;padding:0 0 0 var(--sp-5);border-top:0;border-left:1px solid var(--line-2);text-align:right;}
  .hf-card--v3 .hf-card__avail{margin:0 0 auto;}
  .hf-card--v3 .hf-card__price{justify-content:flex-end;}
  .hf-card--v3 .hf-card__price b{font-size:var(--fs-24);}
  .hf-card--v3 .hf-card__cta{margin-top:var(--sp-3);width:100%;}
}

/* ==========================================================================
   Карточка v4 (29.09.2026) — один в один элементы детальной (hotel-detail-v2.css):
   .hd-room--v3 (рамка 18px, подъём на ховер, подвал «цена | кнопка»), шапка (.hd-meta, .hd-badge),
   удобства (.hd-ampop__i). ≥1024 — как вариант на детальной: фото слева, справа тело и подвал.
   ========================================================================== */
.hf-card.hf-card--v4{border-radius:var(--r-l);border:1px solid var(--line);box-shadow:none;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;}
@media (hover:hover){.hf-card.hf-card--v4:hover{box-shadow:var(--sh-4);border-color:var(--line-hover);transform:translateY(-2px);}}
.hf-card--v4 .hf-card__body{gap:0;padding:0;}
.hf-card--v4 .hf-card__main{gap:0;padding:14px var(--sp-4) 0;}
.hf-card--v4 h3.hf-card__nm{margin:0 0 6px;font:600 var(--fs-17)/1.3 var(--font-display);letter-spacing:-.01em;}
.hf-card--v4 .hf-card__body:hover h3.hf-card__nm{color:var(--blue);}
.hf-card--v4 .hf-card__rate{gap:6px;margin:0 0 6px;font-size:var(--fs-13);color:var(--muted);}
.hf-card--v4 .hf-card__rate .vs-rate{font-size:12.5px;padding:2px 6px;}
.hf-card--v4 .hf-card__rword{font-size:var(--fs-14);font-weight:600;color:var(--ink);}
.hf-card--v4 .hf-card__loc{gap:5px;margin:0 0 8px;font-size:var(--fs-13);color:var(--muted);flex-wrap:wrap;}
.hf-card--v4 .hf-card__loc i{width:8px;height:8px;}
.hf-card--v4 .hf-card__locn{font-weight:600;color:var(--ink);}
.hf-card--v4 .hf-card__locm::before{content:'·';margin:0 5px 0 1px;}
/* бейджи сильных сторон — как .hd-badge под H1 детальной */
.hf-card--v4 .hf-card__badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;}
.hf-card--v4 .hd-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:var(--r-pill);background:var(--green-soft);color:var(--ink);font-size:var(--fs-13);line-height:1.2;font-weight:500;white-space:nowrap;}
.hf-card--v4 .hd-badge svg{width:15px;height:15px;flex:none;fill:none;stroke:var(--green);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.hf-card--v4 .hd-badge--heart svg{fill:var(--green);stroke:none;}
.hf-card--v4 .hd-badge b{font-weight:700;color:var(--green);}
/* удобства пилюлями с иконками — как «Что есть в отеле» на детальной */
.hf-card--v4 ul.hf-card__am{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0;list-style:none;}
.hf-card--v4 ul.hf-card__am>li{display:inline-flex;align-items:center;gap:6px;height:30px;margin:0;padding:0 11px 0 9px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);font:500 var(--fs-13)/1 var(--font);color:var(--ink);white-space:nowrap;}
.hf-card--v4 ul.hf-card__am>li::before{content:none;display:none;}
.hf-card--v4 ul.hf-card__am svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--red);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
/* характеристики — как .hd-room__specs: через «·», вместимость жирно */
.hf-card--v4 .hf-card__specs{margin:0 0 2px;font-size:var(--fs-14);line-height:1.5;color:var(--ink-2);}
.hf-card--v4 .hf-card__specs i{font-style:normal;margin:0 7px;color:var(--muted-2);}
.hf-card--v4 .hf-card__specs .is-b{font-weight:600;color:var(--ink);}
/* подвал — как .hd-room__buy: цена слева, кнопка справа */
.hf-card--v4 .hf-card__side{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"avail avail" "price cta" "pn cta";align-items:center;column-gap:var(--sp-3);row-gap:2px;margin-top:12px;padding:12px var(--sp-4) var(--sp-4);border-top:1px solid var(--line-2);}
.hf-card--v4 .hf-card__price{font:inherit;column-gap:6px;}
.hf-card--v4 .hf-card__price b{font:700 21px/1.15 var(--font-display);}
.hf-card--v4 .hf-card__price small{font:500 var(--fs-13)/1.2 var(--font);color:var(--muted);}
.hf-card--v4 .hf-card__price .hf-card__from{font:500 var(--fs-14)/1 var(--font);}
.hf-card--v4 .hf-card__pnight{font:500 12.5px/1.2 var(--font);}
.hf-card--v4 .hf-card__cta{min-height:44px;padding:0 18px;border-radius:var(--r-m);font:600 14.5px/1 var(--font);}
@media (min-width:1024px){
  .hf-card.hf-card--v4{display:grid;grid-template-columns:clamp(230px,34%,300px) minmax(0,1fr);min-height:0;}
  .hf-card--v4 .hf-card__ph{width:auto;min-height:230px;height:100%;contain:size;}
  .hf-card--v4 .hf-card__body{display:flex;flex-direction:column;padding:0;}
  .hf-card--v4 .hf-card__main{flex:1;padding:16px 20px 0;}
  .hf-card--v4 h3.hf-card__nm{font-size:19px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .hf-card--v4 .hf-card__side{width:auto;display:grid;margin:12px 0 0;padding:12px 20px 14px;border-left:0;border-top:1px solid var(--line-2);text-align:left;align-items:center;}
  .hf-card--v4 .hf-card__avail{margin:0 0 2px;}
  .hf-card--v4 .hf-card__price{justify-content:flex-start;}
  .hf-card--v4 .hf-card__price b{font-size:22px;}
  .hf-card--v4 .hf-card__cta{margin:0;width:auto;min-height:42px;}
}

/* ---------- раскладка страницы ≥1024: список + липкая карта ---------- */
@media (min-width:1024px){
  .hf-main{padding:0 var(--sp-6);}
  .hf-layout{display:block;}
  .hf-map-pane{display:none;}
}
@media (min-width:1280px){
  .hf-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(360px,34%,560px);gap:var(--sp-6);align-items:start;}
  .hf-map-pane{display:block;position:sticky;top:var(--sp-4);height:calc(100vh - 32px);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);}
}

/* ---------- ряд инструментов над выдачей: Фильтры слева, сортировка справа ---------- */
.hf-sortrow .hf-desk-filter-btn{display:none;}
@media (min-width:1024px){
  .hf-sortrow{padding:0 0 var(--sp-4);gap:var(--sp-3);}
  .hf-sortrow .hf-desk-filter-btn{position:static !important;display:inline-flex !important;align-items:center;gap:var(--sp-2);height:40px;margin:0 !important;padding:0 var(--sp-4);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card) !important;box-shadow:none !important;font:600 var(--fs-14)/1 var(--font);color:var(--ink);cursor:pointer;}
  .hf-sortrow .hf-desk-filter-btn:hover{border-color:var(--line-hover);background:var(--hover-bg) !important;}
  .hf-sortrow .hf-sortbtn{height:40px;padding:0 var(--sp-4);font-size:var(--fs-14);margin-left:auto;}
  .hf-sortrow .hf-sort-wrap{margin-left:auto;}
}
/* ---------- карта v3 (t_d1a22e91): пин-цена, мини-карточка, «Искать в этой области» ---------- */
.hf-map-pane{position:relative;}
.hf-mpin{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 4px));padding:5px 9px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--sh-2);font:700 12px/1 var(--font);color:var(--ink);white-space:nowrap;cursor:pointer;transition:transform .12s ease,background .12s ease;}
.hf-mpin::after{content:'';position:absolute;left:50%;bottom:-5px;width:8px;height:8px;margin-left:-4px;background:inherit;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);transform:rotate(45deg);}
.hf-mpin:hover{background:var(--hover-bg);}
.hf-mpin.is-on{background:var(--ink);color:var(--on-accent);border-color:var(--ink);transform:translate(-50%,calc(-100% - 4px)) scale(1.12);}
.hf-mpin.is-on::after{border-color:var(--ink);}
.hf-mpin.is-np{color:var(--muted);padding:5px 8px;}
.hf-maparea[hidden],.hf-mapcard[hidden]{display:none !important;}
.hf-maparea{position:absolute;top:var(--sp-3);left:50%;transform:translateX(-50%);z-index:5;display:inline-flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-4);border:0;border-radius:var(--r-pill);background:var(--card);box-shadow:var(--sh-4);font:600 var(--fs-14)/1 var(--font);color:var(--ink);cursor:pointer;white-space:nowrap;}
.hf-maparea svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;}
.hf-mapcard{position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:calc(var(--sp-3) + var(--safe-b));z-index:6;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-4);overflow:hidden;animation:hfCityUp .2s ease;}
.hf-mapcard__a{display:flex;gap:var(--sp-3);padding:var(--sp-2);color:var(--ink);text-decoration:none;}
.hf-mapcard__a:hover{color:var(--ink);text-decoration:none;}
.hf-mapcard__ph{flex:none;width:112px;height:96px;border-radius:var(--r-m);overflow:hidden;background:var(--stub-1);}
.hf-mapcard__ph img{width:100%;height:100%;object-fit:cover;display:block;}
.hf-mapcard__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:2px 28px 2px 0;}
.hf-mapcard__nm{font:600 var(--fs-15)/1.25 var(--font-display);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hf-mapcard__rate{font-size:var(--fs-13);color:var(--muted);}
.hf-mapcard__rate .vs-rate{margin-right:4px;}
.hf-mapcard__pr{font-size:var(--fs-13);color:var(--muted);}
.hf-mapcard__pr b{font:700 var(--fs-17)/1 var(--font-display);color:var(--ink);}
.hf-mapcard__go{margin-top:auto;align-self:flex-start;font:600 var(--fs-14)/1 var(--font);color:var(--blue);}
.hf-mapcard__x{position:absolute;top:6px;right:6px;width:32px;height:32px;border:0;border-radius:50%;background:var(--paper);font-size:18px;line-height:1;color:var(--ink);cursor:pointer;}
@media (min-width:1280px){.hf-mapcard{left:auto;width:360px;}}
body.hf-map-open .hf-maparea{top:calc(14px + env(safe-area-inset-top));}

/* ---------- выбор города внутри хоста (t_fa3eb615) ---------- */
.hf-crumbrow{position:relative;}
.hf-citybtn[aria-expanded="true"]{background:var(--blue);color:var(--on-accent);}
.hf-citybtn{height:32px;padding:0 12px;}
/* на десктопе кнопка города нужна, только если у хоста есть другие города (иначе город — в поиске шапки) */
@media (min-width:992px){.hf-crumbrow:has(#hfCityPop) .hf-citybtn{display:inline-flex;}}
.hf-citypop[hidden]{display:none !important;}
.hf-citypop{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;background:var(--scrim);}
.hf-citypop__panel{width:100%;max-height:78vh;display:flex;flex-direction:column;background:var(--card);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--safe-b));box-shadow:var(--sh-3);animation:hfCityUp .22s ease;}
@keyframes hfCityUp{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.hf-citypop__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:0 var(--sp-1) var(--sp-3);}
.hf-citypop__head b{font:600 var(--fs-17)/1.2 var(--font-display);color:var(--ink);}
.hf-citypop__head span{font-size:var(--fs-13);color:var(--muted);}
.hf-citypop .hf-citypop__q{width:100%;height:var(--tap) !important;box-shadow:none !important;margin:0 0 var(--sp-2);padding:0 var(--sp-3);border:1px solid var(--line);border-radius:var(--r-m);background:var(--paper);font:400 var(--fs-15)/1 var(--font);color:var(--ink);outline:none;}
.hf-citypop__q:focus{border-color:var(--blue);background:var(--card);}
.hf-citypop__list.vs-ul{margin:0;padding:0;list-style:none;overflow-y:auto;overscroll-behavior:contain;}
.hf-citypop__list.vs-ul>li{margin:0;padding:0;}
.hf-citypop__list.vs-ul>li::before{content:none;display:none;}
.hf-citypop__a{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-s);color:var(--ink);font-size:var(--fs-15);text-decoration:none;}
.hf-citypop__a small{font-size:var(--fs-13);color:var(--muted);font-variant-numeric:tabular-nums;}
.hf-citypop__a:hover{background:var(--hover-bg);color:var(--ink);text-decoration:none;}
.hf-citypop__a.is-on{font-weight:600;background:var(--blue-soft);}
.hf-citypop__a--all{border-bottom:1px solid var(--line-2);border-radius:0;margin-bottom:var(--sp-1);color:var(--blue);}
@media (min-width:600px){
  .hf-citypop{position:absolute;inset:auto 0 auto auto;top:calc(100% + 6px);display:block;background:none;}
  .hf-citypop__panel{width:320px;max-height:440px;border-radius:var(--r-lg);border:1px solid var(--line);padding:var(--sp-3);box-shadow:var(--sh-4);animation:none;}
}
html.hf-citypop-open{overflow:hidden;}
@media (min-width:600px){html.hf-citypop-open{overflow:visible;}}

/* ---------- шторки v2 (t_3e24dbcf): ручка, без ✕ на мобиле, статус, «Сбросить» в шапке ---------- */
.hf-sheet{border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--sh-3);}
.hf-sheet__grab{width:40px;height:5px;margin:10px auto 2px;background:var(--line-hover);border-radius:var(--r-pill);}
.hf-sheet__head{gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) var(--sp-3);touch-action:none;}
.hf-sheet__ttl{flex:1;min-width:0;}
.hf-sheet__sub{margin-top:2px;font-size:var(--fs-13);color:var(--muted);min-height:1.3em;}
.hf-sheet__head .hf-reset-wrap .hf-btn--s{height:36px;padding:0 var(--sp-2);border:0 !important;background:none !important;color:var(--blue);font:600 var(--fs-14)/1 var(--font);opacity:1;}
.hf-sheet__head .hf-reset-wrap .hf-btn--s:not(.hf-on){color:var(--muted-2);}
.hf-sheet .hf-sheet__close{display:none;}
.hf-sheet__foot{padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + var(--safe-b));}
.hf-sheet__foot #hfFilterSheetApply{flex:1;min-height:48px;border-radius:var(--r-m);font-size:var(--fs-15);}
@media (min-width:1024px){
  .hf-sheet .hf-sheet__close{display:flex;align-items:center;justify-content:center;}
  .hf-sheet__grab{display:none;}
}

/* ---------- быстрые фильтры над выдачей (t_22ac7c54) ---------- */
.hf-quick{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:none;padding:0 var(--sp-4) var(--sp-4);margin:0;}
.hf-quick::-webkit-scrollbar{display:none;}
.hf-qchip{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);font:500 var(--fs-14)/1 var(--font);color:var(--ink);text-decoration:none;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease;}
.hf-qchip:hover{border-color:var(--line-hover);background:var(--hover-bg);color:var(--ink);text-decoration:none;}
.hf-qchip.is-on{background:var(--ink);border-color:var(--ink);color:var(--on-accent);}
.hf-qchip.is-on::after{content:'×';margin-left:6px;font-size:16px;line-height:1;opacity:.8;}
@media (min-width:600px){.hf-quick{padding-left:var(--sp-6);padding-right:var(--sp-6);}}
@media (min-width:1024px){.hf-quick{padding:0 0 var(--sp-4);flex-wrap:wrap;overflow:visible;}}

/* ==========================================================================
   t_2b4dc163: ОДИН ряд инструментов — Фильтры · Сортировка · быстрые фильтры.
   Пилюли — как удобства детальной (.hd-ampop__i): белые, тонкая рамка, красная иконка 16px.
   ========================================================================== */
.hf-tools{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-4);padding:2px var(--sp-4);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.hf-tools::-webkit-scrollbar{display:none;}
.hf-tools>.hf-sortrow,.hf-tools>.hf-quick{display:contents;}
.hf-tools .hf-desk-filter-btn,.hf-tools .hf-sortbtn,.hf-tools .hf-qchip,.hf-tools .hf-deskmap-btn{flex:none;display:inline-flex !important;align-items:center;gap:7px;height:38px;min-height:38px;margin:0 !important;padding:0 14px 0 11px;border:1px solid var(--line) !important;border-radius:var(--r-pill);background:var(--card) !important;box-shadow:none !important;position:static !important;font:500 var(--fs-14)/1 var(--font);color:var(--ink);text-decoration:none;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease;}
.hf-tools .hf-desk-filter-btn:hover,.hf-tools .hf-sortbtn:hover,.hf-tools .hf-qchip:hover{border-color:var(--line-hover) !important;background:var(--hover-bg) !important;color:var(--ink);text-decoration:none;}
.hf-tools svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.hf-tools .hf-qchip svg{stroke:var(--red);}
.hf-tools .hf-desk-filter-btn{font-weight:600;}
.hf-tools .hf-desk-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--ink);color:var(--on-accent);font:700 var(--fs-12)/1 var(--font);}
.hf-tools .hf-desk-filter-badge[hidden]{display:none;}
.hf-tools .hf-sort-wrap{flex:none;position:relative;margin:0 !important;}
.hf-tools .hf-sortbtn::after{content:'';width:7px;height:7px;margin:-3px 0 0 2px;border:solid var(--muted);border-width:0 1.8px 1.8px 0;transform:rotate(45deg);}
.hf-tools .hf-qchip.is-on{background:var(--ink) !important;border-color:var(--ink) !important;color:var(--on-accent);}
.hf-tools .hf-qchip.is-on svg{stroke:var(--on-accent);}
.hf-tools .hf-qchip.is-on::after{content:'×';margin-left:2px;font-size:17px;line-height:1;opacity:.85;}
.hf-tools .hf-quick{margin:0;padding:0;}
.hf-tools .hf-deskmap-btn{display:none !important;}
@media (min-width:600px){.hf-tools{padding-left:var(--sp-6);padding-right:var(--sp-6);}}
@media (min-width:1024px){
  .hf-tools{flex-wrap:wrap;overflow:visible;padding:0;}
  .hf-tools .hf-sort-wrap{order:10;margin-left:auto !important;}
}
@media (min-width:1024px) and (max-width:1279px){.hf-tools .hf-deskmap-btn{display:inline-flex !important;}}
/* кнопка фильтров теперь в ряду — из нижней панели убрана */
.hf-bbar #hfFiltersOpenBtn{display:none !important;}

/* ==========================================================================
   t_6600d888: строка поиска десктопа под H1 — одна «капсула» из трёх полей + «Найти»
   (как поле «даты · гости» брони на детальной, только шире). Мелкий поиск в шапке Aspro скрыт.
   ========================================================================== */
.hf-dsearch{display:none;}
@media (min-width:1024px){
  .logo_and_menu-row .float_wrapper.hf-header-cal-outer,#hfHeaderSearchWrap{display:none !important;}
  .hf-dsearch{position:relative;z-index:30;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr) auto;align-items:stretch;margin:var(--sp-4) 0 var(--sp-4);padding:6px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-2);}
  .hf-dsearch__city,.hf-dsearch .sc-field{position:relative;display:flex !important;flex-direction:row !important;align-items:center;gap:10px;min-height:56px;height:auto;margin:0;padding:0 16px !important;border:0 !important;border-radius:var(--r-m) !important;background:none !important;box-shadow:none !important;cursor:pointer;text-align:left;font:inherit;color:var(--ink);transition:background .15s ease;}
  .hf-dsearch__city:hover,.hf-dsearch .sc-field:hover{background:var(--hover-bg) !important;}
  .hf-dsearch__slot{position:relative;display:flex;border-left:1px solid var(--line-2);}
  .hf-dsearch__slot>.sc-field{flex:1;}
  .hf-dsearch svg,.hf-dsearch .sc-field__icon svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--red);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
  .hf-dsearch .sc-field__icon{position:static !important;display:flex;flex:none;margin:0;color:var(--red);}
  .hf-dsearch__city span{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .hf-dsearch__city small,.hf-dsearch .sc-field__label{position:static !important;display:block;margin:0;font:500 var(--fs-12)/1 var(--font) !important;color:var(--muted) !important;text-transform:none;letter-spacing:0;}
  .hf-dsearch__city b,.hf-dsearch .sc-field__value{display:block;margin:3px 0 0;padding:0;font:600 var(--fs-15)/1.2 var(--font) !important;color:var(--ink) !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;background:none;}
  .hf-dsearch .sc-field>.sc-field__label+.sc-field__value{margin-top:3px;}
  .hf-dsearch .sc-field{flex-wrap:wrap;align-content:center;}
  .hf-dsearch .sc-field__label,.hf-dsearch .sc-field__value{flex:0 0 calc(100% - 30px);}
  .hf-dsearch .sc-field__icon{align-self:center;}
  .hf-dsearch .sc-field{display:grid !important;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-content:center;}
  .hf-dsearch .sc-field__icon{grid-row:1 / 3;}
  .hf-dsearch__go{align-self:center;min-height:52px;margin-left:6px;padding:0 28px;border:0;border-radius:var(--r-l);background:var(--blue);color:var(--on-accent);font:600 var(--fs-15)/1 var(--font);cursor:pointer;transition:background .15s ease;}
  .hf-dsearch__go:hover{background:var(--blue-deep);}
  /* выпадашки календаря и гостей — от строки поиска, поверх выдачи */
  .hf-dsearch .sc-calendar-dropdown,.hf-dsearch .sc-guests-dropdown{top:calc(100% + 10px) !important;z-index:60;}
  .hf-dsearch .hf-gsheet-head{display:none;}
  .hf-lhead .hf-citybtn{display:none !important;}
  .hf-dsearch>.hf-citypop{inset:auto auto auto 6px;top:calc(100% + 10px);}
}

/* ---------- фильтры (t_ea4a754c, t_5ad9cd14) ---------- */
/* t_6f5bcde0: #hfPriceApply убран из разметки — правило display:none больше не нужно */
#hfGrpRate{margin-bottom:var(--sp-5);}
#hfGrpRate .hf-chip{display:inline-flex;align-items:center;gap:6px;}
#hfGrpRate .hf-chip .vs-rate{padding:1px 6px;font-size:var(--fs-12);}

/* ---------- t_1678b601: тап-зоны ≥ --tap на мобиле (канон MOBILE-FIRST, детальная) ----------
   Чипы/пилюли растут до 44px. Маленькие пилюли в шапке (крошка «назад», город) визуально
   не меняются — зону нажатия расширяет прозрачный ::after. Поле цены: инпут занимает всю
   нижнюю часть рамки (раньше 24px), общая высота поля та же. */
@media (max-width:991px){
  .hf-chip,.hf-mchips .hf-chip,.hf-qchip,.hf-type,.hf-chip--more{height:auto;min-height:var(--tap);}
  .hf-tools .hf-desk-filter-btn,.hf-tools .hf-sortbtn,.hf-tools .hf-qchip,.hf-tools .hf-deskmap-btn{height:var(--tap);min-height:var(--tap);}
  .hf-sheet__head .hf-reset-wrap .hf-btn--s{height:var(--tap);}
  .hf-crumbs__a,.hf-citybtn{position:relative;}
  .hf-crumbs__a::after,.hf-citybtn::after{content:'';position:absolute;left:0;right:0;top:50%;height:var(--tap);transform:translateY(-50%);}
  .hf-sheet .hf-fld{padding:0 12px;}
  .hf-sheet .hf-fld label{padding-top:8px;}
  .hf-sheet .hf-fld input{height:var(--tap);padding:0;}
  .vrf-link{min-height:var(--tap);display:inline-flex;align-items:center;}
  .vrf-show-all{min-height:var(--tap);}
  .vrf-logo,.vrf-bottom-links a{display:inline-flex;align-items:center;min-height:var(--tap);}
  /* иконка кабинета в шапке темы и e-mail в подвале: зона нажатия растёт паддингом,
     отрицательный margin возвращает раскладку как была */
  .personal-link{display:inline-block;padding:13px;margin:-13px;}
  .footer_wrap .email a,.mobilemenu-v1 .email a{display:inline-block;padding:15px 0;margin:-15px 0;}
}

/* ---------- t_1678b601: мягкое появление выдачи после фильтра/дат/«Показать ещё» ----------
   Класс vs-in ставит hotels-list-v2.js только на НОВЫЕ карточки (не на первой загрузке — не
   мешаем LCP). Ступенька до 8 карточек, дальше без задержки. */
.hf-cards .vs-in{animation:vsIn var(--vs-dur,.28s) var(--vs-ease,cubic-bezier(.2,.7,.2,1)) both;animation-delay:calc(var(--i,0) * 35ms);}
#hfCount.vs-bump{animation:vsFade var(--vs-dur,.28s) var(--vs-ease,ease) both;}
@media (prefers-reduced-motion:reduce){.hf-cards .vs-in,#hfCount.vs-bump{animation:none;}}

/* ---------- t_47266357: «Расположение» в фильтрах (метро/район/вокзал/аэропорт) ---------- */
.hf-loc__grp+.hf-loc__grp{margin-top:var(--sp-4);}
.hf-loc__t{margin-bottom:var(--sp-2);font-size:var(--fs-14);font-weight:600;color:var(--ink-2);}
.hf-loc__q{width:100%;margin-bottom:var(--sp-2);}
.hf-loc__dot{flex:none;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--lc,var(--muted-3));display:inline-block;}

/* ---------- t_9de664a2: «Показать 312 отелей» и выходы при 0 в шторке фильтров ---------- */
#hfFilterSheetApply.is-zero{opacity:.5;}
#hfFilterSheet .hf-sheet__foot{flex-direction:column;align-items:stretch;}
.hf-sheet__hint{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-14);color:var(--ink-2);animation:vsFade var(--vs-dur,.28s) var(--vs-ease,ease) both;}
.hf-sheet__hint[hidden]{display:none;}
.hf-sheet__hint-a{width:100%;justify-content:center;}

/* ---------- t_fd8d426e: «N км до центра Выборга» — вместо строки метро, когда метро рядом нет ---------- */
.hf-card--v3 .hf-card__loc--center{gap:var(--sp-1);}
.hf-card__locpin{width:14px;height:14px;flex:none;fill:none;stroke:var(--red);stroke-width:2;}
.hf-card--v3 .hf-card__loc--center .hf-card__locn{font-weight:500;}
.hf-card__locc{color:var(--ink-2);}

/* ---------- t_58120827: цвет-роли как на детальной (README «Цвет: роли») ----------
   Синий нажимают/выбранное, красный показывает (активная вкладка, пин объекта, иконки фактов),
   коралл — счётчики. Тёмная заливка --ink как «выбрано» на списке больше не используется. */
.hf-type[aria-selected="true"]{background:var(--red-soft);border-color:var(--red);color:var(--ink);}
.hf-type[aria-selected="true"] .hf-type__n,.hf-type[aria-selected="true"] span{color:inherit;}
.hf-qchip.is-on,.hf-tools .hf-qchip.is-on{background:var(--blue-soft) !important;border-color:var(--blue) !important;color:var(--blue-deep);}
.hf-tools .hf-qchip.is-on svg{stroke:var(--blue-deep);}
.hf-chip.hf-active,.hf-mchips .hf-chip.hf-active,#hfGrpRate .hf-chip.hf-active{background:var(--blue-soft);border-color:var(--blue) !important;color:var(--blue-deep);}
.hf-sort-opt.hf-active,.hf-sort-opt[aria-checked="true"]{color:var(--blue-deep);}
.hf-tools .hf-desk-filter-badge{background:var(--coral);}
.hf-mpin.is-on{background:var(--red);border-color:var(--red);color:var(--on-accent);}
.hf-mpin.is-on::after{border-color:var(--red);}

.hf-deskmap-btn{display:none;}
@media (min-width:1024px) and (max-width:1279px){
  .hf-deskmap-btn{display:inline-flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-4);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);font:600 var(--fs-14)/1 var(--font);color:var(--ink);cursor:pointer;}
  .hf-deskmap-btn svg{width:18px;height:18px;}
  .hf-deskmap-btn:hover{border-color:var(--line-hover);background:var(--hover-bg);}
}

/* t_20b310c8: ориентиры на карте списка — неброско, под пинами цен */
.hf-lm{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;align-items:center;gap:4px;pointer-events:auto;white-space:nowrap;}
.hf-lm i{flex:none;display:block;width:10px;height:10px;border-radius:50%;background:var(--lc,#6b7280);box-shadow:0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.25);}
.hf-lm span{display:none;font:500 11px/1 var(--font);color:#374151;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;transform:translateX(2px);}
.hf-lm-z .hf-lm--m span,.hf-lm--c span,.hf-lm--a span,.hf-lm-z .hf-lm--r span{display:block;}
.hf-lm--r i,.hf-lm--a i{width:16px;height:16px;border-radius:4px;background:#475569 center/11px no-repeat;}
.hf-lm--r i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'%3E%3Crect x='6' y='3' width='12' height='13' rx='3'/%3E%3Cpath d='M6 11h12M9 20l-2 2M15 20l2 2'/%3E%3C/svg%3E");}
.hf-lm--a i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z'/%3E%3C/svg%3E");}
.hf-lm--c i{width:18px;height:18px;background:rgba(217,115,31,.18);box-shadow:inset 0 0 0 2px #d9731f,0 0 0 2px #fff;position:relative;}
.hf-lm--c i::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#d9731f;}
.hf-lm--c span{font-weight:600;color:#b45309;}
.hf-lmtoggle{position:absolute;left:10px;bottom:44px;z-index:5;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);font:500 var(--fs-13)/1 var(--font);color:var(--muted);box-shadow:var(--sh-1);cursor:pointer;}
.hf-lmtoggle.is-on{color:var(--ink);}
.hf-lmtoggle::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--line);vertical-align:1px;}
.hf-lmtoggle.is-on::before{background:#e11d48;box-shadow:10px 0 0 #2563eb;margin-right:16px;}

/* t_8d237f20: мало свободных на даты — плашка под выдачей с выходами (соседние даты / радиус / города) */
.hf-few{display:flex;flex-direction:column;gap:var(--sp-2);margin:var(--sp-4) 0;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);}
.hf-few[hidden]{display:none;}
.hf-few__t{font:600 var(--fs-15)/1.35 var(--font);color:var(--ink);}
.hf-few__s{font-size:var(--fs-14);color:var(--muted);}
.hf-few__acts{display:flex;flex-direction:column;gap:var(--sp-2);}
.hf-few__acts:empty{display:none;}
@media (min-width:1024px){.hf-few__acts{flex-direction:row;flex-wrap:wrap;}}

/* t_570ea1c9: подсказки поля «Куда» — отели, метро, районы, вокзалы (hf-where.js) над списком городов */
.hf-where{display:flex;flex-direction:column;margin:0 0 var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line-2);max-height:46vh;overflow-y:auto;overscroll-behavior:contain;}
.hf-where[hidden]{display:none;}
.hf-where__h{padding:var(--sp-2) var(--sp-3) var(--sp-1);font:600 var(--fs-12)/1.2 var(--font);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.hf-where__h--wait{text-transform:none;letter-spacing:0;font-weight:400;}
.hf-where__a{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:var(--tap);padding:0 var(--sp-3);border:0;border-radius:var(--r-s);background:none;color:var(--ink);font:400 var(--fs-15)/1.25 var(--font);text-align:left;text-decoration:none;cursor:pointer;}
.hf-where__a:hover,.hf-where__a:focus-visible{background:var(--hover-bg);color:var(--ink);text-decoration:none;outline:none;}
.hf-where__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hf-where__a small{flex:none;font-size:var(--fs-13);color:var(--muted);font-variant-numeric:tabular-nums;}
.hf-where__ic{flex:none;width:10px;height:10px;border-radius:50%;background:var(--muted);}
.hf-where__ic--hotel{width:18px;height:18px;border-radius:0;background:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21V7l9-4 9 4v14M9 21v-6h6v6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21V7l9-4 9 4v14M9 21v-6h6v6'/%3E%3C/svg%3E") center/contain no-repeat;background-color:var(--ink-2,var(--muted));}
.hf-where__ic--rayon{border-radius:3px;background:var(--blue-soft);box-shadow:inset 0 0 0 2px var(--blue);}
.hf-where__ic--vokzal,.hf-where__ic--aeroport{border-radius:2px;background:var(--ink-2,var(--muted));}
