/* Листинг площадок 2026: сайдбар фильтров + сетка карточек по три в ряд.
   Неймспейс p26- изолирован от .place-card старого листинга и от .listing
   шаблона категорий 2026 — стили не пересекаются.

   Все правила идут от родителя .p26 намеренно: в cat-2026-style.css есть сброс
   «[data-aacat] div, span, form, label { background: transparent; margin: 0; padding: 0 }»,
   который специфичнее одиночного класса и обнулял фон и отступы сайдбара. */

/* Слой страницы: у .main-layer в шаблонах 2026 стоит z-index: 4, он создаёт
   контекст наложения — из него мобильная шторка не может перекрыть шапку сайта.
   На этой странице слой ничего не перекрывает, поэтому контекст снимаем. */
.main-layer.p26-layer{
  /* два класса намеренно: правило шаблона .[data-aacat] .main-layer специфичнее одиночного */
  z-index: auto;
}

/* Переменные объявлены глобально: панель выбора характеристик живёт в body,
   вне .p26 — иначе внутри неё var(--p26-*) резолвится в пустоту */
:root{
  --p26-accent: #705abf;
  --p26-ink: #1d1d1f;
  --p26-muted: #86868b;
  --p26-line: #e6e6ea;
  --p26-soft: #f5f5f7;
  --p26-radius: 16px;
}

.p26{
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 40px;
}

/* Отступ от h1: сброс «[data-aacat] div { margin: 0 }» специфичнее одиночного
   класса, поэтому селектор с двумя уровнями */
.catalog .p26{
  margin-top: 28px;
}

/* ——— Сайдбар ——— */

/* Сколько найдено — ярлычок, свисающий с верхнего края карточки фильтров.
   Фон тот же, что у страницы: верхняя половина с ним сливается, нижняя
   читается на белой карточке — получается «вырезанная» плашка. */
.p26 .p26-found{
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 6px 14px;
  border-radius: 100px;
  background: var(--p26-soft);
  font-size: 13px;
  line-height: 18px;
  color: var(--p26-muted);
  white-space: nowrap;
}

.p26 .p26-found b{
  font-size: 14px;
  font-weight: 600;
  color: #3b3b3b;
}

.p26 .p26-side{
  max-width: 305px;
  min-width: 305px;
  flex-grow: 1;
  align-self: flex-start;
}

/* Прилипание — через theia-sticky-sidebar (та же библиотека, что держит меню
   категорий на /arenda-mebeli/, init в js/places26.js). Своей прокрутки у
   сайдбара нет: он едет со страницей и прилипает, когда виден целиком. */
.p26 .p26-side__inner{
  position: relative;   /* от него отсчитывается ярлычок «N площадок» */
  background: #fff;
  border-radius: var(--p26-radius);
  padding: 6px 18px 14px;
}

.p26 .p26-side__head{
  display: none;
}

/* Фильтры идут списком: у контролов нет заливок, блоки разделяет волосинка.
   Шесть серых плашек подряд читались как лестница и съедали высоту —
   работу делают типографика и линии. */
.p26 .p26-f{
  padding: 13px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.p26 .p26-f:last-child{
  border-bottom: 0;
}

.p26 .p26-f__label{
  font-size: 12.5px;
  line-height: 16px;
  font-weight: 500;
  color: var(--p26-muted);
  margin-bottom: 5px;
}

/* «От» и «до» — строки с подчёркиванием: заливка вокруг двузначного числа
   выглядела тяжелее самого числа. */
.p26 .p26-f__input{
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.09);
  background: transparent;
  border-radius: 0;
  padding: 4px 0;
  font-size: 14.5px;
  line-height: 20px;
  color: #3b3b3b;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s;
  -webkit-appearance: none;
  appearance: none;
}

.p26 .p26-f__select{
  width: 100%;
  border: 1px solid transparent;
  background: var(--p26-soft);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 18px;
  color: var(--p26-ink);
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s, background-color 0.15s;
  -webkit-appearance: none;
  appearance: none;
}

.p26 .p26-f__input::placeholder{
  color: #a8a8ad;
}

.p26 .p26-f__input:focus{
  border-bottom-color: var(--p26-accent);
}

.p26 .p26-f__select:focus{
  background: #fff;
  border-color: var(--p26-accent);
}

.p26 .p26-f__input--sm{
  margin-bottom: 10px;
  padding: 9px 12px;
  font-size: 13px;
}

.p26 .p26-f__select{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2386868b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
  cursor: pointer;
}

.p26 .p26-f__row2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* ——— Компактный дропдаун (тип события, тип площадки, метро) ——— */

.p26 .p26-dd__wrap{
  position: relative;
}

.p26 .p26-dd__btn{
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 0;
  background: none;
  border-radius: 0;
  padding: 0;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  color: #3b3b3b;
}

/* Отклика на наведение теперь добивается цветом, а не подсветкой плашки */
.p26 .p26-dd__btn:hover .p26-dd__chev,
.p26 .p26-dd.is-active .p26-dd__chev{
  color: var(--p26-accent);
}

.p26 .p26-dd__value{
  flex-grow: 1;
  min-width: 0;
  font-size: 14.5px;
  line-height: 20px;
  color: #a8a8ad;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.p26 .p26-dd.is-filled .p26-dd__value{
  color: #3b3b3b;
  font-weight: 500;
}

.p26 .p26-dd__chev{
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #b5b5ba;
  transition: color 0.15s;
}

/* Крестик стоял в углу плашки; плашки нет — он встаёт в конец строки
   и подменяет собой шеврон, иначе в строке две стрелки подряд.
   Цвет нейтральный: акцентный кружок был единственным ярким пятном
   сайдбара и перетягивал внимание с самого выбранного значения. */
.p26 .p26-dd__clear{
  display: none;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.06);
  color: #8a8794;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
  z-index: 3;
  transition: background-color 0.15s, color 0.15s;
}

.p26 .p26-dd__clear:hover{
  background: rgba(0, 0, 0, 0.1);
  color: #3b3b3b;
}

.p26 .p26-dd.is-filled .p26-dd__chev{
  visibility: hidden;
}

.p26 .p26-dd__clear svg{
  width: 9px;
  height: 9px;
}

.p26 .p26-dd.is-filled .p26-dd__clear{
  display: flex;
}

.p26 .p26-dd__opt,
.p26-drawer .p26-dd__opt{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  line-height: 18px;
}

.p26 .p26-dd__opt:hover,
.p26-drawer .p26-dd__opt:hover{
  background: var(--p26-soft);
}

.p26 .p26-dd__opt input,
.p26-drawer .p26-dd__opt input{
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.p26 .p26-dd__box,
.p26-drawer .p26-dd__box{
  width: 16px;
  height: 16px;
  border-radius: 5px;
  border: 1.5px solid #c9c9ce;
  flex-shrink: 0;
  position: relative;
  transition: background-color 0.15s, border-color 0.15s;
}

.p26 .p26-dd__opt input:checked + .p26-dd__box,
.p26-drawer .p26-dd__opt input:checked + .p26-dd__box{
  background: var(--p26-accent);
  border-color: var(--p26-accent);
}

.p26 .p26-dd__opt input:checked + .p26-dd__box::after,
.p26-drawer .p26-dd__opt input:checked + .p26-dd__box::after{
  content: "";
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.p26 .p26-dd__text,
.p26-drawer .p26-dd__text{
  flex-grow: 1;
  min-width: 0;
}

.p26 .p26-dd__n,
.p26-drawer .p26-dd__n{
  font-size: 11px;
  line-height: 14px;
  color: var(--p26-muted);
  flex-shrink: 0;
}

.p26 .p26-dd__opt.is-empty,
.p26-drawer .p26-dd__opt.is-empty{
  opacity: 0.45;
}

/* ——— Строка группы характеристик (открывает панель справа) ——— */

/* Блок групп идёт сразу после списка фильтров — своя подпись и та же
   волосинка между строками, без второй линии сверху */
.p26 .p26-groups{
  padding-top: 13px;
}

.p26 .p26-grp{
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  background: none;
  padding: 12px 0;
  font-family: inherit;
  font-size: 14.5px;
  line-height: 20px;
  color: #3b3b3b;
  cursor: pointer;
  text-align: left;
  transition: color 0.15s;
}

.p26 .p26-grp:hover{
  color: var(--p26-accent);
}

.p26 .p26-grp__name{
  flex-grow: 1;
  min-width: 0;
}

.p26 .p26-grp__badge{
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 100px;
  background: var(--p26-accent);
  color: #fff;
  font-size: 11px;
  line-height: 18px;
  text-align: center;
}

.p26 .p26-grp__badge[hidden]{
  display: none;
}

.p26 .p26-grp__arrow{
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #b5b5ba;
}

/* ——— Панель выбора характеристик ——— */

/* Панель открывается поповером рядом со строкой группы: координаты ставит
   js/places26.js по позиции кнопки. На мобиле (медиазапрос ниже) — во весь экран. */
.p26-drawer{
  position: fixed;
  top: 0;
  left: 0;
  width: 380px;
  max-width: calc(100vw - 24px);
  max-height: 72vh;
  background: #fff;
  border-radius: var(--p26-radius);
  z-index: 1300;
  display: flex;
  flex-direction: column;
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-6px);
  transition: opacity 0.16s ease, transform 0.16s ease;
}

.p26-drawer.is-open{
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

.p26-drawer__head{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--p26-line);
}

.p26-drawer__title{
  flex-grow: 1;
  font-size: 16px;
  line-height: 22px;
  font-weight: 600;
  color: var(--p26-ink);
}

.p26-drawer__back,
.p26-drawer__close{
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: var(--p26-soft);
  color: var(--p26-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}

.p26-drawer__back svg,
.p26-drawer__close svg{
  width: 14px;
  height: 14px;
}

.p26-drawer__back{
  display: none;
}

.p26-drawer__body{
  flex-grow: 1;
  overflow-y: auto;
  padding: 12px 16px;
}

.p26-drawer__search{
  width: 100%;
  border: 1px solid var(--p26-line);
  background: #fff;
  border-radius: 10px;
  padding: 9px 12px;
  font-family: inherit;
  font-size: 14px;
  line-height: 18px;
  color: var(--p26-ink);
  outline: none;
  margin-bottom: 12px;
}

.p26-drawer__search:focus{
  border-color: var(--p26-accent);
}

.p26-drawer__list .p26-dd__opt{
  padding: 9px 8px;
  font-size: 15px;
  line-height: 20px;
}

.p26-drawer__foot{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 14px;
  border-top: 1px solid var(--p26-line);
}

.p26-drawer__apply{
  border: 0;
  border-radius: 100px;
  background: var(--p26-accent);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  padding: 10px 22px;
  cursor: pointer;
  transition: opacity 0.15s;
}

.p26-drawer__apply:hover{
  opacity: 0.9;
}

/* Вторичное действие — текстом: две рамки рядом в поповере выглядят тяжело */
.p26-drawer__clear{
  margin-left: auto;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 14px;
  line-height: 18px;
  color: var(--p26-muted);
  padding: 10px 4px;
  cursor: pointer;
  transition: color 0.15s;
}

.p26-drawer__clear:hover{
  color: var(--p26-accent);
}

.p26-drawer-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1290;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s;
}

.p26-drawer-overlay.is-open{
  opacity: 1;
  visibility: visible;
}

.p26 .p26-side__reset{
  width: 100%;
  border: 1px solid var(--p26-line);
  border-radius: 100px;
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  line-height: 18px;
  color: var(--p26-muted);
  padding: 11px 16px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}

.p26 .p26-side__reset:hover{
  color: var(--p26-accent);
  border-color: var(--p26-accent);
}

.p26 .p26-f__more{
  margin-top: 10px;
  border: 0;
  background: none;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  line-height: 16px;
  color: var(--p26-accent);
  cursor: pointer;
}

.p26 .p26-f__more:hover{
  opacity: 0.75;
}

.p26 .p26-f__more span{
  color: var(--p26-muted);
}

/* ——— Контент ——— */

.p26 .p26-main{
  flex-grow: 1;
  min-width: 0;
}

.p26 .p26-bar{
  display: none;   /* на десктопе строка пустая: счётчик уехал в заголовок, сортировки нет */
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.p26 .p26-bar__spacer{
  flex-grow: 1;
}

.p26 .p26-bar__filters{
  display: none;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 100px;
  background: var(--p26-accent);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 16px;
  padding: 12px 18px;
  cursor: pointer;
}

.p26 .p26-bar__filters-qty:empty{
  display: none;
}

.p26 .p26-bar__filters-qty{
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 100px;
  background: var(--p26-accent);
  font-size: 11px;
  line-height: 18px;
  text-align: center;
}

/* Выбранное — строкой над сеткой */

.p26 .p26-applied{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.p26 .p26-applied:empty{
  display: none;
}

.p26 .p26-applied__item{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px 6px 12px;
  border-radius: 100px;
  background: #fff;
  border: 1px solid var(--p26-line);
  font-family: inherit;
  font-size: 13px;
  line-height: 16px;
  /* цвет обязателен: у <button> без него Safari на iOS ставит системный синий */
  color: var(--p26-ink);
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}

.p26 .p26-applied__item svg{
  width: 12px;
  height: 12px;
  color: var(--p26-muted);
  flex-shrink: 0;
}

.p26 .p26-applied__item:hover{
  border-color: var(--p26-accent);
  color: var(--p26-accent);
}

.p26 .p26-applied__reset{
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 13px;
  line-height: 28px;
  color: var(--p26-accent);
  cursor: pointer;
  padding: 0 4px;
}

/* Сетка */

.p26 .p26-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 16px;
  margin-bottom: 28px;
  transition: opacity 0.15s;
}

.p26 .p26-grid.is-loading{
  opacity: 0.45;
  pointer-events: none;
}

.p26 .p26-card{
  display: block;
  color: var(--p26-ink);
  min-width: 0;
}

.p26 .p26-card__media{
  position: relative;
  border-radius: var(--p26-radius);
  overflow: hidden;
  background: var(--p26-soft);
  aspect-ratio: 4 / 3;
  margin-bottom: 12px;
}

.p26 .p26-card__track{
  display: flex;
  height: 100%;
  transition: transform 0.25s ease;
}

/* Кадр может быть обёрнут в <picture> (webp + запасной jpeg) — тогда полосу
   трека держит обёртка, а картинка заполняет её целиком */
.p26 .p26-card__track > picture{
  flex: 0 0 100%;
  height: 100%;
  display: block;
}

.p26 .p26-card__img{
  width: 100%;
  height: 100%;
  flex: 0 0 100%;
  object-fit: cover;
  display: block;
}

.p26 .p26-card__track > picture > .p26-card__img{
  flex: none;
}

.p26 .p26-card__img--empty{
  background: linear-gradient(135deg, #ececf0, #f7f7f9);
}

.p26 .p26-card__dots{
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 10px;
  display: flex;
  gap: 4px;
  opacity: 0;
  transition: opacity 0.2s;
}

.p26 .p26-card:hover .p26-card__dots,
.p26 .p26-card__media.is-touched .p26-card__dots{
  opacity: 1;
}

.p26 .p26-card__dot{
  flex: 1 1 auto;
  height: 3px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.45);
  transition: background-color 0.2s;
}

.p26 .p26-card__dot.is-active{
  background: #fff;
}

/* Заголовок и цена держатся на одном спокойном тоне (#3b3b3b, как число
   в ярлычке «N площадок»): акцент карточки — фотография и сумма, а не текст. */
.p26 .p26-card__title{
  font-size: 15.5px;
  line-height: 21px;
  font-weight: 500;
  color: #3b3b3b;
  margin-bottom: 6px;
  transition: color 0.15s;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 42px;
}

.p26 .p26-card:hover .p26-card__title{
  color: var(--p26-accent);
}

.p26 .p26-card__addr,
.p26 .p26-card__metro{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 18px;
  color: var(--p26-muted);
  margin-bottom: 4px;
}

.p26 .p26-card__addr span,
.p26 .p26-card__metro span:last-child{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.p26 .p26-card__addr svg{
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.p26 .p26-card__metro-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Выделена только сумма: «от» и единица идут мелким серым по базовой линии */
.p26 .p26-card__price{
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-size: 17px;
  line-height: 23px;
  font-weight: 600;
  color: #3b3b3b;
  margin: 10px 0 0;
}

.p26 .p26-card__price-pre{
  font-size: 12.5px;
  font-weight: 500;
  color: var(--p26-muted);
}

.p26 .p26-card__price-unit{
  font-size: 12.5px;
  font-weight: 400;
  color: var(--p26-muted);
}

/* Плашки поверх фото, в верхнем углу: низ снимка занимают точки галереи, а
   верх у интерьерных фото обычно спокойнее — потолок или стена. Стекло светлое,
   в тон карточке; тени нет — плашка читается за счёт размытия под собой. */
.p26 .p26-card__tags{
  position: absolute;
  left: 10px;
  right: 10px;
  top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  pointer-events: none;
}

/* Размеры подобраны по самой узкой колонке десктопа (244px под плашки):
   крупнее — и часть выдачи уезжает на вторую строку. */
.p26 .p26-card__tag{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 23px;
  padding: 0 7px;
  border-radius: 7px;
  /* Фон намеренно полупрозрачный: плашка должна читаться, но не спорить
     с фотографией. Держит её размытие под собой, а не плотность заливки. */
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11.5px;
  line-height: 1;
  font-weight: 500;
  color: #515151;
  white-space: nowrap;
}

.p26 .p26-card__tag svg{
  width: 12px;
  height: 12px;
  color: #515151;
  opacity: 0.7;
  flex-shrink: 0;
}

/* Пусто / показать ещё */

.p26 .p26-empty{
  grid-column: 1 / -1;
  background: #fff;
  border-radius: var(--p26-radius);
  padding: 40px 24px;
  text-align: center;
}

.p26 .p26-empty__title{
  font-size: 20px;
  line-height: 26px;
  font-weight: 600;
  margin-bottom: 8px;
}

.p26 .p26-empty__text{
  font-size: 15px;
  line-height: 22px;
  color: var(--p26-muted);
  margin-bottom: 20px;
}

.p26 .p26-empty__btn,
.p26 .p26-more{
  border: 1px solid var(--p26-line);
  background: #fff;
  border-radius: 100px;
  font-family: inherit;
  font-size: 15px;
  line-height: 20px;
  color: var(--p26-ink);
  padding: 14px 28px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}

.p26 .p26-empty__btn:hover,
.p26 .p26-more:hover{
  border-color: var(--p26-accent);
  color: var(--p26-accent);
}

.p26 .p26-more{
  display: block;
  margin: 0 auto;
  min-width: 240px;
}

.p26 .p26-more.is-hidden{
  display: none;
}

/* ——— Страницы выдачи ———
   Живому посетителю хватает «Показать ещё», ссылки нужны прежде всего роботу:
   без них он видит только первые 24 карточки из семи сотен. Поэтому блок
   спокойный — мельче кнопки и без заливок. */

.p26 .p26-pager{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 28px 0 0;
}

.p26 .p26-pager__item,
.p26 .p26-pager__nav{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 100px;
  font-size: 14px;
  line-height: 20px;
  color: var(--p26-muted);
  text-decoration: none;
  transition: color 0.15s, background 0.15s;
}

.p26 .p26-pager__item:hover,
.p26 .p26-pager__nav:hover{
  color: var(--p26-accent);
  background: rgba(0, 0, 0, 0.03);
}

.p26 .p26-pager__item.is-current{
  color: var(--p26-ink);
  font-weight: 600;
  background: rgba(0, 0, 0, 0.05);
}

.p26 .p26-pager__gap{
  color: #b5b5ba;
  padding: 0 2px;
}

/* ——— Мобильная шторка ——— */

.p26 .p26-sheet-overlay{
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1199;
  opacity: 0;
  transition: opacity 0.2s;
}

.p26 .p26-sheet-overlay.is-open{
  display: block;
  opacity: 1;
}

.p26 .p26-side__foot{
  display: none;
}

@media (max-width: 1200px) {
  .p26 .p26-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1024px) {
.p26{
    display: block;
  }

  .p26 .p26-bar{
    display: flex;
  }

  .p26 .p26-bar__filters{
    display: inline-flex;
  }

  /* Шторка: контейнер только скрывается, едет сама панель — сдвиг всего
     контейнера на 100% ненадёжен: при разной высоте вьюпорта из-под экрана
     торчала её шапка */
  .p26 .p26-side{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    /* Safari на iOS считает высоту fixed-элемента по «большому» вьюпорту —
       тому, что без панели браузера. Из-за этого низ шторки уходил под панель,
       а над ней оставалась пустая полоса. dvh считает по видимой части;
       строка с height: 100% остаётся фолбэком для старых браузеров. */
    height: 100%;
    height: 100dvh;
    max-width: none;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* выше шапки и нижнего меню сайта (у них z-index 1000 и 1100) */
    z-index: 1200;
    visibility: hidden;
    pointer-events: none;
  }

  .p26 .p26-side.is-open{
    visibility: visible;
    pointer-events: auto;
  }

  .p26 .p26-side__inner{
    transform: translateY(100%);
    transition: transform 0.28s ease;
    border-radius: 20px 20px 0 0;
    max-height: 88vh;
    max-height: 88dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* без нижнего паддинга: иначе в него проглядывает контент из-под липкого футера */
    padding: 0 20px;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .p26 .p26-side.is-open .p26-side__inner{
    transform: translateY(0);
  }

  .p26-drawer{
    top: 0 !important;
    left: 0 !important;
    width: 100vw;
    max-width: none;
    max-height: none;
    height: 100%;
    height: 100dvh;   /* та же беда Safari, что и у шторки фильтров */
    border-radius: 0;
    transform: translateX(100%);
    transition: transform 0.28s ease;
    opacity: 1;
  }

  .p26-drawer.is-open{
    transform: translateX(0);
  }

  .p26-drawer__apply{
    flex-grow: 1;
    font-size: 15px;
    padding: 14px 20px;
  }

  .p26-drawer__clear{
    padding: 14px 8px;
  }

  .p26-drawer__back{
    display: flex;
  }

  .p26-drawer__close{
    display: none;
  }

  /* В шторке счётчик не нужен: то же число стоит на закреплённой кнопке «Показать N» */
  .p26 .p26-found{
    display: none;
  }

  /* В шторке сброс живёт в закреплённом футере — второй кнопки не надо */
  .p26 .p26-side__reset{
    display: none;
  }

  .p26 .p26-side__head{
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    background: #fff;
    padding: 16px 0 12px;
    margin-bottom: 4px;
    z-index: 2;
  }

  .p26 .p26-side__title{
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
  }

  .p26 .p26-side__close{
    border: 0;
    background: var(--p26-soft);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--p26-ink);
  }

  .p26 .p26-side__foot{
    display: flex;
    gap: 8px;
    position: sticky;
    bottom: 0;
    background: #fff;
    padding: 12px 0 16px;
    margin-top: 8px;
    box-shadow: 0 -12px 16px -12px rgba(0, 0, 0, 0.25);
  }

  .p26 .p26-side__apply{
    flex-grow: 1;
    border: 0;
    border-radius: 100px;
    background: var(--p26-accent);
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    line-height: 20px;
    padding: 14px 20px;
    cursor: pointer;
  }

  .p26 .p26-side__clear{
    border: 1px solid var(--p26-line);
    border-radius: 100px;
    background: #fff;
    font-family: inherit;
    font-size: 15px;
    line-height: 20px;
    color: var(--p26-ink);
    padding: 14px 20px;
    cursor: pointer;
  }
}

@media (max-width: 640px) {
  .p26 .p26-grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }

  /* Одна колонка — карточка во всю ширину, заголовку можно чуть крупнее */
  .p26 .p26-card__title{
    font-size: 16px;
    line-height: 22px;
  }

  .p26 .p26-bar__total{
    font-size: 14px;
  }
}

/* Пустой пункт остаётся видимым — так понятно, что признак существует, — но
   не притворяется кликабельным: выбрать его нельзя, выдача по нему пустая. */
.p26 .p26-dd__opt.is-empty,
.p26-drawer .p26-dd__opt.is-empty{
  cursor: default;
}

.p26 .p26-dd__opt.is-empty:hover,
.p26-drawer .p26-dd__opt.is-empty:hover{
  background: transparent;
}

/* ── Строка заголовка: H1 и переход на карту ──────────────────────────────
   Живёт вне .p26 (рядом с h1 в .container), поэтому селектор от [data-aacat] —
   он специфичнее сброса «[data-aacat] div { margin: 0 }» из cat-2026-style.css. */

[data-aacat] .p26-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

/* Свой отступ заголовка сдвигал кнопку вверх относительно его середины */
[data-aacat] .p26-head .page-title-local{
  margin: 0;
}

[data-aacat] .p26-head__map{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 11px 20px;
  border: 1px solid var(--p26-line);
  border-radius: 100px;
  background: #fff;
  color: var(--p26-ink);
  font-size: 14px;
  line-height: 16px;
  text-decoration: none;
  transition: border-color .15s, color .15s, background .15s;
}

[data-aacat] .p26-head__map:hover{
  border-color: var(--p26-accent);
  color: var(--p26-accent);
}

@media (max-width: 640px){
  [data-aacat] .p26-head{
    gap: 10px;
  }

  [data-aacat] .p26-head__map{
    padding: 9px 16px;
  }
}

/* На телефоне кнопка карты уезжает в строку с «Фильтрами»: две отдельные
   кнопки одна под другой съедали экран до первой карточки. Строка .p26-bar
   на десктопе скрыта целиком, поэтому её вариант там не показывается. */
@media (max-width: 1024px) {
  [data-aacat] .p26-head__map {
    display: none;
  }

  .p26 .p26-bar__map {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 11px 18px;
    border: 1px solid var(--p26-line);
    border-radius: 100px;
    background: #fff;
    color: var(--p26-ink);
    font-size: 14px;
    line-height: 16px;
    text-decoration: none;
  }

  .p26 .p26-bar__map:hover {
    border-color: var(--p26-accent);
    color: var(--p26-accent);
  }
}

/* Отдельно прятать .p26-bar__map на десктопе не нужно и нельзя: строка .p26-bar
   там скрыта целиком вместе с содержимым, а правило после медиазапроса имеет
   ту же специфичность и перебивало его — кнопка пропадала на всех ширинах. */

/* Пока открыта мобильная шторка фильтров, кнопка чата не должна лезть поверх
   полей: у виджета Comagic z-index 16 777 001, слоем его не перебить.
   Класс на <html> ставит js/places26.js в openSheet/closeSheet. */
.p26-sheet-open .comagic-c-buttons,
.p26-sheet-open #comagic_widget,
.p26-sheet-open .bx-livechat-button,
.p26-sheet-open .b24-widget-button-wrapper {
  display: none !important;
}

/* Кружок линии метро в списке фильтра. Правило дублируется для панели
   (.p26-drawer), потому что она вынесена в body — там родителя .p26 нет. */
.p26 .p26-dd__dot,
.p26-drawer .p26-dd__dot {
  flex-shrink: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

/* ——— Текст на странице категории ———
   У общего листинга внизу стоят блоки-аккордеоны категории 676, у посадочной
   страницы текст один — разворачивать нечего, поэтому просто читаемая колонка. */

/* ⚠️ Двойной класс намеренно: сброс «[data-aacat] section { padding: 0 }»
   из cat-2026-style.css специфичнее одиночного класса, и текст врезался
   в нижний край серой заливки .cfc-wrap. */

/* ——— Текст категории: раскрывашки без фото ———
   Разметка сайта (.sections), поэтому ряды с разделителями, шеврон и
   раскрытие достаются от шаблона 2026 даром — их рисует cat-2026-style.css,
   тогглит js/cat-2026-script.js. Своего здесь два правила.

   ⚠️ Двойные селекторы намеренно: правила шаблона идут от [data-aacat]
   и специфичнее одиночного класса. */
[data-aacat] .p26-seotext{
  padding: 8px 0 48px;
}

/* Контейнер .sections в шаблоне — грид из двух колонок: левая под картинку
   раздела, правая под текст, а сами .sections__item растворены через
   display: contents. Фото у категорий нет, поэтому возвращаем обычный поток. */
[data-aacat] .p26-seotext .container{
  display: block !important;
  max-width: 1298px;
}

[data-aacat] .p26-seotext .sections__item{
  display: block !important;
  margin: 0 !important;
}

/* Мера строки: на всю ширину контейнера текст читается тяжело, а шаблон
   снимает ограничение через max-width: none !important */
[data-aacat] .p26-seotext .sections__item-text{
  max-width: 900px;
}

/* Вводный абзац до первого заголовка — сворачивать нечего, показываем как есть */
[data-aacat] .p26-seotext .p26-seolead{
  max-width: 900px;
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 24px;
  color: #4a4a4f;
}

[data-aacat] .p26-seotext .p26-seolead p{
  margin: 0 0 12px;
  color: #4a4a4f;
}

[data-aacat] .p26-seotext .p26-seolead p:last-child{
  margin-bottom: 0;
}

@media (max-width: 767px){
  [data-aacat] .p26-seotext{
    padding-bottom: 36px;
  }
}

/* ——— Перелинковка категорий под выдачей ———
   Оформлена как блок «Также подходит» на карточке площадки (.recommend-new):
   серая плашка со скруглением 40, паддинг 40, заголовок 32/600 — иначе
   перечень ссылок читается на странице чужим элементом.

   Свёрнута в <details>: на экране одна строка заголовка, а в HTML полный
   перечень раздела, по которому робот ходит и без раскрытия. */
.p26-links{
  margin: 40px 0 56px;
  padding: 40px 0;
  background: #f2f2f2;
  border-radius: 40px;
}

.p26-links .p26-links__summary{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  color: #3b3b3b;
}

.p26-links .p26-links__aside{
  display: flex;
  align-items: center;
  gap: 10px;
}

.p26-links .p26-links__hint{
  font-size: 13.5px;
  line-height: 19px;
  color: #86868b;
}

/* Штатный треугольник убираем в обоих движках — свой шеврон справа от заголовка */
.p26-links .p26-links__summary::-webkit-details-marker{
  display: none;
}
.p26-links .p26-links__summary::marker{
  content: '';
}

.p26-links .p26-links__summary:hover{
  color: var(--p26-accent);
}

.p26-links .p26-links__title{
  margin: 0;
  font-size: 32px;
  line-height: 32px;
  font-weight: 600;
  color: inherit;
}

.p26-links .p26-links__chev{
  display: inline-flex;
  color: #a6a6ab;
  transition: transform .2s ease;
}

.p26-links .p26-links__box[open] .p26-links__chev{
  transform: rotate(180deg);
}

/* Событий вдвое больше, чем типов и признаков, поэтому под них две доли сетки
   и раскладка списка в две колонки — иначе блок вытягивается вдвое выше. */
.p26-links .p26-links__cols{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 24px 28px;
  padding-top: 24px;
}

.p26-links .p26-links__col{
  min-width: 0;
}

/* Волосинка темнее, чем в сайдбаре: на сером фоне плашки --p26-line не видно */
.p26-links .p26-links__sub{
  margin: 0 0 6px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
  font-size: 12px;
  line-height: 16px;
  color: #86868b;
}

.p26-links .p26-links__list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.p26-links .p26-links__col--event .p26-links__list{
  columns: 2;
  column-gap: 28px;
}

.p26-links .p26-links__li{
  margin: 0;
  padding: 0;
  list-style: none;
  break-inside: avoid;
}

.p26-links .p26-links__item{
  display: block;
  padding: 3px 0;
  font-size: 13.5px;
  line-height: 19px;
  color: #3b3b3b;
  text-decoration: none;
  transition: color .15s ease;
}

.p26-links a.p26-links__item:hover{
  color: var(--p26-accent);
}

/* Текущая категория остаётся в перечне, но без ссылки — иначе в списке дырка */
.p26-links .p26-links__item.is-current{
  color: #9a9aa0;
}

.p26-links .p26-links__qty{
  margin-left: 5px;
  font-size: 11.5px;
  color: #a6a6ab;
}

@media (max-width: 1023px){
  .p26-links .p26-links__cols{
    grid-template-columns: 1fr 1fr;
  }
  .p26-links .p26-links__col--event{
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px){
  .p26-links{
    margin: 28px 0 40px;
    padding: 28px 0;
    border-radius: 24px;
  }
  .p26-links .p26-links__title{
    font-size: 22px;
    line-height: 26px;
  }
  /* На телефоне в строке остаётся заголовок и шеврон — число не влезает */
  .p26-links .p26-links__hint{
    display: none;
  }
  .p26-links .p26-links__cols{
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 20px;
  }
  /* На телефоне колонки не делим: названия длинные, в 160px они рвутся на три строки */
  .p26-links .p26-links__col--event .p26-links__list{
    columns: 1;
  }
}
