/* Отзывник — на реальных цветах bigru: teal #17bbc1, розовый #ff0066, коралл #EF5350 */
.rv-wrap { }
.rv-search-bar { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.rv-search-bar input[type=text] { flex: 1; min-width: 180px; padding: 9px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; }
.rv-search-bar select { padding: 9px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; background: #fff; }
.rv-search-bar .rv-submit-btn { padding: 9px 20px; }

.rv-cat-filter { margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.rv-cat-tab-form { margin: 0; display: inline-block; }
.rv-cat-tab-btn { display:inline-block; padding:7px 14px; border:1px solid #e2e2e2; border-radius:4px; font-size:13px; color:#444; text-decoration:none; background:#fafafa; cursor:pointer; font-family:inherit; }
.rv-cat-tab-btn.current, .rv-cat-tab-btn:hover { background:#ff0066; border-color:#ff0066; color:#fff; }
.rv-cat-tab-btn.current .rv-cat-count, .rv-cat-tab-btn:hover .rv-cat-count { background:rgba(255,255,255,.25); }

.rv-sort-form { display: inline; }
.rv-sort-link { background: none; border: none; padding: 0; font: inherit; color: #17bbc1; cursor: pointer; text-decoration: underline; }
.rv-sort-link:hover { color: #ff0066; }
.rv-cat-filter a { display:inline-block; padding:7px 14px; margin:0 6px 6px 0; border:1px solid #e2e2e2; border-radius:4px; font-size:13px; color:#444; text-decoration:none; background:#fafafa; }
.rv-cat-filter a.current, .rv-cat-filter a:hover { background:#ff0066; border-color:#ff0066; color:#fff; }
.rv-cat-count { display:inline-block; margin-left:5px; padding:1px 7px; border-radius:10px; font-size:11px; background:rgba(0,0,0,.08); color:inherit; }
.rv-cat-filter a.current .rv-cat-count, .rv-cat-filter a:hover .rv-cat-count { background:rgba(255,255,255,.25); }

/* Исправление "кривых" рядов: без этого блока карточки разной высоты
   (когда у одной адрес длиннее и переносится на 2 строки) ломают сетку —
   следующий ряд съезжает, т.к. Bootstrap 3 .row/.col-* работают на float,
   а не flex, и не выравнивают высоту соседних колонок в ряду. */
.rv-wrap .row { display: flex; flex-wrap: wrap; }
.rv-wrap .row > [class*="col-"] { display: flex; }

.rv-company-thumb { display:flex; flex-direction:column; width:100%; border:1px solid #eee; border-radius:6px; padding:14px; background:#fff; text-decoration:none; color:inherit; }
.rv-company-thumb:hover { box-shadow:0 4px 14px rgba(0,0,0,.1); }
.rv-company-thumb .rv-company-logo { width:48px; height:48px; border-radius:6px; background:#eef7f6; color:#17bbc1; font-weight:bold; display:flex; align-items:center; justify-content:center; margin-bottom:8px; flex-shrink:0; }
.rv-company-thumb h2 { font-size:15px; margin:0 0 6px; color:#222; }
.rv-company-thumb .icon-l { margin-top:auto; padding-top:8px; }

.rv-stars i { font-style:normal; }
.rv-stars i.rv-star-full::before { content:"★"; color:#ff0066; }
.rv-stars i.rv-star-empty::before { content:"★"; color:#ddd; }
.rating-num { font-size:13px; color:#8a8f95; margin-left:6px; }

/* Защита от глобальных стилей темы: класс "content" у темы может включать
   многоколоночную вёрстку (column-count) для длинных статей — явно
   отключаем это для страниц Отзывника, где своя структура. */
.rv-moderation-note { margin-top: 14px; padding: 10px 14px; background: #eef7f6; border-left: 3px solid #17bbc1; border-radius: 4px; font-size: 12px; color: #444; line-height: 1.5; }
.rv-moderation-note-catalog { margin-top: 0; margin-bottom: 16px; }

.rv-page, .rv-wrap { column-count: 1 !important; -webkit-column-count: 1 !important; columns: initial !important; }

.rv-page { max-width: 100%; }
.rv-speedbar { font-size: 13px; color: #8a8f95; margin-bottom: 10px; }
.rv-speedbar a { color: #8a8f95; text-decoration: none; }
.rv-back-to-ad { display: inline-block; margin-bottom: 18px; font-size: 13px; color: #17bbc1; text-decoration: none; }
.rv-back-to-ad:hover { text-decoration: underline; }

.rv-card { background: #fff; border: 1px solid #eee; border-radius: 8px; padding: 20px; margin-bottom: 18px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }

.rv-company-head { display: flex; gap: 18px; align-items: flex-start; }
.rv-company-head .rv-company-logo { width: 72px; height: 72px; border-radius: 8px; background: #eef7f6; color: #17bbc1; font-weight: bold; font-size: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rv-company-head-info { flex: 1; min-width: 0; }
.rv-company-head h1 { font-size: 21px; margin: 0 0 10px; color: #222; }

.rv-form-block h3 { margin-top: 0; }
.rv-reviews-list { }

@media (max-width: 480px) {
	.rv-company-head { flex-direction: column; align-items: center; text-align: center; }
	.meta-row { justify-content: center; }
	.rv-card { padding: 16px; }
}


.rv-rating-badge { display:inline-flex; background:#ff0066; color:#fff; font-weight:bold; padding:3px 9px; border-radius:3px; font-size:13px; margin-left:6px; }
.meta-row { color:#8a8f95; font-size:14px; margin:8px 0; display:flex; gap:16px; flex-wrap:wrap; }
.meta-row a { color:#17bbc1; text-decoration:none; }

.rv-form-block { margin:16px 0; padding:16px; border:1px solid #eee; border-radius:6px; }
.rv-form-block h3 { font-size:16px; margin:0 0 12px; }
.rv-form-block .fg { margin-bottom:14px; }
.rv-form-block label { display:block; font-size:13px; margin-bottom:5px; color:#333; }
.rv-form-block input[type=text], .rv-form-block textarea { width:100%; padding:9px; border:1px solid #ddd; border-radius:4px; font-size:14px; box-sizing:border-box; }
.rv-form-block textarea { min-height:80px; }
.rv-star-widget { display:inline-flex; gap:3px; font-size:24px; cursor:pointer; }
.rv-star-widget i { font-style:normal; color:#ddd; }
.rv-star-widget i::before { content:"★"; }
.rv-star-widget i.active { color:#ff0066; }
.rv-submit-btn { background:#EF5350; color:#fff; border:none; padding:9px 20px; border-radius:4px; font-weight:bold; cursor:pointer; }
.rv-note { font-size:12px; color:#8a8f95; margin-top:6px; }
.rv-msg { padding:8px 12px; margin-bottom:12px; font-size:13px; border-radius:4px; }
.rv-msg-ok { background:#eafaf0; color:#1a7a41; }
.rv-msg-err { background:#fdecea; color:#b3261e; }

.rv-sort-bar { font-size:12px; color:#8a8f95; margin-bottom:10px; }
.rv-review-item { padding:12px 0; border-bottom:1px solid #eee; }
.rv-review-item:last-child { border-bottom:none; }
.rv-review-header { display:flex; align-items:center; gap:8px; font-size:12px; color:#8a8f95; }
.rv-review-header .author { font-weight:bold; color:#222; }
.rv-review-header .date { margin-left:auto; }
.rv-review-text { margin:6px 0 0; color:#444; }
.rv-empty { text-align:center; color:#8a8f95; padding:24px 0; }

/* Виджет "Отзывы + рейтинг" на странице объявления */
.rv-widget-block { margin: 10px 0; }
.rv-widget-link { display:inline-flex; align-items:center; gap:8px; text-decoration:none; }
.rv-widget-btn { background:#17bbc1; color:#fff; padding:6px 14px; border-radius:4px; font-size:13px; font-weight:bold; }
.rv-widget-link .rv-stars { font-size:15px; }
.rv-widget-count { font-size:13px; color:#666; }
.rv-back-to-ad { display:block; margin: 12px 0 4px; font-size:13px; color:#17bbc1; text-decoration:none; clear:both; }
.rv-back-to-ad:hover { text-decoration:underline; }


/* bigru: виджет отзывов в карточках списка */
/* Виджет складывался в одну неразрывную строку и распирал карточку шире её
   колонки — на телефоне правый столбец объявлений уезжал за край экрана. */
.rv-widget-block { max-width: 100%; min-width: 0; }
.rv-widget-link  { flex-wrap: wrap; max-width: 100%; min-width: 0; gap: 6px; }

/* В карточках списка оставляем только звёзды с оценкой, без кнопки «Отзывы» —
   на странице объявления кнопка остаётся. */
.thumbnail.offer .rv-widget-btn { display: none; }
.thumbnail.offer .rv-widget-block { margin: 6px 0 4px; }
.thumbnail.offer .rv-widget-link .rv-stars { font-size: 14px; }
.thumbnail.offer .rv-widget-count { font-size: 12px; }

@media (max-width: 480px) {
  .rv-widget-btn { padding: 5px 10px; font-size: 12px; }
  .rv-widget-link .rv-stars { font-size: 14px; }
}


/* bigru: выравнивание карточек в сетке */
/* Карточка подгонялась по ширине картинки, поэтому в ряду стояли карточки
   163, 150, 137 px — «рваная» сетка. Теперь карточка занимает всю колонку,
   а картинка вписывается внутрь. */
/* Без привязки к .grid: на странице поиска и в категориях карточки лежат вне
   сетки главной, и правило до них не доставало. Там у картинки оставалась
   тема-шная распорка .img-wrapper img { min-height: 100% } — при ширине 126 px
   она тянула картинку до 200 px в высоту, и карточки выходили вытянутыми. */
.thumbnail.offer { width: 100%; max-width: 100%; }
.thumbnail.offer .img-wrapper { text-align: center; }
.thumbnail.offer .img-wrapper img {
  width: 100%;
  height: 100%;          /* рамка у темы фиксированной высоты: при height:auto
                            под фото оставалась пустая полоса в сотню пикселей */
  min-height: 0;         /* тема распирала картинку до высоты рамки — из-за этого
                            фото и выходили вытянутыми по вертикали */
  max-width: 100%;
  object-fit: cover;     /* заполняем рамку с обрезкой, а не растягиванием */
  object-position: center;
}


/* bigru: заголовок карточки */
/* У заголовка стоял max-height 60px при высоте строки 17px: длинное название
   резалось посередине четвёртой строки и наезжало на город. Обрезаем ровно
   по трём строкам с многоточием. */
.grid .zaga_news {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}


/* bigru: компактная плашка cookie на телефоне */
/* Плашка занимала 202 px — четверть экрана телефона — и закрывала первые
   карточки: текст был набран 20-м кеглем, кнопки уходили в два ряда.
   Селекторы по id, чтобы гарантированно перебить стили самого модуля. */
@media (max-width: 767px) {
  /* в filter-xf.css размеры прибиты !important, перебиваем тем же весом */
  #gdprcookie-main-wrap { padding: 8px 10px !important; }
  #gdprcookie-main-wrap .gdprcookie-message {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin: 0 0 6px;
  }
  #gdprcookie-main-wrap .gdprcookie-btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0;
  }
  #gdprcookie-main-wrap .gdprcookie-button {
    font-size: 12px !important;
    padding: 6px 12px !important;
    margin: 0;
    line-height: 1.2;
  }
}


/* bigru: панель смайликов */
/* Смайлики оставлены как есть, ограничена только их панель: высота задавалась
   жёстко в 300 px, и на телефоне выпадающий список закрывал форму почти
   наполовину. Теперь не больше 45% высоты экрана, с прокруткой внутри,
   и не вылезает за правый край. */
.bb-pane-dropdown.emoji-button {
  max-height: min(300px, 45vh) !important;
  overflow-y: auto !important;
  max-width: calc(100vw - 20px);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 767px) {
  .bb-pane-dropdown.emoji-button td { padding: 3px !important; }
}


/* bigru: страница поиска */
/* Страница поиска шла в дефолтном виде от движка: вёрстка таблицей, поле и
   кнопки в три этажа через <br>, красная кнопка не из палитры сайта и синяя
   плашка результатов. Собираем в одну строку и красим в цвета шапки. */
.searchpage .page-header { margin: 0 0 14px; padding-bottom: 10px; }
.searchpage .page-header h1 { margin: 0; font-size: 22px; }

.searchpage #searchtable table,
.searchpage #searchtable tbody,
.searchpage #searchtable tr,
.searchpage #searchtable td { display: block; width: 100%; }

.searchpage #searchtable br { display: none; }

.searchpage td.search > div {
  margin: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.searchpage #searchinput {
  width: auto !important;          /* в разметке зашито style="width:250px" */
  flex: 1 1 260px;
  min-width: 180px;
  height: 42px;
  padding: 0 14px;
  border: 1px solid #d7dde2 !important;
  border-radius: 6px;
  background: #fff;
  font-size: 15px;
}
.searchpage #searchinput:focus { border-color: #17bbc1 !important; outline: none; }

.searchpage input.bbcodes {
  height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 6px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  background: #ff0066 !important;
  color: #fff !important;
}
.searchpage #dofullsearch { background: #eef2f4 !important; color: #4a5560 !important; }
.searchpage input.bbcodes:hover { opacity: .9; }

.searchpage .alert-info {
  margin: 14px 0;
  padding: 8px 12px;
  border: 0;
  border-left: 3px solid #17bbc1;
  border-radius: 0 4px 4px 0;
  background: #f6f8f9;
  color: #4a5560;
  font-size: 14px;
}

@media (max-width: 480px) {
  .searchpage #searchinput { flex: 1 1 100%; }
  .searchpage input.bbcodes { flex: 1 1 auto; }
}


/* bigru: автоссылки в описании */
/* Цвет наследуется от темы, добавляем только подчёркивание при наведении и
   перенос — иначе длинный адрес растягивал бы страницу на телефоне. */
.f-text-in a.bg-auto-link {
  word-break: break-word;
  overflow-wrap: anywhere;
}
.f-text-in a.bg-auto-link:hover { text-decoration: underline; }
.f-text-in a.bg-auto-tel { white-space: nowrap; }


/* bigru: постраничность Отзывника */
.rv-pg-info { margin: 12px 0 6px; color: #7a848c; font-size: 13px; }
.rv-pagination { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 20px; }
.rv-pg-btn {
  min-width: 38px; height: 38px; padding: 0 10px;
  border: 1px solid #dde3e7; border-radius: 6px;
  background: #fff; color: #4a5560; font-size: 14px; cursor: pointer;
}
.rv-pg-btn:hover { border-color: #17bbc1; color: #0d8b90; }
.rv-pg-btn.current { background: #17bbc1; border-color: #17bbc1; color: #fff; font-weight: bold; cursor: default; }
.rv-pg-nav { font-weight: bold; }
.rv-pg-gap { padding: 0 4px; color: #9aa4ac; }
@media (max-width: 480px) {
  .rv-pg-btn { min-width: 34px; height: 34px; padding: 0 8px; font-size: 13px; }
}


/* bigru: форма подачи объявления */
/* Выбор категории был жёстко задан как 350×140 px прямо в разметке движка:
   на телефоне это пустой прямоугольник на пол-экрана со 133 пунктами внутри.
   Размеры снимает addform.js, здесь задаём нормальный вид поля. */
#category {
  width: 100%;
  max-width: 420px;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #d7dde2;
  border-radius: 6px;
  background: #fff;
  font-size: 15px;
}
#category:focus { border-color: #17bbc1; outline: none; }
@media (max-width: 767px) {
  #category { max-width: 100%; font-size: 16px; } /* 16px — иначе iOS зумит страницу при фокусе */
}


/* bigru: фильтр рубрик в Отзывнике */
/* В панели поиска теперь три элемента: название, рубрика и город.
   На телефоне они вставали в три неровные строки — раскладываем в столбик. */
.rv-search-bar select {
  padding: 9px 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
  font-size: 14px;
}
@media (max-width: 600px) {
  .rv-search-bar input[type=text],
  .rv-search-bar select,
  .rv-search-bar .rv-submit-btn { flex: 1 1 100%; min-width: 0; }
  .rv-search-bar select { font-size: 16px; } /* иначе iOS зумит страницу при выборе */
}

/* === Единая рамка под фото в карточках списков — 16.08.2026 === */
/* Раньше высота рамки была прибита цифрой (styles.css, @media max-width:400px —
   height:200px), а ширина карточки на телефоне всего 126-141 px: фотография
   обрезалась узкой вертикальной полосой. Теперь рамка всегда 4:3 — одинаково
   на главной, в категориях и в результатах поиска. */
.thumbnail.offer .img-wrapper {
  position: relative;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.thumbnail.offer .img-wrapper img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: 100%;
  object-fit: cover;          /* фото заполняет рамку обрезкой, а не растягиванием */
  object-position: center center;
}
/* Ценник и «Есть видео» теперь лежат внутри рамки и держатся её нижнего края,
   поэтому не наезжают на заголовок при любой ширине карточки. */
.thumbnail.offer .img-wrapper .price,
.thumbnail.offer .img-wrapper .youtube {
  top: auto;
  bottom: 0;
  left: 0;
  z-index: 2;
}

/* === Ролик с YouTube на странице объявления — 16.08.2026 === */
.bg-video { margin: 0 0 20px; }
.bg-video-title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px;
}
.bg-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 4px;
  overflow: hidden;
}
.bg-video-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.bg-video-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: #000;
  cursor: pointer;
}
.bg-video-cover { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Кнопка «плей» рисуется средствами разметки, чтобы не тянуть лишнюю картинку */
.bg-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 68px;
  height: 48px;
  margin: -24px 0 0 -34px;
  border-radius: 10px;
  background: rgba(0,0,0,.65);
}
.bg-video-play:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -10px 0 0 -6px;
  border-style: solid;
  border-width: 10px 0 10px 17px;
  border-color: transparent transparent transparent #fff;
}
.bg-video-btn:hover .bg-video-play { background: #ff0033; }
.bg-video-link { display: inline-block; margin-top: 6px; }


/* Вступление и правила в Отзывнике, добавлено 14.09.2026 */
.rv-intro{margin:10px 0 14px;font-size:15px;line-height:1.55;color:#333}
.rv-rules{margin:0 0 16px;padding:8px 12px;border-left:3px solid #d32f2f;background:#fff5f5;color:#d32f2f;font-size:12px;line-height:1.45}
.ptitle h1{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;display:inline}

.rv-first,.rv-first-small{font-size:12px;color:#777;font-weight:normal}
