@charset "UTF-8";

/* ВЕРСИЯ ФАЙЛА: 3. Подключается только на странице /map как map-view.css?v=3.
   Версия 3, 04.10.2026: у выбранного дела убран внутренний ободок на 2 пикселя.
   Владелец: «по остальному периметру сделать тонкой, а то очень визуально шумит».
   Осталась толстая полоса слева и тонкая оранжевая рамка.
   ПРАВИЛО: если правишь этот файл — подними версию на единицу (v=1 -> v=2) в
   файле map.php, больше его подключает только он. Общую ASSETS_V не трогаем:
   поднимать её значило бы заставить всех посетителей перекачивать стили и
   скрипты ради правки одной страницы.

   04.10.2026. Стили своей карты. Библиотеки Leaflet на сайте больше нет
   (решение владельца: «уберём Leaflet»), карта собрана на своём коде в map.php
   и рисует тайлы, отданные с нашего хостинга. Классы названы с префиксом
   .pdvmap, чтобы ничего не пересекалось с прежними правилами Leaflet.

   Цвета панели точки — свои, а не из .mappop в map-points.css: та подложка
   писалась под тёмную подложку карты Яндекса, а теперь под панелью светлый
   фон, и светло-серый текст на белом не читался бы. */

.pdvmap {
  position: relative;
  overflow: hidden;
  background: #e8e4dc;
  cursor: grab;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}
.pdvmap.is-drag { cursor: grabbing; }
.pdvmap:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Слои. Тайлы и точки лежат рядом, оба начинаются от левого верхнего угла
   контейнера, координаты внутри них задаёт JS. */
.pdvmap__tiles,
.pdvmap__marks {
  position: absolute;
  inset: 0;
}
.pdvmap__marks { pointer-events: none; }

/* Один тайл. Размеры нулевые, картинка внутри позиционируется сама: так
   подставной тайл с меньшего зума можно показать поверх пустоты, не обрезав
   его по границам соседей. */
.pdvmap__tile {
  position: absolute;
  width: 0;
  height: 0;
}
.pdvmap__img {
  position: absolute;
  left: 0;
  top: 0;
  width: 256px;
  height: 256px;
  display: block;
}
/* Тайла нет и подставить нечего: остаётся ровный фон контейнера, без рамки и
   без плейсхолдера — карта за пределами покрытия просто тише выглядит. */
.pdvmap__img.is-blank { visibility: hidden; }

/* Точка. Правило владельца от 28.09.2026: красная точка всегда одна и значит
   «ты сейчас здесь», остальные — жёлтые. Размер и цвет задаёт JS классом
   .is-active, здесь только форма. */
.pdvmap__mark {
  position: absolute;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  padding: 0;
  border: 2px solid #0a0a0a;
  border-radius: 50%;
  background: #ffcf4d;
  cursor: pointer;
  pointer-events: auto;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.pdvmap__mark:hover { transform: scale(1.15); }
.pdvmap__mark.is-active {
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border-width: 3px;
  border-color: #7a1b12;
  background: #d92d20;
}

/* Кнопки масштаба и сброса кадра. */
.pdvmap__ctrl {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 4;
}
.pdvmap__btn {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .92);
  color: #201d1b;
  font: 700 18px/1 "Tilda Sans", Arial, sans-serif;
  cursor: pointer;
}
.pdvmap__btn:hover { background: #fff; border-color: var(--accent); }
.pdvmap__btn[disabled] { opacity: .45; cursor: default; }
.pdvmap__btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }

/* Панель выбранной точки. */
.pdvmap__pop {
  position: absolute;
  z-index: 5;
  max-width: 290px;
  padding: 14px 16px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
}
.pdvmap__pop .mappop__name { color: #c8430a; }
.pdvmap__pop .mappop__meta,
.pdvmap__pop .mappop__addr { color: #5c534b; }
.pdvmap__pop .mappop__addr a { color: #c8430a; }
.mappop__close {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #5c534b;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.mappop__close:hover { background: #f1ece5; }

/* ---- строка дела в блоке «Все места» ----
   04.10.2026, по просьбе владельца: выбранная точка и выбранное дело должны
   показывать друг друга. Нажал точку на карте — загорелась полоска у дела;
   нажал дело — точка стала красной. Полоса та же, что у карточки раздела в
   «Все разделах» (.busel-card.is-geo-active), поэтому вид один и тот же. */
.place {
  cursor: pointer;
  /* Полоса слева reserved in the unselected row too, and exactly as thick: at 3px
     against 4px the text of the row jumped by a pixel when it was selected. */
  border-left: 4px solid transparent;
}
.place.is-geo-active {
  border-color: var(--accent);
  border-left-width: 4px;
  background: #2f2723;
}
.place.is-geo-active .place__title { color: var(--accent); }
.place:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Подпись под картой. Подпись «© OpenStreetMap» со ссылкой на страницу
   лицензии обязательна: наши тайлы нарисованы из данных OpenStreetMap, и
   условия требуют называть источник и давать ссылку. Прятать её нельзя,
   поэтому она обычный видимый элемент, а не скрытый для accessibility. */
.pdvmap__attrib {
  position: absolute;
  right: 6px;
  bottom: 4px;
  z-index: 3;
  padding: 1px 7px;
  border-radius: 4px;
  background: rgba(255, 255, 255, .82);
  color: #4a423b;
  font-size: 11px;
  line-height: 18px;
}
.pdvmap__attrib a { color: #4a423b; text-decoration: underline; }