/* cn3-plus / realestate: страница новостройки.
   Плитки без пустых мест, паспорт объекта с общим баллом, полосы оценок, единые размеры шрифтов.
   Правила начинаются с .re-single и сильнее стилей, встроенных в шаблон. */

.re-single { padding-top: 10px; }

/* ---- Заголовок и общий балл ---- */
.re-single .re-single-header > div { margin-bottom: 14px !important; }
.re-single .re-single-title { margin: 0; font-size: var(--t-h1); line-height: var(--lh-tight, 1.15); }
.re-single .re-meta-score {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--mainColor);
  color: var(--bodyBg, #fff);
  box-shadow: none;
  font-size: var(--t-ui);
}
.re-single .re-meta-score .cn3-i { width: 1em; height: 1em; }

/* ---- Обложка и паспорт рядом ---- */
.re-single .re-hero-block {
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
  gap: 18px;
  max-height: none;
  margin-bottom: 22px;
  align-items: stretch;
}
.re-single .re-hero-image-wrapper {
  height: auto;
  min-height: 320px;
  border-radius: 18px;
}
.re-single .re-hero-info {
  height: auto;
  padding: 18px 20px;
  border-radius: 18px;
  gap: 0;
  background: var(--greyBg);
}
.re-single .re-info-title { font-size: var(--t-label); letter-spacing: .05em; }
.re-single .re-info-value,
.re-single .re-metro-item { font-size: var(--t-ui); }
.re-single .re-metro-time { font-size: var(--t-meta); }

/* паспорт: общий балл крупно */
.re-single .re-passport {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--borderColor);
}
.re-single .re-passport__value {
  font-size: 2.6rem;
  line-height: 1;
  font-weight: var(--bold, 600);
  font-variant-numeric: tabular-nums;
}
.re-single .re-passport__meta { display: flex; flex-direction: column; gap: 2px; font-size: var(--t-meta); color: var(--greyColor); }
.re-single .re-passport__meta strong { font-size: var(--t-ui); color: var(--mainColor); }

/* ---- Карта: свёрнутая не занимает места, пока скрипт карт не загружен ---- */
.re-single .re-map-wrapper { margin-bottom: 22px; }

/* ---- Оценки: плитки с полосами ---- */
.re-single .re-content { margin-bottom: 26px; }
.re-single .re-scores-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
  margin-bottom: 30px;
}
.re-single .re-score-card { padding: 14px 16px; border-radius: 16px; background: var(--greyBg); }
.re-single .re-score-label { margin-bottom: 8px; font-size: var(--t-ui); color: var(--mainColor); font-weight: var(--bold, 600); }
.re-single .re-score-col-title { font-size: var(--t-label); letter-spacing: .05em; }
.re-single .re-score-value { font-size: 1.5rem; }
.re-single .re-score-value span { font-size: var(--t-ui); }
.re-single .re-user-count { font-size: var(--t-meta); }
.re-single .re-score-col { padding: 4px 0 6px; }
/* полоса: заполнена пропорционально оценке (переменные --v и --u задаёт шаблон) */
.re-single .re-score-col--expert::after,
.re-single .re-score-col--user::after {
  content: "";
  display: block;
  height: 5px;
  margin: 8px 10px 0;
  border-radius: 3px;
  background: var(--borderColor);
}
.re-single .re-score-col--expert::after { background: linear-gradient(to right, var(--mainColor) var(--v, 0%), var(--borderColor) var(--v, 0%)); }
.re-single .re-score-col--user::after { background: linear-gradient(to right, #3B82F6 var(--u, 0%), var(--borderColor) var(--u, 0%)); }
.re-single .re-user-vote { margin-top: 10px; padding-top: 10px; }
.re-single .re-vote-btn { font-size: var(--t-ui); }

/* ---- Экспертный разбор: карточки в три колонки, без подпрыгивания ---- */
.re-single .re-details-section { margin-top: 30px; }
.re-single .re-section-title {
  margin: 0 0 16px;
  padding-bottom: 8px;
  font-size: var(--t-h2);
  line-height: var(--lh-snug, 1.3);
  border-bottom: 1px solid var(--borderColor);
}
.re-single .re-details-grid { gap: 12px; margin-bottom: 28px; }
.re-single .re-detail-block { padding: 14px 16px; border-radius: 16px; background: var(--greyBg); }
.re-single .re-detail-block:hover { transform: none; box-shadow: none; }
.re-single .re-detail-block-title { margin: 0 0 10px; padding-bottom: 8px; font-size: var(--t-card); }
.re-single .re-detail-item { padding: 6px 0; }
.re-single .re-detail-item-label,
.re-single .re-detail-item-value { font-size: var(--t-ui); }
.re-single .re-status-indicator { padding: 4px 10px; font-size: var(--t-meta); }
.re-single .re-status-indicator:hover { transform: none; }

/* ---- Тёмная тема ---- */
html[data-theme="dark"] .re-single .re-hero-info,
html[data-theme="dark"] .re-single .re-score-card,
html[data-theme="dark"] .re-single .re-detail-block { background: var(--lightColor); border-color: var(--borderColor); }
html[data-theme="dark"] .re-single .re-score-col--user .re-score-value { color: #7fb0ff; }

@media (max-width: 900px) {
  .re-single .re-hero-block { grid-template-columns: 1fr; }
  .re-single .re-hero-image-wrapper { min-height: 0; }
}
