/* ============================================================
   СОЛД – Делись — main page styles
   ============================================================ */

body { overflow-x: hidden; }

/* === Generic components === */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 32px;
  border-radius: 100px;
  font-weight: 600;
  font-size: 18px;
  line-height: 22px;
  text-decoration: none;
  border: 2px solid transparent;
  transition: transform .15s, background .15s, border-color .15s, color .15s;
  white-space: nowrap;
  cursor: pointer;
}
.btn--dark        { background: var(--color-black); color: #fff; }
.btn--dark:hover  { background: var(--color-black-hover); }
.btn--brand       { background: var(--color-brand); color: #fff; padding: 16px 28px; }
.btn--brand:hover { background: var(--color-brand-hover); }
.btn--outline     { background: #fff; color: var(--color-black); border: 2px solid var(--color-gray-300); }
.btn--outline:hover { border-color: var(--color-black); }
.btn--outline-white { background: transparent; color: #fff; border: 2px solid #fff; }
.btn--outline-white:hover { background: rgba(255,255,255,.1); }
/* Два размера на весь сайт: обычный — главные действия, мелкий — второстепенные */
.btn--sm          { padding: 11px 20px; font-size: 15px; line-height: 18px; }

.section-title {
  font-family: 'Unbounded', var(--font-family);
  font-size: 40px;
  line-height: 1.0;
  font-weight: 500;
  color: var(--color-black);
  letter-spacing: -0.02em;
}
.section-title--center { text-align: center; }

.tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
}
.tabs__btn {
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
  color: var(--color-black);
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.tabs__btn:hover { color: var(--color-brand); }
.tabs__btn--active { color: var(--color-black); border-bottom-color: var(--color-brand); font-weight: 600; }
.tabs__btn--muted  { opacity: .25; }

.slider-arrows { display: flex; gap: 12px; }
.slider-arrows__btn {
  width: 48px; height: 48px;
  border-radius: 100px;
  border: 2px solid var(--color-gray-300);
  background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.slider-arrows__btn--active { background: #F0F1FF; border-color: #F0F1FF; }
.slider-arrows__btn:hover { background: #F0F1FF; border-color: #F0F1FF; }

.pagination { display: flex; gap: 8px; align-items: center; justify-content: center; }
.pagination__dot { width: 8px; height: 8px; border-radius: 4px; background: var(--color-black); opacity: .25; transition: all .15s; }
.pagination__dot--active { width: 16px; background: var(--color-brand); opacity: 1; }

.dotted {
  flex: 1;
  border-bottom: 2px dotted rgba(255,255,255,.4);
  margin: 0 8px;
  align-self: flex-end;
  margin-bottom: 6px;
}

/* ============================================================
   HEADER
   ============================================================ */
.header {
  width: 100%;
  background: #fff;
  border-radius: 0 0 40px 40px;
  box-shadow: 0 -1px 24px rgba(139,112,172,.25);
  position: sticky;
  top: 0;
  z-index: 100;
}
.header__inner {
  max-width: 1920px;
  margin-inline: auto;
  padding: 16px 80px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.header__left, .header__right {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-shrink: 0;
}
.header__auth { display: inline-flex; gap: 12px; align-items: center; }
.header__login-btn {
  font-size: 14px;
  font-weight: 500;
  color: #282828;
  text-decoration: none;
  padding: 0 8px;
  white-space: nowrap;
}
.header__login-btn:hover { color: var(--color-brand); }
.header__cabinet-btn {
  background: #282828;
  color: #fff;
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 100px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s;
}
.header__cabinet-btn:hover { background: #000; }
.header__logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.header__logo-img { width: 49px; height: 49px; }
.header__logo-text {
  font-family: 'Unbounded', var(--font-family);
  font-weight: 700;
  font-size: 21px;
  letter-spacing: .02em;
  background: linear-gradient(90deg, #46265D 0%, #9E67D8 78%, #9E67D8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.header__location {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  font-size: 14px;
  color: var(--color-black);
  background: none;
  border: none;
  cursor: pointer;
}
.header__location:hover { color: var(--color-brand); }
.header__nav {
  display: flex;
  align-items: center;
  gap: 36px;
  flex: 1;
  justify-content: center;
}
.header__nav-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  font-size: 14px;
  color: var(--color-black);
  background: none;
  border: none;
  cursor: pointer;
}
.header__nav-link:hover { color: var(--color-brand); }
.header__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  background: none;
  border: none;
  cursor: pointer;
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  padding: 24px 80px 0;
  background: var(--color-gray-100);
}
.hero__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  max-width: 1920px;
  margin-inline: auto;
}
.hero__left { display: flex; flex-direction: column; gap: 18px; }
.hero__offer {
  position: relative;
  min-height: 380px;
  border-radius: 20px;
  background: linear-gradient(126deg, #7E34FA 14%, #4200D2 101%);
  overflow: hidden;
  padding: 44px 48px;
  color: #fff;
}
.hero__offer-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.hero__offer-graphic,
.hero__offer-ellipse {
  position: absolute;
  pointer-events: none;
  user-select: none;
  max-width: none;
  display: none;     /* старые элементы больше не используются — оставили на случай отката */
}
/* Позиционирование hero-фона (точно по референсу Figma) */
.hero__offer-graphic {
  /* 3D-ribbon graphic — нижний-правый угол, сильно выходит вправо и вниз */
  top: 10%;
  right: -25%;
  bottom: -40%;
  left: auto;
  width: 75%;
  height: auto;
  object-fit: contain;
  object-position: right bottom;
}
.hero__offer-ellipse--1 {
  /* Большой светящийся эллипс в правой части */
  top: -50%;
  right: -20%;
  bottom: auto;
  left: auto;
  width: 80%;
  height: auto;
  mix-blend-mode: lighten;
  opacity: 0.7;
}
.hero__offer-ellipse--2 {
  /* Второй эллипс в левой-нижней части */
  top: auto;
  right: auto;
  bottom: -30%;
  left: -25%;
  width: 60%;
  height: auto;
  opacity: 0.6;
}
.hero__offer-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.hero__title {
  font-family: 'Unbounded', var(--font-family);
  font-size: min(45px, 2.7vw);
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.hero__text {
  max-width: 520px;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 500;
  color: rgba(255,255,255,.75);
}

/* Точные значения из Figma node 256:15434 (масштабированы: 32→26 / 16→13 / padding 20→16) */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.stats__item {
  position: relative;
  padding: 16px;
  border: 1.5px solid #DBDBDB;
  border-radius: 16px;
  background: #fff;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}
/* 4 разных фона из Figma */
.stats__item--1 {
  background: radial-gradient(ellipse 120% 80% at 80% 20%, rgba(219,199,255,.55), rgba(230,232,254,.25));
}
.stats__item--2 {
  background: rgba(234,231,255,.43);
}
.stats__item--3 {
  background: rgba(234,231,255,.65);
}
.stats__item--4 {
  background: radial-gradient(ellipse 110% 90% at 85% 15%, rgba(130,74,233,.65) 0%, rgba(155,113,238,.55) 25%, rgba(180,153,243,.45) 50%, rgba(205,192,249,.35) 75%, rgba(230,232,254,.3) 100%);
}
.stats__num {
  font-family: 'Unbounded', var(--font-family);
  font-weight: 500;
  font-size: 26px;
  line-height: 1.0;
  color: #282828;
  letter-spacing: -0.01em;
}
.stats__num sup {
  font-size: .65em;
  vertical-align: top;
  line-height: 1;
  font-weight: 500;
  margin-left: 2px;
}
.stats__label {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.3;
  color: #282828;
  opacity: .75;
  max-width: 140px;
}
.stats__arrow {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 20px;
  height: 20px;
  opacity: .6;
}

/* карта тянется по высоте левой колонки — первый экран не длиннее оффера со статистикой */
.hero__right {
  position: relative;
  min-height: 0;
  border-radius: 20px;
  overflow: hidden;
  background: var(--color-black);
}
.hero__right-photo {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.hero__right-overlay {
  position: absolute;
  inset: 0;
  background: transparent;
}
.hero__top-card {
  position: absolute;
  top: 40px;
  left: 40px;
  width: 360px;
  padding: 18px;
  border: 1.5px solid rgba(255,255,255,.3);
  background: rgba(99,99,99,.19);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 20px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hero__top-card-label {
  font-weight: 500;
  font-size: 15px;
  opacity: .9;
}
.hero__top-card-title {
  font-family: 'Unbounded', var(--font-family);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.hero__top-card-list { display: flex; flex-direction: column; gap: 4px; }
.hero__top-card-list li {
  display: flex;
  align-items: baseline;
  font-weight: 500;
  font-size: 14px;
  color: rgba(255,255,255,.85);
  gap: 6px;
}
/* Плашки направлений под текстом героя — в стиле меток на карте */
.hero__pins {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.hero__pins .hero__pin { font-size: 13px; padding: 7px 16px; }
.hero__pin {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 999px;
  color: var(--color-white);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.2;
}


.hero__top-card-btn {
  position: absolute;
  left: 40px; bottom: 40px;
}

/* ============================================================
   SERVICES
   ============================================================ */
.services {
  background: var(--color-gray-100);
  padding: 100px 0 100px;
  border-radius: 60px 60px 0 0;
  margin-top: 100px;
  box-shadow: 0 -20px 25px rgba(211,211,211,.25);
  position: relative;
  z-index: 2;
}
.services__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.services__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}
.service-card {
  position: relative;
  background: #fff;
  border: 2px solid #DBDBDB;
  border-radius: 20px;
  padding: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.service-card--shadow { box-shadow: 0 4px 80px rgba(139,112,172,.18); }
.service-card__icon {
  /* Конкретный width/height задан в HTML для каждой иконки по её viewBox */
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}
/* Декор — топик-иконка на фоне (молот, валик, рукопожатие и т.д.) */
.service-card__decor {
  position: absolute;
  right: -30px;
  bottom: 0px;
  height: 130px;
  width: auto !important;
  transform: rotate(-15deg);
  filter: invert(1);
  opacity: .07;
  pointer-events: none;
  z-index: 0;
}
/* У молотка SVG-пропорция таще — увеличу размер чтобы визуально совпадало */
.service-card:nth-child(5) .service-card__decor {  /* Юридическая помощь */
  height: 165px;
  right: -20px;
}
.service-card__title {
  font-family: 'Unbounded', var(--font-family);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.2;
  color: #282828;
  overflow-wrap: break-word;
  hyphens: none;
  position: relative;
  z-index: 2;
  margin-top: 8px;
}
.service-card__sub {
  display: block;
  color: #764fe9;          /* в Figma второй строкой фиолетовая */
}
.service-card__text {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.25;
  color: #282828;
  opacity: .75;
  max-width: 232px;
  word-break: break-word;
  position: relative;
  z-index: 2;
}

/* ============================================================
   CATALOG
   ============================================================ */
.catalog {
  background: var(--color-gray-100);
  padding: 0 0 100px;
}
.catalog__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
  position: relative;
}

/* Section wrapping the searchbar between hero and services */
.searchbar-section { background: var(--color-gray-100); padding: 32px 0 16px; }

/* Страница каталога: заголовок над поиском */
.page-catalog .searchbar-section { padding-top: 8px; }
.catalog-page-head {
  background: var(--color-gray-100);
  padding: 32px 0 4px;
}
.cat-crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(40,40,40,.5);
  margin-bottom: 16px;
}
.cat-crumbs a { color: rgba(40,40,40,.5); text-decoration: none; }
.cat-crumbs a:hover { color: var(--color-brand); }
.cat-crumbs__sep { color: rgba(40,40,40,.3); }
.cat-crumbs__current { color: var(--color-black); font-weight: 500; }
.catalog-page-head__title { margin-bottom: 12px; }
.catalog-page-head__sub {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.5;
  color: rgba(40,40,40,.6);
}

/* View toggle (list / grid) */
.view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding-left: 4px;
}
.view-toggle__btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #BCB7C5;            /* серая по умолчанию */
  transition: all .15s;
}
.view-toggle__btn--active {
  background: #F0EBFF;
  width: 44px;
  height: 44px;
  color: var(--color-brand);  /* фиолетовая */
  border: 1.5px solid #DBDBDB;
}

/* Sort button (cycle through sort modes) */
.searchbar__sort {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 100px;
  height: 52px;
  padding: 0 18px;
  font-size: 13px;
  font-weight: 500;
  color: #282828;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: border-color .15s;
}
.searchbar__sort:hover { border-color: #282828; }
.searchbar__sort-chevron { transition: transform .2s; }
.searchbar__sort.is-open .searchbar__sort-chevron { transform: rotate(180deg); }

.searchbar__sort-wrap { position: relative; flex-shrink: 0; }
.searchbar__sort-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 240px;
  background: #fff;
  border-radius: 14px;
  padding: 8px;
  box-shadow: 0 12px 32px rgba(0,0,0,.16);
  z-index: 20;
  flex-direction: column;
  gap: 2px;
}
.searchbar__sort-dropdown.is-open { display: flex; }
.searchbar__sort-option {
  text-align: left;
  background: none;
  border: none;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13px;
  color: #282828;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}
.searchbar__sort-option:hover { background: rgba(162, 137, 191, 0.10); }
.searchbar__sort-option.is-active { background: rgba(162, 137, 191, 0.16); color: var(--color-brand); font-weight: 500; }

/* Подгонка «Все фильтры» — та же высота что у sort-кнопки */
.searchbar__filters.btn {
  height: 52px;
  padding: 0 18px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  border-width: 1.5px;
}
.searchbar__filters.btn img { width: 18px; height: 18px; }

/* Catalog grid: вид «плитка» (по умолчанию) или «список» */
.catalog__grid[data-view="list"] { grid-template-columns: 1fr !important; }
.catalog__grid[data-view="list"] .obj-card { flex-direction: row; }
.searchbar-section__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 80px;
}

.searchbar {
  background: #fff;
  border-radius: 20px;
  border: none;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 30px rgba(139,112,172,.08);
  position: relative;
  z-index: 5;
  margin-bottom: 0;
}
.searchbar__map {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 0 18px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 100px;
  font-weight: 500;
  font-size: 13px;
  color: var(--color-black);
  white-space: nowrap;
  background-image: url("../images/map-btn-bg.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #fff;
  overflow: hidden;
  flex-shrink: 0;
}
.searchbar__map > * { position: relative; z-index: 1; }
.searchbar__map:hover { border-color: var(--color-black); }
/* Активное состояние «Показать на карте» — цветной фон карты, фиолетовый текст и иконка */
.searchbar__map.is-active {
  background-image: url("../images/map-btn-bg-active.png");
  color: #7911B8;
  border-color: #282828;
}
.searchbar__map.is-active img { filter: brightness(0) saturate(100%) invert(13%) sepia(85%) saturate(5800%) hue-rotate(280deg) brightness(80%) contrast(95%); }
.searchbar__input {
  flex: 1 1 0;
  min-width: 0;
  position: relative;
  display: flex;
  align-items: center;
}
.searchbar__input input {
  flex: 1;
  width: 100%;
  height: 52px;
  background: transparent;
  border: 1px solid var(--color-gray-300);
  border-radius: 100px;
  padding: 0 50px 0 18px;
  font-size: 13px;
  color: var(--color-black);
  outline: none;
}
.searchbar__input input:focus { border-color: var(--color-brand); }
.searchbar__input input::placeholder { color: #999; }
.searchbar__input img {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
}
.searchbar__filters { white-space: nowrap; }

.catalog__panel {
  background: #F6F6F6;
  border: 1px solid #EAEAEE;
  border-radius: 24px;
  padding: 40px;
}
.catalog__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
}

.catalog__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: stretch;  /* все карточки одной высоты в ряду */
}

/* Object cards (rendered by JS) */
.obj-card {
  background: #fff;
  border-radius: 16px;
  padding: 16px 16px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: box-shadow .2s, transform .2s;
  cursor: pointer;
}
.obj-card:hover { box-shadow: 0 0 24px rgba(118, 79, 233, 0.22); transform: translateY(-4px); }
.obj-card__head { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; }
.obj-card__title {
  font-weight: 700;
  font-size: 17px;
  line-height: 1.15;
  color: var(--color-black);
  flex: 1;
}
.obj-card__title-link { color: inherit; text-decoration: none; }
.obj-card:hover .obj-card__title-link { color: var(--color-brand); }
.obj-card__heart {
  flex-shrink: 0;
  width: 24px; height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.obj-card__heart-count {
  position: absolute;
  top: -6px; right: -6px;
  background: var(--color-brand);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  width: 16px; height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.obj-card__tags { display: flex; gap: 8px; flex-wrap: wrap; }
.obj-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-gray-200);
  padding: 4px 10px;
  border-radius: 100px;
  font-size: 14px;
  color: #28103C;
}
.obj-card__rows { display: flex; flex-direction: column; gap: 6px; }
.obj-row {
  display: flex;
  align-items: baseline;
  font-size: 15px;
  gap: 6px;
}
.obj-row__key { color: rgba(40,40,40,.6); white-space: nowrap; }
.obj-row__dots { flex: 1; border-bottom: 1.5px dotted var(--color-gray-300); margin: 0 4px; transform: translateY(-3px); }
.obj-row__val { color: var(--color-black); font-weight: 600; white-space: nowrap; }
.obj-card__media {
  position: relative;
  margin: auto -16px 0;  /* auto top — фото прижато к низу карточки */
  border-radius: 16px;
  overflow: hidden;
}
.obj-card__media img { width: 100%; height: 175px; object-fit: cover; display: block; }
.obj-card__badge {
  position: absolute;
  bottom: 10px; left: 10px;
  background: var(--color-black);
  color: #fff;
  font-size: 12px;
  padding: 5px 10px;
  border-radius: 100px;
}

/* Promo banner inside catalog */
.promo-fixation {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: radial-gradient(circle at 30% 30%, #7C30FF, #1d0b3d 70%, #060517);
  color: #fff;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-self: stretch;  /* по высоте как соседние карточки */
}
.promo-fixation__flag {
  position: absolute;
  left: 16px; top: 16px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  padding: 6px 16px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
}
.promo-fixation__decor {
  position: absolute;
  right: -30px; bottom: -30px;
  width: 240px;
  opacity: .25;
  transform: rotate(-20deg);
  pointer-events: none;
}
.promo-fixation__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 60px;
  position: relative;
  z-index: 2;
}
.promo-fixation__title {
  font-family: 'Unbounded', var(--font-family);
  font-size: 28px;
  line-height: 1.05;
  font-weight: 700;
  overflow-wrap: anywhere;       /* длинные слова ломаются в любом месте, как в Figma */
}
.promo-fixation__text {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  opacity: .85;
}
.promo-fixation__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 2;
  margin-top: 16px;
}
.promo-fixation__cta {
  font-size: 12px;
  padding: 12px 8px;          /* поменьше горизонтальный padding, чтобы текст помещался */
  flex: 1;
  min-width: 0;                /* разрешить кнопке сжиматься в flex */
  text-align: center;
  white-space: nowrap;         /* текст всегда в одну строку, как в макете */
  line-height: 1.2;
  border-width: 1.5px;
  overflow: hidden;
}
.promo-fixation__arrows { gap: 4px; flex-shrink: 0; }
.promo-fixation__arrows .slider-arrows__btn {
  width: 32px; height: 32px;
  background: transparent;
  border-color: rgba(255,255,255,.4);
}
.promo-fixation__arrows .slider-arrows__btn--active {
  background: #F0F1FF;
  border-color: #F0F1FF;
}
.promo-fixation__arrows .slider-arrows__btn:hover {
  background: #F0F1FF;
  border-color: #F0F1FF;
}

/* ============================================================
   VIDEO
   ============================================================ */
.video {
  padding: 100px 0;
  background: var(--color-gray-100);
}
.video__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
}
.video__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 48px;
}
.video__head-left { display: flex; gap: 48px; align-items: center; flex-wrap: wrap; }
.video__head-right { display: flex; gap: 20px; align-items: center; }

.video__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  margin-bottom: 48px;
}
.video-card { display: flex; flex-direction: column; gap: 12px; }
.video-card__media {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  border: 2px solid var(--color-gray-300);
  display: block;
  aspect-ratio: 272/180;
}
.video-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.video-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.4);
}
.video-card__play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  z-index: 2;
  width: 48px; height: 48px;
}
.video-card__time {
  font-size: 14px;
  color: rgba(40,40,40,.5);
}
.video-card__title {
  font-weight: 600;
  font-size: 16px;
  line-height: 1.25;
  color: var(--color-black);
}

/* ============================================================
   PARTNERS
   ============================================================ */
.partners {
  padding: 28px 0 48px;
  background: var(--color-gray-100);
}
.partners__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
/* Бегущая строка партнёров */
.marquee {
  position: relative;
  overflow: hidden;
  width: 100%;
  /* фейд по краям */
  mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.marquee__track {
  display: flex;
  width: max-content;
  animation: marquee-scroll 13.6s linear infinite; /* ~129 px/с */
}
.marquee__group {
  display: flex;
  gap: 90px;
  align-items: center;
  padding-right: 90px;
  flex-shrink: 0;
}
.marquee__group img {
  height: 48px;
  width: auto;
  max-width: none;
  object-fit: contain;
  opacity: .7;
  filter: grayscale(.3);
}
/* Логотипы сети (УиП, Санкин, Ассоциация): круглые и детальные, в 60px не читаются */
.marquee__group img.marquee__logo-lg {
  height: 72px;
  opacity: 1;
  filter: none;
}
.marquee:hover .marquee__track { animation-play-state: paused; }

/* Участники AREA: логотипы на белой подложке — multiply растворяет белый в фоне секции */
.partners--area { padding: 36px 0 56px; }
.partners--area .partners__container { gap: 20px; }
.partners__title {
  font-family: 'Unbounded', var(--font-family);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--color-black);
}
.marquee--area .marquee__group { gap: 64px; padding-right: 64px; }
.marquee--area .marquee__group img {
  height: 52px;
  max-width: 170px;
  opacity: 1;
  filter: none;
  mix-blend-mode: multiply;
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .marquee__track { animation: none; }
}

/* ============================================================
   NEWS
   ============================================================ */
.news {
  padding: 80px 0 100px;
  background: var(--color-gray-100);
}
.news__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.news__row {
  display: grid;
  grid-template-columns: 1.9fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.news__main {
  background: #fff;
  border: 2px solid var(--color-gray-300);
  border-radius: 20px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.news__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.news-featured {
  display: flex;
  gap: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--color-gray-300);
}
.news-featured__img {
  width: 38%;
  max-width: 380px;
  aspect-ratio: 594/349;
  object-fit: cover;
  border-radius: 16px;
  flex-shrink: 0;
}
.news-featured__body {
  flex: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: flex-end;
}
.news-featured__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(40,40,40,.5);
}
.news-featured__title {
  font-weight: 700;
  font-size: 22px;
  line-height: 1.2;
  color: #05060B;
}
.news-featured__lead {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.45;
  color: rgba(5,6,11,.7);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.news-featured__link {
  position: absolute;
  top: 0; right: 0;
  width: 28px; height: 28px;
}
.news-featured__link img { width: 100%; height: 100%; }

.news-list { display: flex; flex-direction: column; gap: 12px; }
.news-card {
  display: grid;
  grid-template-columns: 90px auto 1px 1fr 28px;
  align-items: center;
  gap: 18px;
  padding: 10px 14px;
  background: #fff;
  border: 2px solid var(--color-gray-300);
  border-radius: 12px;
  transition: border-color .2s, box-shadow .2s;
}
.news-card:hover { box-shadow: 0 0 24px rgba(118, 79, 233, 0.22); }
.news-card__img {
  width: 90px; height: 50px;
  border-radius: 4px;
  object-fit: cover;
}
.news-card__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: rgba(40,40,40,.5);
  white-space: nowrap;
}
.news-card__divider { width: 1px; height: 32px; }
.news-card__title {
  font-weight: 600;
  font-size: 14px;
  line-height: 1.25;
  color: var(--color-black);
  margin-bottom: 3px;
}
.news-card__text {
  font-size: 12px;
  line-height: 1.35;
  color: rgba(40,40,40,.6);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.news-card__link { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; }
.news-card__link img { width: 100%; height: 100%; }

.news__side {
  background: #fff;
  border: 2px solid var(--color-gray-300);
  border-radius: 20px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.news__side-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}
.news__side-head h3 {
  font-weight: 600;
  font-size: 16px;
}
.promo-banner {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  flex: 1;                    /* банеры делят высоту .news__side поровну */
  min-height: 140px;
  transition: transform .2s;
}
.promo-banner img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.promo-banner:hover { transform: scale(1.02); }

/* ============================================================
   FORM
   ============================================================ */
.form-section {
  padding: 60px 0 100px;
  background: var(--color-gray-100);
}
.form-section__container {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
}
.form-banner {
  position: relative;
  height: 440px;
}
.form-banner__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}
.form-banner__person {
  position: absolute;
  left: 32%;
  bottom: 0;
  height: 115%;       /* голова выходит за верх баннера */
  width: auto;
  z-index: 1;         /* ниже формы — форма перекрывает фото */
  object-fit: contain;
  object-position: center bottom;
  display: block;
  pointer-events: none;
}
.form-banner__left {
  position: absolute;
  left: 48px;
  top: 50%;
  transform: translateY(-50%);
  width: 460px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;   /* кнопка по ширине содержимого, не растягивается */
  gap: 24px;
  color: #fff;
}
.form-banner__title {
  font-family: 'Unbounded', var(--font-family);
  font-size: 38px;
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.form-banner__text {
  font-weight: 500;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(255,255,255,.85);
}

/* Правая область: форма */
.form-banner__right {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 560px;
  z-index: 3;
}
.form-banner__form {
  width: 100%;
  background: #FFFFFF;
  border-radius: 20px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-shadow: 0 12px 40px rgba(40, 0, 100, 0.18);
}
.form-banner__form-title {
  font-weight: 600;
  font-size: 14px;
  line-height: 1.3;
  color: var(--color-black);
}
.form-banner__form-title {
  font-weight: 600;
  font-size: 18px;
  line-height: 1.3;
  color: var(--color-black);
}
.form-banner__fields { display: flex; flex-direction: column; gap: 8px; }
.form-banner__fields input {
  width: 100%;
  height: 44px;
  background: #fff;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 14px;
  padding: 0 18px;
  font-size: 13px;
  color: var(--color-black);
  transition: border-color .15s;
}
.form-banner__fields input::placeholder { color: #989898; }
.form-banner__fields input:focus { outline: none; border-color: var(--color-brand); }
.form-banner__bottom {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 4px;
}
.form-banner__bottom .btn--dark {
  padding: 12px 22px;
  font-size: 14px;
  line-height: 1.2;
}
.form-banner__check {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--color-black);
  cursor: pointer;
}
.form-banner__check img { width: 18px; height: 18px; flex-shrink: 0; }
.form-banner__check u { font-weight: 600; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
  background: var(--color-black);
  color: #fff;
  border-radius: 40px 40px 0 0;
  margin-top: 0;
  padding: 32px 0;
}
.footer__inner {
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: 94px;
  display: grid;
  grid-template-columns: 1.4fr 2fr auto 1.5fr;
  align-items: center;
  gap: 44px;
}
.footer__col--brand { display: flex; flex-direction: column; gap: 10px; }
.footer__brand { font-weight: 700; font-size: 18px; line-height: 1.2; }
.footer__link {
  font-size: 14px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  opacity: .9;
  line-height: 1.35;
}
.footer__link:hover { opacity: 1; color: #fff; }

.footer__nav { display: flex; gap: 48px; }
.footer__nav ul { display: flex; flex-direction: column; gap: 7px; }
.footer__nav a { font-size: 14px; opacity: .85; }
.footer__nav a:hover { opacity: 1; color: var(--color-brand); }

.footer__up {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.footer__up img { width: 15px; height: 15px; }
.footer__up:hover { background: rgba(255,255,255,.1); }

.footer__contacts { display: flex; flex-direction: column; gap: 14px; align-items: flex-end; }
.footer__phone { font-weight: 700; font-size: 18px; }
.footer__phone:hover { color: var(--color-brand); }

/* Кнопка «Заказать звонок» — компактнее в футере */
.footer__contacts .btn--brand {
  padding: 11px 22px;
  font-size: 15px;
  gap: 8px;
}
.footer__contacts .btn--brand img { width: 18px; height: 18px; }
.footer__socials { display: flex; gap: 16px; align-items: center; }
.footer__socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  color: rgba(255, 255, 255, 0.6);
  transition: color .15s, opacity .15s;
}
.footer__socials a svg { width: 22px; height: 22px; display: block; }
.footer__socials a:hover { color: #fff; }

/* ============================================================
   RESPONSIVE — flexible grids, keep card sizes close to Figma
   ============================================================ */

/* Auto-fit grids — карточки сами раскладываются под ширину контейнера.
   Минимумы подобраны так, чтобы на 1280px помещалось 6 услуг / 4 каталога / 6 видео — как в Figma */
.services__grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.video__grid    { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }

/* Side padding scales down with viewport */

/* ===== Вкладки реестра ===== */
.reg-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.reg-tab {
  padding: 10px 20px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 100px;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-gray-700);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.reg-tab:hover { border-color: var(--color-brand); color: var(--color-brand); }
.reg-tab.is-active {
  background: var(--color-black);
  border-color: var(--color-black);
  color: var(--color-white);
}
.catalog__empty {
  padding: 40px 0;
  color: var(--color-gray-700);
  font-size: 16px;
}

/* ===== Раскрывающийся список «Услуги» в шапке ===== */
.header__submenu-wrap { position: relative; }
.header__submenu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 220px;
  padding: 8px;
  background: var(--color-white);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(40, 20, 90, .16);
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s, transform .18s, visibility .18s;
  z-index: 60;
}
.header__submenu-wrap:hover .header__submenu,
.header__submenu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.header__submenu-link {
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-black);
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.header__submenu-link:hover { background: var(--color-gray-200); color: var(--color-brand); }

/* ===== Карточки реестра: ровная сетка ===== */
.obj-card__rows { min-height: 104px; justify-content: flex-start; }
.obj-card__title { min-height: 40px; }
.obj-card__tags { min-height: 30px; align-content: flex-start; }
.obj-card .obj-tag { white-space: nowrap; }
.obj-row__val--accent { color: var(--color-brand); }
.obj-card__badge--sold { background: var(--color-black); }
.obj-card__badge--direct { background: var(--color-success); }

/* ===== Селектор города рядом с «Все фильтры» ===== */
.city-select { position: relative; flex-shrink: 0; }
.city-select__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 0 18px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 100px;
  background: var(--color-white);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  color: var(--color-black);
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.city-select__btn:hover { border-color: var(--color-brand); }
.city-select--set .city-select__btn {
  border-color: var(--color-brand);
  color: var(--color-brand);
}
.city-select__chevron { flex-shrink: 0; transition: transform .2s; }
.city-select__dropdown {
  position: absolute;
  z-index: 40;
  top: calc(100% + 8px);
  left: 0;
  width: 280px;
  max-width: calc(100vw - 32px);
  padding: 10px;
  border: 1px solid var(--color-gray-300);
  border-radius: 16px;
  background: var(--color-white);
  box-shadow: 0 12px 32px rgba(40, 40, 40, .12);
  display: none;
}
.city-select__dropdown.is-open { display: block; }
.city-select__search {
  width: 100%;
  height: 40px;
  padding: 0 14px;
  margin-bottom: 8px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 100px;
  font-family: inherit;
  font-size: 14px;
  color: var(--color-black);
  outline: none;
}
.city-select__search:focus { border-color: var(--color-brand); }
.city-select__list { max-height: 260px; overflow-y: auto; }
.city-select__option {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  text-align: left;
  color: var(--color-black);
  cursor: pointer;
}
.city-select__option:hover { background: rgba(162, 137, 191, .10); }
.city-select__option.is-active { background: rgba(162, 137, 191, .16); color: var(--color-brand); font-weight: 500; }
.city-select__empty { padding: 12px 14px; font-size: 14px; color: var(--color-gray-700); }

@media (max-width: 900px) {
  .city-select { width: 100%; }
  .city-select__btn { width: 100%; justify-content: center; }
  .city-select__dropdown { width: 100%; }
}

/* ===== Баннер формы с фотографией ===== */
/* Баннер заявки: фотография во всю ширину, форма внутри слева */
.form-banner--photo {
  overflow: hidden;
  border-radius: 20px;
  height: 520px;
}
.form-banner--photo .form-banner__bg {
  width: 100%;
  max-width: none;
  left: 0;
  right: 0;
  object-position: 82% center;
}
.form-banner--photo::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(96deg, rgba(52, 12, 148, .94) 0%, rgba(66, 18, 176, .82) 26%, rgba(76, 24, 190, .22) 40%, rgba(76, 24, 190, 0) 50%);
}
.form-banner--photo .form-banner__left {
  left: 56px;
  top: 50%;
  transform: translateY(-50%);
  width: 460px;
  z-index: 2;
  gap: 26px;
}
.form-banner--photo .form-banner__title {
  font-size: 32px;
  line-height: 1.14;
}
.form-banner--photo .form-banner__form {
  width: 100%;
  padding: 22px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 20px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.form-banner--photo .form-banner__fields { gap: 10px; }
.form-banner--photo .form-banner__fields input {
  background: rgba(255, 255, 255, .96);
  border: none;
  height: 48px;
}
.form-banner--photo .form-banner__fields .btn { width: 100%; height: 50px; font-size: 16px; }
.form-banner--photo .form-banner__check img { filter: brightness(0) invert(1); opacity: .9; }
.form-banner--photo .form-banner__check u { color: #fff; }
.form-banner--photo .form-banner__check {
  gap: 8px;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(255, 255, 255, .85);
}
.form-banner--photo .form-banner__check img { width: 16px; height: 16px; }

/* ===== Панель карточки объекта: итоги аукциона ===== */
.obj-panel { display: flex; flex-direction: column; gap: 18px; }
.obj-panel__status {
  align-self: flex-start;
  padding: 7px 14px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-white);
}
.obj-panel__status--sold { background: var(--color-black); }
.obj-panel__status--live {
  background: var(--color-white);
  color: var(--color-black);
  border: 1.5px solid var(--color-success);
  cursor: default;
}
.obj-panel__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 16px;
  background: var(--color-gray-200);
  border-radius: 16px;
}
.obj-panel__stats div { display: flex; flex-direction: column; gap: 2px; }
.obj-panel__stats b {
  font-family: 'Unbounded', var(--font-family);
  font-size: 22px;
  font-weight: 600;
  color: var(--color-black);
}
.obj-panel__stats span { font-size: 13px; color: var(--color-gray-700); }
.obj-panel__btn { align-self: stretch; text-align: center; }

/* ===== Строка реестра: итоги справа ===== */
.cat-row__result { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.cat-row__result-title { font-size: 14px; font-weight: 600; color: var(--color-gray-700); }
.cat-row__result-grid { display: flex; gap: 16px; }
.cat-row__result-grid div { display: flex; flex-direction: column; }
.cat-row__result-grid b {
  font-family: 'Unbounded', var(--font-family);
  font-size: 19px;
  font-weight: 600;
  color: var(--color-black);
}
.cat-row__result-grid span { font-size: 12px; color: var(--color-gray-700); }
.cat-row__result-btn { font-size: 14px; padding: 10px 16px; }

/* Таблица реестра: колонки под аукционы */
.cat-table--registry .cat-table__head,
.cat-table--registry .cat-table__row {
  grid-template-columns: 1.7fr .8fr .9fr 1.5fr .5fr .7fr 1fr 1.1fr .9fr 40px;
}
.cat-table--registry .cat-table__metro { white-space: nowrap; }
.cat-table--registry .cat-table__head > div,
.cat-table--registry .cat-table__row > div { min-width: 0; }
.cat-table--registry .cat-table__row { cursor: pointer; }
.cat-table__accent { color: var(--color-brand); font-weight: 600; }
.cat-table__link-cell a { display: inline-flex; opacity: .6; }
.cat-table__link-cell a:hover { opacity: 1; }

/* ===== Показатели метода в плитках ===== */
.stats__unit { font-size: .5em; font-weight: 500; }
.stats__num { white-space: nowrap; font-size: clamp(19px, 1.55vw, 24px); }
.stats__label { hyphens: none; }

/* ===== Шапка реестра: фильтры рядом с «Весь реестр» ===== */
.catalog__head-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* На узких экранах шапка блока переносится, иначе страница уезжает вбок */
@media (max-width: 760px) {
  .catalog__head { flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
  .catalog__head .section-title { width: 100%; }
  .obj-row { flex-wrap: nowrap; gap: 4px; }
  .obj-row__key { min-width: 0; white-space: nowrap; font-size: 13px; }
  .obj-row__val { white-space: nowrap; font-size: 13px; }
  .obj-row__dots { min-width: 8px; }
}
.catalog__filters-btn { display: inline-flex; align-items: center; gap: 8px; }

/* ===== Брокер объекта в строке реестра ===== */
.cat-row__broker {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 16px;
}
/* Аватар брокера: фото и кружок агентства поверх него */
.broker-ava {
  position: relative;
  flex: none;
  width: 52px;
  height: 52px;
}
.broker-ava--lg { width: 60px; height: 60px; }
.broker-ava__photo {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.broker-ava__initials {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--color-gray-200);
  color: var(--color-brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
}
.broker-ava__logo {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(40, 20, 90, .18);
}
.broker-ava--lg .broker-ava__logo { width: 28px; height: 28px; }
.cat-row__broker-info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cat-row__broker-name { font-weight: 600; font-size: 14px; color: var(--color-black); }
.cat-row__broker-agency { font-size: 13px; color: var(--color-gray-700); }
.cat-row__broker-phone { font-size: 13px; color: var(--color-gray-700); }

/* ===== Брокер в карточке объекта ===== */
.obj-broker {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  background: var(--color-gray-200);
  border-radius: 16px;
}
.obj-broker__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.obj-broker__role { font-size: 12px; color: var(--color-gray-700); }
.obj-broker__name { font-weight: 700; font-size: 15px; color: var(--color-black); }
.obj-broker__agency { font-size: 13px; color: var(--color-gray-700); }
.obj-broker__phone { font-size: 14px; font-weight: 600; color: var(--color-brand); text-decoration: none; }
.obj-broker__phone:hover { text-decoration: underline; }

/* ===== Цены сделки крупным планом ===== */
.obj-deal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: end;
}
.obj-deal__col { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.obj-deal__label { font-size: 13px; color: var(--color-gray-700); }
.obj-deal__start {
  font-family: 'Unbounded', var(--font-family);
  font-size: 22px;
  font-weight: 500;
  color: var(--color-gray-700);
  white-space: nowrap;
}
.obj-deal__final {
  font-family: 'Unbounded', var(--font-family);
  font-size: 28px;
  font-weight: 600;
  color: var(--color-brand);
  white-space: nowrap;
}
.obj-panel__stats--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.obj-panel__stats--four b { font-size: 20px; }
.obj-panel__stats--four span { font-size: 12px; line-height: 1.2; }

/* ===== Подписи имён под фотографией ===== */
/* подписи стоят под своими фигурами на фотографии */
.form-banner__names {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 22px;
  height: 0;
  z-index: 3;
}
.form-banner__names .form-banner__name {
  position: absolute;
  bottom: 0;
  transform: translateX(-50%);
}
.form-banner__names .form-banner__name:nth-child(1) { left: 55%; }
.form-banner__names .form-banner__name:nth-child(2) { left: 84%; }
.form-banner__name {
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  color: var(--color-black);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(40, 20, 90, .18);
}

/* ===== Статус аукциона с живым индикатором ===== */
.obj-panel__status { display: inline-flex; align-items: center; gap: 8px; }
.obj-panel__pulse {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--color-success);
  animation: obj-pulse 1.8s ease-out infinite;
}
@keyframes obj-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(55, 164, 106, .6); }
  70%  { box-shadow: 0 0 0 8px rgba(55, 164, 106, 0); }
  100% { box-shadow: 0 0 0 0 rgba(55, 164, 106, 0); }
}

/* ===== Кнопки материалов объекта ===== */
.obj-panel__links { display: flex; gap: 8px; flex-wrap: wrap; }
.obj-link {
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 12px;
  border-radius: 100px;
  border: 1.5px solid var(--color-gray-300);
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-black);
  cursor: pointer;
  white-space: nowrap;
}
.obj-link img { filter: brightness(0); opacity: .7; }
.obj-link:hover { border-color: var(--color-black); }
.obj-link--off { opacity: .45; cursor: not-allowed; }
.obj-link--off:hover { border-color: var(--color-gray-300); }
.obj-panel__btn { width: 100%; }

/* ===== Анимация только у кликабельных карточек ===== */
.obj-card:hover { transform: none; box-shadow: 0 0 20px rgba(118, 79, 233, .18); }
.cat-row:hover { box-shadow: 0 0 18px rgba(118, 79, 233, .16); }
.stats__item, .hero__pin, .obj-panel__stats { transition: none; }

/* ===== Карточка объекта: фото сверху, агент внизу ===== */
.obj-card {
  padding: 0;
  gap: 0;
  overflow: hidden;
}
.obj-card__media {
  position: relative;
  margin: 0;
  border-radius: 16px 16px 0 0;
  display: block;
  overflow: hidden;
}
.obj-card__media img { width: 100%; height: 210px; object-fit: cover; display: block; }
.obj-card__badge {
  position: absolute;
  top: 12px; left: 12px;
  bottom: auto;
  padding: 6px 12px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}
.obj-card__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  flex: 1;
}
.obj-card__title { min-height: 0; font-size: 18px; }
.obj-card__facts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 82px;
}
.obj-card__kind span { color: var(--color-black); font-weight: 600; }
.obj-card__facts li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  color: var(--color-gray-700);
  line-height: 1.3;
}
.obj-card__facts img { flex: none; margin-top: 2px; opacity: .8; }
.obj-card__rows { min-height: 0; gap: 7px; }
.obj-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--color-gray-200);
}
.obj-card__agent { display: flex; align-items: center; gap: 10px; min-width: 0; }
.broker-ava--sm { width: 36px; height: 36px; }
.broker-ava--sm .broker-ava__logo { width: 18px; height: 18px; right: -3px; bottom: -3px; border-width: 1.5px; }
.broker-ava--sm .broker-ava__initials { font-size: 12px; }
.obj-card__agent-info { display: flex; flex-direction: column; min-width: 0; }
.obj-card__agent-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-black);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.obj-card__agent-agency {
  font-size: 12px;
  color: var(--color-gray-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.obj-card__comm {
  flex: none;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-brand);
  white-space: nowrap;
}

@media (max-width: 1600px) {
  .header__inner, .hero, .services__container, .catalog__container,
  .video__container, .partners__container, .news__container,
  .form-section__container, .footer__inner,
  .searchbar-section__container { padding-inline: 60px; }
  .hero__title { font-size: min(43px, 2.6vw); }
}
@media (max-width: 1280px) {
  .header__inner, .hero, .services__container, .catalog__container,
  .video__container, .partners__container, .news__container,
  .form-section__container, .footer__inner,
  .searchbar-section__container { padding-inline: 40px; }
  .hero__title { font-size: min(37px, 2.6vw); }
  .section-title { font-size: 40px; }
  .form-banner__person { width: 280px; left: auto; right: 56%; }
}

/* Невысокий экран ноутбука: ужимаем первый экран, чтобы под ним выглядывала бегущая строка */
@media (min-width: 1101px) and (max-height: 820px) {
  .hero { padding-top: 16px; }
  .hero__offer { min-height: 0; padding: 26px 36px; }
  .hero__offer-content { gap: 20px; }
  .hero__text { font-size: 15px; }
  .stats__item { min-height: 0; padding: 14px; gap: 8px; }
  .stats__label { max-width: none; }
  .partners { padding-top: 20px; }
}

@media (max-width: 1100px) {
  .hero__container { grid-template-columns: 1fr; }
  .hero__right { min-height: 0; aspect-ratio: 1448 / 1086; }   /* картинка целиком, без обрезки */
  .hero__title { font-size: 37px; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .news__row { grid-template-columns: 1fr; }
  .news-featured { flex-direction: column; }
  .news-featured__img { width: 100%; max-width: none; }
  .form-banner { grid-template-columns: 1fr; padding: 32px; min-height: auto; }
  .form-banner__person { display: none; }
  .footer__inner { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer__contacts { align-items: flex-start; }
  .video__head { align-items: flex-start; }
}

@media (max-width: 700px) {
  .header__nav, .header__left .header__location { display: none; }
  .header__right { display: none; }
  .header__burger { display: inline-flex; }
  .header__inner, .hero, .services__container, .catalog__container,
  .video__container, .partners__container, .news__container,
  .form-section__container, .footer__inner { padding-inline: 16px; }
  .hero__offer { padding: 24px; }
  .hero__title { font-size: 20px; }
  .hero__pin { font-size: 12px; padding: 6px 12px; gap: 6px; }
  .hero__pin::before { width: 12px; height: 12px; box-shadow: inset 0 0 0 2.5px var(--color-brand); }
  .section-title { font-size: 28px; }
  .stats { grid-template-columns: 1fr; }
  .searchbar { flex-wrap: wrap; }
  .searchbar__input { order: 3; width: 100%; }
  .news-card { grid-template-columns: 80px 1fr; gap: 12px; }
  .news-card__meta, .news-card__divider, .news-card__link { display: none; }
  .form-banner { padding: 32px 20px; }
  .form-banner__title { font-size: 26px; }
  .footer__inner { grid-template-columns: 1fr; gap: 32px; }
}

/* ============================================================
   FILTERS OVERLAY (right-side panel)
   ============================================================ */
.filter-overlay {
  position: fixed;
  inset: 0;
  background: rgba(40, 40, 40, 0.5);
  z-index: 200;
  display: none;
  justify-content: flex-end;
  overflow-y: auto;
}
.filter-overlay.is-open { display: flex; }
.filter-panel {
  width: 600px;
  max-width: 100%;
  background: #fff;
  min-height: 100vh;
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  box-shadow: -8px 0 40px rgba(0,0,0,0.12);
  animation: filter-slide-in .25s ease-out;
}
@keyframes filter-slide-in {
  from { transform: translateX(40px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
.filter-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.filter-panel__title {
  font-size: 20px;
  font-weight: 700;
  color: #282828;
}
.filter-panel__close {
  background: none;
  border: none;
  cursor: pointer;
  color: #282828;
  padding: 4px;
  display: inline-flex;
}

/* Toggle switch */
.filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: #282828;
  cursor: pointer;
}
.filter-toggle input { display: none; }
.filter-toggle__slider {
  position: relative;
  width: 38px;
  height: 22px;
  background: #DBDBDB;
  border-radius: 100px;
  flex-shrink: 0;
  transition: background .2s;
}
.filter-toggle__slider::after {
  content: "";
  position: absolute;
  top: 3px; left: 3px;
  width: 16px; height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: left .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.filter-toggle input:checked + .filter-toggle__slider { background: var(--color-brand); }
.filter-toggle input:checked + .filter-toggle__slider::after { left: 19px; }

/* District multi-select */
.filter-select {
  position: relative;
  border: 1px solid var(--color-gray-300);
  border-radius: 100px;
  background: #fff;
  cursor: pointer;
}
.filter-select__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
}
.filter-select__placeholder {
  font-size: 14px;
  color: #9A9A9F;
  font-style: italic;
}
.filter-select__chevron { transition: transform .2s; flex-shrink: 0; }
.filter-select.is-open .filter-select__chevron { transform: rotate(180deg); }
.filter-select__dropdown {
  display: none;
  position: absolute;
  left: 0; right: 0;
  top: calc(100% + 8px);
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.16);
  z-index: 10;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 8px;
}
.filter-select.is-open .filter-select__dropdown { display: grid; }
.filter-select__dropdown .filter-check { font-size: 12px; gap: 6px; }
.filter-select__dropdown .filter-check input { width: 16px; height: 16px; }
.filter-select__dropdown .filter-check input:checked::after { left: 3.5px; top: -0.5px; width: 5px; height: 10px; }

/* Group / label */
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.filter-group__label {
  font-size: 13px;
  color: #9A9A9F;
  font-style: italic;
}

/* Row layouts */
.filter-row { display: flex; gap: 24px; align-items: flex-start; }
.filter-row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

/* Checkboxes */
.filter-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.filter-checks--vertical { display: flex; flex-direction: column; gap: 8px; }
.filter-check {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: #282828;
  cursor: pointer;
}
.filter-check input {
  appearance: none;
  -webkit-appearance: none;
  width: 18px; height: 18px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}
.filter-check input:checked {
  background: var(--color-brand);
  border-color: var(--color-brand);
}
.filter-check input:checked::after {
  content: "";
  position: absolute;
  left: 4px; top: 0;
  width: 6px; height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Pills (rooms) */
.filter-pills { display: flex; gap: 10px; flex-wrap: wrap; }
.filter-pill {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1.5px solid var(--color-gray-300);
  background: #fff;
  font-size: 16px;
  font-weight: 500;
  color: #282828;
  cursor: pointer;
  transition: all .15s;
}
.filter-pill:hover { border-color: var(--color-brand); }
.filter-pill--active {
  background: var(--color-brand);
  color: #fff;
  border-color: var(--color-brand);
}

/* Range slider — пилюля с values сверху, тонкий разделитель,
   а полоса ползунка идёт ВДОЛЬ НИЖНЕЙ ГРАНИЦЫ пилюли */
.filter-range {
  position: relative;
  background: #fff;
  border: 1px solid var(--color-gray-300);
  border-radius: 100px;
  padding: 14px 22px 16px;
  flex: 1;
  min-width: 0;
}
.filter-range__values {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #9A9A9F;
}
.filter-range__values strong { color: #282828; font-weight: 500; margin-left: 4px; }
.filter-range__values::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 1px;
  background: var(--color-gray-300);
  opacity: .6;
}
.filter-range__values { position: relative; }
.filter-range__track {
  position: absolute;
  left: 22px; right: 22px;
  bottom: -1px;            /* поверх нижней границы пилюли */
  height: 4px;
  background: #E2E1EC;
  border-radius: 100px;
}
.filter-range__fill {
  position: absolute;
  top: 0; bottom: 0;
  background: var(--color-brand);
  border-radius: 100px;
}
.filter-range__thumb {
  position: absolute;
  top: 50%;
  width: 16px; height: 16px;
  background: #fff;
  border: 3px solid var(--color-brand);
  box-shadow: 0 1px 4px rgba(70,38,93,.25);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  cursor: grab;
  touch-action: none;
  transition: transform .1s;
}
.filter-range__thumb:hover { transform: translate(-50%, -50%) scale(1.15); }
.filter-range__thumb.is-dragging { cursor: grabbing; transform: translate(-50%, -50%) scale(1.25); }

/* Кнопки внизу панели фильтров */
.filter-panel__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.filter-panel__reset {
  background: none;
  border: none;
  padding: 14px 8px;
  font-size: 15px;
  font-weight: 500;
  color: rgba(40,40,40,.55);
  cursor: pointer;
}
.filter-panel__reset:hover { color: var(--color-black); }
.filter-panel__search {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: var(--color-brand);
  color: #fff;
  border: none;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
}
.filter-panel__search:hover { background: var(--color-brand-hover); }

/* Счётчик и пустой результат над списком */
.main-list__count {
  font-size: 14px;
  font-weight: 600;
  color: rgba(40,40,40,.6);
  padding: 4px 4px 0;
}
.main-list__empty {
  padding: 40px 16px;
  text-align: center;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(40,40,40,.55);
}

/* ============================================================
   SEARCHBAR WRAP — общий контейнер для searchbar и списка
   ============================================================ */
.searchbar-wrap {
  background: #fff;
  border-radius: 20px;
  padding: 8px 8px 12px;
  box-shadow: 0 4px 30px rgba(139,112,172,.08);
}
.searchbar-wrap .searchbar {
  box-shadow: none;
  border-radius: 14px;
  margin: 0;
  background: transparent;
}

.main-list {
  margin: 12px 4px 4px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.main-list[data-view="grid"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}
.main-list[data-view="table"] { gap: 0; }
.main-list[data-view="cards"] { gap: 12px; }

/* Catalog table view */
.cat-table {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #EAEAEE;
}
.cat-table__head {
  display: grid;
  grid-template-columns: 0.7fr 0.8fr 1.7fr 1.6fr 0.7fr 0.6fr 0.8fr 1fr 1fr 60px;
  align-items: center;
  background: #282828;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  gap: 0;
}
.cat-table__head > div { padding: 14px 12px; }
.cat-table__head > div:first-child { padding-left: 24px; }
.cat-table__head > div:last-child { padding-right: 12px; padding-left: 12px; }
.cat-table__sort { opacity: .6; margin-left: 2px; font-size: 10px; }
.cat-table__body { display: flex; flex-direction: column; }
.cat-table__row {
  display: grid;
  grid-template-columns: 0.7fr 0.8fr 1.7fr 1.6fr 0.7fr 0.6fr 0.8fr 1fr 1fr 60px;
  align-items: stretch;        /* ячейки на всю высоту строки */
  font-size: 13px;
  color: #282828;
  gap: 0;                      /* без зазора — границы ячеек сольются в непрерывные линии */
  cursor: pointer;
  transition: background .15s;
  position: relative;
}
/* Ячейки: внутренний паддинг + border-right создаёт НЕПРЕРЫВНУЮ вертикальную линию */
.cat-table__row > div {
  padding: 14px 12px;
  display: flex;
  align-items: center;
  border-right: 1px solid #EAEAEE;
}
.cat-table__row > div:first-child { padding-left: 24px; }
.cat-table__row > div:last-child { padding-right: 12px; padding-left: 12px; border-right: none; }
/* Горизонтальная линия между строками — border-bottom, не разрывает вертикальные */
.cat-table__row + .cat-table__row { border-top: 1px solid #F4F4F4; }

/* иконки в таблице — 25% прозрачности (кроме активного сердечка) */
.cat-table__metro img,
.cat-table__heart img { opacity: .25; }
.cat-table__heart.is-active img { opacity: 1; }
.cat-table__bonus-cell { display: flex; align-items: center; }
.cat-table__bonus-lock { opacity: .35; }
.cat-table__row:last-child { border-bottom: none; }
.cat-table__row:hover { background: #F0F1FF; }
.cat-table__metro {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: rgba(40,40,40,.85);
  font-size: 12px;
  white-space: nowrap;
  min-width: 0;
}
.cat-table__metro svg { flex-shrink: 0; }
.cat-table__heart-cell { display: flex; justify-content: center; }
.cat-table__heart {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(162, 137, 191, 0.5);
  padding: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cat-table__heart:hover { color: var(--color-brand); }
.cat-table__heart.is-active {
  color: var(--color-brand);
}
.cat-table__heart.is-active svg path {
  fill: var(--color-brand);
}
.cat-row {
  display: grid;
  grid-template-columns: 240px 1.6fr 1fr 1.2fr 44px;
  align-items: stretch;
  background: #fff;
  border: 1px solid #EAEAEE;
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow .15s;
  min-height: 168px;
}
.cat-row:hover { box-shadow: 0 0 24px rgba(118, 79, 233, 0.22); border-color: #EAEAEE; }
.cat-row__photo {
  display: block;
  width: 240px;
  height: 100%;
  overflow: hidden;
}
.cat-row__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cat-row__main {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 22px;
  min-width: 0;
}
.cat-row__head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.cat-row__title { font-size: 18px; font-weight: 600; color: #1A1A1A; }
.cat-row__sep { color: rgba(40,40,40,.3); }
.cat-row__area { font-size: 15px; color: #282828; }
.cat-row__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.cat-row__tag {
  display: inline-block;
  background: rgba(162, 137, 191, 0.12);
  color: #282828;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 100px;
}
.cat-row__loc {
  font-size: 13px;
  color: #282828;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  text-align: left;
  justify-content: flex-start;
}
.cat-row__metro {
  font-size: 13px;
  color: rgba(40,40,40,.7);
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-start;
}
.cat-row__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  opacity: .25;
}
/* Иконки-действия (heart, phone, external) — 25% по умолчанию */
.cat-row__act { opacity: .25; transition: opacity .15s, background .15s, color .15s; }
.cat-row__act:hover { opacity: 1; }
.cat-row__act--heart.is-active { opacity: 1; }

.cat-row__prices {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 18px 22px;
  font-size: 13px;
  color: rgba(40,40,40,.65);
  min-width: 0;
}
.cat-row__price-line {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.cat-row__price-line strong { color: #282828; font-weight: 500; }
.cat-row__price-dots {
  flex: 1;
  border-bottom: 1px dotted rgba(40,40,40,.25);
  margin: 0 6px;
  align-self: end;
  margin-bottom: 4px;
}
.cat-row__price-line--commission strong { color: var(--color-brand); font-weight: 600; }
.cat-row__price-line--commission i { font-style: italic; color: rgba(40,40,40,.7); }

.cat-row__agent {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
  border-left: 1px solid #EAEAEE;
  min-width: 0;
}
.cat-row__agent-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #282828;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  flex-shrink: 0;
  position: relative;
}
.cat-row__agent-avatar::after {
  content: "✓";
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 14px;
  height: 14px;
  background: #37A46A;
  color: #fff;
  font-size: 9px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}
.cat-row__agent-info { font-size: 11px; line-height: 1.45; color: rgba(40,40,40,.7); min-width: 0; }
.cat-row__agent-name { color: #282828; font-weight: 600; font-size: 13px; margin-bottom: 2px; }

.cat-row__actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 12px;
  align-items: center;
  justify-content: center;
  border-left: 1px solid #EAEAEE;
}
.cat-row__act {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: transparent;
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #A289BF;
  transition: background .15s, color .15s;
  text-decoration: none;
}
.cat-row__act:hover { background: rgba(162,137,191,.12); color: var(--color-brand); }

/* Pagination */
.cat-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
  padding: 8px;
}
.cat-pagination__num {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: none;
  border: none;
  font-size: 15px;
  font-weight: 500;
  color: rgba(40,40,40,.4);
  cursor: pointer;
}
.cat-pagination__num.is-active { color: #1A1A1A; font-weight: 600; }
.cat-pagination__num:hover { color: var(--color-brand); }
.cat-pagination__arrow {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #EAEAEE;
  cursor: pointer;
  color: #282828;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cat-pagination__arrow:hover { border-color: var(--color-brand); color: var(--color-brand); }
.cat-pagination__arrow--active { background: rgba(162,137,191,.15); border-color: rgba(162,137,191,.4); color: var(--color-brand); }

/* ============= MAP VIEW ============= */
.map-view {
  margin-top: 12px;
}
.map-view__canvas {
  position: relative;
  width: 100%;
  height: 720px;
  border-radius: 20px;
  overflow: hidden;
  background-color: #E8EEEB;
}
.map-view__ymap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
/* Кастомная стилизация ymaps-метки в виде нашей пилюли */
.ymaps-2-1-79-placemark-overlay { z-index: 5; }
/* Пины — пилюли с тенью (внутри ymaps-метки) */
.map-pin {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 100px;
  background: var(--color-black);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .28);
  transform: translate(-50%, -100%) translateY(-12px);
}
.map-pin__dot {
  position: absolute;
  left: 50%;
  bottom: -18px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--color-black);
  border: 2px solid #fff;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
}
.map-pin::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -5px;
  width: 12px;
  height: 12px;
  background: var(--color-black);
  border-radius: 2px;
  transform: translateX(-50%) rotate(45deg);
}
.map-pin img { width: 12px; height: 14px; filter: brightness(0) invert(1); }
.map-pin:hover { box-shadow: 0 6px 14px rgba(0,0,0,.25); }
.map-pin.map-pin--active {
  background: #7911B8;
  box-shadow: 0 6px 16px rgba(121,17,184,.35);
}
/* Карточка объекта на карте */
.map-card {
  position: absolute;
  top: 48px;
  left: 48px;
  width: 320px;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0,0,0,.12);
  display: none;
  z-index: 10;
}
.map-card.is-visible { display: block; }
.map-card__photo {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: #F4F4F4;
}
.map-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.map-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #282828;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: 100px;
}
.map-card__heart {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  transition: background .15s;
}
.map-card__heart img { transition: opacity .15s; }
.map-card__heart.is-active { background: #fff; }
.map-card__heart.is-active img { opacity: 1; }
.map-card__body {
  padding: 14px 16px 18px;
}
.map-card__title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 500;
  color: #282828;
  margin-bottom: 10px;
}
.map-card__dot { color: #A0A0A0; }
.map-card__area { color: #282828; }
.map-card__tags {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
}
.map-card__tag {
  font-size: 11px;
  padding: 5px 10px;
  background: rgba(162,137,191,.12);
  color: #7911B8;
  border-radius: 100px;
  font-weight: 500;
}
.map-card__addr,
.map-card__metro {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: rgba(40,40,40,.85);
  margin-bottom: 6px;
}
.map-card__metro {
  margin-bottom: 14px;
}
.map-card__metro img:nth-of-type(2) { margin-left: 6px; }
/* иконки локации, метро и пешком — 25% прозрачности */
.map-card__addr img,
.map-card__metro img { opacity: .25; }
.map-card__prices {
  border-top: 1px solid #F0F0F0;
  padding-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.map-card__price-row {
  display: flex;
  align-items: baseline;
  font-size: 12px;
  color: rgba(40,40,40,.7);
  gap: 6px;
}
.map-card__price-row b {
  color: #282828;
  font-weight: 500;
  white-space: nowrap;
}
.map-card__price-row--commission b {
  color: #7911B8;
  font-weight: 600;
  font-size: 14px;
}
.map-card__dots {
  flex: 1;
  border-bottom: 1px dotted #C8C8C8;
  margin: 0 4px;
  transform: translateY(-3px);
}
/* Контролы зума */
.map-view__zoom {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.map-view__zoom button {
  width: 36px;
  height: 36px;
  background: #fff;
  border: 1px solid #EAEAEE;
  border-radius: 8px;
  cursor: pointer;
  font-size: 20px;
  color: #282828;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.map-view__zoom button:hover { background: #F4F4F4; }

/* ============================================================
   Бургер-меню (мобильные)
   ============================================================ */
.header__fav-badge {
  position: absolute;
  top: -4px; right: -6px;
  min-width: 16px; height: 16px;
  padding: 0 4px;
  border-radius: 100px;
  background: var(--color-brand);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.header__burger {
  display: none;
  width: 44px; height: 44px;
  margin-left: auto;
  border: none;
  background: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.header__burger span {
  display: block;
  width: 24px; height: 2px;
  background: #282828;
  border-radius: 2px;
}

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(20,10,30,.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.mobile-menu.is-open { opacity: 1; pointer-events: auto; }
.mobile-menu__panel {
  position: absolute;
  top: 0; right: 0;
  height: 100%;
  width: min(320px, 85%);
  background: #fff;
  box-shadow: -8px 0 32px rgba(0,0,0,.15);
  padding: 20px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transform: translateX(100%);
  transition: transform .25s;
  overflow-y: auto;
}
.mobile-menu.is-open .mobile-menu__panel { transform: none; }
.mobile-menu__close {
  align-self: flex-end;
  width: 40px; height: 40px;
  background: none;
  border: none;
  font-size: 30px;
  line-height: 1;
  color: #282828;
  cursor: pointer;
}
.mobile-menu__nav { display: flex; flex-direction: column; margin-top: 4px; }
.mobile-menu__nav a {
  padding: 15px 6px;
  font-size: 17px;
  font-weight: 500;
  color: #282828;
  text-decoration: none;
  border-bottom: 1px solid var(--color-gray-100);
}
.mobile-menu__nav a:hover { color: var(--color-brand); }
.mobile-menu__auth { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; }
.mobile-menu__auth .btn { width: 100%; }

/* ============================================================
   Модалка редактирования профиля
   ============================================================ */
.pf-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(20,10,30,.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.pf-modal.is-open { opacity: 1; pointer-events: auto; }
.pf-modal__panel {
  width: 100%;
  max-width: 440px;
  background: #fff;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 20px 60px rgba(70,38,93,.3);
  transform: translateY(16px);
  transition: transform .2s;
}
.pf-modal.is-open .pf-modal__panel { transform: none; }
.pf-modal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.pf-modal__title { font-size: 20px; font-weight: 700; color: var(--color-black); }
.pf-modal__close { width: 36px; height: 36px; background: none; border: none; font-size: 28px; line-height: 1; color: #282828; cursor: pointer; }
.pf-form { display: flex; flex-direction: column; gap: 16px; }
.pf-field { display: flex; flex-direction: column; gap: 6px; }
.pf-field span { font-size: 13px; font-weight: 500; color: rgba(40,40,40,.6); }
.pf-field input {
  padding: 12px 14px;
  border: 1.5px solid #E2E1EC;
  border-radius: 12px;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-black);
}
.pf-field input:focus { outline: none; border-color: var(--color-brand); }
.pf-form__actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 8px; }
.pf-modal__cancel { background: none; border: none; padding: 12px 16px; font-size: 15px; font-weight: 500; color: rgba(40,40,40,.6); cursor: pointer; }
.pf-modal__cancel:hover { color: var(--color-black); }
.pf-divider {
  display: flex; align-items: center; gap: 10px;
  margin: 6px 0 2px;
  font-size: 13px; font-weight: 600; color: rgba(40,40,40,.5);
}
.pf-divider::before, .pf-divider::after { content: ''; flex: 1; height: 1px; background: #ECEAF3; }
.pf-field__error { display: none; font-size: 13px; color: #E0395E; margin-top: -6px; }
.pf-field__error.is-visible { display: block; }

/* Окно загрузки изображения (фото/логотип) */
.img-picker { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 8px 0 4px; }
.img-picker__preview {
  width: 130px; height: 130px;
  border-radius: 20px;
  overflow: hidden;
  background: var(--color-gray-100);
  display: flex; align-items: center; justify-content: center;
}
.img-picker__preview img { width: 100%; height: 100%; object-fit: cover; }
.img-picker__btn { cursor: pointer; }
.img-picker__hint { font-size: 12px; color: rgba(40,40,40,.45); }

/* ============================================================
   Избранное (карточки в кабинете)
   ============================================================ */
.fav-card {
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(40,40,40,.06);
}
.fav-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.fav-card__title {
  font-weight: 700; font-size: 15px; line-height: 1.2;
  color: var(--color-black); text-decoration: none; flex: 1;
}
.fav-card__title:hover { color: var(--color-brand); }
.fav-card__remove { background: none; border: none; cursor: pointer; width: 24px; height: 24px; flex-shrink: 0; }
.fav-card__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.fav-card__tags .obj-tag { background: rgba(162,137,191,.12); font-size: 12px; padding: 4px 10px; border-radius: 100px; }
.fav-card__rows { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #666; }
.fav-card__rows > div { display: flex; justify-content: space-between; }
.fav-card__rows strong { color: var(--color-black); }
.fav-card__media { display: block; margin: auto -16px -16px; }
.fav-card__media img { width: 100%; height: 180px; object-fit: cover; display: block; }
.fav-empty { padding: 48px 16px; text-align: center; font-size: 16px; line-height: 1.6; color: rgba(40,40,40,.55); }
.fav-empty a { color: var(--color-brand); font-weight: 600; text-decoration: none; }

/* ============================================================
   Статичные страницы (О проекте, Контакты, Вакансии)
   ============================================================ */
.static-section { background: #fff; padding: 40px 0 72px; }
.static-wrap { max-width: 880px; margin: 0 auto; padding-inline: 40px; }
.static-lead {
  font-size: 19px;
  line-height: 1.6;
  color: rgba(40,40,40,.7);
  margin: 16px 0 8px;
}
.static-section h2 { font-size: 24px; font-weight: 700; color: var(--color-black); margin: 36px 0 12px; }
.static-section p { font-size: 16px; line-height: 1.7; color: rgba(40,40,40,.8); margin-bottom: 14px; }
.static-section ul { margin: 0 0 16px; padding-left: 22px; list-style: disc; }
.static-section ol { margin: 0 0 16px; padding-left: 22px; list-style: decimal; }
.static-section li::marker { color: var(--color-brand); }
.static-section li { font-size: 16px; line-height: 1.7; color: rgba(40,40,40,.8); margin-bottom: 6px; }

.static-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 28px 0; }
.static-stat { background: var(--color-gray-100); border-radius: 16px; padding: 22px; }
.static-stat__num { font-family: 'Unbounded', var(--font-family); font-size: 32px; font-weight: 600; color: var(--color-brand); }
.static-stat__label { font-size: 14px; color: rgba(40,40,40,.6); margin-top: 6px; }

/* Две колонки «Размещаю объект» и «Привожу покупателя» */
.how-cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 28px 0 8px; }
.how-col {
  background: var(--color-gray-100);
  border: 1px solid var(--color-gray-300);
  border-radius: 20px;
  padding: 24px;
}
.how-col__title { font-size: 20px; font-weight: 700; color: var(--color-black); margin: 0 0 12px; }
.how-col__list { margin: 0; padding-left: 22px; list-style: decimal; }
.how-col__list li::marker { color: var(--color-brand); font-weight: 600; }
.how-col__list li { font-size: 16px; line-height: 1.7; color: rgba(40,40,40,.8); margin-bottom: 8px; }

/* Вопросы и ответы */
.faq { margin: 8px 0 0; }
.faq dt { font-size: 16px; font-weight: 600; color: var(--color-black); margin-top: 18px; }
.faq dd { font-size: 16px; line-height: 1.7; color: rgba(40,40,40,.8); margin: 4px 0 0; padding: 0; }

/* Кнопки внизу статической страницы */
.static-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }

@media (max-width: 760px) {
  .how-cols { grid-template-columns: 1fr; }
}

.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin: 28px 0; }
.contact-card { background: var(--color-gray-100); border-radius: 16px; padding: 24px; }
.contact-card__label { font-size: 13px; color: rgba(40,40,40,.5); margin-bottom: 8px; }
.contact-card__value { font-size: 18px; font-weight: 600; color: var(--color-black); word-break: break-word; }
.contact-card__value a { color: var(--color-brand); text-decoration: none; }
.contact-card__value a:hover { text-decoration: underline; }

.vacancy { border: 1px solid #ECEAF3; border-radius: 16px; padding: 24px; margin-bottom: 16px; }
.vacancy__title { font-size: 19px; font-weight: 700; color: var(--color-black); margin-bottom: 6px; }
.vacancy__meta { font-size: 14px; color: rgba(40,40,40,.55); margin-bottom: 12px; }
.vacancy__desc { font-size: 15px; line-height: 1.6; color: rgba(40,40,40,.8); margin-bottom: 16px; }

@media (max-width: 700px) {
  .static-wrap { padding-inline: 16px; }
  .static-stats { grid-template-columns: repeat(2, 1fr); }
}

/* Бургер показываем на мобильных (правило в конце файла — перекрывает базовый display:none) */
@media (max-width: 700px) {
  .header__burger { display: inline-flex; }
  .header__right { display: none; }
}

/* ============================================================
   Заявка на фиксацию клиента (fix-request.html)
   ============================================================ */
.fix-page { background: var(--color-gray-100); padding: 36px 0 72px; }
.fix-page__container { max-width: 1440px; margin: 0 auto; padding: 0 80px; }
.fix-page__head { display: flex; align-items: center; gap: 20px; margin-bottom: 28px; }
.fix-back {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: none; cursor: pointer;
  color: var(--color-brand); font-weight: 600; font-size: 14px;
}
.fix-page__title { font-size: 28px; font-weight: 700; color: var(--color-black); letter-spacing: -0.01em; }
.fix-form { max-width: 700px; display: flex; flex-direction: column; gap: 16px; }
.fix-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(40, 40, 40, 0.06);
  padding: 22px 28px;
  display: flex;
  align-items: center;
  gap: 32px;
  transition: box-shadow .15s;
}
.fix-card--top { align-items: flex-start; }
.fix-card.is-error { box-shadow: 0 0 0 1.5px #E0395E; }
.fix-card__label { width: 120px; flex-shrink: 0; font-weight: 700; font-size: 15px; color: var(--color-black); }
.fix-agent { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--color-black); }
.fix-agent__avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; background: var(--color-gray-200); }
.fix-client-pick {
  display: inline-flex; align-items: center; gap: 10px;
  background: none; border: none; cursor: pointer; padding: 0;
  color: var(--color-brand); font-weight: 600; font-size: 15px;
}
.fix-client-pick.is-chosen { color: var(--color-black); }
.fix-plus { font-size: 20px; line-height: 1; }
.fix-textarea {
  flex: 1; min-height: 110px; resize: vertical;
  border: 1.5px solid var(--color-gray-300); border-radius: 12px;
  padding: 12px 14px; font-family: inherit; font-size: 14px; color: var(--color-black);
}
.fix-textarea:focus { outline: none; border-color: var(--color-brand); }
.fix-submit-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; margin-top: 12px; max-width: 700px;
}
.fix-note { display: flex; align-items: center; gap: 14px; font-size: 13px; line-height: 1.4; color: rgba(40,40,40,.6); }
.fix-note__ava { width: 44px; height: 44px; border-radius: 50%; background: var(--color-gray-200); flex-shrink: 0; object-fit: cover; }
.fix-submit { white-space: nowrap; }
@media (max-width: 700px) {
  .fix-page__container { padding: 0 16px; }
  .fix-card { flex-direction: column; align-items: flex-start; gap: 12px; }
  .fix-submit-row { flex-direction: column; align-items: stretch; }
}

/* Реестр и блок формы на узких экранах */
@media (max-width: 1100px) {
  .form-section__container--split { grid-template-columns: 1fr; }
  /* на узком экране заголовок уходит под фотографию, чтобы не закрывать лица */
  .cat-table--registry { overflow-x: auto; }
}
@media (max-width: 700px) {
  .form-section__container--split .form-banner__form { padding: 20px; }
  .form-banner__check span { font-size: 11px; }
  .reg-tab { padding: 8px 14px; font-size: 14px; }
}

/* Строка реестра на планшете и телефоне */
@media (max-width: 1100px) {
  .cat-row { grid-template-columns: 200px 1.4fr 1fr; }
  .cat-row__result { grid-column: 2 / -1; }
  .cat-row__actions { display: none; }
}
@media (max-width: 700px) {
  .cat-row { grid-template-columns: 1fr; min-height: 0; }
  .cat-row__photo { height: 200px; width: 100%; max-width: none; }
  .cat-row__photo img { width: 100%; height: 100%; object-fit: cover; }
  .cat-row__main,
  .cat-row__prices,
  .cat-row__result { padding: 16px; }
  .cat-row__prices,
  .cat-row__result { border-top: 1px solid #EAEAEE; }
  .cat-row__result { grid-column: auto; }
  .cat-row__head { flex-wrap: wrap; }
  .catalog-page-head__title { font-size: 30px; }
}

@media (max-width: 1100px) {
  .form-banner__names {
    bottom: 16px;
    height: auto;
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
  }
  .form-banner__names .form-banner__name {
    position: static;
    transform: none;
    font-size: 12px;
    padding: 6px 12px;
  }
}

/* Баннер заявки на планшете и телефоне: фото сверху, форма под ним */
@media (max-width: 1100px) {
  .form-banner--photo { height: auto; min-height: 0; }
  .form-banner--photo .form-banner__bg {
    position: absolute;
    inset: 0;
    height: 100%;
    object-position: 72% center;
  }
  .form-banner--photo::before {
    background: linear-gradient(180deg, rgba(46, 16, 120, .35) 0%, rgba(56, 18, 150, .92) 46%, rgba(56, 18, 150, .98) 100%);
  }
  .form-banner--photo .form-banner__left {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: auto;
    z-index: 2;
    padding: 220px 28px 28px;
  }
  .form-banner--photo .form-banner__title { font-size: 26px; }
}
@media (max-width: 700px) {
  .form-banner--photo .form-banner__left { padding: 180px 18px 20px; }
  .form-banner--photo .form-banner__title { font-size: 22px; }
  .form-banner--photo .form-banner__form { padding: 16px; }
}

/* Сетка объектов: три колонки, при нехватке места меньше.
   Ширина колонки постоянная, поэтому одна-две карточки не растягиваются. */
@media (max-width: 1100px) {
  .catalog__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .catalog__grid { grid-template-columns: 1fr; gap: 16px; }
}

/* Шесть пунктов меню перестают помещаться раньше телефона — прячем их в бургер */
@media (max-width: 1150px) {
  .header__nav { display: none; }
  .header__right { display: none; }
  .header__burger { display: inline-flex; }
}

/* ===== Лента объектов со стрелками ===== */
.catalog__slider { position: relative; }
.catalog__slider .catalog__grid {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0;
  padding-bottom: 4px;
  scrollbar-width: none;
}
.catalog__slider .catalog__grid::-webkit-scrollbar { display: none; }
.catalog__slider .obj-card {
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
}
.catalog__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-gray-300);
  background: #fff;
  color: var(--color-black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(40, 20, 90, .12);
  transition: opacity .15s, border-color .15s, color .15s;
}
.catalog__arrow:hover:not(:disabled) { border-color: var(--color-brand); color: var(--color-brand); }
.catalog__arrow:disabled { opacity: .35; cursor: default; }
.catalog__arrow--prev { left: -48px; }
.catalog__arrow--next { right: -48px; }
.catalog__slider.is-static .catalog__arrow { display: none; }

@media (max-width: 1100px) {
  .catalog__slider .obj-card { flex: 0 0 calc((100% - 24px) / 2); }
  .catalog__arrow--prev { left: -30px; }
  .catalog__arrow--next { right: -30px; }
  .catalog__arrow { width: 38px; height: 38px; }
}
@media (max-width: 700px) {
  .catalog__slider .catalog__grid { gap: 16px; }
  .catalog__slider .obj-card { flex: 0 0 86%; }
  .catalog__arrow { display: none; }
}

/* Строка табов: основные слева, «Все объекты» справа */
.reg-tabs-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.reg-tabs-bar .reg-tabs { margin-bottom: 0; }

/* Пароль, присланный при регистрации */
.auth-note { font-size: 14px; line-height: 1.45; color: var(--color-gray-700); margin-bottom: 8px; }
.auth-passbox {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  border-radius: 16px;
  background: var(--color-gray-200);
  margin-bottom: 8px;
}
.auth-passbox__label { font-size: 12px; color: var(--color-gray-700); }
.auth-passbox__value {
  font-family: 'Unbounded', var(--font-family);
  font-size: 22px;
  letter-spacing: .02em;
  color: var(--color-black);
}
.auth-passbox__hint { font-size: 12px; color: var(--color-gray-500); }

/* Идущий аукцион: светлая плашка с живой зелёной точкой */
.obj-card__badge--live {
  background: rgba(255, 255, 255, .94);
  color: var(--color-black);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  box-shadow: 0 4px 14px rgba(40, 20, 90, .16);
}
.obj-card__badge--live::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-success);
  animation: badge-pulse 1.8s ease-out infinite;
}
@keyframes badge-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(55, 164, 106, .65); }
  70%  { box-shadow: 0 0 0 7px rgba(55, 164, 106, 0); }
  100% { box-shadow: 0 0 0 0 rgba(55, 164, 106, 0); }
}

/* Рейтинг брокера: закрытые сделки на площадке */
.obj-broker { position: relative; }
.obj-broker__rating {
  position: absolute;
  top: 12px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-black);
}
.obj-broker__rating svg { color: var(--color-warning); }

/* Лента видео со стрелками */
.video__slider { position: relative; }
.video__slider .video__grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.video__slider .video__grid::-webkit-scrollbar { display: none; }
.video__slider .video-card {
  flex: 0 0 calc((100% - 64px) / 5);
  scroll-snap-align: start;
}
.video-card__title a { color: inherit; text-decoration: none; }
.video-card__title a:hover { color: var(--color-brand); }
.video__slider.is-static .catalog__arrow { display: none; }
@media (max-width: 1100px) {
  .video__slider .video-card { flex: 0 0 calc((100% - 32px) / 3); }
}
@media (max-width: 700px) {
  .video__slider .video-card { flex: 0 0 74%; }
  .video__slider .catalog__arrow { display: none; }
}

/* Стрелки ленты видео стоят по центру обложки, а не всей карточки */
.video__slider .catalog__arrow { top: 43%; }

.video__empty {
  padding: 40px 0;
  color: var(--color-gray-700);
  font-size: 16px;
}

/* ============================================================
   ВИДЕО ПАРТНЁРОВ — лента в разметке прежнего дайджеста (.news)
   ============================================================ */
.pv { padding: 72px 0 40px; overflow-x: clip; }
.pv-cover { position: relative; display: block; flex-shrink: 0; border-radius: 16px; overflow: hidden; }
.pv-cover--lg { width: 46%; max-width: 520px; }
.pv-cover--lg .news-featured__img { width: 100%; max-width: none; aspect-ratio: 16 / 10; border-radius: 0; display: block; }
.pv-cover--sm { border-radius: 6px; }
.pv-cover--sm .news-card__img { width: 90px; height: 56px; border-radius: 0; display: block; }
.pv-play {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(0deg, rgba(20, 8, 50, .35), rgba(20, 8, 50, .05));
  transition: background .2s;
}
.pv-play img { filter: drop-shadow(0 4px 12px rgba(0,0,0,.25)); transition: transform .2s; }
.pv-cover:hover .pv-play img { transform: scale(1.08); }
.pv-dur {
  position: absolute; right: 12px; bottom: 12px;
  padding: 4px 8px; border-radius: 6px;
  background: rgba(0,0,0,.6); color: #fff; font-size: 12px; font-weight: 600;
}
.pv-featured .news-featured__body { justify-content: center; }
.pv-featured .news-featured__lead { -webkit-line-clamp: 4; }
.pv .news-card { grid-template-columns: 120px auto 1px 1fr; cursor: pointer; }
.pv .pv-cover--sm .news-card__img { width: 120px; height: 68px; }
.pv-side { padding: 0; border: none; background: none; }
.pv-side__card {
  height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 16px;
  padding: 36px 32px;
  border-radius: 20px;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(66, 0, 210, .15) 0%, rgba(66, 0, 210, .92) 62%),
    url('../images/pv/stairs.jpg') center / cover;
}
.pv-side__label {
  align-self: flex-start;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.35);
  font-size: 12px; font-weight: 600;
}
.pv-side__title { font-family: 'Unbounded', var(--font-family); font-weight: 500; font-size: 24px; line-height: 1.15; }
.pv-side__text { font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.85); }
.pv-side__btn { background: #fff; color: var(--color-brand); align-self: flex-start; }
.pv-side__btn:hover { background: var(--color-gray-200); }

/* ============================================================
   МАРКЕТИНГОВЫЙ ПЛАН — 5 вариантов, показывается один (body[data-mp])
   ============================================================ */
.mp { padding: 40px 0 72px; background: var(--color-gray-100); overflow-x: clip; }
.mp__container { max-width: 1920px; margin-inline: auto; padding-inline: 94px; }
.mp-v { display: none; }
body[data-mp="1"] .mp-v1, body[data-mp="2"] .mp-v2, body[data-mp="3"] .mp-v3,
body[data-mp="4"] .mp-v4, body[data-mp="5"] .mp-v5 { display: grid; }

.mp .section-title { margin-bottom: 0; }
.mp-kicker {
  display: inline-block; align-self: flex-start;
  padding: 6px 14px; border-radius: 999px;
  background: rgba(118, 79, 233, .1); color: var(--color-brand);
  font-size: 13px; font-weight: 600;
}
.mp-kicker--light { background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.35); }
.mp-lead { font-size: 17px; line-height: 1.5; color: rgba(40,40,40,.75); max-width: 560px; }
.mp-lead--center { margin-inline: auto; text-align: center; }
.mp-cta { align-self: flex-start; padding: 18px 32px; }

/* 1 — документ */
.mp-v1 {
  grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center;
  padding: 56px 64px; background: #fff; border: 2px solid var(--color-gray-300); border-radius: 24px;
}
.mp-v1__text { display: flex; flex-direction: column; gap: 24px; }
.mp-check { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.mp-check li { position: relative; padding-left: 30px; font-size: 15px; font-weight: 500; line-height: 1.35; color: var(--color-black); }
.mp-check li::before {
  content: ''; position: absolute; left: 0; top: 0; width: 20px; height: 20px; border-radius: 50%;
  background: var(--color-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.5 2.5L14 7.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.mp-v1__doc { position: relative; height: 420px; }
.mp-page {
  position: absolute; top: 20px; left: 50%; width: 300px; height: 380px; margin-left: -150px;
  background: #fff; border-radius: 14px; border: 1px solid var(--color-gray-300);
  box-shadow: 0 24px 60px rgba(66, 0, 210, .14);
}
.mp-page--back { transform: rotate(-9deg) translateX(-70px); background: #EEE9FF; }
.mp-page--mid { transform: rotate(6deg) translateX(70px); background: #F5F2FF; }
.mp-page--front { display: flex; flex-direction: column; gap: 10px; padding: 28px; overflow: hidden; }
.mp-page--front::before {
  content: ''; position: absolute; inset: 0 0 auto 0; height: 130px;
  background: linear-gradient(126deg, #7E34FA 14%, #4200D2 101%);
}
.mp-page__brand, .mp-page__title, .mp-page__sub { position: relative; color: #fff; }
.mp-page__brand { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.mp-page__title { font-family: 'Unbounded', var(--font-family); font-size: 20px; font-weight: 500; }
.mp-page__sub { font-size: 12px; opacity: .85; margin-bottom: 26px; }
.mp-page__bars { display: flex; flex-direction: column; gap: 9px; }
.mp-page__bars i { display: block; height: 9px; border-radius: 5px; background: rgba(118, 79, 233, .22); }
.mp-page__table { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 14px; }
.mp-page__table i { display: block; height: 26px; border-radius: 6px; background: var(--color-gray-200); border: 1px solid var(--color-gray-300); }

/* 2 — фиолетовый баннер */
.mp-v2 {
  grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center;
  padding: 56px 64px; border-radius: 24px; color: #fff;
  background: linear-gradient(126deg, #7E34FA 14%, #4200D2 101%);
}
.mp-v2__text { display: flex; flex-direction: column; gap: 22px; }
.mp-v2__title, .mp-v4__title { font-family: 'Unbounded', var(--font-family); font-weight: 500; font-size: clamp(28px, 2.4vw, 40px); line-height: 1.12; letter-spacing: -0.02em; }
.mp-v2__lead, .mp-v4__lead { font-size: 17px; line-height: 1.5; color: rgba(255,255,255,.8); max-width: 480px; }
.mp-v2__btn { align-self: flex-start; background: #fff; color: var(--color-brand); padding: 18px 32px; }
.mp-v2__btn:hover { background: var(--color-gray-200); }
.mp-v2__tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.mp-v2__tiles li {
  display: flex; flex-direction: column; gap: 18px; min-height: 128px; padding: 18px;
  border-radius: 16px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28);
  font-size: 15px; font-weight: 600; line-height: 1.3;
}
.mp-v2__tiles b { font-family: 'Unbounded', var(--font-family); font-weight: 500; font-size: 14px; opacity: .7; }

/* 3 — шаги */
.mp-v3 { gap: 40px; padding: 56px 64px; background: #fff; border: 2px solid var(--color-gray-300); border-radius: 24px; }
.mp-v3__head { display: flex; flex-direction: column; gap: 16px; }
.mp-v3__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; counter-reset: none; position: relative; }
.mp-v3__steps::before {
  content: ''; position: absolute; left: 12%; right: 12%; top: 27px; height: 2px;
  background: repeating-linear-gradient(90deg, var(--color-brand) 0 8px, transparent 8px 16px); opacity: .35;
}
.mp-v3__steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 0 8px; }
.mp-v3__num {
  width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(126deg, #7E34FA 14%, #4200D2 101%); color: #fff;
  font-family: 'Unbounded', var(--font-family); font-size: 20px; font-weight: 500;
  box-shadow: 0 0 0 8px #fff, 0 10px 30px rgba(118, 79, 233, .35); margin-bottom: 8px;
}
.mp-v3__steps b { font-size: 18px; font-weight: 700; color: var(--color-black); }
.mp-v3__steps li > span:last-child { font-size: 14px; line-height: 1.45; color: rgba(40,40,40,.7); max-width: 240px; }
.mp-v3__cta { display: flex; justify-content: center; }
.mp-v3__cta .mp-cta { align-self: center; }

/* 4 — бенто */
.mp-v4 { grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: repeat(2, minmax(210px, auto)); gap: 16px; }
.mp-v4__main {
  grid-row: span 2; display: flex; flex-direction: column; justify-content: flex-end; gap: 20px;
  padding: 48px; border-radius: 24px; color: #fff;
  background:
    linear-gradient(126deg, rgba(126, 52, 250, .93) 14%, rgba(66, 0, 210, .97) 101%),
    url('../images/pv/kitchen.jpg') center / cover;
}
.mp-v4__main .mp-kicker { margin-bottom: auto; }
.mp-v4__cell {
  display: flex; flex-direction: column; justify-content: space-between; gap: 16px; padding: 24px;
  border-radius: 20px; background: rgba(234, 231, 255, .55); border: 1.5px solid var(--color-gray-300);
}
.mp-v4__cell b { font-family: 'Unbounded', var(--font-family); font-weight: 500; font-size: 44px; line-height: 1; color: var(--color-black); }
.mp-v4__cell span { font-size: 14px; font-weight: 500; line-height: 1.4; color: rgba(40,40,40,.75); }
.mp-v4__cell--accent { background: radial-gradient(ellipse 110% 90% at 85% 15%, rgba(130,74,233,.55), rgba(230,232,254,.35)); }

/* 5 — таймлайн */
.mp-v5 {
  grid-template-columns: 1fr 1.3fr; gap: 56px; align-items: center;
  padding: 56px 64px; background: #fff; border: 2px solid var(--color-gray-300); border-radius: 24px;
}
.mp-v5__text { display: flex; flex-direction: column; gap: 22px; }
.mp-v5__gantt { --days: 25; display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 20px; background: var(--color-gray-200); }
.mp-gantt__scale, .mp-gantt__row { display: grid; grid-template-columns: 210px 1fr; align-items: center; gap: 16px; }
.mp-gantt__scale { grid-template-columns: 210px repeat(6, 1fr); font-size: 12px; color: rgba(40,40,40,.55); padding-bottom: 4px; border-bottom: 1px dashed var(--color-gray-300); }
.mp-gantt__scale span:first-child { grid-column: 2; }
.mp-gantt__row > span { font-size: 14px; font-weight: 500; color: var(--color-black); }
.mp-gantt__row { position: relative; }
.mp-gantt__row i {
  display: block; height: 14px; border-radius: 7px;
  margin-left: calc(var(--from) / var(--days) * 100%);
  width: calc(max(var(--len), .6) / var(--days) * 100%);
  background: linear-gradient(90deg, #9B6BFF, #764FE9);
}
.mp-gantt__row i.is-accent { background: linear-gradient(90deg, #37A46A, #2A7E51); }

/* окно заявки */
.mp-modal {
  position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: rgba(20, 12, 40, .55); opacity: 0; pointer-events: none; transition: opacity .2s;
}
.mp-modal.is-open { opacity: 1; pointer-events: auto; }
.mp-modal__panel {
  position: relative; width: 100%; max-width: 480px; padding: 40px 36px 32px;
  background: #fff; border-radius: 24px; box-shadow: 0 30px 80px rgba(0,0,0,.25);
  transform: translateY(12px); transition: transform .2s;
}
.mp-modal.is-open .mp-modal__panel { transform: none; }
.mp-modal__close { position: absolute; top: 14px; right: 16px; width: 36px; height: 36px; border: none; background: none; font-size: 28px; line-height: 1; color: var(--color-black); cursor: pointer; }
.mp-modal__title { font-family: 'Unbounded', var(--font-family); font-weight: 500; font-size: 24px; line-height: 1.2; color: var(--color-black); margin-bottom: 10px; }
.mp-modal__text { font-size: 15px; line-height: 1.45; color: rgba(40,40,40,.75); margin-bottom: 22px; }
.mp-modal__form { display: flex; flex-direction: column; gap: 12px; }
.mp-modal__form input[type="text"], .mp-modal__form input[type="tel"] {
  width: 100%; height: 52px; padding: 0 18px; border: 1.5px solid var(--color-gray-300); border-radius: 12px;
  font: inherit; font-size: 15px; color: var(--color-black); background: #fff;
}
.mp-modal__form input:focus { outline: none; border-color: var(--color-brand); }
.mp-modal__who { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px; }
.mp-modal__who label { cursor: pointer; }
.mp-modal__who input { position: absolute; opacity: 0; pointer-events: none; }
.mp-modal__who span {
  display: block; padding: 12px; border-radius: 12px; text-align: center; font-size: 14px; font-weight: 600;
  border: 1.5px solid var(--color-gray-300); color: var(--color-black);
}
.mp-modal__who input:checked + span { border-color: var(--color-brand); background: rgba(118, 79, 233, .08); color: var(--color-brand); }
.mp-modal__who input:focus-visible + span { outline: 2px solid var(--color-brand); outline-offset: 2px; }
.mp-modal__submit { height: 54px; margin-top: 6px; }
.mp-modal__note { font-size: 12px; line-height: 1.4; color: rgba(40,40,40,.6); text-align: center; }
.mp-modal__done .btn { margin-top: 4px; }

/* переключатель вариантов (localhost) */
.mp-switch {
  position: fixed; left: 16px; bottom: 16px; z-index: 150;
  display: flex; align-items: center; gap: 6px; padding: 8px 10px 8px 16px;
  background: var(--color-black); color: #fff; border-radius: 999px; font-size: 13px; font-weight: 600;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.mp-switch[hidden] { display: none; }
.mp-switch button { width: 32px; height: 32px; border-radius: 50%; border: none; background: rgba(255,255,255,.12); color: #fff; font: inherit; cursor: pointer; }
.mp-switch button.is-active { background: var(--color-brand); }

@media (max-width: 1600px) {
  .mp__container { padding-inline: 60px; }
}
@media (max-width: 1280px) {
  .mp__container { padding-inline: 40px; }
  .mp-v1, .mp-v2, .mp-v3, .mp-v5 { padding: 44px 40px; }
  .mp-gantt__scale, .mp-gantt__row { grid-template-columns: 170px 1fr; }
  .mp-gantt__scale { grid-template-columns: 170px repeat(6, 1fr); }
}
@media (max-width: 1100px) {
  .mp-v1, .mp-v2, .mp-v5 { grid-template-columns: 1fr; }
  .mp-v1__doc { height: 380px; }
  .mp-v3__steps { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .mp-v3__steps::before { display: none; }
  .mp-v4 { grid-template-columns: 1fr 1fr; }
  .mp-v4__main { grid-column: span 2; grid-row: auto; }
  .pv-cover--lg { width: 100%; max-width: none; }
  .pv-featured { flex-direction: column; }
}
@media (max-width: 700px) {
  .mp__container { padding-inline: 16px; }
  .mp-v1, .mp-v2, .mp-v3, .mp-v5 { padding: 28px 20px; border-radius: 20px; gap: 28px; }
  .mp-check, .mp-v2__tiles { grid-template-columns: 1fr 1fr; }
  .mp-check { grid-template-columns: 1fr; }
  .mp-v1__doc { height: 330px; }
  .mp-page { width: 230px; height: 300px; margin-left: -115px; }
  .mp-v3__steps { grid-template-columns: 1fr; }
  .mp-v4 { grid-template-columns: 1fr 1fr; }
  .mp-v4__main { padding: 28px 22px; }
  .mp-v4__cell b { font-size: 34px; }
  .mp-v5__gantt { padding: 16px; overflow-x: auto; }
  .mp-gantt__scale, .mp-gantt__row { grid-template-columns: 120px 1fr; gap: 10px; }
  .mp-gantt__scale { grid-template-columns: 120px repeat(6, 1fr); }
  .mp-gantt__row > span { font-size: 12px; }
  .mp-cta, .mp-v2__btn { align-self: stretch; text-align: center; }
  .mp-modal__panel { padding: 32px 20px 24px; }
  .pv { padding-top: 48px; }
  .pv .news__container { padding-inline: 16px; gap: 24px; }
  .pv .news__main { padding: 20px 16px; min-width: 0; }
  .pv .news__head .tabs { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; }
  .pv .news-card { grid-template-columns: 90px 1fr; gap: 12px; }
  .pv-side__card { padding: 28px 20px; min-height: 360px; }
}

/* плеер видео партнёров: YouTube / Rutube во встроенном окне */
.pv-player__panel { position: relative; width: min(1100px, 100%); }
.pv-player__frame { aspect-ratio: 16 / 9; background: #000; border-radius: 16px; overflow: hidden; }
.pv-player__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.pv-player__close { top: -44px; right: 0; color: #fff; }
[data-pv-cat].is-hidden { display: none; }

/* October revision: editorial videos and real, anonymized plan pages. */
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-1 * var(--marquee-distance, 50%))); } }
.catalog-types { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:24px 0 18px; }
.catalog-types > span { color:#777; margin-right:10px; font-size:14px; }
.catalog-types .reg-tab { font-size:14px; padding:10px 17px; }
.catalog-private-note { margin:12px 0 22px; max-width:700px; color:#64547a; line-height:1.5; }
.catalog-private-note[hidden], .pv-hero-card[hidden] { display:none; }
.pv { background:#f3eff9; }
.pv .news__container { gap:28px; }
.pv-heading { display:flex; align-items:center; gap:36px; flex-wrap:wrap; }
.pv-heading .section-title { font-size:30px; color:#8052c2; }
.pv-all { margin-left:auto; color:#7c32e9; background:#ebe2fb; border-radius:24px; padding:10px 18px; font-size:13px; }
.pv-editorial { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:stretch; }
.pv-hero-card,.pv-side-list { background:white; border-radius:16px; padding:16px; min-width:0; }
.pv .pv-featured { display:flex; flex-direction:column; border:0; padding:0; gap:16px; }
.pv .pv-cover--lg { width:100%; max-width:none; aspect-ratio:16/9; }
.pv .pv-cover--lg .news-featured__img { width:100%; height:100%; object-fit:cover; }
.pv .news-featured__body { padding:0 0 12px; gap:10px; }
.pv .news-featured__title { font-size:23px; font-weight:500; line-height:1.2; }
.pv .news-featured__lead { font-size:14px; line-height:1.45; }
.pv .news-featured__meta { font-size:11px; }
.pv-side-list { display:flex; flex-direction:column; gap:14px; }
.pv .news-card { display:grid; grid-template-columns:38% 1fr; grid-template-rows:auto 1fr; border:0; border-radius:0; padding:0; gap:8px 14px; background:none; }
.pv .pv-cover--sm { grid-row:1/3; width:100%; align-self:start; aspect-ratio:16/9; }
.pv .pv-cover--sm .news-card__img { width:100%; height:100%; object-fit:cover; }
.pv .news-card__meta { grid-column:2; padding:0; font-size:11px; color:#aaa; }
.pv .news-card__divider { display:none; }
.pv .news-card__body { grid-column:2; min-width:0; }
.pv .news-card__title { font-size:16px; line-height:1.3; font-weight:500; }
.pv .news-card__text { font-size:13px; line-height:1.4; margin-top:6px; }
.pv-list-cta { margin-top:auto; padding:18px; background:#f4effc; border-radius:12px; }
.pv-list-cta > span { color:#8052c2; font-size:11px; }
.pv-list-cta h3 { font-size:20px; margin:7px 0; }
.pv-list-cta p { font-size:13px; color:#746781; margin-bottom:14px; }
.pv-list-cta .btn { padding:10px 20px; font-size:14px; }
.mp-v1 .mp-cta { padding:13px 23px; font-size:15px; }
.mp-v1__doc { height:470px; }
.mp-real-page { position:absolute; width:265px; height:375px; object-fit:cover; border-radius:7px; border:1px solid #ded8e8; box-shadow:0 18px 40px #62359c22; top:25px; left:50%; margin-left:-132px; }
.mp-real-page--budget { transform:translate(-82px, 5px) rotate(-12deg); }
.mp-real-page--team { transform:translate(82px, 5px) rotate(11deg); }
.mp-real-page--cover { transform:translateY(26px); }
.mp-doc-caption { position:absolute; bottom:12px; left:0; width:100%; text-align:center; color:#8a7c9a; font-size:12px; }
@media(max-width:1100px) { .pv-editorial {grid-template-columns:1fr 1fr;} .pv-heading {gap:20px;} }
@media(max-width:700px) {
 .pv-editorial {grid-template-columns:1fr;} .pv-heading {gap:16px;} .pv-heading .tabs {order:3; width:100%; overflow:auto;} .pv-heading .section-title {font-size:23px;}
 .pv .news-card {grid-template-columns:36% 1fr;} .pv .news-card__title {font-size:14px;} .pv .news-card__text {font-size:12px;}
 .mp-v1__doc {height:360px;} .mp-real-page {width:190px; height:269px; margin-left:-95px;} .mp-real-page--budget {transform:translate(-44px,5px) rotate(-10deg);} .mp-real-page--team {transform:translate(44px,5px) rotate(9deg);}
 .catalog-types {gap:7px;} .catalog-types > span {width:100%;} .catalog-types .reg-tab {font-size:12px; padding:8px 12px;}
}

#partner-video, #marketing-plan { scroll-margin-top: 110px; }
.pv-editorial:has(.pv-hero-card[hidden]) { grid-template-columns:1fr; }
.pv-editorial:has(.pv-hero-card[hidden]) .pv-side-list { max-width:900px; width:100%; margin-inline:auto; }


.catalog-type-select {display:flex;align-items:center;gap:9px;border:1px solid #ddd;border-radius:32px;background:white;padding:0 14px;min-width:185px;height:46px;}
.catalog-type-select select {font:inherit;font-size:14px;font-weight:500;color:#282828;border:0;background:transparent;max-width:270px;width:100%;padding:10px 0;cursor:pointer;}
.catalog-type-select:focus-within {outline:2px solid #8752df;outline-offset:2px;}
.form-banner--photo .form-banner__bg {object-fit:cover;object-position:center;image-rendering:auto;}
@media(max-width:700px){.catalog-type-select {width:100%;}.catalog-type-select select {max-width:none;}.form-banner--photo .form-banner__bg {object-position:72% top;}}

/* Custom property menu, matching the site's purple controls. */
.property-picker {position:relative;min-width:190px;}
.property-picker__trigger {display:flex;align-items:center;gap:10px;min-height:46px;width:100%;padding:10px 17px;border:1px solid #ddd;border-radius:28px;background:white;color:#282828;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s;}
.property-picker__icon {display:flex;color:#8b4fe8;}
.property-picker__label {text-align:left;flex:1;}
.property-picker__chevron {flex:none;transition:transform .2s;color:#92879f;}
.property-picker__trigger:hover,.property-picker__trigger[aria-expanded="true"] {border-color:#a779e6;background:#faf7ff;}
.property-picker__trigger[aria-expanded="true"] .property-picker__chevron {transform:rotate(180deg);}
.property-picker__menu {position:absolute;top:calc(100% + 10px);left:0;z-index:30;width:max-content;min-width:100%;max-width:calc(100vw - 48px);padding:7px;border:1px solid #e9e1f2;border-radius:18px;background:white;box-shadow:0 14px 36px #4c28701a;}
.property-picker__menu[hidden] {display:none;}
.property-picker__option {display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:0;border-radius:11px;background:white;text-align:left;color:#655b70;font:inherit;font-size:14px;cursor:pointer;transition:background .15s;}
.property-picker__option>svg {flex:none;color:#9a65e3;}
.property-picker__option>span:first-of-type {flex:1;}
.property-picker__option:hover,.property-picker__option:focus-visible {background:#f6f1fd;outline:none;}
.property-picker__option[aria-selected="true"] {background:#efe7fc;color:#7b3fd2;}
.property-picker__check {color:#8a4de0;visibility:hidden;margin-left:12px;}
.property-picker__option[aria-selected="true"] .property-picker__check {visibility:visible;}
.property-picker__trigger:focus-visible {outline:2px solid #8b4fe8;outline-offset:3px;}
@media(max-width:700px){.property-picker {width:100%;}.property-picker__menu {width:100%;max-width:none;}.property-picker__option {font-size:13px;padding:13px 10px;}}

/* Mobile homepage: preserve readable cards and give each section a clear order. */
.hero__map-caption, .catalog__swipe-hint { display: none; }
@media (max-width: 700px) {
  .hero--home { padding-top: 16px; }
  .hero--home .hero__container { gap: 0; grid-template-columns: minmax(0, 1fr); }
  .hero--home .hero__left { display: contents; }
  .hero--home .hero__offer { grid-row: 1; padding: 28px 22px; min-height: 0; border-radius: 20px 20px 0 0; }
  .hero--home .hero__offer-content { gap: 20px; }
  .hero--home .hero__title { font-size: clamp(24px, 6.6vw, 32px); font-weight: 600; line-height: 1.22; text-wrap: balance; }
  .hero--home .hero__title br { display: none; }
  .hero--home .hero__text { font-size: 15px; line-height: 1.55; color: #f1e8ff; }
  .hero--home .hero__pins { margin-top: 0; gap: 8px; }
  .hero--home .hero__pin { font-size: 12px; line-height: 1.4; padding: 8px 12px; border-radius: 12px; }
  .hero--home .hero__right { grid-row: 2; height: 220px; aspect-ratio: auto; border: 16px solid #561bd8; border-top: 0; border-radius: 0 0 20px 20px; background: #e8dbff; }
  .hero--home .hero__right-photo { object-fit: cover; object-position: center; }
  .hero--home .hero__map-caption { display: block; position: absolute; bottom: 0; left: 0; right: 0; padding: 10px 12px; background: #ffffffed; color: #613599; font-size: 12px; font-weight: 600; }
  .hero--home .stats { grid-row: 3; margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .hero--home .stats__item { min-height: 145px; padding: 16px 14px; gap: 14px; border-color: #ded3ed; justify-content: space-between; }
  .hero--home .stats__num { font-size: clamp(22px, 6vw, 28px); font-weight: 600; font-variant-numeric: tabular-nums; }
  .hero--home .stats__label { font-size: 12px; line-height: 1.45; max-width: none; opacity: .8; }
  .hero--home .stats__label br { display: none; }
  .hero--home .stats__arrow { display: none; }
  .catalog { padding-bottom: 48px; }
  .catalog__panel { padding: 22px 14px; border-radius: 20px; }
  .catalog__head { gap: 18px; margin-bottom: 18px; }
  .catalog__head .section-title { font-size: clamp(24px, 6.5vw, 28px); line-height: 1.2; margin: 0; }
  .catalog__head-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; min-width: 0; }
  .catalog__head-actions .property-picker { grid-column: 1 / -1; min-width: 0; }
  .catalog__head-actions .btn { padding: 12px 8px; font-size: 12px; white-space: normal; min-height: 44px; }
  .reg-tabs { gap: 8px; flex-wrap: wrap; }
  .reg-tabs .reg-tab { font-size: 12px; padding: 10px 12px; min-height: 44px; }
  .catalog__swipe-hint { display: flex; justify-content: space-between; margin: 16px 0 10px; color: #776987; font-size: 12px; }
  .catalog__slider { padding-bottom: 54px; }
  .catalog__slider .catalog__grid { gap: 12px; }
  .catalog__slider .obj-card { flex: 0 0 100%; min-width: 0; scroll-snap-stop: always; }
  .catalog__slider .obj-card__body { padding: 16px 14px; }
  .catalog__slider .obj-card__media img { height: auto; aspect-ratio: 4 / 3; }
  .catalog__slider .obj-card__title { font-size: 18px; line-height: 1.3; }
  .catalog__slider .obj-row { flex-wrap: wrap; }
  .catalog__slider .obj-row__val { font-size: 14px; }
  .catalog__arrow { display: flex; top: auto; bottom: 0; transform: none; width: 44px; height: 44px; }
  .catalog__arrow--prev { left: auto; right: 54px; }
  .catalog__arrow--next { right: 0; }
  .pv { padding-top: 36px; }
  .pv-heading { display: grid; grid-template-columns: 1fr auto; gap: 16px 8px; }
  .pv-heading .section-title { font-size: 24px; line-height: 1.2; margin: 0; grid-column: 1 / -1; }
  .pv-heading .pv-all { grid-column: 2; grid-row: 2; margin: 0; padding: 10px 12px; }
  .pv-heading .tabs { grid-column: 1 / -1; grid-row: 3; width: 100%; gap: 20px; padding-bottom: 8px; }
  .pv-heading .tabs__btn { flex: none; min-height: 44px; }
  .pv .pv-hero-card, .pv .pv-side-list { padding: 14px; }
  .pv .news-featured__title { font-size: 21px; line-height: 1.3; }
  .pv .news-card { grid-template-columns: 112px minmax(0, 1fr); gap: 6px 12px; }
  .pv .news-card__meta { display: block; }
  .pv .news-card__title { font-size: 14px; line-height: 1.4; }
  .pv .news-card__text { font-size: 12px; }
  .form-banner--photo { display: flex; flex-direction: column; padding: 0; background: #4615bd; overflow: hidden; }
  .form-banner--photo .form-banner__bg { position: static; width: 100%; height: auto; aspect-ratio: 1.35; object-fit: cover; object-position: 78% center; }
  .form-banner--photo::before { display: none; }
  .form-banner--photo .form-banner__left { padding: 24px 20px; width: 100%; }
  .form-banner--photo .form-banner__title { font-size: 25px; line-height: 1.25; text-wrap: balance; }
  .form-banner--photo .form-banner__form { padding: 0; border: 0; background: none; backdrop-filter: none; }
  .form-banner--photo .form-banner__fields input { height: 52px; font-size: 16px; }
  .footer { padding: 28px 0; border-radius: 24px 24px 0 0; }
  .footer__inner { grid-template-columns: minmax(0, 1fr) 44px; gap: 24px 12px; align-items: start; }
  .footer__contacts { grid-column: 1; grid-row: 1; gap: 16px; align-items: flex-start; }
  .footer__up { grid-column: 2; grid-row: 1; width: 44px; height: 44px; }
  .footer__nav { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-block: 20px; border-block: 1px solid #ffffff26; }
  .footer__nav a { display: inline-flex; padding: 7px 0; font-size: 13px; line-height: 1.4; }
  .footer__col--brand { grid-column: 1 / -1; grid-row: 3; gap: 12px; }
  .footer__link { font-size: 12px; line-height: 1.5; }
  .footer__socials { gap: 12px; }
  .footer__socials a { width: 44px; height: 44px; border: 1px solid #ffffff33; border-radius: 50%; }
}
@media (max-width: 700px) {
  .mp-v1__doc { overflow: hidden; }
  .mp .mp-cta { white-space: normal; padding-inline: 14px; line-height: 1.4; }
  .video__head-left { min-width: 0; width: 100%; gap: 16px; }
  .video__head-left .section-title { margin-bottom: 0; }
  .video__head-left .tabs { width: 100%; flex-wrap: nowrap; overflow-x: auto; gap: 20px; padding-bottom: 8px; }
  .video__head-left .tabs__btn { flex: none; min-height: 44px; }
  .video__slider { padding-bottom: 54px; }
  .video__slider .video-card { flex-basis: 92%; min-width: 0; }
  .video__slider .catalog__arrow { display: flex; top: auto; bottom: 0; }
  .video__slider.is-static .catalog__arrow { display: none; }
}

/* Compact mobile composition, October 3. */
.hero__mobile-title, .hero__mobile-text, .hero__mobile-cta, .catalog-mobile-filters { display: none; }
.form-banner__visual { display: contents; }
.form-banner__field { display: flex; flex-direction: column; gap: 7px; font-size: 13px; color: #fff; }
@media (max-width: 700px) {
  .hero--home .hero__container { background: #f2edf9; border-radius: 24px; overflow: hidden; }
  .hero--home .hero__offer { background: #7135d8; padding: 28px 24px 20px; border-radius: 0; }
  .hero--home .hero__offer-bg { display: none; }
  .hero--home .hero__offer-content { gap: 18px; }
  .hero--home .hero__desktop-title, .hero--home .hero__desktop-text, .hero--home .hero__pins { display: none; }
  .hero--home .hero__mobile-title { display: block; }
  .hero--home .hero__title { font-size: clamp(27px, 7.6vw, 34px); line-height: 1.17; font-weight: 600; letter-spacing: -.035em; text-wrap: initial; }
  .hero--home .hero__title br { display: initial; }
  .hero--home .hero__mobile-text { display: block; color: #f7f2ff; font-size: 16px; line-height: 1.5; max-width: 32ch; }
  .hero--home .hero__mobile-cta { display: inline-flex; justify-content: space-between; align-items: center; align-self: flex-start; gap: 28px; padding: 12px 18px; min-height: 48px; background: #fff; color: #5930a0; border-radius: 14px; font-size: 15px; font-weight: 600; }
  .hero--home .hero__right { height: auto; aspect-ratio: 1.8; border: 0; border-radius: 0; background: #7135d8; }
  .hero--home .hero__right-photo { object-position: center 53%; opacity: .95; }
  .hero--home .hero__right-overlay { background: linear-gradient(180deg, #7135d8 0%, rgba(113,53,216,.96) 14%, rgba(113,53,216,.78) 30%, rgba(113,53,216,.46) 48%, rgba(113,53,216,.12) 68%, transparent 82%, #f2edf9 100%); }
  .hero--home .hero__map-caption { background: none; color: #51357d; font-size: 11px; padding: 9px 24px; bottom: 0; }
  .hero--home .stats { margin: 0; padding: 20px 16px 16px; gap: 0; background: #f2edf9; }
  .hero--home .stats__item { min-height: 112px; background: none; border: 0; border-radius: 0; padding: 14px 12px; gap: 10px; justify-content: flex-start; }
  .hero--home .stats__item:nth-child(odd) { border-right: 1px solid #ded3ed; }
  .hero--home .stats__item:nth-child(-n+2) { border-bottom: 1px solid #ded3ed; }
  .hero--home .stats__num { font-size: clamp(22px, 5.8vw, 26px); }
  .hero--home .stats__label { font-size: 12px; color: #665879; line-height: 1.4; }
  .catalog__panel { padding: 24px 16px 16px; background: #f3eff8; border: 0; }
  .catalog__head { gap: 20px; margin-bottom: 20px; }
  .catalog-mobile-filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; width: 100%; }
  .catalog-mobile-filters label { display: flex; flex-direction: column; gap: 7px; color: #71627e; font-size: 12px; font-weight: 500; }
  .catalog-mobile-filters select { width: 100%; min-width: 0; height: 52px; border: 1px solid #e0d8e9; border-radius: 14px; padding: 0 14px; background: #fff; color: #29232f; font-size: 16px; }
  .catalog__head-actions .property-picker, .catalog__panel > .reg-tabs { display: none; }
  .catalog__head-actions { gap: 10px; }
  .catalog__head-actions .btn { font-size: 13px; border-radius: 14px; min-height: 48px; }
  .catalog__slider { padding: 0; }
  .catalog__swipe-hint { display: flex; align-items: center; justify-content: flex-start; gap: 12px; height: 48px; padding-right: 110px; margin: 0 0 14px; font-size: 13px; font-weight: 500; color: #5f526e; }
  .catalog__position { font-variant-numeric: tabular-nums; color: #8a7a9a; }
  .catalog__slider .catalog__arrow { top: 0; bottom: auto; width: 44px; height: 44px; background: #fff; border-color: #dfd3ed; box-shadow: none; }
  .catalog__slider .catalog__arrow--prev { right: 54px; }
  .catalog__slider .catalog__arrow--next { right: 0; }
  .catalog__slider .obj-card { flex-basis: 100%; }
  .pv-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
  .pv-heading .pv-all { display: none; }
  .pv-heading .section-title { color: #302637; }
  .pv-heading .tabs { order: initial; padding: 0; gap: 18px; }
  .pv .news__container { gap: 20px; }
  .pv .news-card { grid-template-columns: 100px minmax(0, 1fr); }
  .form-section { padding-block: 40px; }
  .form-banner--photo { background: #7135d8; border-radius: 24px; }
  .form-banner__visual { display: block; position: relative; width: 100%; }
  .form-banner--photo .form-banner__bg { aspect-ratio: 1.5; border-radius: 0; }
  .form-banner__visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 65%, #7135d8 100%); }
  .form-banner--photo .form-banner__left { padding: 8px 24px 24px; gap: 22px; }
  .form-banner--photo .form-banner__title { font-size: clamp(23px, 6.2vw, 28px); line-height: 1.2; text-wrap: initial; }
  .form-banner--photo .form-banner__fields { gap: 14px; }
  .form-banner--photo .form-banner__fields input { border-radius: 14px; }
  .form-banner--photo .form-banner__fields .btn { border-radius: 14px; height: 52px; }
  .footer { border-radius: 24px 24px 0 0; padding: 28px 0 24px; }
  .footer__inner { grid-template-columns: 1fr; gap: 24px; position: relative; padding-inline: 24px; }
  .footer__contacts { grid-column: 1; align-items: center; width: 100%; gap: 18px; }
  .footer__phone { font-size: 20px; }
  .footer__contacts .btn--brand { width: 100%; min-height: 48px; border-radius: 14px; }
  .footer__socials { justify-content: center; }
  .footer__nav { grid-column: 1; grid-row: 2; gap: 24px; padding-block: 20px; }
  .footer__nav ul { gap: 4px; }
  .footer__nav a { font-size: 12px; }
  .footer__col--brand { grid-column: 1; grid-row: 3; padding-right: 52px; gap: 10px; }
  .footer__brand { font-size: 16px; }
  .footer__up { position: absolute; right: 24px; bottom: 0; grid-row: auto; border-width: 1px; }
  .footer__link br { display: none; }
  button:focus-visible, a:focus-visible, select:focus-visible { outline: 2px solid #a77de5; outline-offset: 3px; }
}

/* Light mobile hero keeps the network map visible. */
.header__partner { display: none; }
@media (max-width: 700px) {
  .header__inner:has(.header__partner) { gap: 6px; padding: 12px; }
  .header__inner:has(.header__partner) .header__logo-img { width: 32px; height: 32px; }
  .header__inner:has(.header__partner) .header__logo-text { font-size: 15px; }
  .header__partner { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; min-height: 44px; padding: 10px; border-radius: 12px; background: #7135d8; color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; }
  .header__inner:has(.header__partner) .header__burger { margin-left: 0; flex: 0 0 44px; width: 44px; }
  .hero--home .hero__container { background: #fff; }
  .hero--home .hero__offer { background: #fff; padding: 28px 24px 12px; color: #302637; }
  .hero--home .hero__title { color: #6032ab; }
  .hero--home .hero__mobile-text { color: #665a70; }
  .hero--home .hero__right { background: #fff; aspect-ratio: 1.4; }
  .hero--home .hero__right-photo { opacity: 1; object-fit: cover; object-position: center; }
  .hero--home .hero__right-overlay { background: linear-gradient(180deg, #fff 0%, rgba(255,255,255,.5) 12%, transparent 26%, transparent 78%, #f2edf9 100%); }
  .hero--home .hero__map-caption { padding-inline: 24px; }
}

/* Guest commission access, shared across all property views. */
.commission-lock { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 6px 10px; border: 1px solid #e3d7f3; border-radius: 10px; background: #f5effd; color: #7541bb; vertical-align: middle; }
.commission-lock__blur { filter: blur(3px); user-select: none; font-size: 15px; font-weight: 600; }
.commission-lock svg { flex: none; }
.commission-lock:focus-visible { outline: 2px solid #7541bb; outline-offset: 3px; }
.commission-lock:hover { background: #eae0f9; }
.commission-dialog { width: min(440px, calc(100% - 32px)); margin: auto; border: 0; padding: 40px 28px 28px; border-radius: 24px; color: #302637; background: #fff; box-shadow: 0 20px 70px #29103a33; }
.commission-dialog::backdrop { background: #21102d88; }
.commission-dialog h2 { font-size: 24px; line-height: 1.25; margin-bottom: 14px; }
.commission-dialog p { font-size: 16px; line-height: 1.5; color: #74677e; margin-bottom: 24px; }
.commission-dialog .btn { width: 100%; font-size: 16px; white-space: normal; }
.commission-dialog__close { position: absolute; top: 4px; right: 6px; width: 44px; height: 44px; font-size: 28px; }
.commission-dialog__login { display: block; text-align: center; padding: 16px 0 0; font-size: 14px; color: #7135d8; }
.partners__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.partners__area-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #7135d8; font-size: 14px; font-weight: 600; white-space: nowrap; }
.partners__area-link span { font-size: 20px; }
.mp-real-page--team { z-index: 3; }
.mp-real-page--cover { z-index: 2; transform: translate(-30px, 26px); }
.mp-real-page--team { transform: translate(110px, 5px) rotate(9deg); }
@media (max-width: 700px) {
 .hero--home .hero__title { font-size: clamp(23px, 6.4vw, 29px); letter-spacing: -.03em; }
 .partners__heading { gap: 12px; }
 .partners__area-link { font-size: 12px; gap: 6px; }
 .mp-real-page--team { transform: translate(50px, 5px) rotate(9deg); }
 .mp-real-page--cover { transform: translate(-18px, 26px); }
 .commission-dialog { padding: 40px 22px 22px; }
 .commission-dialog h2 { font-size: 22px; }
}

/* The cover sits above the budget sheets; charts peek out on the left. */
.mp-real-page--cover { z-index: 3; transform: translateY(26px); }
.mp-real-page--team { z-index: 1; transform: translate(-110px, 5px) rotate(-10deg); }
.mp-real-page--budget { z-index: 2; transform: translate(90px, 5px) rotate(9deg); }
@media (max-width: 700px) {
 .mp-real-page--cover { transform: translate(12px, 26px); }
 .mp-real-page--team { transform: translate(-58px, 5px) rotate(-10deg); }
 .mp-real-page--budget { transform: translate(54px, 5px) rotate(9deg); }
 .commission-lock { gap: 6px; padding-inline: 8px; }
}

/* The video library uses editorial covers and an on-site player. */
.video-card__media { aspect-ratio: 16 / 9; }
.video-card__media::after { background: rgba(0,0,0,.08); }
.video-card__media > img { width: 100%; height: 100%; object-fit: cover; }
.video-card__author { font-size: 12px; line-height: 1.4; color: #85748e; }
.video-card__duration { position: absolute; bottom: 10px; right: 10px; background: #211529bd; color: white; border-radius: 6px; padding: 4px 7px; font-size: 12px; }
.video__slider .video-card { flex-basis: calc((100% - 32px) / 3); }
.site-video-player { margin: auto; width: min(1100px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; border: 0; border-radius: 20px; background: #fff; color: #302637; overflow-y: auto; }
.site-video-player::backdrop { background: #1c0d2ec7; }
.site-video-player__close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; font-size: 32px; }
.site-video-player__title { font-size: 20px; line-height: 1.3; margin: 0 44px 20px 0; }
.site-video-player .pv-player__frame video { display: block; width: 100%; height: 100%; }
.site-video-player__source { display: inline-flex; align-items: center; min-height: 44px; color: #7135d8; font-size: 14px; margin-top: 8px; }
.site-video-player__error { font-size: 14px; color: #a53636; margin-top: 12px; }
@media (max-width: 700px) {
 .video__slider .video-card { flex-basis: 92%; }
 .site-video-player { padding: 18px 14px 10px; }
 .site-video-player__title { font-size: 17px; }
}

/* Property review heading and categories occupy separate rows. */
#partner-video .pv-heading {display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
#partner-video .pv-heading .section-title {margin:0;line-height:1.25;color:#302637;}
#partner-video .pv-heading .tabs {width:100%;max-width:100%;gap:24px;overflow-x:auto;padding-bottom:8px;}
#partner-video .pv-heading .tabs__btn {flex:none;min-height:44px;}
@media(max-width:700px){#partner-video .pv-heading {gap:14px;}#partner-video .pv-heading .tabs {gap:20px;}#partner-video .pv-heading .tabs__btn {font-size:14px;}}

/* October 4: mobile catalogue, navigation and video rhythm. */
.catalog-phone-selects {display:none;}
@media(max-width:700px){
 .header {border-radius:0 0 24px 24px;}
 .header__inner {padding:12px 16px;gap:12px;min-height:68px;}
 .header__logo-img {width:36px;height:36px;}
 .header__logo-text {font-size:20px;}
 .mobile-menu__panel {width:100%;height:100dvh;padding:12px 20px max(24px,env(safe-area-inset-bottom));box-shadow:none;gap:4px;}
 .mobile-menu__nav {margin:0;}
 .mobile-menu__nav a {padding:12px 4px;min-height:44px;font-size:16px;}
 .mobile-menu__auth {margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
 .mobile-menu__auth .btn {padding:12px 8px;min-height:48px;font-size:14px;}
 .page-catalog .catalog-page-head {padding:24px 0 12px;}
 .page-catalog .container,.page-catalog .searchbar-section__container {padding-inline:16px;}
 .page-catalog .cat-crumbs {font-size:12px;margin-bottom:14px;}
 .page-catalog .catalog-page-head__title {font-size:28px;margin-bottom:12px;}
 .page-catalog .catalog-page-head__sub {font-size:14px;line-height:1.5;}
 .catalog-phone-selects {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
 .catalog-phone-selects label {display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;color:#736e7b;}
 .catalog-phone-selects select {width:100%;min-height:48px;padding:10px 8px;background:#fff;border:1px solid #e6dfee;border-radius:12px;font-size:14px;}
 .page-catalog .reg-tabs-bar,.page-catalog .view-toggle {display:none;}
 .page-catalog .searchbar-wrap {padding:0;background:none;box-shadow:none;}
 .page-catalog .searchbar {display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;margin-bottom:18px;}
 .page-catalog .searchbar__input {grid-column:1/-1;grid-row:1;order:initial;width:100%;}
 .page-catalog .searchbar__input input {background:#fff;min-height:48px;}
 .page-catalog .searchbar__filters,.page-catalog .searchbar__map {width:100%;min-width:0;justify-content:center;height:46px;padding:8px 10px;font-size:13px;}
 .page-catalog .searchbar__filters {grid-column:1;grid-row:2;}
 .page-catalog .searchbar__map {grid-column:2;grid-row:2;background-image:none;background:#fff;}
 .page-catalog .searchbar__map img {width:18px;height:18px;}
 .page-catalog .city-select,.page-catalog .searchbar__sort-wrap {width:100%;min-width:0;grid-row:3;}
 .page-catalog .city-select {grid-column:1;}
 .page-catalog .searchbar__sort-wrap {grid-column:2;}
 .page-catalog .city-select__btn,.page-catalog .searchbar__sort {width:100%;min-height:44px;padding:8px;font-size:12px;gap:5px;justify-content:center;}
 .page-catalog #sort-label {white-space:normal;text-align:left;}
 .page-catalog .main-list {margin:0;gap:16px;}
 .page-catalog .cat-row {border-radius:18px;}
 .page-catalog .cat-row__photo {aspect-ratio:16/10;height:auto;}
 .page-catalog .cat-row__main {padding:16px;gap:10px;}
 .page-catalog .cat-row__head {display:block;}
 .page-catalog .cat-row__title {font-size:18px;line-height:1.35;margin-bottom:8px;}
 .page-catalog .cat-row__sep {display:none;}
 .page-catalog .cat-row__area {font-size:14px;color:#736e7b;}
 .page-catalog .cat-row__icon {opacity:.85;}
 .page-catalog .cat-row__loc {align-items:flex-start;line-height:1.5;}
 .page-catalog .cat-row__prices {padding:16px;gap:14px;}
 .page-catalog .cat-row__price-line {display:flex;align-items:center;justify-content:space-between;gap:12px;}
 .page-catalog .cat-row__price-line>span:first-child {max-width:44%;font-size:12px;line-height:1.4;}
 .page-catalog .cat-row__price-dots {display:none;}
 .page-catalog .cat-row__price-line strong {font-size:16px;white-space:nowrap;}
 .page-catalog .commission-lock {padding:9px;gap:6px;min-height:44px;}
 .page-catalog .cat-row__broker {padding:16px;border-top:1px solid #eaeaee;gap:12px;}
 .page-catalog .cat-row__broker-name {font-size:13px;line-height:1.4;}
 .page-catalog .cat-row__broker-phone,.page-catalog .cat-row__broker-agency {font-size:12px;}
 .video {padding:36px 0 16px;}
 .video__head {margin-bottom:24px;}
 .video__slider .video__grid {margin-bottom:0;}
 .video__slider {padding-bottom:58px;}
 .video-card__title {font-size:16px;line-height:1.4;}
 .video__slider .catalog__arrow {width:42px;height:42px;bottom:0;}
 .video + .form-section {padding-top:24px;}
}

/* Polina alone in the application banner, keep her face visible on phones. */
@media (max-width:700px) { .form-banner--photo .form-banner__bg { aspect-ratio: 1.35; object-position: right center; } }

/* Mobile headline follows the supplied reference. */
@media(max-width:700px){
 .hero--home .hero__title {font-size:clamp(26px,7.3vw,32px);line-height:1.17;letter-spacing:-.035em;}
 .hero__mobile-lead {display:block;color:#282828;}
 .hero__mobile-accent {display:block;color:#6032ab;}
}


.contact-cards--people {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.contact-card--person {display:flex;align-items:center;gap:24px;padding:28px;border:1px solid #eae6f0;}
.contact-person-photo {width:120px;height:160px;object-fit:cover;object-position:center top;border-radius:14px;flex:none;}
.contact-person-copy {min-width:0;}
.contact-person-copy h2 {font-family:Inter,sans-serif;font-size:22px;margin:0 0 12px;line-height:1.2;}
.contact-person-copy p {font-size:15px;line-height:1.5;color:#756c7d;margin:0 0 18px;}
.contact-person-phone {color:#7135d8;font-size:19px;font-weight:600;white-space:nowrap;}
@media(max-width:800px){.contact-cards--people {grid-template-columns:1fr;}}
@media(max-width:400px){.contact-card--person {padding:20px;gap:16px;flex-wrap:wrap;}.contact-person-photo {width:88px;height:112px;}.contact-person-copy h2 {font-size:20px;}.contact-person-phone {font-size:18px;}}

.contact-person-photo--mikhail {object-fit:contain;object-position:center bottom;background:#f0eaf8;}
.contact-locations {grid-template-columns:repeat(2,minmax(0,1fr));}
.contact-locations p {font-size:14px;line-height:1.5;margin-top:10px;color:#756c7d;}
.contact-location-email {grid-column:1/-1;}
@media(max-width:700px){.contact-locations {grid-template-columns:1fr;}.contact-location-email {grid-column:auto;}}

/* Larger, readable agent portraits in property cards. */
.obj-card__agent .broker-ava--sm {width:64px;height:64px;}
.obj-card__agent .broker-ava--sm .broker-ava__logo {width:24px;height:24px;right:-2px;bottom:-2px;border-width:2px;}
.obj-card__agent {gap:14px;}
.obj-card__foot {gap:16px;flex-wrap:wrap;}
.obj-card__agent .broker-ava__photo {object-position:center 25%;}
@media(max-width:700px){.obj-card__agent .broker-ava--sm {width:60px;height:60px;}.obj-card__agent {gap:12px;}}

.broker-ava__crop {display:block;width:100%;height:100%;border-radius:50%;overflow:hidden;}
.broker-ava__crop .broker-ava__photo[src*="polina"] {transform:translateY(10px) scale(1.8);transform-origin:center top;border-radius:0;}

.form-banner__contact-name {display:flex;align-items:center;gap:10px;color:#fff;font-family:Inter,sans-serif;font-size:16px;line-height:1.4;}
.form-banner__contact-name small {font-size:12px;opacity:.75;}
@media(max-width:700px){.form-banner__contact-name {font-size:15px;flex-wrap:wrap;gap:4px 10px;}}

/* Consistent card rhythm: title, facts, price, agent, commission. */
.obj-card__title {flex:none;height:48px;min-height:48px;overflow:hidden;line-height:1.3;}
.obj-card__facts {height:116px;min-height:116px;}
.obj-card__rows {min-height:50px;}
.obj-card__foot {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;}
.obj-card__agent {min-height:64px;width:100%;}
.obj-card__comm {justify-self:end;display:flex;align-items:center;justify-content:center;width:136px;min-height:44px;}
.obj-card__comm .commission-lock {width:136px;min-height:44px;}
@media(max-width:700px){.obj-card__title {height:48px;min-height:48px;}.obj-card__agent {min-height:60px;}}

.legal-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;margin:12px 0}.legal-consent input[type=checkbox]{width:18px!important;height:18px!important;flex:none;padding:0!important;margin-top:2px}.legal-consent a{color:inherit;text-decoration:underline}

/* Shared scale for Figma landing pages and public informational pages. */
.agent-page h1{font-size:clamp(28px,2.7vw,40px)}.agent-page h2{font-size:clamp(25px,2.1vw,32px)}.agent-page .btn,.project-page .btn,.static-section .btn{font-size:15px;line-height:20px;min-height:48px;padding:12px 22px}.static-section{padding-block:40px}.static-wrap .static-lead{font-size:16px;line-height:1.6}
@media(max-width:700px){.agent-page h1{font-size:24px;line-height:1.2}.agent-page h2{font-size:23px}.agent-page .btn,.project-page .btn,.static-section .btn{font-size:14px;min-height:44px;padding:10px 18px;white-space:normal}.static-section{padding-block:24px}}

@media(max-width:700px){.obj-deal{grid-template-columns:minmax(0,1fr);gap:16px}.obj-deal__start,.obj-deal__final{font-size:23px;line-height:1.3}.obj-param-label{white-space:normal;max-width:55%}.obj-param-value{max-width:50%;overflow-wrap:anywhere}.pv-heading .section-title{font-size:24px;max-width:15ch;line-height:1.2}}
@media(max-width:400px){.contact-card--person{flex-wrap:nowrap;padding:20px;gap:14px;align-items:flex-start}.contact-person-photo{width:76px;height:104px}.contact-person-copy h2{font-size:18px}.contact-person-copy p{font-size:13px;margin-bottom:12px}.contact-person-phone{font-size:16px}.contact-card--person .contact-card__label{font-size:12px}}
@media(max-width:360px){.contact-card--person{padding:16px;gap:12px}.contact-person-photo{width:64px;height:88px}.contact-person-phone{font-size:14px}}

@media(min-width:701px){.form-banner--photo{height:auto;min-height:520px;display:flex;align-items:center;padding:40px 48px}.form-banner--photo .form-banner__left{position:relative;left:auto;top:auto;transform:none;width:min(440px,44%);gap:18px}.form-banner--photo .form-banner__title{font-size:30px;line-height:1.2}.form-banner__contact-name{flex-wrap:wrap}}

.form-banner [role=status]{color:white;font-size:14px;line-height:1.5;margin:12px 0 0}

.obj-card__visual{position:relative;flex:none;}
.broker-ava__crop{position:relative;}
.broker-ava__crop .broker-ava__photo[src*="polina"]{position:absolute;width:280%;height:280%;max-width:none;left:-81%;top:-10%;transform:none;border-radius:0;object-position:center;}

/* Compact commission beside the agent, with room for wrapped names. */
.obj-card__foot{grid-template-columns:minmax(0,1fr) 82px;gap:12px;align-items:center;}
.obj-card__agent-info{flex:1;min-width:0;}
.obj-card__agent-name,.obj-card__agent-agency{white-space:normal;overflow:visible;overflow-wrap:anywhere;line-height:1.35;}
.obj-card__comm{width:82px;min-height:38px;justify-self:end;font-size:12px;text-align:center;}
.obj-card__comm .commission-lock{width:72px;min-height:38px;padding:8px;gap:7px;}
.obj-card__comm .commission-lock__money{display:block;width:16px;height:14px;flex:none;}
.obj-card__comm .commission-lock__blur{font-size:13px;filter:blur(2px);letter-spacing:1px;}

@media(max-width:360px){.obj-card__foot{grid-template-columns:minmax(0,1fr) 72px;gap:8px;}.obj-card__agent{gap:8px;}.obj-card__agent .broker-ava--sm{width:52px;height:52px;}.obj-card__comm{width:72px;font-size:11px;}.obj-card__agent-name{font-size:12px;}.obj-card__agent-agency{font-size:11px;}}

.obj-card__foot{grid-template-columns:minmax(0,1fr) 100px;}
.obj-card__comm,.obj-card__comm .commission-lock{width:100px;}
.obj-card__comm .commission-lock{gap:5px;padding:7px;justify-content:center;}
.commission-lock__currency{font-size:13px;filter:none;flex:none;}
.obj-card__comm .commission-lock>svg:last-child{width:12px;height:15px;flex:none;}
@media(max-width:360px){.obj-card__foot{grid-template-columns:minmax(0,1fr) 94px;}.obj-card__comm,.obj-card__comm .commission-lock{width:94px;}}
