
/* Places: Archive — левая секция (фильтры), Site/v2/arch-place.html.
   Реальный Voxel ts-search-form (26e75d7) — переопределяем визуал поверх Vue-рендера,
   вся функциональность (запросы/попапы) остаётся штатной Voxel-логикой, ничего не подделываем. */

/* Контейнер сайдбара (bf9dd84) — свой padding убираем, переносим внутрь групп фильтров,
   чтобы разделители между секциями шли во всю ширину колонки, как в макете.
   Фон — полупрозрачный кремовый (bg-[#FFF8DF]/85 в arch-place.html), не сплошной белый — пропускает фиксированный
   mesh-градиент страницы (.vg-hero-bg, position:fixed) — поэтому оттенок чуть меняется с высотой прокрутки. */
.elementor-element-bf9dd84 {
  padding: 0 !important;
  background-color: rgba(255, 248, 223, .85) !important;
  gap: 0 !important;
}
/* Elementor даёт контейнеру шапки свой margin-bottom по умолчанию — убираем,
   чтобы единственным источником отступа до Локации был margin-bottom у .vgpah-search-head. */
.elementor-element-9ca361e {
  margin-bottom: 0 !important;
}

.elementor-element-26e75d7 .ts-form-group {
  padding: 20px !important;
  border-bottom: var(--vg-border-width) solid var(--vg-ink);
  margin: 0 !important;
}
.elementor-element-26e75d7 .ts-form-group.ts-form-reset {
  border-bottom: none;
}
.elementor-element-26e75d7 .ts-form-group.ui-heading {
  border-bottom: none;
  padding-bottom: 0 !important;
}

/* Важно: у групп с display_as:buttons (категория/цена) Vue-шаблон terms-filter.php РЕАЛЬНО рендерит только "ts-form-group" без "ts-inline-filter"/"inline-terms-wrapper" (эти классы есть только в SSR-заглушке v-if="false", которая никогда не видна после гидратации) — проверено живым document.querySelectorAll('.ts-form-group') в браузере. Поэтому все общие правила выше целятся только в ".ts-form-group", без требования .ts-inline-filter. */
.elementor-element-26e75d7 .ts-form-group:not(.switcher-label):not(.ts-form-reset) > label {
  display: block;
  margin: 0 0 10px;
  font-family: var(--vg-font-mono);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(22, 32, 50, .55);
}

/* --- Заголовок-бейдж «Поиск / Найти место» (восстановлен ID 9ca361e, бывший «Изучите места») ---
   Отступы 1:1 с arch-place.html: контейнер p-5 (20px), mb-5 (20px) до следующего блока, gap-3 (12px), size-10 (40px).
   Верхнюю/боковую границу блока даёт padding самого элемента, а РАССТОЯНИЕ ДО СЛЕДУЮЩЕГО — margin-bottom
   (не padding-bottom здесь + padding-top у следующего — иначе отступ задвоился бы). */
.vgpah-search-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 20px 0;
  margin-bottom: 20px;
}
.vgpah-search-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: var(--vg-radius-control);
  border: var(--vg-border-width) solid var(--vg-ink);
  background: var(--vg-yellow);
}
/* Voxel core commons.css: :where(path){fill:inherit} — нулевая специфичность, но всё равно реальное правило —
   перебивает собственный fill="..." атрибут path без !important. */
.vgpah-search-badge svg path {
  fill: var(--vg-ink) !important;
}
.vgpah-search-eyebrow {
  margin: 0;
  font-family: var(--vg-font-mono);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(22, 32, 50, .55);
}
.vgpah-search-title {
  margin: 2px 0 0;
  font-family: var(--vg-font-body);
  font-size: 20px;
  font-weight: 500;
  color: var(--vg-ink);
}

/* --- Переключатель «Место / Событие» — внутри .vgpah-search-head, реальная навигация между /places/ и /events/, не JS-тумблер --- */
.vgpah-search-word {
  margin: 0;
  font-family: var(--vg-font-body);
  font-size: 14px;
  font-weight: 500;
  color: rgba(22, 32, 50, .7);
}
.vgpah-type-switch {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border-radius: 8px;
  border: var(--vg-border-width) solid var(--vg-ink);
  background: rgba(255, 255, 255, .7);
}
.vgpah-type-tab {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 6px;
  font-family: var(--vg-font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--vg-ink);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s ease;
}
.vgpah-type-tab:hover {
  background: #fff;
}
.vgpah-type-tab.is-active {
  background: var(--vg-ink);
  color: #fff;
}
.vgpah-type-tab.is-active:hover {
  background: var(--vg-ink);
}

/* --- Визуально группируем Локацию + Ключевые слова сразу после шапки, без изменения реального порядка фильтров —
   чисто визуальный flex order, .ts-filter-wrapper уже flex-контейнер (класс flexify). */
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-0bf5bc6 {
  order: -3;
  border-bottom: none !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-9c9152f {
  order: -2;
}

/* --- Локация + Ключевые слова: тот же общий блок p-5, что и шапка (см. .vgpah-search-head) —
   без верхнего/нижнего padding у себя, отступы задаёт margin-bottom (mb-5/mt-5 в макете = 20px). --- */
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-0bf5bc6,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-9c9152f {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-0bf5bc6 {
  margin-bottom: 20px !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-9c9152f {
  padding-bottom: 20px !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-0bf5bc6 > label,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-9c9152f > label {
  margin-bottom: 2px !important;
  padding-bottom: 0 !important;
}

/* --- Локация + Ключевые слова: рамка-инпут --- */
.elementor-element-26e75d7 .ts-input-icon {
  display: flex !important;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  border: var(--vg-border-width) solid var(--vg-ink);
  border-radius: var(--vg-radius-control);
  background: rgba(255, 255, 255, .7);
  padding: 0 12px;
}
/* path имеет свой fill="#343C54" (SVG presentation attribute) — унаследованный
   fill/--ts-icon-color с родителя его не перебивает, нужно целиться в сам path. */
.elementor-element-26e75d7 .ts-input-icon svg path {
  fill: var(--vg-primary) !important;
}
.elementor-element-26e75d7 .inline-input {
  border: none !important;
  background: transparent !important;
  outline: none;
  font-family: var(--vg-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--vg-ink);
  flex: 1 1 auto;
  min-width: 0;
}
.elementor-element-26e75d7 .inline-input::placeholder {
  color: rgba(22, 32, 50, .4);
}
.elementor-element-26e75d7 .inline-user-location {
  flex-shrink: 0;
}
.elementor-element-26e75d7 .inline-user-location svg path {
  fill: var(--vg-ink) !important;
}

/* --- Категория / Цена: пилюлы-кнопки со счётчиком --- */
.elementor-element-26e75d7 .addon-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 !important;
  padding: 0;
  list-style: none;
}
.elementor-element-26e75d7 .addon-buttons li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 12px;
  border-radius: var(--vg-radius-control);
  border: 1px solid var(--vg-ink);
  background: rgba(255, 255, 255, .7);
  font-family: var(--vg-font-body);
  font-size: 14px;
  color: var(--vg-ink);
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.elementor-element-26e75d7 .addon-buttons li:hover {
  border-color: var(--vg-primary);
}
.elementor-element-26e75d7 .addon-buttons li.adb-selected {
  border-color: var(--vg-primary);
  background-color: var(--vg-primary);
  color: #FFFFFF;
}
.elementor-element-26e75d7 .addon-buttons li .ts-term-count {
  font-family: var(--vg-font-mono);
  font-size: 12px;
  opacity: .6;
}
.elementor-element-26e75d7 .addon-buttons li.adb-selected .ts-term-count {
  opacity: .85;
}

/* --- Открыто сейчас: тумблер (сам переключатель уже стилизован в forms.css).
   padding/border-bottom уже даёт общее правило .ts-inline-filter выше (switcher-label тоже несёт этот класс) — здесь только layout самой строки. */
/* Переключатель «Только открытые сейчас»: в выключенном состоянии трек (.onoffswitch-label)
   заливается фоном страницы (--vg-bg), а кружок (::before) белый — на кремовом фоне обе части
   становятся не видны. Добавляем рамку треку и тёмный цвет кружку, видно в обоих состояниях. */
.elementor-element-26e75d7 .onoffswitch-label {
  border: var(--vg-border-width) solid var(--vg-ink) !important;
}
.elementor-element-26e75d7 .onoffswitch-label::before {
  background-color: var(--vg-ink) !important;
}

.elementor-element-26e75d7 .switcher-label > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  font-family: var(--vg-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--vg-ink);
  cursor: pointer;
}

/* --- Сбросить фильтры --- */
.elementor-element-26e75d7 .ts-form-reset .ts-filter {
  display: flex !important;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: var(--vg-radius-control);
  border: var(--vg-border-width) solid var(--vg-ink);
  background: rgba(255, 255, 255, .7);
  font-family: var(--vg-font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--vg-ink) !important;
  transition: background-color .15s ease, color .15s ease;
}
.elementor-element-26e75d7 .ts-form-reset .ts-filter svg path {
  fill: var(--vg-ink) !important;
  transition: fill .15s ease;
}
.elementor-element-26e75d7 .ts-form-reset .ts-filter:hover {
  background: var(--vg-ink);
  color: #FFFFFF !important;
}
.elementor-element-26e75d7 .ts-form-reset .ts-filter:hover svg path {
  fill: #FFFFFF !important;
}

/* --- Сортировка не показываем в сайдбаре — в макете она в шапке результатов --- */
.elementor-element-26e75d7 .elementor-repeater-item-dcbda07 {
  display: none !important;
}

/* --- Заголовок секции «Особенности» над тумблером — через ::before, так как у Voxel у этой группы нет своей отдельной заголовочной метки (только текст тумблера). Соответствует legend «Особенности» в arch-place.html. */
.elementor-element-26e75d7 .switcher-label.elementor-repeater-item-ef14db3::before {
  content: "Особенности";
  display: block;
  margin: 0 0 14px;
  font-family: var(--vg-font-mono);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(22, 32, 50, .55);
}

/* --- Компактность секции «Залы» — по макету Site/v2/places-archive-switcher.html (2026-08-29):
   1) поясняющий подзаголовок под «ЗАЛЫ» (::before/content-приём, как у лейбла «Особенности» выше);
   2) Вестимость/цена аренды — текущее значение (.range-value) переносится рядом с подписью через position:absolute в верхнем правом углу группы (не трогая .range-slider-wrapper и внутреннюю разметку noUiSlider — первая попытка через display:contents ломала позиционирование слайдера — откатились от неё, проверено живым скриншотом);
   3) Удобства зала/Оснащение — визуально скрыт дублирующийся <label>, оба блока в один ряд (width:50%), уменьшены отступы/шрифт текста кнопки и разрешён перенос в 2 строки вместо ellipsis-обрезки (было «Удобств...» при 16px/nowrap на узкой 50%-колонке). */
.elementor-element-26e75d7 .ts-form-group.ui-heading::after {
  content: "Только для «Спикер-площадок» — сужает места до тех, у кого есть подходящий зал в аренду";
  display: block;
  margin-top: 4px;
  font-family: var(--vg-font-body);
  font-size: 11px;
  line-height: 1.5;
  color: rgba(22, 32, 50, .45);
}

.elementor-element-26e75d7 .ts-form-group.ts-inline-filter {
  position: relative;
}
.elementor-element-26e75d7 .ts-form-group.ts-inline-filter > label {
  margin: 0 !important;
  padding-right: 90px;
}
.elementor-element-26e75d7 .ts-form-group.ts-inline-filter .range-value {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 13px !important;
  font-weight: 600;
  color: var(--vg-ink);
}
.elementor-element-26e75d7 .ts-form-group.ts-inline-filter .range-slider-wrapper {
  margin-top: 8px;
}

.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall4,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall5 {
  width: 50% !important;
  padding: 20px 10px !important;
  box-sizing: border-box;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall2,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall3 {
  border-bottom: none !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall4 > label,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall5 > label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall4 .ts-filter,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall5 .ts-filter {
  width: 100%;
  padding: 12px 8px !important;
}
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall4 .ts-filter-text,
.elementor-element-26e75d7 .ts-form-group.elementor-repeater-item-vghall5 .ts-filter-text {
  font-size: 13px !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.25 !important;
}