/* Правки поверх site.css.

   site.css — дословная копия стилей утверждённого макета, его не трогаем,
   чтобы совпадение можно было проверять машинно. Здесь только два рода
   правок: адреса картинок внутри темы и оформление страниц, которых в
   одностраничном лендинге не было — каталог, объект, блог, 404. */

/* --- картинки лежат в теме, а не в корне сайта --------------------------- */
.photo[data-img="business"]{ background-image:url(img/stock/business.webp); }
.photo[data-img="circle"]{ background-image:url(img/stock/circle.webp); }
.photo[data-img="commerce"]{ background-image:url(img/stock/commerce.webp); }
.photo[data-img="estate"]{ background-image:url(img/stock/estate.webp); }
.photo[data-img="hero"]{ background-image:url(img/stock/hero.webp); }
.photo[data-img="interior"]{ background-image:url(img/stock/interior.webp); }
.photo[data-img="mortgage"]{ background-image:url(img/stock/mortgage.webp); }
.photo[data-img="newbuild"]{ background-image:url(img/stock/newbuild.webp); }
.photo[data-img="office"]{ background-image:url(img/stock/office.webp); }
.photo[data-img="penthouse"]{ background-image:url(img/stock/penthouse.webp); }
.photo[data-img="retail"]{ background-image:url(img/stock/retail.webp); }

/* --- в макете это были блоки, на сайте — ссылки --------------------------- */
a.logo,
a.listing,
a.bcard,
.foot-bot a{ text-decoration:none; color:inherit; }
a.bcard{ display:block; }
.foot-bot a:hover{ color:var(--lime); }
.fork-half .link{ text-decoration:none; }

/* Ширину логотипу задаёт высота, а не атрибут.
   В макете у картинки не было размеров, и ширина бралась из пропорции.
   Мы размеры проставили — без этого вёрстка прыгает при загрузке, — и
   тогда атрибут width стал задавать настоящую ширину: логотип раздулся
   до 240 точек и на телефоне выталкивал шапку за экран на 135 точек. */
.logo img, .foot-brand img{ width:auto; }

/* полоса админки не должна наезжать на шапку */
body.admin-bar header{ top:32px; }
@media(max-width:782px){ body.admin-bar header{ top:46px; } }

/* --- цифры: их стало четыре ---------------------------------------------- */
/* В макете было три колонки. Четвёртая цифра в ту же сетку не встаёт, а
   «25 млн» при размере 88px не помещается по ширине. */
.stats-in{ grid-template-columns:repeat(4,1fr); max-width:1240px; gap:30px; }
.stat .n{ font-size:70px; letter-spacing:-2px; }
@media(max-width:1100px) and (min-width:901px){
  .stats-in{ grid-template-columns:repeat(2,1fr); gap:46px 30px; }
}
@media(max-width:900px){
  /* Правило на одну колонку есть в макете, но наши четыре колонки написаны
     позже и той же силы — без повтора они перебивали мобильную раскладку,
     и четвёртая цифра уезжала за экран на 135 точек. */
  .stats-in{ grid-template-columns:1fr; gap:40px; }
  .stat .n{ font-size:56px; }
}

/* --- как мы работаем ------------------------------------------------------ */
.steps{ background:var(--bg); padding:110px 52px; }
.steps-in{ max-width:1240px; margin:0 auto; }
.steps-lead{ max-width:640px; margin:0 auto 62px; text-align:center; font-size:20px;
  line-height:1.6; color:var(--grey); }
/* Этапы идут сверху вниз, один за другим: так читается порядок работы, а
   не набор плиток. В две колонки взгляд прыгал зигзагом и терял счёт. */
.sgrid{ display:grid; grid-template-columns:1fr; gap:0; max-width:820px; margin:0 auto; }
.step{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:0 28px;
  align-items:start; padding:0 0 34px 0; }
/* Ниточка от номера к номеру — показывает, что это последовательность. */
.step::before{ content:''; position:absolute; left:26px; top:52px; bottom:0; width:1px;
  background:linear-gradient(#d9d3c3, rgba(217,211,195,0)); }
.step:last-child{ padding-bottom:0; }
.step:last-child::before{ display:none; }
.step .sn{ position:relative; z-index:2; min-width:54px; font-size:44px; line-height:1;
  color:var(--green2); letter-spacing:-2px; }
.step h3{ font-size:26px; font-weight:normal; color:var(--green); margin-bottom:10px; }
.step p{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:16px; line-height:1.6;
  color:var(--grey); }
/* У этапов «Сделка» и «Закрытие» описания пока нет — заголовок должен
   стоять ровно и без пустого места под ним. */
.step .st{ grid-column:2; }
@media(max-width:900px){
  .steps{ padding:80px 22px; }
  .step{ gap:0 18px; padding-bottom:28px; }
  .step::before{ left:19px; top:42px; }
  .step .sn{ min-width:40px; font-size:34px; }
  .step h3{ font-size:22px; }
}

/* блок «Мы рассчитываем на вторую встречу»: у него теперь два абзаца
   и ссылка на страницу о компании */
.circle-text p + p{ margin-top:18px; }
.circle-more{ display:inline-flex; align-items:center; gap:12px; margin-top:26px;
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:14px; letter-spacing:1px;
  color:#fff; text-decoration:none; transition:gap .4s; }
.circle-more:hover{ gap:18px; }
.circle-more .a{ display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border:1px solid var(--sand); border-radius:50%; color:var(--sand); }

/* --- шапка внутренних страниц -------------------------------------------- */
/* На главной под шапкой первый экран, на остальных страницах его нет:
   без тёмной полосы белые ссылки шапки оказались бы на белом фоне. */
.pagehead{ position:relative; background:var(--deep); padding:172px 52px 68px; overflow:hidden; }
.pagehead-in{ position:relative; z-index:3; max-width:1340px; margin:0 auto; }
.pagehead .eb{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:13px; letter-spacing:4px;
  color:var(--sand); text-transform:uppercase; margin-bottom:16px; }
.pagehead h1{ font-size:56px; line-height:1.02; color:#fff; font-weight:normal;
  letter-spacing:-1px; text-transform:uppercase; }
.pagelead{ margin-top:20px; max-width:660px; font-size:19px; line-height:1.6; color:rgba(255,255,255,.78); }
.pagemeta{ margin-top:16px; font-family:'Helvetica Neue',Arial,sans-serif; font-size:14px; color:rgba(255,255,255,.6); }

/* --- переключение разделов ----------------------------------------------- */
.secnav{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:13px; letter-spacing:1px; }
.secnav a{ padding:10px 22px; border:1px solid rgba(255,255,255,.3); border-radius:40px;
  color:rgba(255,255,255,.82); text-decoration:none; transition:all .3s; }
.secnav a:hover, .secnav a.on{ background:var(--sand); border-color:var(--sand); color:var(--deep); }

/* --- каталог объектов ----------------------------------------------------- */
.objects-page{ padding:80px 52px 110px; }
.ogrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.ogrid .listing{ min-height:420px; }
.listings-more{ margin-top:46px; text-align:center; }
.btn-outline.dark{ color:var(--green); border-color:rgba(47,107,37,.45); }
.btn-outline.dark:hover{ background:var(--green); border-color:var(--green); color:#fff; }
.emptynote{ padding:30px 0 10px; font-size:20px; line-height:1.6; color:var(--grey); text-align:center; }
.emptynote a{ color:var(--green); }

/* постраничная навигация */
.pagination{ margin-top:54px; }
.pagination .nav-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:14px; }
.pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center;
  min-width:46px; height:46px; padding:0 15px; border:1px solid rgba(13,40,23,.18);
  border-radius:40px; color:var(--green); text-decoration:none; transition:all .3s; }
.pagination a.page-numbers:hover, .pagination .page-numbers.current{
  background:var(--green); border-color:var(--green); color:#fff; }
.pagination .screen-reader-text{ position:absolute; left:-9999px; }

/* --- страница объекта ----------------------------------------------------- */
.objhead{ padding:230px 52px 62px; }
.objhead .photo::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(var(--deep-rgb),.5) 0%, rgba(var(--deep-rgb),.35) 38%, rgba(var(--deep-rgb),.94) 100%); }
.objhead .tag{ display:inline-block; margin-bottom:16px; padding:5px 13px; border-radius:20px;
  background:var(--sand); color:var(--deep); font-family:Arial,sans-serif; font-size:11px;
  letter-spacing:1px; text-transform:uppercase; }
.objhead h1, .objhead .objaddr, .objhead .objprice{
  text-shadow:0 1px 2px rgba(0,0,0,.7), 0 2px 12px rgba(0,0,0,.6); }
.objaddr{ margin-top:14px; font-family:'Helvetica Neue',Arial,sans-serif; font-size:16px;
  color:rgba(255,255,255,.82); }
.objprice{ margin-top:10px; font-size:32px; color:var(--sand); }

.objbody{ background:var(--bg); padding:78px 52px; }
.objbody-in{ display:grid; grid-template-columns:1fr 370px; gap:56px; align-items:start;
  max-width:1240px; margin:0 auto; }
.objtext{ font-size:19px; line-height:1.75; }
.objtext p{ margin-bottom:18px; }
.objtext h2, .objtext h3{ margin:34px 0 14px; color:var(--green); font-weight:normal;
  text-transform:uppercase; letter-spacing:-.5px; }
.objtext h2{ font-size:32px; }
.objtext h3{ font-size:24px; }
.objtext ul, .objtext ol{ margin:0 0 18px 22px; }
.objtext li{ margin-bottom:8px; }
.objtext img{ max-width:100%; height:auto; border-radius:8px; }
.objtext a{ color:var(--green); }

/* Таблица параметров в тексте объекта.
   Оформлена как список «Характеристики» в боковой колонке — там ровно те
   же данные, и две разные подачи одного и того же на одной странице
   выглядят как недоделка. Рамок нет: строки разделяет тонкая линия,
   иначе таблица спорит по весу с фотографиями. */
.objtext .objtable{ width:100%; margin:0 0 26px; border-collapse:collapse;
  font-family:'Helvetica Neue',Arial,sans-serif; }
.objtext .objtable th, .objtext .objtable td{ padding:13px 0; text-align:left;
  vertical-align:top; border-bottom:1px solid rgba(var(--deep-rgb),.10); }
.objtext .objtable th{ width:36%; padding-right:26px; font-weight:normal;
  font-size:13px; line-height:1.5; letter-spacing:.6px; text-transform:uppercase;
  color:var(--grey); }
.objtext .objtable td{ font-size:17px; line-height:1.55; color:var(--body-ink); }
.objtext .objtable tr:last-child th, .objtext .objtable tr:last-child td{ border-bottom:0; }

.objside{ position:sticky; top:112px; padding:34px; background:#fff; border-radius:10px;
  box-shadow:0 22px 55px rgba(var(--deep-rgb),.09); }
.objside h2{ margin-bottom:20px; font-size:22px; color:var(--green); font-weight:normal;
  text-transform:uppercase; letter-spacing:.5px; }
.objprops{ margin-bottom:28px; font-family:'Helvetica Neue',Arial,sans-serif; }
.objprops dt{ margin-top:15px; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--grey); }
.objprops dd{ margin:3px 0 0; font-size:17px; color:var(--body-ink); }
.objside .btn-sand{ display:block; text-align:center; background:var(--green); color:#fff; }
.objside .btn-sand:hover{ background:var(--green2); color:#fff; }
.objphone{ display:block; margin-top:16px; text-align:center; font-size:21px;
  color:var(--green); text-decoration:none; }

.objgal{ background:var(--bg); padding:0 52px 90px; }
.objgal-in{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1240px; margin:0 auto; }
.objshot{ display:block; overflow:hidden; border-radius:8px; aspect-ratio:3/2; }
.objshot img{ width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.objshot:hover img{ transform:scale(1.06); }

.vidgrid.one{ grid-template-columns:minmax(0,820px); justify-content:center; }
.vidgrid.one .videocard{ aspect-ratio:16/9; }
.vidgrid.n1{ grid-template-columns:minmax(0,420px); justify-content:center; }
.vidgrid.n2{ grid-template-columns:repeat(2,minmax(0,420px)); justify-content:center; }

/* Запущенная карточка разворачивается на всю ширину и в пропорции видео.
   Карточки высокие, под вертикальную обложку, а ролики из группы —
   горизонтальные: в узкой карточке от них оставались чёрные поля сверху
   и снизу, а управление плеером сжималось в полоску. */
.videocard.playing{ grid-column:1 / -1; aspect-ratio:16/9; }
@media(max-width:900px){ .videocard.playing{ aspect-ratio:4/3; } }

/* ролик из медиатеки внутри карточки: до нажатия виден постер, после —
   играет сам файл на месте карточки */
.videocard .vfile{ display:none; position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; background:var(--deep); z-index:4; }
.videocard.playing .vfile{ display:block; }

/* значки соцсетей в подвале стали ссылками */
.foot-col .socs a{ display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; margin:0; border:1px solid rgba(255,255,255,.2);
  border-radius:50%; font-size:13px; color:rgba(255,255,255,.75); text-decoration:none;
  transition:all .3s; }
.foot-col .socs a:hover{ border-color:var(--sand); color:var(--sand); }

/* --- блог и обычные страницы --------------------------------------------- */
.blogpage{ padding-top:80px; }
.pagebody{ background:var(--bg); padding:78px 52px 110px; }
/* Ширина колонки текста. 960 точек — примерно сто знаков в строке: шире
   уже неудобно, глаз теряет начало следующей строки. На всю ширину экрана
   текст не растягиваем сознательно, это правило набора, а не экономия. */
.pagebody-in{ max-width:960px; margin:0 auto; font-size:19px; line-height:1.75; }
.pagebody-in p{ margin-bottom:18px; }
.pagebody-in h2, .pagebody-in h3{ margin:34px 0 14px; color:var(--green); font-weight:normal;
  text-transform:uppercase; letter-spacing:-.5px; }
.pagebody-in h2{ font-size:32px; }
.pagebody-in h3{ font-size:24px; }
.pagebody-in ul, .pagebody-in ol{ margin:0 0 18px 22px; }
.pagebody-in li{ margin-bottom:8px; }
.pagebody-in a{ color:var(--green); }
.pagebody-in img{ max-width:100%; height:auto; border-radius:8px; }
/* выноска в тексте страницы — крупная цитата отдельно от абзацев */
.pagebody-in blockquote.pullquote{ margin:40px 0; padding:0 0 0 28px;
  border-left:3px solid var(--sand2); font-family:'Times New Roman',Georgia,serif;
  font-size:27px; line-height:1.4; color:var(--green); }
/* Кавычки не через ::before/::after: редактор оборачивает текст выноски в
   абзац, и они вставали отдельными строками сверху и снизу. Кавычки
   поставлены прямо в тексте. */
.pagebody-in blockquote.pullquote p{ margin:0; }
@media(max-width:760px){ .pagebody-in blockquote.pullquote{ font-size:22px; padding-left:18px; } }

/* Таблицы в тексте страниц. В политике данных реквизиты оператора свёрстаны
   таблицей, и без стилей подписи прижимались к правому краю, а колонки
   разъезжались — читалось как сломанное. */
.pagebody-in table{ width:100%; border-collapse:collapse; margin:20px 0 26px;
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:16px; }
.pagebody-in th, .pagebody-in td{ padding:11px 14px; border:1px solid #e2dccc;
  text-align:left; vertical-align:top; }
.pagebody-in th{ width:38%; background:var(--cream); color:var(--ink); font-weight:600; }
.pagebody-in td{ color:var(--grey); }
@media(max-width:760px){
  .pagebody-in table, .pagebody-in tbody, .pagebody-in tr, .pagebody-in th, .pagebody-in td{
    display:block; width:auto; }
  .pagebody-in tr{ margin-bottom:14px; border:1px solid #e2dccc; }
  .pagebody-in th, .pagebody-in td{ border:0; padding:10px 14px; }
  .pagebody-in th{ padding-bottom:0; background:none; }
}

.postshot{ margin-bottom:34px; border-radius:10px; overflow:hidden; }
.postshot img{ display:block; width:100%; height:auto; }
.notfound-links{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* оговорка под статьёй: заметна, но не спорит с текстом */
.pagebody-in .post-note{ margin-top:44px; padding:18px 22px; border-left:3px solid var(--sand2);
  background:#fff; border-radius:6px; font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:15px; line-height:1.6; color:var(--grey); }
.pagebody-in .to-catalog{ margin-top:34px; font-size:20px; }

/* --- узкие экраны --------------------------------------------------------- */
@media(max-width:1000px){
  .objbody-in{ grid-template-columns:1fr; gap:38px; }
  .objside{ position:static; }
  .ogrid, .objgal-in{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:760px){
  .pagehead{ padding:132px 22px 48px; }
  .objhead{ padding:172px 22px 44px; }
  .pagehead h1{ font-size:clamp(28px,8vw,56px); }
  .objprice{ font-size:26px; }
  .objects-page{ padding:60px 22px 80px; }
  .objbody, .objgal, .pagebody{ padding-left:22px; padding-right:22px; }
  .ogrid, .objgal-in{ grid-template-columns:1fr; }
  .ogrid .listing{ min-height:360px; }

  /* На телефоне два столбца не помещаются: подпись «Стоимость выкупа
     участка» ломается на три строки, а значение висит рядом в пустоте.
     Поэтому строка таблицы разворачивается в подпись над значением. */
  .objtext .objtable, .objtext .objtable tbody, .objtext .objtable tr,
  .objtext .objtable th, .objtext .objtable td{ display:block; width:auto; }
  .objtext .objtable tr{ padding:12px 0;
    border-bottom:1px solid rgba(var(--deep-rgb),.10); }
  .objtext .objtable th{ padding:0 0 3px; border-bottom:0; }
  .objtext .objtable td{ padding:0; border-bottom:0; }
  .objtext .objtable tr:last-child{ border-bottom:0; }

  /* Заголовки внутри текста объекта: 32px прописными на узком экране
     разваливаются на три строки («ЧТО ВХОДИТ В КОМПЛЕКС»). */
  .objtext h2{ font-size:24px; }
  .objtext h3{ font-size:20px; }
  .objtext{ font-size:18px; }
}

/* --- ипотечный калькулятор ------------------------------------------------ */
.calc{ background:var(--cream); padding:110px 52px; }
.calc-in{ max-width:1100px; margin:0 auto; }
.calc-form{ display:grid; gap:34px; }
.calc-fields{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.calc-field{ display:flex; flex-direction:column; gap:8px;
  font-family:'Helvetica Neue',Arial,sans-serif; }
.calc-field > span{ font-size:13px; letter-spacing:.5px; color:var(--grey); }
.calc-field input, .calc-field select{ padding:14px 16px; border:1px solid #ddd6c4;
  border-radius:8px; background:#fff; font-size:18px; color:var(--ink);
  font-family:'Times New Roman',Georgia,serif; }
.calc-field input:focus, .calc-field select:focus{ outline:none; border-color:var(--green2); }
.calc-hint{ font-size:12px; color:var(--warm-text); font-style:normal; }

.calc-result{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:30px; align-items:center; padding:34px 40px; background:var(--deep);
  border-radius:10px; color:#fff; }
.calc-num{ font-size:54px; line-height:1; color:var(--sand); letter-spacing:-1px; }
.calc-lbl{ margin-top:8px; font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:13px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.6); }
.calc-side{ display:grid; gap:14px; font-family:'Helvetica Neue',Arial,sans-serif; }
.calc-side span{ font-size:22px; color:#fff; }
.calc-side em{ display:block; font-style:normal; font-size:13px; color:rgba(255,255,255,.6); }

.calc-foot{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.calc-note{ flex:1 1 320px; font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:14px; line-height:1.6; color:var(--grey); }

@media(max-width:900px){
  .calc{ padding:80px 22px; }
  .calc-fields{ grid-template-columns:1fr 1fr; }
  .calc-result{ grid-template-columns:1fr; text-align:center; padding:28px 24px; }
  .calc-num{ font-size:42px; }
  .calc-foot{ justify-content:center; text-align:center; }
}
@media(max-width:560px){ .calc-fields{ grid-template-columns:1fr; } }

/* --- «Адрес скопирован» у почтовой ссылки -------------------------------
   Появляется рядом со ссылкой mailto: после нажатия и сама уезжает через
   пару секунд. Нужна потому, что без назначенной почтовой программы
   нажатие внешне не делает ничего: подсказка — единственный признак,
   что что-то произошло. Клики не перехватывает. */
.vp-copied{ display:inline-block; margin-left:10px; padding:2px 9px; border-radius:12px;
  background:var(--sand); color:var(--deep); font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:12px; line-height:1.6; white-space:nowrap; vertical-align:middle;
  opacity:0; transform:translateY(-2px); transition:opacity .25s, transform .25s;
  pointer-events:none; }
.vp-copied.on{ opacity:1; transform:none; }

/* --- Просмотр фотографий объекта ----------------------------------------
   Тёмная подложка во весь экран, снимок по центру, крестик и стрелки.
   Стрелки и крестик нарисованы оформлением, а не текстом в кнопке: буква
   «×» в разных шрифтах сидит по-разному и на узких экранах съезжает. */
html.vp-lb-open{ overflow:hidden; }          /* страница под окном не ездит */

.vp-lb{ position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center; gap:12px;
  padding:64px 76px; background:rgba(8,16,11,.94); }
.vp-lb.on{ display:flex; }

.vp-lb-fig{ margin:0; display:flex; flex-direction:column; align-items:center; gap:14px;
  max-width:100%; max-height:100%; }
.vp-lb-fig img{ max-width:100%; max-height:calc(100vh - 150px);
  object-fit:contain; border-radius:4px; }
.vp-lb-num{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:13px;
  letter-spacing:2px; color:rgba(255,255,255,.72); }

.vp-lb button{ flex:0 0 auto; width:52px; height:52px; padding:0; cursor:pointer;
  border:1px solid rgba(255,255,255,.28); border-radius:50%; background:rgba(255,255,255,.08);
  transition:background .25s, border-color .25s; }
.vp-lb button:hover{ background:rgba(255,255,255,.18); border-color:var(--sand); }
.vp-lb button:focus-visible{ outline:2px solid var(--sand); outline-offset:3px; }
.vp-lb button[hidden]{ display:none; }

.vp-lb button::before{ content:''; display:block; width:14px; height:14px; margin:auto;
  border-top:2px solid #fff; border-right:2px solid #fff; }
.vp-lb-prev::before{ transform:rotate(-135deg); margin-left:20px; }
.vp-lb-next::before{ transform:rotate(45deg); margin-right:20px; }

.vp-lb-close{ position:absolute; top:22px; right:26px; }
/* Вес селектора здесь не украшение: у общего правила `.vp-lb button::before`
   он выше, чем у `.vp-lb-close::before`, и обнуление рамки не срабатывало —
   поверх крестика оставалась стрелка. Добавленный `.vp-lb` уравнивает вес. */
.vp-lb .vp-lb-close::before{ width:18px; height:18px; border:0; position:relative;
  background:
    linear-gradient(#fff,#fff) center/18px 2px no-repeat,
    linear-gradient(#fff,#fff) center/2px 18px no-repeat;
  transform:rotate(45deg); }

@media(max-width:760px){
  .vp-lb{ padding:56px 10px; gap:6px; }
  .vp-lb button{ width:42px; height:42px; }
  .vp-lb-prev::before, .vp-lb-next::before{ margin-left:16px; margin-right:16px; }
  .vp-lb-fig img{ max-height:calc(100vh - 130px); }
}

/* Ссылка «Все статьи» под витриной статей на главной. Блок-ссылка в конце
   сетки, а не сбоку: сетка занимает всю ширину, и ссылка под ней читается
   как продолжение, а не как подпись к последней карточке. */
.blog-all{ display:inline-block; margin-top:34px; }

/* --- Блок «Продаёте объект?» на главной ----------------------------------
   Главная ведёт покупателя, поэтому блок для собственников намеренно
   негромкий: узкая колонка, тёмный фон, одна ссылка. Он должен находиться,
   а не перебивать. */
.sellcall{ padding:96px 52px; background:var(--deep); color:#fff; }
.sellcall-in{ max-width:760px; margin:0 auto; text-align:center; }
.sellcall .eb{ color:var(--sand); }
.sellcall h2{ font-size:44px; font-weight:normal; margin:10px 0 18px; text-transform:uppercase;
  letter-spacing:-1px; }
.sellcall p{ font-size:19px; line-height:1.6; color:rgba(255,255,255,.82); margin-bottom:30px; }
@media(max-width:900px){
  .sellcall{ padding:64px 22px; }
  .sellcall h2{ font-size:30px; }
}
