/* ТК «Ланской» — прототип главной. Ч/Б.
   Оттенки серого условно заменяют палитру брендбука:
   --ink   ← тёмно-синий #16263D
   --paper2← кремовый    #F6F2ED
   --accent← медный      #C99A6C  (в Ч/Б — тёмный контур/подчёркивание)
   Шрифты — временные системные: антиква для заголовков, гротеск для текста. */

:root{
  --ink:#161616;
  --ink-2:#2c2c2c;
  --paper:#ffffff;
  --paper-2:#f4f2ef;
  --line:#dcd8d3;
  --line-2:#c4bfb9;
  --mute:#77716b;
  --ph:#e8e5e1;
  --ph-2:#d9d5d0;

  /* фирменные шрифты из брендбука (полоса «Типографика», версия 1.0/2026) */
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Montserrat","Segoe UI",system-ui,-apple-system,Arial,sans-serif;

  /* трекинг из таблицы иерархии: значения в брендбуке даны в 1/1000 em */
  --tr-h2:.01em;   /* +10  заголовок раздела */
  --tr-h3:.02em;   /* +20  подзаголовок */
  --tr-cap:.01em;  /* +10  подписи */
  --tr-nav:.03em;  /* +30  навигационные надписи */
  --tr-num:.02em;  /* +20  цифры этажей и секций */
  --tr-big:-.01em; /* −10  крупные акцентные цифры */

  --wrap:1360px;
  --pad:40px;
  --top:0px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.5;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3{margin:0}
/* H1 — Cormorant Garamond SemiBold, 110% интерлиньяж, трекинг 0 */
h1,.hero__h1,.renthero__h1,.pagehead__h1,.arthead__h1,.evhead__h1,.shophead__h1{
  font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:0;
}
/* H2 — Cormorant Garamond Medium, 115%, трекинг +10 */
h2,.sect__h2,.block__h2,.brandgroup__letter,.empty__title,.subs__h2{
  font-family:var(--serif);font-weight:500;line-height:1.15;letter-spacing:var(--tr-h2);
}
/* H3 и все карточные заголовки — Montserrat SemiBold, 133%, трекинг +20 */
h3,.card__title,.post__title,.shopcard__name,.cat__name,.evrow__name,
.adv__h3,.catnav__name,.room__name,.panel__shop,.speaker__name,.cat__name{
  font-family:var(--sans);font-weight:600;line-height:1.33;letter-spacing:var(--tr-h3);
}
p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
/* textarea без этого приходит моноширинным шрифтом браузера */
input,textarea,select{font:inherit;color:inherit}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* ---------- фокус с клавиатуры (п. 9.6) ----------
   :focus-visible, а не :focus — мышь не должна рисовать рамку */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;
}
/* ссылка «сразу к содержимому» — первое, что получает фокус на странице */
.skip{
  position:fixed;left:var(--pad);top:-100px;z-index:300;
  padding:12px 20px;background:var(--ink);color:#fff;
  font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;
}
.skip:focus{top:48px}

/* длинные составные слова вроде «Декоративно-отделочные» иначе
   распирают колонки сетки шире экрана */
.cat__name,.catnav__name,.shopcard__name,.descard__n,.evrow__name,
.card__title,.post__title,.srch__h,.album__h,.vid__h{overflow-wrap:anywhere}

/* ---------- плейсхолдеры ---------- */
.ph{
  position:relative;background:var(--ph);
  background-image:linear-gradient(135deg,rgba(0,0,0,.045) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.045) 50%,rgba(0,0,0,.045) 75%,transparent 75%);
  background-size:14px 14px;
}
.ph__label{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
  background:var(--paper);padding:4px 10px;white-space:nowrap;
}
.ph-mark{
  font-style:normal;color:var(--mute);
  border-bottom:1px dashed var(--line-2);
}
/* числовые плейсхолдеры не должны растягивать пунктир на всю колонку */
.fact__num.ph-mark,.rent__num.ph-mark{display:inline-block;align-self:flex-start}

/* ---------- комментарии ---------- */
.note{display:none}
body.notes-on .note{
  display:block;max-width:var(--wrap);margin:0 auto;
  padding:14px 18px;margin-top:-8px;
  border-left:3px solid var(--ink);background:#f0eeec;
  font-size:13px;line-height:1.6;color:var(--ink-2);
}
body.notes-on .note{margin-left:var(--pad);margin-right:var(--pad);margin-bottom:24px}
@media(min-width:1441px){body.notes-on .note{margin-left:auto;margin-right:auto;max-width:calc(var(--wrap) - var(--pad)*2)}}

/* ---------- кнопки ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:52px;padding:0 30px;border:1px solid var(--ink);
  font-family:var(--sans);font-weight:500;
  font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;
  transition:background .15s,color .15s;
}
.btn--primary{background:var(--ink);color:#fff}
.btn--primary:hover{background:var(--ink-2)}
.btn--ghost{background:transparent}
.btn--ghost:hover{background:var(--ink);color:#fff}
.btn--sm{height:38px;padding:0 18px;font-size:11px}
.btn--full{width:100%}
.btn--invert{border-color:#fff}
.btn--primary.btn--invert{background:#fff;color:var(--ink)}
.btn--primary.btn--invert:hover{background:#e6e2de}
.btn--ghost.btn--invert{color:#fff}
.btn--ghost.btn--invert:hover{background:#fff;color:var(--ink)}

.link{
  display:inline-block;font-weight:500;font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;
  border-bottom:1px solid var(--line-2);padding-bottom:2px;
}
.link:hover{border-color:var(--ink)}
.link--off{color:var(--mute);border-bottom-style:dashed;cursor:default}
/* .link на <button> — тот же вид, что на <a>, но без рамки/фона кнопки браузера */
button.link--btn{background:none;border:none;border-bottom:1px solid var(--line-2);padding:0 0 2px;font:inherit;color:inherit;cursor:pointer}
button.link--btn:hover{border-color:var(--ink)}
.more{font-weight:500;font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;border-bottom:1px solid var(--line-2);padding-bottom:2px}
.more:hover{border-color:var(--ink)}
.kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}

/* ---------- поля ---------- */
.field{position:relative;display:flex;align-items:center;border:1px solid var(--line-2);background:var(--paper)}
.field input{flex:1;min-width:0;height:56px;padding:0 56px 0 20px;border:0;background:none;outline:none}
.field input::placeholder{color:var(--mute)}
.field:focus-within{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.field--sm input{height:44px;padding-right:48px}
.field--lg input{height:60px}
.field__go{
  position:absolute;right:0;top:0;bottom:0;width:56px;
  border-left:1px solid var(--line);
}
/* иконки — SVG через mask, а не нарисованные псевдоэлементами: так
   цвет остаётся управляемым через --ink, а форма берётся из файла */
.field__go{
  -webkit-mask-image:url('icon-search.svg');mask-image:url('icon-search.svg');
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:18px 18px;mask-size:18px 18px;
  background-color:var(--ink);
}
/* поле подписки — не поиск, значок должен быть «отправить», а не лупа */
.field__go--submit{
  -webkit-mask-image:url('icon-arrow.svg');mask-image:url('icon-arrow.svg');
  -webkit-mask-size:20px 20px;mask-size:20px 20px;
}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:13px;color:var(--mute);cursor:pointer}
/* accent-color — иначе отмеченный чекбокс приходит системным синим
   и выбивается из Ч/Б макета на каждом скриншоте */
.check input,input[type=checkbox],input[type=radio]{accent-color:var(--ink)}
.check input{margin:2px 0 0}
.check a{border-bottom:1px solid var(--line-2)}

/* ================= ШАПКА ================= */
.header{position:relative;z-index:100;background:var(--paper);border-bottom:1px solid var(--line)}
.utility{border-bottom:1px solid var(--line);font-size:13px;color:var(--mute)}
.utility__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:44px}
.utility__info{display:flex;gap:26px}
.utility__info a:hover{color:var(--ink)}
.utility__actions{display:flex;align-items:center;gap:18px}
.ic-btn{font-size:13px;letter-spacing:.02em}
.ic-btn:hover{color:var(--ink)}
.utility__login{border-bottom:1px solid var(--line-2);padding-bottom:1px}
.utility__login:hover{color:var(--ink);border-color:var(--ink)}

.nav__in{display:flex;align-items:center;justify-content:space-between;gap:40px;height:92px}
.logo{display:flex;align-items:center;flex:none}
/* настоящий локап заказчика; viewBox подрезан по артворку, пропорция 3.2:1.
   grayscale — только ради Ч/Б-этапа: убрать строку, и логотип станет фирменным */
.logo__img{display:block;height:60px;width:auto;filter:grayscale(1)}
.logo__img--inv{height:56px;filter:brightness(0) invert(1)}

/* поиск в основной строке навигации */
.hsearch{width:340px;flex:none;display:flex;justify-content:flex-end}
.field--hs{width:240px;transition:width .18s ease}
.field--hs input{height:44px;padding:0 48px 0 16px;font-size:14px}
.field--hs .field__go{width:46px}
.field--hs:focus-within{width:100%}
/* на 1200-1440px поле уже (240px) — в ряд «название + метка» тесно
   переносится в 2-3 строки, складываем их друг под другом */
.field--hs .suggest__item{flex-direction:column;align-items:flex-start;gap:2px}
.field--hs .suggest__meta{font-size:12px}
.ic-search{
  display:none;position:relative;width:44px;height:44px;
  -webkit-mask-image:url('icon-search.svg');mask-image:url('icon-search.svg');
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:20px 20px;mask-size:20px 20px;
  background-color:var(--ink);
}

.menu__list{display:flex;gap:34px}
.menu__link{
  display:flex;align-items:center;gap:7px;height:92px;
  font-weight:500;font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;white-space:nowrap;
  border-bottom:2px solid transparent;
}
.menu__link:hover,.menu__item.is-open .menu__link{border-bottom-color:var(--ink)}
.caret{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.burger{display:none;width:44px;height:44px;position:relative}
.burger span,.burger::before,.burger::after{content:"";position:absolute;left:10px;right:10px;height:1px;background:var(--ink)}
.burger::before{top:15px}.burger span{top:21px}.burger::after{top:27px}

.mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 20px 40px -30px rgba(0,0,0,.4)}
.mega__in{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;padding-top:34px;padding-bottom:38px}
.mega__col--wide{grid-column:span 1}
.mega__title{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:16px}
.mega__cats{columns:2;column-gap:32px}
.mega__cats li{break-inside:avoid;margin-bottom:9px}
.mega__cats a,.mega__links a{font-size:14px;border-bottom:1px solid transparent}
.mega__cats a:hover,.mega__links a:hover{border-color:var(--ink)}
.mega__links li{margin-bottom:11px}
.mega__hint{font-size:12px;color:var(--mute);margin-top:10px}

.searchbar{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0 30px}
.searchbar__hint{font-size:12px;color:var(--mute);margin-top:10px}

/* ================= HERO ================= */
.hero{border-bottom:1px solid var(--line)}
.hero__in{display:grid;grid-template-columns:minmax(340px,44%) 1fr;gap:56px;align-items:center;padding-top:80px;padding-bottom:80px}
.hero__h1{font-size:clamp(40px,5vw,68px);line-height:1.06}   /* 1. главная */
.hero__sub{margin:24px 0 36px;font-size:17px;line-height:1.6;color:var(--ink-2)}
.hero__media{aspect-ratio:4/3}
.ph--hero{min-height:380px}

/* ================= ФАКТЫ ================= */
.facts{background:var(--paper-2);border-bottom:1px solid var(--line)}
.facts__in{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding-top:38px;padding-bottom:38px}
.fact{display:flex;flex-direction:column;gap:8px;padding-left:20px;border-left:1px solid var(--line-2)}
.fact__num{font-family:var(--serif);font-weight:500;font-size:34px;line-height:1;letter-spacing:var(--tr-big)}
.fact__cap{font-size:13px;color:var(--mute);line-height:1.4}

/* ================= СЕКЦИИ ================= */
.sect{padding:88px 0}
.sect--alt{background:var(--paper-2)}
.sect__head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:36px}
.sect__h2{font-size:clamp(28px,3vw,40px);line-height:1.15}

.grid{display:grid;gap:24px}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* «направления» — благородная сетка неравномерных плиток (п. 9.1), а не ровный ряд.
   Две самые крупные по числу магазинов категории выделены размером — так сетка
   читается интереснее и одновременно расставляет приоритет по факту, а не декоративно.
   grid-auto-rows задаёт единицу; порядок карточек в HTML определяет их место —
   ниже 1200px бенто отключается, см. медиазапросы. */
.grid--cats{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:160px}
.cat--big{grid-column:span 2;grid-row:span 2}
.cat--tall{grid-row:span 2}

.cat{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  padding:20px;border:1px solid var(--line);
}
.cat:hover{border-color:var(--ink)}
.cat--big,.cat--tall{border-color:var(--ink-2)}
.cat__name{font-family:var(--serif);font-size:19px;line-height:1.25;background:var(--paper);padding:6px 10px;align-self:flex-start;overflow-wrap:anywhere}
.cat--big .cat__name{font-size:28px}
.cat__count{font-size:12px;color:var(--mute);background:var(--paper);padding:4px 10px;align-self:flex-start;margin-top:6px}

/* ---------- найти магазин ---------- */
/* без align-items:start — колонки растягиваются вровень с более высокой
   (схемой этажей), а не заканчиваются по своему контенту с пустотой снизу */
.find{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.find__left{display:flex;flex-direction:column}
.find__lead{color:var(--mute);margin:12px 0 22px}
.find__quick{display:flex;gap:22px;margin-top:18px;font-size:13px}
.find__quick a{border-bottom:1px solid var(--line-2);padding-bottom:2px}
.find__quick a:hover{border-color:var(--ink)}

.find__popular{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:32px}
.find__popular-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-right:2px}
.chip{display:inline-flex;align-items:center;height:34px;padding:0 15px;border:1px solid var(--line-2);font-size:13px}
.chip:hover{border-color:var(--ink)}

/* добирает высоту левой колонки до уровня правой — не заглушка, а место
   под фотографию интерьеров магазинов, поддерживает акцент на фото из п. 9.1 */
.find__photo{flex:1;min-height:140px;margin-top:28px}
.suggest{
  display:none;position:absolute;left:-1px;right:-1px;top:100%;z-index:20;
  background:var(--paper);border:1px solid var(--ink);border-top:0;padding:10px 0;
}
.field.is-open .suggest{display:block}
.suggest__group{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:10px 20px 6px}
.suggest__item{display:flex;justify-content:space-between;gap:16px;padding:9px 20px;font-size:14px}
.suggest__item:hover{background:var(--paper-2)}
.suggest__meta{color:var(--mute);font-size:13px}

.floors{border:1px solid var(--line);background:var(--paper);padding:20px}
.floors__tabs{display:flex;gap:8px;margin-bottom:18px}
.floors__tab{flex:1;height:42px;border:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.floors__tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
/* подложка-миллиметровка под планом — «чертёжный лист» */
.floors__plan{
  aspect-ratio:16/10;margin-bottom:18px;border:1px solid var(--line);
  background-color:var(--paper-2);
  background-image:
    repeating-linear-gradient(to right,rgba(0,0,0,.05) 0 1px,transparent 1px 14px),
    repeating-linear-gradient(to bottom,rgba(0,0,0,.05) 0 1px,transparent 1px 14px);
}
.floors__plan svg{display:block;width:100%;height:100%}
.pl-room{fill:#e6e3df;stroke:#c4bfb9;stroke-width:1}
.pl-room--busy{fill:#bdb8b2}
.pl-txt{font-family:var(--sans);font-size:9px;fill:#6b6660}
.pl-serv{fill:#d2cec9;stroke:#c4bfb9}

/* ---------- карточки ---------- */
.card{display:flex;flex-direction:column}
/* заголовки разной длины сдвигают ссылку под ними на разную высоту —
   прижимаем её к низу карточки, чтобы «Регистрация»/«Мест нет» была
   на одном уровне в любой строке сетки */
.card > .link{margin-top:auto;padding-top:14px}
/* на карточках акций обложка — <span>, поэтому display задан явно */
.card__media{display:block;position:relative;aspect-ratio:4/3;margin-bottom:16px}
.card--sm .card__media{aspect-ratio:3/2}
.badge{
  position:absolute;left:0;bottom:0;background:var(--ink);color:#fff;
  padding:7px 14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
}
.card__title{font-size:20px;line-height:1.3;margin-bottom:8px}
.card--sm .card__title{font-size:17px}
.card__meta{font-size:13px;letter-spacing:var(--tr-cap);color:var(--mute);margin-bottom:14px}
.card__term{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);border-top:1px solid var(--line);padding-top:10px;margin-top:auto}

/* ---------- аренда ---------- */
/* паттерн «геометрия архитектуры» из брендбука — силуэтом по нижней кромке */
.rent{
  position:relative;background:var(--ink);color:#fff;padding:88px 0;overflow:hidden;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='150' viewBox='0 0 300 150'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.09' stroke-width='1'%3E%3Cpath d='M8 150V72h30v78'/%3E%3Cpath d='M38 150V44h26v106'/%3E%3Cpath d='M64 150V88h38v62'/%3E%3Cpath d='M112 150V58h24v92'/%3E%3Cpath d='M136 150V100h34v50'/%3E%3Cpath d='M182 150V66h28v84'/%3E%3Cpath d='M210 150V36h22v114'/%3E%3Cpath d='M232 150V92h36v58'/%3E%3Cpath d='M268 150V70h26v80'/%3E%3Cpath d='M0 150h300'/%3E%3Cpath d='M0 126c40 16 70-14 108-2s52 12 96-4 62 8 96-2'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat-x;background-position:left bottom;background-size:300px 150px;
}
.rent__in{position:relative}
.rent__in{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}
.rent__kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#a9a49e;margin-bottom:14px}
.rent__h2{font-size:clamp(30px,3.4vw,46px);line-height:1.12}
.rent__lead{margin:20px 0 34px;color:#cfcac4;max-width:44ch;line-height:1.6}
.rent__actions{display:flex;gap:14px;flex-wrap:wrap}
.rent__args{display:flex;flex-direction:column;gap:26px}
.rent__args li{border-left:1px solid #4a4540;padding-left:22px}
.rent__num{display:block;font-family:var(--serif);font-weight:500;font-size:38px;line-height:1;letter-spacing:var(--tr-big)}
.rent__num.ph-mark{color:#cfcac4;border-bottom-color:#6d6862}
.rent__cap{display:block;font-size:13px;color:#a9a49e;margin-top:6px}

/* ---------- дизайнерам ---------- */
.pro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.pro__media{aspect-ratio:4/3}
.pro__list{margin:24px 0 32px}
.pro__list li{position:relative;padding-left:22px;margin-bottom:11px;color:var(--ink-2)}
.pro__list li::before{content:"";position:absolute;left:0;top:11px;width:10px;height:1px;background:var(--ink)}

/* ---------- журнал ---------- */
.journal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
/* display:block обязателен — обложка бывает ссылкой, а к инлайновому <a>
   ни высота, ни aspect-ratio не применяются, и блок схлопывается */
.post__media{display:block;aspect-ratio:16/10;margin-bottom:16px}
.post--lead .post__media{aspect-ratio:4/3}
.post__rubric{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.post__title{font-size:22px;line-height:1.3}
.post--row .post__title{font-size:18px}
.post__meta{font-size:13px;letter-spacing:var(--tr-cap);color:var(--mute);margin-top:8px}
.journal__list{display:flex;flex-direction:column;gap:26px}
.post--row{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:start}
.post--row .post__media{margin-bottom:0;aspect-ratio:4/3}

/* ---------- бренды ---------- */
.brands{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:16px}
.brand{aspect-ratio:3/2;border:1px solid var(--line);display:block}

/* ---------- подписка ---------- */
.subs{background:var(--paper-2);border-top:1px solid var(--line);padding:64px 0}
.subs__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.subs__h2{font-size:clamp(24px,2.4vw,32px);line-height:1.2}
.subs__lead{color:var(--mute);margin-top:12px}

/* ================= ВНУТРЕННИЕ СТРАНИЦЫ ================= */
.sect--tight{padding-top:48px}
/* article.html/cookie.html/privacy.html/terms.html открываются .sect--tight
   вместо .pagehead — крошки в нём получали чужой отступ (48px). Сводим
   к тому же 28px, что у .pagehead, только для этого самого верхнего блока */
main > .sect--tight:first-child{padding-top:28px}

.pagehead{padding:28px 0 0;border-bottom:1px solid var(--line)}
.crumbs{font-size:13px;color:var(--mute);margin-bottom:26px}
.crumbs a{border-bottom:1px solid var(--line-2);padding-bottom:1px}
.crumbs a:hover{color:var(--ink);border-color:var(--ink)}
.crumbs__sep{margin:0 8px;color:var(--line-2)}
.pagehead__in{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-bottom:22px}
.pagehead__h1{font-size:clamp(32px,3.6vw,48px);line-height:1.1} /* 3. страницы разделов */
.pagehead__lead{margin-top:12px;color:var(--mute)}

.viewtabs{display:flex;gap:26px;flex-wrap:wrap}
.viewtabs__item{display:block;padding-bottom:10px;font-weight:500;font-size:13px;letter-spacing:var(--tr-nav);text-transform:uppercase;border-bottom:2px solid transparent;color:var(--mute)}
a.viewtabs__item:hover,button.viewtabs__item:hover{color:var(--ink)}
.viewtabs__item.is-active{color:var(--ink);border-bottom-color:var(--ink)}

/* активный раздел в основном меню */
.menu__item.is-current .menu__link{border-bottom-color:var(--ink)}

/* ---------- каталог: фильтры + результаты ---------- */
.catalog{display:grid;grid-template-columns:264px 1fr;gap:56px;align-items:start}

.filters__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.filters__title{font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.filters__reset{font-size:13px;color:var(--mute);border-bottom:1px solid var(--line-2)}
.filters__reset:hover{color:var(--ink);border-color:var(--ink)}
.filters__group{padding:22px 0;border-bottom:1px solid var(--line)}
.filters__group:last-child{border-bottom:0}
.filters__label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}

.checklist li{margin-bottom:11px}
.checklist li:last-child{margin-bottom:0}
.checklist .check{margin-top:0;font-size:14px;color:var(--ink-2);line-height:1.35}
.checklist__n{font-style:normal;font-size:12px;color:var(--mute);margin-left:4px}

/* этаж — компактные переключатели вместо длинного списка из трёх пунктов */
.segm{display:flex;gap:8px}
.segm__item{position:relative;flex:1}
.segm__item input{position:absolute;opacity:0;width:0;height:0}
.segm__item span{display:flex;align-items:center;justify-content:center;height:42px;border:1px solid var(--line-2);font-size:14px;cursor:pointer}
.segm__item input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.segm__item input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}

.results__bar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:24px}
.results__count{font-size:14px;color:var(--mute)}
.results__count b{color:var(--ink);font-weight:600}
.sortbox{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mute)}
.sortbox select{height:38px;padding:0 10px;border:1px solid var(--line-2);background:var(--paper);font:inherit;font-size:14px;color:var(--ink)}

.chips-active{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.chip--rm{display:inline-flex;align-items:center;gap:9px;height:34px;padding:0 12px;border:1px solid var(--ink);font-size:13px;cursor:pointer;background:none}
.chip--rm::after{content:"✕";font-size:11px;color:var(--mute)}
.chip--rm:hover::after{color:var(--ink)}

.grid--shops{grid-template-columns:repeat(3,minmax(0,1fr))}
.shopcard{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper)}
.shopcard:hover{border-color:var(--ink)}
.shopcard__logo{position:relative;display:block;aspect-ratio:16/9;border-bottom:1px solid var(--line)}
.shopcard__body{display:block;padding:18px 20px 20px}
.shopcard__name{display:block;font-family:var(--serif);font-size:19px;line-height:1.25}
.shopcard__cat{display:block;font-size:13px;color:var(--mute);margin-top:8px}
.shopcard__place{display:block;font-weight:600;letter-spacing:var(--tr-num);font-size:13px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.badge--sm{padding:5px 10px;font-size:11px}

.empty{padding:64px 0;text-align:center;border:1px solid var(--line);background:var(--paper)}
.empty__title{font-family:var(--serif);font-size:24px}
.empty__text{color:var(--mute);margin:10px 0 22px}

.results__more{margin-top:32px;text-align:center}
.results__hint{font-size:13px;color:var(--mute);margin-top:12px}

/* ---------- карточка арендатора ---------- */
.shophead{display:grid;grid-template-columns:150px 1fr auto;gap:32px;align-items:center;padding-bottom:30px}
.shophead__logo{aspect-ratio:3/2;border:1px solid var(--line)}
.shophead__h1{font-size:clamp(28px,3vw,40px);line-height:1.12} /* 4. карточка объекта */
.taglist{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tag{display:inline-flex;align-items:center;height:30px;padding:0 12px;border:1px solid var(--line-2);font-size:12px;color:var(--ink-2)}
.tag:hover{border-color:var(--ink);color:var(--ink)}
.shophead__place{margin-top:16px;font-size:15px}
.shophead__acts{display:flex;flex-direction:column;gap:10px;min-width:220px}

.shoplayout{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start}

.block{padding-bottom:44px;margin-bottom:44px;border-bottom:1px solid var(--line)}
.block:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.block__head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px}
.block__h2{font-family:var(--serif);font-size:26px;font-weight:400;margin-bottom:20px}
.block__head .block__h2{margin-bottom:0}
.block__meta{font-size:13px;color:var(--mute)}
.block__note{font-size:13px;color:var(--mute);margin-top:12px}
.prose p{margin-bottom:14px;line-height:1.65;color:var(--ink-2);max-width:600px}
.prose p:last-child{margin-bottom:0}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery__item{display:block;aspect-ratio:4/3;position:relative}
.gallery__item--lead{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}

/* слайдер фото на "О комплексе" — не ссылки, просто пролистать на месте,
   без перехода в отдельную галерею */
.aboutgallery-wrap{display:flex;align-items:center;gap:12px}
.aboutgallery{
  display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;
}
.aboutgallery::-webkit-scrollbar{display:none}
.aboutgallery__item{flex:0 0 280px;aspect-ratio:4/3;scroll-snap-align:start}
.aboutgallery__nav{flex:none;width:44px;height:44px;border:1px solid var(--line-2)}
.aboutgallery__nav:hover{border-color:var(--ink)}
.aboutgallery__nav::before{content:"";display:block;width:8px;height:8px;margin:0 auto;border:1px solid var(--ink);border-width:2px 2px 0 0}
.aboutgallery__nav--prev::before{transform:rotate(-135deg) translate(1px,-1px)}
.aboutgallery__nav--next::before{transform:rotate(45deg) translate(-1px,-1px)}

.videobox{position:relative;aspect-ratio:16/9}
.playmark{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border:1px solid var(--ink);border-radius:50%;background:var(--paper)}
.playmark::after{content:"";position:absolute;left:26px;top:21px;border-left:18px solid var(--ink);border-top:11px solid transparent;border-bottom:11px solid transparent}

.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}

.shopside{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px}
.panel{border:1px solid var(--line);padding:24px;background:var(--paper)}
.panel__title{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:18px}
.panel__sub{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin:22px 0 12px}
.panel__place{margin-bottom:16px;font-size:15px}
.contacts li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.contacts li:last-child{border-bottom:0}
.contacts__k{font-size:13px;color:var(--mute);flex:none}
.contacts__v{font-size:14px;text-align:right}
.msgs{display:flex;flex-wrap:wrap;gap:8px}
.msg{display:inline-flex;align-items:center;height:32px;padding:0 12px;border:1px solid var(--line-2);font-size:13px}
.msg:hover{border-color:var(--ink)}
/* «Поделиться» — реальной ссылки для шеринга нет, это JS-действие; сбрасываем вид кнопки под .msg */
button.msg{background:none;font:inherit;color:inherit;cursor:pointer}
.floors__plan--mini{margin-bottom:16px}
.pl-room--here{fill:var(--ink);stroke:var(--ink)}
.pl-txt--here{fill:#fff}

/* ---------- рубрикатор категорий ---------- */
.catnav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.catnav__item{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--line);background:var(--paper)}
.catnav__item:hover{border-color:var(--ink)}
.catnav__media{position:relative;display:block;aspect-ratio:4/3}
.catnav__body{display:block;padding:22px 24px}
.catnav__name{display:block;font-family:var(--serif);font-size:21px;line-height:1.25}
.catnav__n{display:block;font-size:13px;color:var(--mute);margin-top:8px}
.catnav__subs{display:block;font-size:13px;line-height:1.5;color:var(--ink-2);margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}

/* ---------- подкатегории чипами ---------- */
.subchips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.subchips .chip{cursor:pointer}
.subchips .chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip__n{font-style:normal;font-size:12px;color:var(--mute);margin-left:6px}
.subchips .chip.is-active .chip__n{color:#cfcac4}

/* ---------- бренды ---------- */
.brandsearch{width:280px;flex:none}
.alpha{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.alpha__i{min-width:36px;height:36px;padding:0 9px;border:1px solid var(--line-2);font-size:13px}
.alpha__i:hover{border-color:var(--ink)}
.alpha__i.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.alpha__i--off{color:var(--line-2);border-color:var(--line);cursor:default}
.alpha__i--off:hover{border-color:var(--line)}
.alpha__sep{width:1px;height:24px;background:var(--line-2);margin:0 8px}

.brandgroup{margin-bottom:40px}
.brandgroup:last-child{margin-bottom:0}
.brandgroup__letter{font-family:var(--serif);font-size:22px;font-weight:400;padding-bottom:12px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.brandtile{display:block}
.brandtile__logo{display:block;aspect-ratio:3/2;border:1px solid var(--line)}
.brandtile:hover .brandtile__logo{border-color:var(--ink)}
.brandtile__name{display:block;font-size:13px;margin-top:10px;color:var(--ink-2)}

/* ---------- афиша ---------- */
/* одна строка вместо двух: подписи короткие и инлайновые, счётчик уходит
   вправо и занимает пустоту, которая оставалась при двухрядной раскладке */
.evfilters{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;
  padding-bottom:18px;margin-bottom:26px;border-bottom:1px solid var(--line);
}
.evfilters__row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px}
.evfilters__label{flex:none;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-right:2px}
.evfilters__sep{width:1px;height:22px;background:var(--line);flex:none}
.evfilters__count{margin-left:auto;font-size:13px;color:var(--mute);white-space:nowrap}
.evfilters__count b{color:var(--ink);font-weight:600}
.evfilters .chip{cursor:pointer;height:32px;padding:0 13px}
.evfilters .chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}

.evrow{display:grid;grid-template-columns:100px 220px 1fr 150px;gap:28px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line)}
.evrow:first-child{border-top:1px solid var(--line)}
.evrow:hover .evrow__name{border-bottom-color:var(--ink)}
.evrow__date{display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:14px 8px;border:1px solid var(--line-2)}
.evrow__day{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1;letter-spacing:var(--tr-big)}
.evrow__mon{font-size:12px;color:var(--mute);margin-top:4px}
.evrow__time{font-size:12px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);width:100%}
.evrow__media{display:block;aspect-ratio:16/10}
.evrow__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.evrow__tags .tag{font-style:normal;height:26px;font-size:11px}
.evrow__name{display:inline-block;font-family:var(--serif);font-size:21px;line-height:1.25;
  border-bottom:1px solid transparent}
.evrow__desc{display:block;font-size:14px;color:var(--ink-2);margin-top:10px;line-height:1.5}
.evrow__meta{display:block;font-size:13px;color:var(--mute);margin-top:12px}
.evrow__act{text-align:right}
.evrow--past .evrow__day,.evrow--past .evrow__mon{color:var(--mute)}
.evrow.is-full .evrow__media{opacity:.6}

/* ---------- страница события ---------- */
.evhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding-bottom:36px}
.evhead__h1{font-size:clamp(28px,3vw,40px);line-height:1.12;margin-top:14px} /* 4. карточка объекта */
.evhead__sub{margin-top:14px;font-size:17px;color:var(--mute)}
.evhead__media{aspect-ratio:4/3}
.evfacts{margin-top:26px;border-top:1px solid var(--line)}
.evfacts li{display:flex;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.evfacts__k{width:110px;flex:none;font-size:13px;color:var(--mute)}
.evfacts__v{font-size:15px}

.agenda li{position:relative;padding-left:26px;margin-bottom:12px;color:var(--ink-2);line-height:1.55}
.agenda li::before{content:"";position:absolute;left:0;top:11px;width:12px;height:1px;background:var(--ink)}

.speakers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.speaker__photo{display:block;aspect-ratio:1/1;margin-bottom:14px}
.speaker__name{display:block;font-family:var(--serif);font-size:18px}
.speaker__role{display:block;font-size:13px;color:var(--mute);margin-top:6px;line-height:1.45}

.seats{font-size:15px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.seats b{font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:var(--tr-big)}
.seats--off{color:var(--mute)}
.panel__text{font-size:14px;color:var(--ink-2);line-height:1.55;margin-bottom:16px}

/* ---------- форма ---------- */
.fld{display:block;margin-bottom:16px}
.fld__lab{display:block;font-size:13px;color:var(--mute);margin-bottom:6px}
.fld input{width:100%;height:46px;padding:0 14px;border:1px solid var(--line-2);background:var(--paper);outline:none}
.fld input:focus{border-color:var(--ink)}
.fld__err{display:none;font-size:12px;color:var(--ink);margin-top:6px}
.fld.is-invalid input{border-color:var(--ink);border-width:2px}
.fld.is-invalid .fld__err{display:block}
.check.is-invalid .fld__err{display:block;margin-top:6px}
.check .fld__err{display:none;font-size:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.captcha{height:78px;margin:18px 0}
.regform__hint{font-size:12px;color:var(--mute);margin-top:12px;line-height:1.5}

/* ---------- акции ---------- */
.promocard{display:flex;flex-direction:column}
.promocard .card__media{margin-bottom:16px}
.promocard__body{display:block}
.promocard .card__title{display:block}
.promocard .card__meta{display:block}
.promocard .card__term{display:block;margin-top:14px}
.promostate{margin-top:22px;font-size:15px}
.promostate b{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:var(--tr-big)}
.promostate--off{color:var(--mute)}
.panel__shop{font-family:var(--serif);font-size:19px;margin-bottom:16px}
.mt10{margin-top:10px}

/* ---------- журнал ---------- */
.postgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
/* .post--lead без префикса .postgrid цеплял и .journal на главной — там тоже
   grid с 2 колонками, и лид растягивался на обе, спихивая список вниз и
   раздувая фото на всю ширину контейнера */
.postgrid .post--lead{grid-column:span 2}
.post--lead .post__media{aspect-ratio:2/1}
.post--lead .post__title{font-size:30px}
.post__lead{font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:12px;max-width:60ch}
.post__title a{border-bottom:1px solid transparent}
.post__title a:hover{border-color:var(--ink)}

/* ---------- статья ---------- */
.arthead{max-width:860px;padding-bottom:32px}
.arthead__h1{font-size:clamp(30px,3.6vw,48px);line-height:1.15;margin-top:10px} /* 3. статья и документы */
.arthead__lead{font-size:19px;line-height:1.55;color:var(--ink-2);margin-top:20px}
.arthead__meta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:14px}
.artauthor{display:flex;align-items:center;gap:12px}
.artauthor__photo{width:44px;height:44px;border-radius:50%;flex:none}
.arthead__stats{color:var(--mute)}

.artlayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
.artcover{aspect-ratio:16/9;margin-bottom:36px}
.prose--article{max-width:640px}
/* мера строки — 600px ≈ 64 знака в Montserrat 17px (замерено).
   ch не используем: он завязан на ширину знака и поехал при смене шрифта */
.prose--article p{font-size:17px;line-height:1.75;margin-bottom:20px;max-width:600px}
.prose--article h2{font-size:26px;line-height:1.25;margin:38px 0 16px}

.arttags,.artshare{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.arttags__label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-right:6px}

.artside{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px}
.toc__nav{display:flex;flex-direction:column;gap:2px}
.toc__i{padding:8px 0 8px 14px;font-size:14px;line-height:1.4;color:var(--ink-2);
  border-left:2px solid var(--line)}
.toc__i:hover{color:var(--ink);border-left-color:var(--line-2)}
.toc__i.is-active{color:var(--ink);border-left-color:var(--ink)}

/* ---------- схема этажей ---------- */
.floorpage{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}
.floorplan__bar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:18px}
.floorplan__bar .floors__tabs{margin-bottom:0;width:320px}
.floorplan__hint{font-size:13px;color:var(--mute)}
.bigplan{
  aspect-ratio:474/276;border:1px solid var(--line);background-color:var(--paper-2);
  background-image:
    repeating-linear-gradient(to right,rgba(0,0,0,.05) 0 1px,transparent 1px 18px),
    repeating-linear-gradient(to bottom,rgba(0,0,0,.05) 0 1px,transparent 1px 18px);
}
.bigplan svg{display:block;width:100%;height:100%}
.pl-room--hit{cursor:pointer}
.pl-room--hit:hover{fill:#b3aea8}
.pl-room--free{fill:#f2f0ed}

.legend{display:flex;flex-wrap:wrap;gap:22px;margin-top:18px;font-size:13px;color:var(--mute)}
.legend li{display:flex;align-items:center;gap:8px}
.legend__sw{width:16px;height:16px;border:1px solid var(--line-2)}
.legend__sw--busy{background:#bdb8b2}
.legend__sw--free{background:#f2f0ed}
.legend__sw--here{background:var(--ink);border-color:var(--ink)}
.legend__sw--serv{background:#d2cec9}

.floorside{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px}
.panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel__head .panel__title{margin-bottom:0}
.panel__n{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:var(--tr-big)}
.panel__hint{font-size:12px;color:var(--mute);margin-top:10px;line-height:1.45}

.room__name{font-family:var(--serif);font-size:20px;margin-bottom:8px}
.room__cat{font-size:13px;color:var(--mute);line-height:1.5;margin-bottom:6px}
.room__place{font-size:13px;margin-bottom:16px}

.floorlist{max-height:260px;overflow-y:auto}
.floorlist__i{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  padding:11px 0;border-bottom:1px solid var(--line);text-align:left}
.floorlist li:last-child .floorlist__i{border-bottom:0}
.floorlist__i:hover .floorlist__n{border-bottom-color:var(--ink)}
.floorlist__n{font-size:14px;border-bottom:1px solid transparent}
.floorlist__s{font-size:12px;color:var(--mute);flex:none}
.floorlist__empty{font-size:13px;padding:6px 0}

/* ---------- страницы ошибок ---------- */
.errpage{padding:80px 0 100px}
.errpage__in{max-width:760px;text-align:center}
.errpage__code{font-family:var(--serif);font-weight:500;font-size:clamp(80px,12vw,160px);
  line-height:1;letter-spacing:var(--tr-big);color:var(--line-2)}
.errpage__h1{font-size:clamp(28px,3vw,40px);line-height:1.15;margin-top:8px} /* 4 */
.errpage__t{margin:18px auto 0;max-width:46ch;color:var(--ink-2);line-height:1.6}
.errpage__search{max-width:520px;margin:32px auto 40px}
.errpage__acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.errpage__panel{max-width:420px;margin:40px auto 0;text-align:left}
.errpage__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:40px;text-align:left}
.errlink{display:block;padding:20px;border:1px solid var(--line);background:var(--paper)}
.errlink:hover{border-color:var(--ink)}
.errlink__h{display:block;font-family:var(--sans);font-weight:600;font-size:17px;letter-spacing:var(--tr-h3)}
.errlink__t{display:block;font-size:13px;color:var(--mute);margin-top:8px;line-height:1.45}

/* ---------- настройки cookie ---------- */
.ckpanel{max-width:760px;margin-top:40px}
.cksw{margin-bottom:24px}
.cksw__i{display:grid;grid-template-columns:24px 1fr;gap:16px;align-items:start;
  padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}
.cksw__i:last-child{border-bottom:0}
.cksw__i input{margin-top:3px}
.cksw__i input:disabled{cursor:not-allowed}
.cksw__h{display:block;font-family:var(--sans);font-weight:600;font-size:16px;letter-spacing:var(--tr-h3)}
.cksw__t{display:block;font-size:14px;color:var(--ink-2);margin-top:6px;line-height:1.5}

/* ---------- дизайнеры ---------- */
.descard{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper)}
.descard:hover{border-color:var(--ink)}
.descard__photo{display:block;aspect-ratio:3/4;border-bottom:1px solid var(--line)}
.descard__b{display:block;padding:18px 20px 20px}
.descard__n{display:block;font-family:var(--sans);font-weight:600;font-size:17px;letter-spacing:var(--tr-h3);line-height:1.3}
.descard__s{display:block;font-size:13px;color:var(--mute);margin-top:8px;line-height:1.45}
.descard__e{display:block;font-size:13px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.descard--cta{border-style:dashed}

.steps{margin:20px 0 24px}
.steps li{display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start;margin-bottom:16px}
.steps__n{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border:1px solid var(--line-2);font-family:var(--serif);font-weight:500;font-size:18px}
.steps__t{font-size:15px;line-height:1.55;color:var(--ink-2);padding-top:7px}
.upload{height:120px;border:1px dashed var(--line-2);margin-top:6px}
.mt16{margin-top:16px}

/* ---------- поиск ---------- */
.searchbig{max-width:720px;margin-top:24px;padding-bottom:28px}
.searchbig__hint{font-size:13px;color:var(--mute);margin-top:12px}
.srchlist{border-top:1px solid var(--line)}
.srch{display:block;padding:22px 0;border-bottom:1px solid var(--line)}
.srch:hover .srch__h{border-bottom-color:var(--ink)}
.srch__kind{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.srch__h{display:inline-block;font-family:var(--sans);font-weight:600;font-size:19px;
  letter-spacing:var(--tr-h3);border-bottom:1px solid transparent}
.srch__t{display:block;font-size:14px;color:var(--ink-2);margin-top:8px;line-height:1.5;max-width:80ch}
.srchhints{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:center;margin-top:20px}

/* ---------- подписка ---------- */
.subpage{max-width:560px}

/* ---------- о комплексе ---------- */
.aboutintro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.aboutintro__media{aspect-ratio:4/3}

.floorsinfo{display:grid;gap:16px}
.floorinfo{display:grid;grid-template-columns:96px 1fr;gap:28px;align-items:center;
  padding:24px;border:1px solid var(--line);background:var(--paper)}
.floorinfo:hover{border-color:var(--ink)}
.floorinfo__n{display:flex;align-items:center;justify-content:center;height:84px;
  font-family:var(--serif);font-weight:500;font-size:48px;letter-spacing:var(--tr-big);
  border:1px solid var(--line-2)}
.floorinfo__h{display:block;font-family:var(--sans);font-weight:600;font-size:19px;letter-spacing:var(--tr-h3)}
.floorinfo__t{display:block;font-size:15px;color:var(--ink-2);margin-top:8px;line-height:1.5}
.floorinfo__m{display:block;font-size:13px;color:var(--mute);margin-top:10px}

.numbering{display:grid;grid-template-columns:1fr 360px;gap:56px;align-items:start}
.numbering__lead{margin:16px 0 24px;color:var(--ink-2);line-height:1.6;max-width:56ch}
.numbering__box{border:1px solid var(--line);background:var(--paper);padding:32px;text-align:center}
.numbering__sample{font-family:var(--serif);font-weight:500;font-size:72px;line-height:1;letter-spacing:var(--tr-big)}
.numbering__cap{font-size:13px;color:var(--mute);margin:12px 0 24px}

.infra{padding-top:18px;border-top:1px solid var(--line)}
.infra__h{font-size:17px;margin-bottom:10px}
.infra__t{font-size:15px;line-height:1.6;color:var(--ink-2)}

/* ---------- контакты ---------- */
.contactmap{display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:start}
.mapbox{aspect-ratio:16/11;border:1px solid var(--line)}
.contactside{display:flex;flex-direction:column;gap:20px}
.entrances{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;margin-top:48px}
.entrances__map{aspect-ratio:16/10;border:1px solid var(--line)}
.sel{width:100%;height:46px;padding:0 12px;border:1px solid var(--line-2);background:var(--paper);font:inherit}
.sel:focus{border-color:var(--ink)}

/* ---------- галерея и видео ---------- */
.album{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper)}
.album:hover{border-color:var(--ink)}
.album__media{position:relative;display:block;aspect-ratio:4/3}
.album__n{position:absolute;right:0;bottom:0;background:var(--ink);color:#fff;
  padding:6px 12px;font-size:12px;letter-spacing:var(--tr-num)}
.album__n.ph-mark{color:#cfcac4;border-bottom-color:#6d6862}
.album__b{display:block;padding:18px 20px}
.album__h{display:block;font-family:var(--sans);font-weight:600;font-size:18px;letter-spacing:var(--tr-h3)}
.album__m{display:block;font-size:13px;color:var(--mute);margin-top:8px}

.vid{display:block}
.vid__media{position:relative;display:block;aspect-ratio:16/9;margin-bottom:14px}
.vid:hover .vid__h{border-bottom-color:var(--ink)}
.vid__time{position:absolute;right:8px;bottom:8px;background:var(--ink);color:#fff;padding:4px 8px;font-size:11px}
.vid__time.ph-mark{color:#cfcac4;border-bottom-color:#6d6862}
.vid__h{display:inline-block;font-family:var(--sans);font-weight:600;font-size:17px;
  letter-spacing:var(--tr-h3);line-height:1.35;border-bottom:1px solid transparent}
.vid__m{display:block;font-size:13px;color:var(--mute);margin-top:8px}
.playmark--sm{width:48px;height:48px;margin:-24px 0 0 -24px}
.playmark--sm::after{left:19px;top:15px;border-left-width:14px;border-top-width:9px;border-bottom-width:9px}

/* ---------- лендинг аренды ---------- */
.mb36{margin-bottom:36px}
.renthero{border-bottom:1px solid var(--line)}
/* крошки здесь лежат в отдельном .wrap перед .renthero__in, у которого
   свой большой паддинг (72px) — без этого правила крошки прижаты
   прямо к шапке, как на .pagehead они не бывают */
.renthero > .wrap:not(.renthero__in){padding-top:28px}
.renthero__in{display:grid;grid-template-columns:minmax(340px,46%) 1fr;gap:56px;align-items:center;
  padding-top:72px;padding-bottom:72px}
.renthero__h1{font-size:clamp(32px,4vw,56px);line-height:1.08;margin-top:6px} /* 2. лендинги */
.renthero__sub{margin:22px 0 34px;font-size:17px;line-height:1.6;color:var(--ink-2);max-width:52ch}
.renthero__acts{display:flex;gap:14px;flex-wrap:wrap}
.renthero__media{aspect-ratio:4/3;min-height:340px}

.adv{padding-top:20px;border-top:2px solid var(--ink)}
.adv__n{display:block;font-family:var(--serif);font-size:15px;color:var(--mute);margin-bottom:12px}
.adv__h3{font-size:21px;line-height:1.25;margin-bottom:12px}
.adv__t{font-size:15px;line-height:1.6;color:var(--ink-2)}

.terms{border-top:1px solid var(--line)}
.terms__row{display:grid;grid-template-columns:280px 1fr;gap:28px;padding:18px 0;border-bottom:1px solid var(--line)}
.terms__k{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.terms__v{font-size:16px}

.rentform{display:grid;grid-template-columns:1fr 460px;gap:64px;align-items:start}
.rentform__lead{margin:16px 0 28px;color:var(--ink-2);font-size:17px;line-height:1.6;max-width:44ch}
.contacts--lg li{padding:14px 0}
.contacts--lg .contacts__v{font-size:16px}
.fld textarea{width:100%;padding:12px 14px;border:1px solid var(--line-2);background:var(--paper);outline:none;resize:vertical}
.fld textarea:focus{border-color:var(--ink)}

/* ================= ФУТЕР ================= */
.footer{background:var(--ink);color:#cfcac4;padding-top:64px}
.footer__in{display:grid;grid-template-columns:280px 1fr;gap:64px;padding-bottom:48px}
.footer__addr{font-size:14px;line-height:1.6;margin-top:18px}
.footer__addr a:hover{color:#fff}
.socials{display:flex;gap:22px;margin-top:20px;align-items:center}
/* знаки собраны под тёмный фон (слово белое, значок фирменный). В Ч/Б
   прототипе обесцвечены тем же фильтром, что и логотип комплекса — цвет
   вернётся на этапе дизайна */
.socials a{display:block;border:0;padding:0;opacity:.8;transition:opacity .2s}
.socials a:hover{opacity:1}
.socials img{display:block;height:19px;width:auto;filter:grayscale(1)}
.footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.footer__title{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.footer__cols li{margin-bottom:10px;font-size:14px}
.footer__cols a:hover{color:#fff}
.footer__legal{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:24px;padding-bottom:32px;border-top:1px solid #332f2b;font-size:13px}
.footer__legal ul{display:flex;gap:24px;flex-wrap:wrap}
.footer__legal a:hover{color:#fff}

/* ---------- cookie ---------- */
.cookie{
  position:fixed;left:24px;right:24px;bottom:24px;z-index:150;
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  background:var(--paper);border:1px solid var(--ink);padding:18px 22px;
  box-shadow:0 24px 50px -30px rgba(0,0,0,.5);
}
.cookie__text{font-size:14px;flex:1;min-width:240px}
.cookie__acts{display:flex;gap:10px;flex-wrap:wrap}
.cookie.is-hidden{display:none}
body.notes-on .note--cookie{margin:12px 0 0;width:100%}

/* ---------- лайтбокс: фото и видео поверх страницы ----------
   Общая оболочка для двух режимов. .lightbox--photo — увеличенный
   плейсхолдер фото (пока нет реальных изображений). .lightbox--video —
   заглушка плеера: реального встраивания с видеохостинга ждём от
   разработки (п. 6.9), здесь только показываем, что клик открывает
   плеер, а не уводит со страницы. */
.lightbox{position:fixed;inset:0;z-index:400;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 88px}
.lightbox[hidden]{display:none}
.lightbox__backdrop{position:absolute;inset:0;background:rgba(22,22,22,.94)}
.lightbox__close{
  position:absolute;top:20px;right:24px;width:44px;height:44px;
  border:1px solid rgba(255,255,255,.4);color:#fff;font-size:22px;line-height:1;
}
.lightbox__close:hover{border-color:#fff}
.lightbox__nav{
  position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;
  border:1px solid rgba(255,255,255,.4);color:#fff;
}
.lightbox__nav:hover{border-color:#fff}
.lightbox__nav:disabled{opacity:.25;cursor:default}
.lightbox__nav:disabled:hover{border-color:rgba(255,255,255,.4)}
.lightbox__nav::before{content:"";display:block;width:9px;height:9px;margin:0 auto;border:1px solid currentColor;border-width:2px 2px 0 0}
.lightbox__nav--prev{left:20px}
.lightbox__nav--prev::before{transform:rotate(-135deg) translate(1px,-1px)}
.lightbox__nav--next{right:20px}
.lightbox__nav--next::before{transform:rotate(45deg) translate(-1px,-1px)}
.lightbox__stage{position:relative;z-index:1;width:100%;max-width:920px;text-align:center}
.lightbox__ph{
  aspect-ratio:16/10;background:var(--ph-2);
  background-image:linear-gradient(135deg,rgba(255,255,255,.06) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.06) 50%,rgba(255,255,255,.06) 75%,transparent 75%);
  background-size:16px 16px;display:flex;align-items:center;justify-content:center;
}
.lightbox--video .lightbox__ph{aspect-ratio:16/9;background:#2a2a2a;background-image:none}
.lightbox__label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(22,22,22,.7);padding:5px 12px}
.lightbox__play{
  width:64px;height:64px;border-radius:50%;border:1px solid rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;
}
/* без этого правила [hidden] проигрывает display:flex выше — кнопка play
   лезла и в режим фото, хотя её должно быть видно только у видео */
.lightbox__play[hidden]{display:none}
.lightbox__play::before{content:"";border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff;margin-left:4px}
.lightbox__caption{margin-top:16px;color:#fff;font-size:15px}
.lightbox__note{margin-top:6px;color:rgba(255,255,255,.55);font-size:13px}
.lightbox__counter{margin-top:20px;color:rgba(255,255,255,.6);font-size:13px;letter-spacing:var(--tr-cap)}

/* элементы, открывающие лайтбокс, — те же плитки, что и раньше, просто кликабельны */
[data-lightbox]{cursor:pointer}
[data-lightbox]:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* ================= АДАПТИВ ================= */
@media(max-width:1440px){
  .nav__in{gap:30px}
  .menu__list{gap:22px}
  .menu__link{font-size:12px;letter-spacing:.06em}
  .hsearch{width:240px}
  .field--hs{width:170px}
}
/* ниже 1200 поле и полное меню в строку уже не помещаются:
   поле сворачивается в иконку, поиск раскрывается оверлеем */
@media(max-width:1200px){
  /* бенто — только на широком экране: на 3 и 2 колонках span-математика 2×2
     ломается, надёжнее вернуть ровную сетку с фиксированной пропорцией */
  .grid--cats{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}
  .catalog{grid-template-columns:236px 1fr;gap:40px}
  .grid--3:not(.scroller){grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--shops{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shoplayout{grid-template-columns:1fr 300px;gap:40px}
  .catnav__item{grid-template-columns:160px 1fr}
  .evrow{grid-template-columns:88px 180px 1fr 130px;gap:20px}
  .artlayout{grid-template-columns:minmax(0,1fr) 260px;gap:40px}
  .floorpage{grid-template-columns:1fr 300px;gap:32px}
  .rentform{grid-template-columns:1fr 400px;gap:40px}
  .contactmap{grid-template-columns:1fr 320px;gap:32px}
  .numbering{grid-template-columns:1fr 300px;gap:40px}
  .cat--big,.cat--tall{grid-column:auto;grid-row:auto}
  .cat{aspect-ratio:4/3}
  .cat--big .cat__name{font-size:19px}
  .grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .errpage__links{grid-template-columns:1fr}
  .brands{grid-template-columns:repeat(4,minmax(0,1fr))}
  .hsearch{display:none}
  .ic-search{display:block}
}
@media(max-width:1000px){
  :root{--pad:24px}
  .utility__info li:nth-child(2),.utility__info li:nth-child(4){display:none}
  .hero__in,.find,.pro,.rent__in,.subs__in,.journal{grid-template-columns:1fr;gap:36px}
  /* .journal (блок на главной) встаёт в одну колонку — обложка на всю ширину контента,
     пропорция 4/3 от неё делает фото в рост экрана; берём ту же, что на мобильном.
     Селектор нарочно ограничен .journal — тот же .post--lead используется и в
     .postgrid на journal.html, но там при схлопывании в 2 колонки хватает 2/1 (см. ниже) */
  .journal .post--lead .post__media{aspect-ratio:16/10}
  /* .postgrid (страница journal.html): при 2 колонках лид занимает обе — тоже во всю ширину */
  .postgrid .post--lead .post__media{aspect-ratio:21/9}
  /* фильтры уходят над результатами — сайдбар на планшете съедает ширину карточек */
  .catalog{grid-template-columns:1fr;gap:32px}
  .filters{border:1px solid var(--line);padding:4px 20px 20px}
  .pagehead__in{flex-direction:column;align-items:flex-start;gap:20px}
  /* карточка арендатора: сайдбар вниз, липкость снимаем — она мешает в потоке */
  .shoplayout{grid-template-columns:1fr;gap:40px}
  .shopside{position:static}
  .shophead{grid-template-columns:110px 1fr;gap:24px}
  .catnav{grid-template-columns:1fr}
  .evhead{grid-template-columns:1fr;gap:32px}
  /* оглавление уходит под текст и перестаёт липнуть */
  .artlayout{grid-template-columns:1fr;gap:40px}
  .artside{position:static}
  .floorpage{grid-template-columns:1fr;gap:32px}
  .floorside{position:static}
  .renthero__in{grid-template-columns:1fr;gap:36px;padding-top:48px;padding-bottom:48px}
  .rentform{grid-template-columns:1fr;gap:36px}
  .aboutintro,.contactmap,.numbering,.entrances{grid-template-columns:1fr;gap:32px}
  .grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .terms__row{grid-template-columns:200px 1fr;gap:20px}
  .postgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
  .post--lead{grid-column:span 2}
  /* обложку в строке афиши убираем — на планшете она съедает место у текста */
  .evrow{grid-template-columns:80px 1fr;gap:20px;align-items:start}
  .evrow__media{display:none}
  .evrow__act{grid-column:2;text-align:left;margin-top:14px}
  .shophead__acts{grid-column:1/-1;flex-direction:row;min-width:0}
  .hero__in{padding-top:48px;padding-bottom:48px}
  .facts__in{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .footer__in{grid-template-columns:1fr}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .post--row{grid-template-columns:120px 1fr}
  .mega__in{grid-template-columns:1fr;gap:28px}
  .mega__cats{columns:2}
}
@media(max-width:760px){
  body{font-size:15px}
  .sect{padding:56px 0}
  .rent,.subs{padding:56px 0}
  .utility__info{display:none}
  .utility__in{justify-content:flex-end}
  .nav__in{height:70px}
  .burger{display:block}
  /* на мобильном поле не помещается — иконка рядом с бургером, поиск раскрывается оверлеем */
  .hsearch{display:none}
  .ic-search{display:block;margin-left:auto}
  .menu{
    display:none;position:absolute;left:0;right:0;top:100%;
    background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:8px var(--pad) 20px;
  }
  .menu.is-open{display:block}
  .menu__list{flex-direction:column;gap:0}
  .menu__link{height:52px;border-bottom:1px solid var(--line);width:100%;justify-content:space-between}
  .mega{position:static;box-shadow:none;border:0}
  .grid--cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--shops{grid-template-columns:1fr}
  .grid--2{grid-template-columns:1fr}
  .grid--3:not(.scroller){grid-template-columns:1fr}
  .speakers{grid-template-columns:1fr}
  .terms__row{grid-template-columns:1fr;gap:6px}
  .renthero__media{min-height:220px}
  .floorinfo{grid-template-columns:64px 1fr;gap:18px;padding:18px}
  .floorinfo__n{height:64px;font-size:34px}
  .numbering__sample{font-size:56px}
  .postgrid{grid-template-columns:1fr}
  .post--lead{grid-column:auto}
  .post--lead .post__media{aspect-ratio:16/10}
  .post--lead .post__title{font-size:22px}
  /* на узком экране группы фильтров прокручиваются вбок, а не ломаются */
  .evfilters__row{overflow-x:auto;padding-bottom:2px}
  .evfilters__sep{display:none}
  .evfilters__count{margin-left:0}
  .catnav__item{grid-template-columns:1fr}
  .catnav__media{aspect-ratio:16/9}
  .brandsearch{width:100%}
  .brands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery__item--lead{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
  .shophead__acts{flex-direction:column}
  .viewtabs{gap:18px}
  .viewtabs__item{font-size:12px}
  .brands{grid-template-columns:repeat(3,minmax(0,1fr))}
  .facts__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fact__num{font-size:26px}
  .ph--hero{min-height:240px}
  .sect__head{flex-direction:column;align-items:flex-start;gap:12px}
  /* ленты в горизонтальный скролл */
  .scroller{
    display:flex;overflow-x:auto;gap:16px;
    scroll-snap-type:x mandatory;margin:0 calc(var(--pad)*-1);padding:0 var(--pad) 8px;
  }
  .scroller>*{flex:0 0 78%;scroll-snap-align:start}
  .brands.scroller>*{flex:0 0 40%}
  .cookie{left:12px;right:12px;bottom:12px;padding:16px}
  .btn{height:48px;padding:0 22px}
  .logo__img{height:42px}
}
/* ---------- тач-зоны на мобильном (п. 9.4) ----------
   Мелкие текстовые ссылки на телефоне в них не попасть.
   Ссылкам-подчёркиваниям расширяем зону невидимым псевдоэлементом,
   чтобы не съехало подчёркивание; спискам просто добавляем высоту. */
@media(max-width:760px){
  .more,.link,.utility__login,.crumbs a,.filters__reset{position:relative}
  .more::after,.link::after,.utility__login::after,.crumbs a::after,.filters__reset::after{
    content:"";position:absolute;left:-6px;right:-6px;top:50%;
    height:44px;transform:translateY(-50%);
  }
  .footer__cols li{margin-bottom:0}
  .footer__cols a,.footer__legal a,.mega__links a,.mega__cats a,.socials a{
    display:inline-block;padding:12px 0;
  }
  .footer__legal ul{gap:0 24px}
  .find__quick a,.footer__addr a{display:inline-block;padding:12px 0}
  .find__quick{gap:22px 26px;flex-wrap:wrap}
  .viewtabs__item{padding-top:12px;padding-bottom:14px}
  .chip,.msg,.tag{min-height:44px}
  .floors__tab{height:48px}
  .toc__i{padding-top:13px;padding-bottom:13px}
  .sortbox select,.sel{height:48px}
  .check input{width:20px;height:20px}
  .suggest__item{padding-top:14px;padding-bottom:14px}
}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ================= КАБИНЕТ АРЕНДАТОРА =================
   Закрытая часть (п. 5.2). Своя оболочка без мегаменю и подвала:
   кабинет — рабочий инструмент, а не витрина, и публичная навигация
   здесь только сбивает. Компоненты берутся из общей системы
   (.btn, .fld, .panel, .tag), чтобы кабинет не выглядел чужим. */

/* ---------- экраны входа ----------
   Две половины: слева вход, справа фотография во всю высоту. Фото здесь
   не украшение — п. 9.1 требует акцент на качественной фотографии, а вход
   это единственный экран закрытой части, где она уместна и где у человека
   есть секунда её увидеть. */
.lkauth{min-height:100vh;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);background:var(--paper)}
.lkauth__side{display:flex;align-items:center;justify-content:center;padding:56px var(--pad)}
/* диагональный срез — приём из брендбука: он же держит первый экран
   главной. Здесь отделяет рабочую часть от фотографии, чтобы вход
   не читался как половинка, разрезанная линейкой */
.lkauth__media{position:relative;min-height:100%;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}
.lkauth__in{width:100%;max-width:400px}
.lkauth__logo{display:flex;margin-bottom:46px}
.lkauth__h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,2.6vw,36px);line-height:1.15;letter-spacing:var(--tr-h2)}
.lkauth__lead{font-size:14px;line-height:1.6;color:var(--mute);margin:12px 0 30px}
.lkauth__row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.lkauth__mini{font-size:13px;color:var(--mute);border-bottom:1px solid var(--line-2);padding-bottom:1px}
.lkauth__mini:hover{color:var(--ink);border-color:var(--ink)}
.lkauth__foot{
  margin-top:26px;padding-top:22px;border-top:1px solid var(--line);
  font-size:13px;line-height:1.65;color:var(--mute);
}
.lkauth__foot a{border-bottom:1px solid var(--line-2)}
.lkauth__foot a:hover{color:var(--ink);border-color:var(--ink)}
.lkauth__back{display:block;margin-top:22px;font-size:13px;color:var(--mute)}
.lkauth__back a{border-bottom:1px solid var(--line-2)}
.lkauth__back a:hover{color:var(--ink);border-color:var(--ink)}

/* ---------- оболочка кабинета: боковая панель ----------
   Панель отделена по-настоящему: своя подложка, граница и вся высота
   экрана. Это рабочее пространство, а не страница сайта — человек
   должен сразу видеть, где навигация, а где то, что он правит. */
.lkshell{display:flex;align-items:stretch;min-height:100vh}
.lkside{
  position:sticky;top:0;height:100vh;flex:0 0 272px;z-index:90;
  display:flex;flex-direction:column;
  background:var(--paper-2);border-right:1px solid var(--line);
}
.lkside__top{flex:none;padding:24px 26px;border-bottom:1px solid var(--line)}
.lkside__logo{display:flex}
.lkside__logo .logo__img{height:52px}
.lkside__nav{flex:1;min-height:0;overflow-y:auto;padding:22px 16px}
.lkside__foot{flex:none;padding:18px 26px;border-top:1px solid var(--line)}
.lkside__name{font-weight:600;font-size:14px;letter-spacing:var(--tr-h3);overflow-wrap:anywhere}
.lkside__place{font-size:12px;color:var(--mute);margin-top:2px}
.lkside__links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px}
.lkside__links a{font-size:13px;color:var(--mute);border-bottom:1px solid var(--line-2);padding-bottom:1px}
.lkside__links a:hover{color:var(--ink);border-color:var(--ink)}

.lknav__t{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin:0 0 10px;padding:0 12px}
.lknav__t+.lknav__t{margin-top:26px}
.lknav__i{display:flex;align-items:center;gap:10px;padding:11px 12px;font-size:15px;color:var(--ink-2)}
.lknav__i:hover{background:#e9e5e1;color:var(--ink)}
.lknav__i.is-current{background:var(--ink);color:#fff;font-weight:500}
.lknav__n{
  margin-left:auto;font-size:12px;color:var(--mute);
  border:1px solid var(--line-2);min-width:22px;height:20px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
}
.lknav__i.is-current .lknav__n{color:#fff;border-color:rgba(255,255,255,.45)}

.lkcontent{flex:1;min-width:0}
/* потолок высокий: в кабинете работают с таблицами и списками, и упирать
   их в узкую колонку незачем — пустое поле справа читается как обрыв
   вёрстки. Ограничение включается только на очень широких мониторах */
.lkmain{max-width:1560px;padding:44px var(--pad) 90px}

.lkhead{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;flex-wrap:wrap;padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid var(--line)}
.lkhead__h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,2.6vw,36px);line-height:1.12;letter-spacing:var(--tr-h2)}
.lkhead__sub{font-size:14px;color:var(--mute);margin-top:10px;max-width:60ch;line-height:1.6}
.lkhead__acts{display:flex;gap:10px;flex-wrap:wrap}

.lksect{margin-top:44px}

/* ссылка внутри предложения: .link по умолчанию капсом и мельче текста —
   в строке абзаца это читается как кнопка, а не как ссылка */
.link--inline{font-size:inherit;font-weight:inherit;letter-spacing:0;text-transform:none}

/* заметки к макету внутри кабинета не должны отбивать себе поля страницы */
body.notes-on .lkmain .note{margin-left:0;margin-right:0;max-width:none}

/* ---------- статусы модерации (п. 7.4) ----------
   в Ч/Б различаются формой маркера, а не цветом: на цветном этапе
   маркеры получат цвета, но макет обязан читаться и без них */
.status{display:inline-flex;align-items:center;gap:9px;height:28px;padding:0 12px;
  border:1px solid var(--line-2);font-size:12px;letter-spacing:.03em;white-space:nowrap}
.status::before{content:"";width:8px;height:8px;border:1px solid var(--ink);flex:none}
.status--ok::before{background:var(--ink)}
.status--wait::before{background:repeating-linear-gradient(45deg,var(--ink) 0 2px,transparent 2px 4px)}
.status--draft::before{border-style:dashed}
.status--stop{border-color:var(--ink)}
.status--stop::before{background:var(--ink);transform:rotate(45deg)}

/* ---------- плитки разделов кабинета ----------
   2×2 на ноутбуке, в ряд на широком мониторе. Через auto-fit получалось
   3+1 — одинокая плитка во втором ряду выглядит как ошибка вёрстки */
.lktiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media(min-width:1500px){
  .lktiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.lktile{display:flex;flex-direction:column;border:1px solid var(--line);padding:24px;background:var(--paper)}
.lktile:hover{border-color:var(--ink)}
.lktile__h{font-size:17px;font-weight:600;letter-spacing:var(--tr-h3)}
.lktile__t{font-size:13px;line-height:1.6;color:var(--mute);margin:8px 0 18px}
.lktile__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}

/* ---------- формы кабинета ---------- */
.lkform{max-width:880px}
.lkfields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.fld--wide{grid-column:1/-1}
.fld__hint{display:block;font-size:12px;color:var(--mute);margin-top:6px;line-height:1.5}

/* повторяющиеся поля — телефоны, соцсети: магазинов с одним телефоном
   почти нет, а выдуманный лимит «два поля» упрётся в первого же арендатора */
.repeat__row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.repeat__row .fld{flex:1;margin-bottom:0}
.repeat__del{
  flex:none;width:46px;height:46px;border:1px solid var(--line-2);
  font-size:18px;line-height:1;color:var(--mute);
  /* высота подписи поля: иначе крестик встаёт вровень с подписью,
     а не с самим полем, которое он удаляет */
  margin-top:26px;
}
.repeat__del:hover{border-color:var(--ink);color:var(--ink)}
.addline{
  display:inline-flex;align-items:center;gap:8px;margin-top:4px;
  font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line-2);padding-bottom:2px;
}
.addline:hover{color:var(--ink);border-color:var(--ink)}

/* переключатель вариантов — «как у комплекса» / «свой график» */
.seg{display:inline-flex;border:1px solid var(--line-2)}
.seg__i{padding:10px 18px;font-size:13px;border-right:1px solid var(--line-2);cursor:pointer}
.seg__i:last-child{border-right:0}
.seg__i.is-active{background:var(--ink);color:#fff}

/* режим работы по дням */
.hours{margin-top:18px;max-width:560px}
.hourrow{display:grid;grid-template-columns:110px 1fr 1fr 130px;gap:14px;align-items:center;
  padding:10px 0;border-bottom:1px solid var(--line)}
.hourrow:last-child{border-bottom:0}
.hourrow__d{font-size:14px}
.hourrow input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line-2);background:var(--paper);outline:none}
.hourrow input:focus{border-color:var(--ink)}
.hourrow--off input{color:var(--mute);background:var(--paper-2)}
.hourrow .check{margin-top:0}

/* строка действий: длинную форму не должно быть нужно доскроллить,
   чтобы найти кнопку отправки */
.formbar{
  position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:40px;padding:16px 0;background:var(--paper);border-top:1px solid var(--line);
}
.formbar__t{font-size:13px;color:var(--mute);margin-right:auto;max-width:44ch;line-height:1.5}

@media(max-width:760px){
  .lkfields{grid-template-columns:1fr}
  .hourrow{grid-template-columns:1fr 1fr;gap:10px}
  .hourrow__d{grid-column:1/-1;color:var(--mute);font-size:13px}
  .hourrow .check{grid-column:1/-1}
  .formbar{padding:14px 0}
  .formbar .btn{flex:1;min-width:150px}
}

/* ---------- загрузка и галерея в кабинете ---------- */
.drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  min-height:200px;padding:28px;text-align:center;
  border:1px dashed var(--line-2);background:var(--paper-2);
}
.drop:hover{border-color:var(--ink)}
.drop__t{font-size:15px}
.drop__h{font-size:12px;line-height:1.55;color:var(--mute);max-width:46ch}

.shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.shot{display:flex;flex-direction:column;gap:9px}
.shot__img{position:relative;aspect-ratio:4/3}
.shot__tag{
  position:absolute;left:8px;top:8px;
  background:var(--ink);color:#fff;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;padding:4px 9px;
}
.shot__row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.shot__act{font-size:12px;color:var(--mute);border-bottom:1px solid var(--line-2);padding-bottom:1px}
.shot__act:hover{color:var(--ink);border-color:var(--ink)}
.status--sm{height:24px;padding:0 9px;font-size:11px;gap:7px}
.status--sm::before{width:7px;height:7px}

/* логотип — отдельно от галереи: он попадает в списки и на схему, и
   требования к нему другие, чем к фотографиям интерьера */
.logoedit{display:grid;grid-template-columns:210px minmax(0,1fr);gap:30px;align-items:start}
.logoedit__box{aspect-ratio:3/2;border:1px solid var(--line)}
.logoedit__acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

@media(max-width:1200px){
  .shots{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .shots{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  /* в колонку 160px статус и действие рядом не встают */
  .shot__row{flex-direction:column;align-items:flex-start;gap:7px}
  .logoedit{grid-template-columns:1fr;gap:18px}
  .logoedit__box{max-width:210px}
  .drop{min-height:160px;padding:22px}
}

/* ---------- таблица «поле — значение» для полей администрации ---------- */
.rows li{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.rows li:last-child{border-bottom:0}
.rows__k{color:var(--mute);font-size:13px}

/* ---------- список акций в кабинете ---------- */
.promorow{
  display:grid;grid-template-columns:minmax(0,1fr) 210px 160px 120px;gap:24px;align-items:center;
  padding:18px 0;border-bottom:1px solid var(--line);
}
.promorow:first-of-type{border-top:1px solid var(--line)}
.promorow__n{font-size:16px;font-weight:600;letter-spacing:var(--tr-h3);overflow-wrap:anywhere}
.promorow__m{font-size:13px;color:var(--mute);margin-top:5px}
.promorow__d{font-size:14px}
.promorow__d span{display:block;font-size:12px;color:var(--mute);margin-top:4px}
.promorow__a{text-align:right}
.promorow--off .promorow__n{color:var(--mute)}

@media(max-width:1000px){
  .promorow{grid-template-columns:minmax(0,1fr) auto;gap:10px 20px}
  .promorow__a{grid-column:2;grid-row:1}
  .promorow__d,.promorow>.status{grid-column:1}
}
@media(max-width:760px){
  .promorow{grid-template-columns:1fr;gap:10px}
  .promorow__a{grid-column:1;grid-row:auto;text-align:left}
  /* иначе плашка статуса растягивается ячейкой на всю ширину строки */
  .promorow>.status{justify-self:start}
}

/* ---------- строки журнала ---------- */
.logrow{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.logrow:first-child{border-top:1px solid var(--line)}
.logrow__d{font-size:13px;color:var(--mute)}
.logrow__t{color:var(--ink-2);line-height:1.5}

@media(max-width:1200px){
  .lkside{flex-basis:240px}
  .lkside__top,.lkside__foot{padding-left:20px;padding-right:20px}
  .lkside__nav{padding:20px 12px}
}
/* боковая панель на узком экране ложится сверху: колонкой она забирает
   половину ширины, а пунктов всего восемь — они помещаются в строку */
@media(max-width:1000px){
  .lkshell{display:block;min-height:0}
  .lkside{
    position:sticky;top:0;height:auto;
    display:grid;grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:"top foot" "nav nav";
    align-items:center;border-right:0;border-bottom:1px solid var(--line);
  }
  .lkside__top{grid-area:top;border-bottom:0;padding:14px 20px}
  .lkside__logo .logo__img{height:44px}
  .lkside__foot{grid-area:foot;border-top:0;padding:14px 20px;text-align:right}
  .lkside__place{display:none}
  .lkside__links{justify-content:flex-end;margin-top:4px}
  .lkside__nav{
    grid-area:nav;display:flex;gap:4px;overflow-x:auto;padding:0 12px;
    border-top:1px solid var(--line);
    scrollbar-width:none;-ms-overflow-style:none;
  }
  .lkside__nav::-webkit-scrollbar{display:none}
  .lknav__t{display:none}
  .lknav__i{padding:12px;white-space:nowrap}
  .lknav__n{margin-left:8px}
  .lkmain{padding:26px 20px 64px}
  .lktiles{grid-template-columns:1fr}
}
@media(max-width:760px){
  .lkside__logo .logo__img{height:39px}
  .lkside__name{font-size:13px}
  /* «Карточка на сайте» уходит: на 375px она не помещается рядом с
     названием магазина и выходом, а попасть в неё можно из обзора */
  .lkside__links a[href="shop.html"]{display:none}
  .rows li{grid-template-columns:1fr;gap:4px;padding:14px 0}
  .logrow{grid-template-columns:1fr;gap:6px;padding:16px 0}
}

/* ---------- ввод кода подтверждения (2FA, п. 7.5) ---------- */
.codebox{display:flex;gap:10px}
.codebox input{
  width:54px;height:62px;padding:0;text-align:center;
  font-family:var(--serif);font-size:24px;font-weight:500;
  border:1px solid var(--line-2);background:var(--paper);outline:none;
}
.codebox input:focus{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.codehint{font-size:13px;color:var(--mute);margin-top:12px}
.codehint b{color:var(--ink);font-weight:600}

/* ---------- состояния и сообщения кабинета ----------
   в отличие от .note это не комментарий к макету, а часть интерфейса:
   видно всегда, потому что несёт статус модерации и ошибки */
.alert{
  border:1px solid var(--line);border-left:3px solid var(--ink);
  background:var(--paper-2);padding:14px 16px;margin-bottom:20px;
  font-size:13px;line-height:1.6;color:var(--ink-2);
}
.alert__t{font-weight:600;color:var(--ink);margin-bottom:3px}
.alert--quiet{border-left-color:var(--line-2)}

/* фотография уходит первой: на узком экране она отжимает форму за сгиб,
   а пользы от неё там нет */
@media(max-width:1000px){
  .lkauth{grid-template-columns:1fr}
  .lkauth__media{display:none}
}
@media(max-width:760px){
  .lkauth{min-height:auto}
  .lkauth__side{padding:40px 20px}
  .lkauth__logo{margin-bottom:34px}
  .codebox{gap:8px}
  .codebox input{width:46px;height:56px;font-size:21px}
}

/* ---------- предпросмотр карточки «как на сайте» (п. 7.5) ----------
   Оболочка: тёмная полоса управления + рамка с публичной страницей.
   Полоса тёмная, чтобы её нельзя было принять за шапку сайта. */
.pvshell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--paper-2)}
.pvbar{
  flex:none;display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap;
  padding:14px var(--pad);background:var(--ink);color:#fff;
}
.pvbar__info{margin-right:auto;min-width:0}
.pvbar__t{font-weight:600;font-size:15px;letter-spacing:var(--tr-h3)}
.pvbar__s{font-size:12px;color:rgba(255,255,255,.62);margin-top:2px}
.pvbar__tools{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pvbar__check{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer;white-space:nowrap}
.pvbar__check input{accent-color:#fff;width:16px;height:16px;margin:0}
.pvbar__acts{display:flex;gap:10px;flex-wrap:wrap}
.pvbar__m{display:none}

.seg--dark{border-color:rgba(255,255,255,.32)}
.seg--dark .seg__i{border-right-color:rgba(255,255,255,.32);color:rgba(255,255,255,.8);padding:8px 16px}
.seg--dark .seg__i:hover{color:#fff}
.seg--dark .seg__i.is-active{background:#fff;color:var(--ink)}
.seg__i:focus-visible,.pvbar__check input:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* из чего собран вид: опубликованное + черновики + то, что на проверке */
.pvsum{
  flex:none;display:flex;gap:10px 26px;flex-wrap:wrap;align-items:center;
  padding:10px var(--pad);background:var(--paper);border-bottom:1px solid var(--line);
  font-size:13px;color:var(--ink-2);
}
.pvsum__i{display:inline-flex;align-items:center;gap:10px}

.pvstage{flex:1;min-height:0;display:flex;justify-content:center}
.pvframe{display:block;width:100%;height:100%;border:0;background:var(--paper)}
/* телефон: рамка сужается по-настоящему, медиазапросы внутри срабатывают */
.pvstage.is-phone{padding:24px 16px;overflow:auto}
.pvstage.is-phone .pvframe{
  width:392px;max-width:100%;height:min(846px,100%);flex:none;
  border:1px solid var(--line-2);box-shadow:0 18px 50px rgba(0,0,0,.14);
}

.pvhint{
  position:fixed;left:50%;bottom:24px;z-index:200;transform:translate(-50%,12px);
  max-width:calc(100% - 32px);padding:12px 18px;background:var(--ink);color:#fff;
  font-size:13px;line-height:1.45;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
}
.pvhint.is-on{opacity:1;transform:translate(-50%,0)}

/* Разметка изменений внутри рамки. Без pv-on страница — ровно публичная */
.pvlabel,.pv .pvonly{display:none}
.pv-on .pvlabel{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;
  margin-bottom:18px;font-size:13px;color:var(--ink-2);line-height:1.45;
}
.pv-on .pvonly{display:block}
.pv-on .grid .pvonly{display:flex}
.pv-on .pvchg,.pv-on .block.pvonly{outline:2px dashed var(--ink);outline-offset:14px}
.pv-on .panel.pvchg{outline-offset:6px}
.pvnew{background:none;color:inherit}
.pv-on .pvnew{background:var(--ph-2);padding:0 3px}
.pv-on .pvfuture{opacity:.55}
.pvempty{
  padding:26px;border:1px dashed var(--line-2);background:var(--paper-2);
  font-size:14px;color:var(--mute);line-height:1.55;
}
.pvempty p{margin-bottom:8px}
.pvempty--sm{padding:12px 14px;font-size:13px}

/* подпись уходит раньше всего: иначе на ноутбуке полоса ломается в две
   строки и съедает высоту, которая нужна самой карточке */
@media(max-width:1440px){
  .pvbar__s{display:none}
}
@media(max-width:1000px){
  .pvbar{padding:12px 20px}
  .pvsum{padding:10px 20px}
}
/* на телефоне переключатель устройства бессмыслен — экран и так узкий */
@media(max-width:760px){
  .pvbar{gap:10px 16px}
  .pvbar__device{display:none}
  .pvbar__info{flex:1 1 auto}
  .pvbar__acts{flex:1 1 100%}
  .pvbar__acts .btn{flex:1;padding:0 10px;white-space:nowrap}
  /* «Отправить на проверку» в пол-экрана не влезает и ломается на две строки */
  .pvbar__x{display:none}
  .pvbar__m{display:inline}
  /* строка статусов в одну линию с прокруткой: столбиком она отъедает
   * четверть экрана у самой карточки */
  .pvsum{flex-wrap:nowrap;overflow-x:auto;gap:18px;font-size:12px;white-space:nowrap;scrollbar-width:none}
  .pvsum::-webkit-scrollbar{display:none}
  .pvsum__i{flex:none}
  .pv-on .pvchg,.pv-on .block.pvonly{outline-offset:8px}
}

/* ---------- ссылки на мессенджеры и соцсети: тип из списка + ссылка ---------- */
.linkrow__type{flex:0 0 200px!important}
.lksite{max-width:420px}
.hourrow input:disabled{color:var(--mute);background:var(--paper-2)}

/* ---------- заявка на доступ в кабинет ---------- */
.reqshop{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:0 14px}
.reqshop+.reqshop{padding-top:14px;border-top:1px solid var(--line)}
.reqadd{margin:0 0 8px}
.reqgap{margin-top:22px}
.lkauth .sel,.lkform .sel{height:46px}

@media(max-width:760px){
  .linkrow__type{flex-basis:130px!important}
  .reqshop{grid-template-columns:minmax(0,1fr) 96px}
}

/* ---------- видео в кабинете: только загрузка файлом ---------- */
.vidrow{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vidrow__img{position:relative;aspect-ratio:16/9}
.vidrow__n{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.vidrow__m{font-size:13px;color:var(--mute);margin-top:4px}
.vidrow__side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.progress{height:4px;background:var(--line);margin-top:12px;max-width:420px}
.progress__bar{display:block;height:100%;background:var(--ink)}

@media(max-width:760px){
  .vidrow{grid-template-columns:120px minmax(0,1fr);gap:14px 16px}
  .vidrow__side{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}
}

/* ---------- переключатель магазинов (одна учётная запись — несколько карточек) ---------- */
.lkswitch{position:relative}
.lkswitch__btn{display:block;list-style:none;cursor:pointer;padding-right:22px;position:relative}
.lkswitch__btn::-webkit-details-marker{display:none}
.lkswitch__btn::after{content:"";position:absolute;right:2px;top:6px;width:7px;height:7px;
  border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg)}
.lkswitch[open] .lkswitch__btn::after{top:10px;transform:rotate(-135deg)}
.lkswitch__list{position:absolute;left:-12px;right:-12px;bottom:calc(100% + 12px);z-index:5;
  background:var(--paper);border:1px solid var(--line-2);box-shadow:0 12px 30px rgba(0,0,0,.1);padding:8px}
.lkswitch__t{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding:6px 8px 8px}
.lkswitch__i{display:block;padding:9px 8px;font-size:14px}
.lkswitch__i small{display:block;font-size:12px;color:var(--mute);margin-top:2px}
.lkswitch__i:hover{background:var(--paper-2)}
.lkswitch__i.is-current{background:var(--ink);color:#fff}
.lkswitch__i.is-current small{color:rgba(255,255,255,.7)}
@media(max-width:1000px){
  .lkswitch__btn{padding-right:18px}
  .lkswitch__list{left:auto;right:0;width:260px;bottom:auto;top:calc(100% + 8px);text-align:left}
}

/* ---------- категории акции: несколько из рубрикатора ---------- */
.catpick{border:0;padding:0;margin:0 0 16px;min-width:0}
.catpick__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;
  border:1px solid var(--line-2);padding:14px 16px}
.catpick .check{margin-top:6px;color:var(--ink-2);font-size:14px}
@media(max-width:760px){.catpick__list{grid-template-columns:1fr}}
.alert__acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* ---------- журнал изменений: записи сгруппированы по отправкам ---------- */
.loggroup{border:1px solid var(--line);margin-bottom:20px;background:var(--paper)}
.loggroup__head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:16px 20px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.loggroup__t{font-size:15px;font-weight:600;letter-spacing:var(--tr-h3)}
.loggroup__m{font-size:12px;color:var(--mute);margin-top:3px}
.loggroup__c{padding:14px 20px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6;color:var(--ink-2);border-left:3px solid var(--ink)}
.loggroup .logrow{grid-template-columns:150px minmax(0,1fr);padding:14px 20px;border-top:0}
.loggroup .logrow:last-child{border-bottom:0}
.logrow__s{display:inline-block;min-width:118px;margin-right:12px;font-size:12px;letter-spacing:.03em;color:var(--mute)}
@media(max-width:760px){
  .loggroup__head,.loggroup__c{padding-left:16px;padding-right:16px}
  .loggroup .logrow{grid-template-columns:1fr;padding:14px 16px}
  .logrow__s{display:block;min-width:0;margin:0 0 2px}
}
.logrow[hidden],.loggroup[hidden]{display:none}

/* ---------- аккаунт и вход ---------- */
.lkpass{max-width:calc(50% - 14px)}
.devrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.devrow:first-of-type{border-top:1px solid var(--line)}
.devrow__n{font-size:15px;font-weight:500}
.devrow__m{font-size:13px;color:var(--mute);margin-top:3px}
@media(max-width:760px){
  .lkpass{max-width:none}
  .devrow{align-items:flex-start}
}

/* ---------- новые состояния: блокировка входа, загрузка и ошибка фото ---------- */
.is-locked input:disabled{background:var(--paper-2);color:var(--mute)}
.btn.is-disabled{opacity:.35;pointer-events:none}
.shot__load{position:absolute;left:12px;right:12px;bottom:12px;font-size:12px;color:var(--ink-2)}
.shot__load .progress{margin:0 0 6px;background:var(--paper)}
.shot__img--err{display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;
  border:1px dashed var(--ink);background:var(--paper);font-size:12px;line-height:1.45;color:var(--ink-2)}

/* п. 9.4 — крупные области нажатия на мобильных: текстовые действия кабинета
   визуально остаются ссылками, но зона нажатия расширяется до ~44 px */
@media(max-width:760px){
  .shot__act,.addline,.lkauth__mini,.lkside__links a{position:relative}
  .shot__act::after,.addline::after,.lkauth__mini::after,.lkside__links a::after{
    content:"";position:absolute;left:-8px;right:-8px;top:-14px;bottom:-14px
  }
}

/* ---------- вход без прокрутки: всё в один экран ----------
   логотип и ссылка на сайт — сверху, форма — по центру,
   заявка на доступ и аренда — короткими строками снизу */
.lkauth--fit{height:100vh;min-height:600px}
.lkauth--fit .lkauth__side{flex-direction:column;align-items:stretch;justify-content:space-between;gap:24px;padding:28px var(--pad)}
.lkauth__top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lkauth--fit .lkauth__logo{margin-bottom:0}
.lkauth--fit .lkauth__logo .logo__img{height:48px;width:auto}
.lkauth--fit .lkauth__in{margin:0 auto}
.lkauth--fit .lkauth__lead{margin-bottom:22px}
.lkauth--fit .lkauth__in .alert{margin:-4px 0 18px}
.lkauth__bottom{max-width:400px;width:100%;margin:0 auto;padding-top:16px;border-top:1px solid var(--line);
  font-size:13px;line-height:1.6;color:var(--mute)}
.lkauth__bottom p+p{margin-top:4px}
.lkauth__bottom a{color:var(--ink-2);border-bottom:1px solid var(--line-2)}
.lkauth__bottom a:hover{color:var(--ink);border-color:var(--ink)}
@media(max-width:1000px){
  .lkauth--fit{height:auto;min-height:100vh}
}
@media(max-width:760px){
  .lkauth--fit .lkauth__side{padding:20px;gap:32px}
  .lkauth--fit .lkauth__logo .logo__img{height:38px}
}
/* невысокие экраны ноутбуков: поджимаем вертикальные отступы, чтобы
   экран блокировки с сообщением тоже влезал без прокрутки */
@media(min-width:1001px) and (max-height:760px){
  .lkauth--fit .lkauth__side{padding-top:18px;padding-bottom:18px;gap:14px}
  .lkauth--fit .lkauth__lead{margin:8px 0 16px}
  .lkauth--fit .fld{margin-bottom:12px}
  .lkauth--fit .lkauth__in .alert{padding:10px 14px;margin:-4px 0 14px}
  .lkauth--fit .lkauth__row{margin-top:12px}
  .lkauth__bottom{padding-top:12px}
}

/* ---------- заявка на доступ в один экран: форма шире, поля в две колонки,
   капча рядом с кнопкой отправки ---------- */
.lkauth__in--wide{max-width:520px}
.lkauth__bottom--wide{max-width:520px}
.reqgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-top:14px}
.reqgrid__wide{grid-column:1/-1}
.reqgrid .fld{margin-bottom:12px}
.lkauth--fit .reqshop .fld{margin-bottom:6px}
.lkauth--fit .reqadd{margin:0}
.lkauth--fit .check{margin-top:4px}
.reqsend{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}
.reqsend .captcha{flex:0 1 300px;height:66px;margin:0}
@media(max-width:760px){
  .reqgrid{grid-template-columns:1fr}
  .reqsend{flex-direction:column;align-items:stretch}
  .reqsend .captcha{flex-basis:auto;height:78px}
}

/* журнал и аккаунт отделены линией, а не подзаголовком «Прочее» */
.lknav__sep{border:0;border-top:1px solid var(--line);margin:14px 12px}
@media(max-width:1000px){.lknav__sep{display:none}}

/* название магазина и место — каждое на своей строке: в переключателе это span, и без этого «Секция» прилипала к названию */
.lkswitch__btn .lkside__name,.lkswitch__btn .lkside__place{display:block}
.lkswitch__btn .lkside__place{white-space:nowrap}

/* ---------- инструкция для арендаторов (lk-help) ---------- */
.helptoc{border:1px solid var(--line);padding:22px 24px;margin-bottom:44px}
.helptoc .lknav__t{padding:0}
.helptoc ol{columns:2;column-gap:32px;list-style:none;counter-reset:toc}
.helptoc li{counter-increment:toc;break-inside:avoid;padding:6px 0;font-size:14px}
.helptoc li::before{content:counter(toc) ". ";color:var(--mute)}
.helptoc a{border-bottom:1px solid var(--line-2)}
.helptoc a:hover{border-color:var(--ink)}
.helpsec{scroll-margin-top:24px}
.helptext{font-size:15px;line-height:1.6;color:var(--ink-2);max-width:68ch}
.helpsec .rows{margin-top:8px}
.helpsec .rows .status{white-space:nowrap}
@media(max-width:760px){.helptoc ol{columns:1}}
@media(max-width:1000px){.helpsec{scroll-margin-top:164px}}

/* видео: два способа добавления */
.vidadd__h{font-size:13px;font-weight:600;letter-spacing:.04em;margin:0 0 12px}
.vidadd__h:not(:first-of-type){margin-top:28px}
.vidadd__row{max-width:720px}
.vidadd__btn{margin-top:25px;height:46px;flex:none}
.vidrow+.vidrow{border-top:0}
@media(max-width:760px){.vidadd__row{flex-direction:column;align-items:stretch}.vidadd__row .fld{width:100%}.vidadd__btn{margin-top:0;align-self:flex-start}}
.vidadd__more{font-size:13px;line-height:1.55;color:var(--ink-2);margin-top:14px;max-width:720px}
.vidadd__row input:disabled,.vidadd__btn:disabled{opacity:.45;cursor:not-allowed}
.formbar__err,.formbar__ask{flex-basis:100%;font-size:13px;color:var(--ink);font-weight:500}
.formbar__ask .link{margin-left:10px}
.formbar__ask button.link{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--mute)}

/* инструкция без входа: шапка вместо меню кабинета */
.is-guest .lkshell{display:block}
.lkguest{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px var(--pad);border-bottom:1px solid var(--line);background:var(--paper-2)}
.lkguest__logo{display:flex}
.lkguest__logo .logo__img{height:48px;width:auto}
.lkguest__links{display:flex;align-items:center;gap:20px}
.is-guest .lkmain{margin:0 auto}
@media(max-width:560px){.lkguest__logo .logo__img{height:38px}.lkguest__links .lkauth__mini{display:none}}
@media(max-width:1000px){.is-guest .helpsec{scroll-margin-top:24px}}
/* схема этажей: название арендатора в секции и ориентиры */
.pl-code{font-family:var(--sans);font-size:6.5px;fill:#6b6660}
.pl-name{font-family:var(--sans);font-size:7.5px;font-weight:600;fill:#2b2723}
.pl-mark circle{fill:#6b6660}
.pl-mark__g{fill:#fff}
.pl-mark__s{fill:none;stroke:#fff;stroke-width:1.2}
.pl-mark__t{font-family:var(--sans);font-size:5.2px;font-weight:700}
.legend li[hidden]{display:none}
.bigplan.is-real{aspect-ratio:var(--plan-ar,913/697)}
.pl-name--real{font-size:10.5px}
.pl-code--real{font-size:8px}
.pl-txt--real{font-size:9.5px}
.pl-outline{fill:#fff;stroke:#c4bfb9;stroke-width:1.5}
.pl-room--blank{fill:#ecebe8;stroke:#d6d2cd}
.legend__mark{width:18px;height:18px}
.pl-mark__box{fill:#fff;stroke:#c4bfb9}
.legend__mark .pl-mark__g,.bigplan .pl-mark .pl-mark__g{fill:#2b2723}
.legend__mark .pl-mark__s,.bigplan .pl-mark .pl-mark__s{fill:none;stroke:#2b2723;stroke-width:1.3}
.legend__mark .pl-mark__t,.bigplan .pl-mark .pl-mark__t{font-size:7px;font-weight:700;fill:#2b2723}
