/* Тук Тук — базовые стили. Гамма и типографика — по утверждённым макетам. */

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: 'Manrope', 'Noto Sans Armenian', 'Helvetica Neue', Arial, system-ui, sans-serif;
  background: #fff;
  color: #0D162E;
  font-size: 14px;
  line-height: 1.45;
}
a { color: #0F1288; text-decoration: none; }
a:hover { color: #0047B3; }
h1, h2 { margin: 0; }
input, button { font-family: inherit; }

.wrap { max-width: 1440px; margin: 0 auto; padding: 0 24px; }  /* было 1200 — Айк попросил шире, почти на весь экран */
.muted { color: #737A8E; }
.small { font-size: 12.5px; }

/* «Назад» в шапке — только на телефоне и только на внутренних страницах: с иконки на домашнем экране кнопок браузера нет */
.back-row { display: flex; align-items: center; gap: 10px; padding-top: 14px; min-height: 0; }
.back-row .crumbs { margin: 0; }
.back-row + .wrap.cab, .back-row + .wrap { padding-top: 0; }
.m-back { display: none; width: 36px; height: 36px; border: 0; border-radius: 10px; background: #F3F5FA; color: #0D162E; align-items: center; justify-content: center; flex: none; cursor: pointer; }
.m-back:active { background: #E9EAF8; }
@media (max-width: 700px) { .m-back { display: inline-flex; } }
/* мгновенный отклик на касание: кнопки и карточки чуть «проседают», страница показывает полоску загрузки */
* { -webkit-tap-highlight-color: rgba(21, 24, 168, .12); }
.btn:active, .chip:active, .sb-tab:active, .pw-mi:active, .tabbar a:active, .mh-tile:active { transform: scale(.97); transition: transform .05s; }
/* Подсветку нажатия ставим на само фото, а не на его контейнер: opacity на контейнере создаёт новый слой,
   и в iOS под пальцем в момент касания оказывается другая ссылка — нажатие теряется. */
.lc:active .cg img.on, .card:active, .pros-row:active, .pl-row:active, .pro-card:active { opacity: .85; transition: opacity .05s; }
.nav-bar { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: #1518A8; z-index: 1000; pointer-events: none; opacity: 0; transition: width .4s ease-out, opacity .2s; }
.nav-bar.on { opacity: 1; width: 70%; }
.nav-bar.done { width: 100%; opacity: 0; transition: width .1s, opacity .3s .1s; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 0 20px; border-radius: 8px;
  font-weight: 700; font-size: 15px; border: 0; cursor: pointer;
  background: #1518A8; color: #fff;
}
.btn:hover { background: #0F1288; color: #fff; }
.btn-sm { height: 36px; font-size: 13px; padding: 0 14px; }
.btn-line { background: #E9EAF8; color: #0F1288; }
.btn-line:hover { background: #D6E6FF; color: #0F1288; }
.btn-white { background: #fff; color: #1B3A6B; }
.btn-white:hover { background: #F0F4FA; color: #1B3A6B; }

/* ===== Шапка ===== */
.site-header { border-bottom: 1px solid #D0D8E9; background: #fff; }
.header-row { display: flex; align-items: center; gap: 14px; height: 64px; }
.logo { display: flex; align-items: center; gap: 9px; flex: none; }
.logo-text { font-weight: 900; font-size: 22px; color: #1518A8; letter-spacing: -.4px; }
.logo-tld { color: #9AA4B5; font-weight: 700; font-size: 12px; }
.city-chip {
  display: flex; align-items: center; gap: 5px; flex: none;
  color: #0D162E; font-weight: 700; font-size: 13px;
  border: 1px solid #D0D8E9; border-radius: 8px; padding: 7px 10px;
  background: #fff; cursor: pointer;
}
.caret, .lang-caret { color: #9AA4B5; }
.main-nav { display: flex; align-items: center; gap: 14px; flex: 1; overflow-x: auto; }
.main-nav a { color: #0D162E; font-weight: 700; font-size: 14px; white-space: nowrap; }
.main-nav a:hover { color: #0F1288; }
.header-icons { display: flex; align-items: center; gap: 13px; color: #737A8E; flex: none; }
.header-icons a { color: #737A8E; display: flex; }
.header-icons a:hover { color: #0F1288; }
.login-link { font-weight: 700; font-size: 13.5px; flex: none; }

/* Выпадающий список языков */
.lang { position: relative; flex: none; }
.lang summary {
  list-style: none; display: flex; align-items: center; gap: 5px;
  font-size: 12.5px; font-weight: 700; color: #0D162E; cursor: pointer;
  padding: 7px 9px; border-radius: 8px;
}
.lang summary::-webkit-details-marker { display: none; }
.lang[open] summary { background: #E9EAF8; color: #0F1288; }
.lang-menu {
  position: absolute; top: calc(100% + 6px); inset-inline-end: 0; z-index: 50;
  width: 240px; background: #fff; border: 1px solid #D0D8E9; border-radius: 12px;
  box-shadow: 0 10px 28px rgba(20, 30, 50, .16); padding: 6px 0; overflow: hidden;
}
.lang-up .lang-menu { top: auto; bottom: calc(100% + 6px); }
.lang-item {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 10px 16px; font-size: 14px; font-weight: 700; color: #0D162E;
  background: none; border: 0; cursor: pointer; text-align: start;
}
.lang-item:hover { background: #F4F5FC; }
.lang-item.on { background: #E9EAF8; color: #0F1288; }

/* ===== Секции ===== */
.sec { padding: 34px 0; }
.sec-alt { background: #F3F5FA; }
.sec-banner { padding: 6px 0 10px; }
.sec-seo { border-top: 1px solid #EAEEF6; }
h2 { font-size: 24px; font-weight: 900; margin-bottom: 18px; }
.h2-sm { font-size: 20px; }
.sec-head { display: flex; justify-content: space-between; align-items: baseline; }
.more-link { font-size: 13px; font-weight: 700; }

/* ===== Хиро и поиск ===== */
/* Герой главной: фотография Еревана во всю ширину, поиск поверх неё (одобрено Айком 18.09.2026) */
/* без overflow: hidden — выпадающие меню строки поиска выходят ниже блока, и их низ срезался */
.hero { position: relative; z-index: 5; background: #1B2436; padding: 46px 0 40px; min-height: 430px; display: flex; align-items: center; }   /* выше карточек ниже (у них z-index до 3), чтобы выпадающие меню не уходили под них */
.hero-bg, .hero-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* фото сумеречное и само по себе тёмное — затемняем слабо, иначе края уходят в чёрную полосу */
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 14, 32, .34), rgba(8, 14, 32, .06) 48%, rgba(8, 14, 32, .26)); }
.hero-body { position: relative; z-index: 1; width: 100%; }
.hero h1 { font-size: 34px; font-weight: 900; letter-spacing: -.5px; margin-bottom: 22px; color: #fff; text-shadow: 0 2px 16px rgba(0, 0, 0, .45); }
.hero .hero-pin { background: rgba(13, 22, 46, .52); border-color: rgba(255, 255, 255, .3); color: #fff; }
.hero .hero-pin:hover { border-color: #fff; color: #fff; }
.hero .hero-pin svg { fill: #fff; }
.hero .wx { background: rgba(13, 22, 46, .52); border-color: rgba(255, 255, 255, .3); color: #fff; }
.hero .wx i { color: rgba(255, 255, 255, .85); }
/* цвета вкладок заданы в основном блоке .sb-tab — здесь их не переопределяем,
   иначе более сильный селектор .hero .sb-tab перебьёт вид пилюль */
.chips { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.chip {
  display: inline-flex; align-items: center; height: 38px; padding: 0 16px;
  border: 1px solid #D0D8E9; border-radius: 19px;
  font-size: 13.5px; font-weight: 700; color: #0D162E; background: #fff; cursor: pointer;
}
.chip:hover { border-color: #1518A8; color: #0F1288; }
.chip.on { background: #1518A8; border-color: #1518A8; color: #fff; }
.search-bar {
  display: flex; gap: 12px; background: #fff; border: 1px solid #D0D8E9;
  border-radius: 16px; padding: 12px; box-shadow: 0 8px 24px rgba(20, 30, 50, .07);
}
.search-input { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 12px; color: #9AA4B5; }
.search-input input { flex: 1; border: 0; outline: none; font-size: 15px; color: #0D162E; background: none; }
.search-btn { padding: 0 34px; }

/* ===== Баннер ===== */
.promo-banner {
  background: linear-gradient(100deg, #1B3A6B, #2C5AA8); border-radius: 12px;
  padding: 26px 32px; display: flex; align-items: center; justify-content: space-between;
  gap: 20px; color: #fff;
}
.promo-label { font-size: 11px; opacity: .65; margin-bottom: 6px; }
.promo-title { font-size: 22px; font-weight: 700; }
.promo-sub { opacity: .8; margin-top: 4px; font-size: 13px; }

/* ===== Карточки ===== */
/* ===== Лента новостроек: листается вбок стрелками и пальцем ===== */
.rail-wrap { position: relative; }
/* именно flex с жёсткой шириной: в grid с minmax(0,…) карточки сжимались
   под ширину экрана и лента переставала прокручиваться */
.rail {
  display: flex; gap: 20px; overflow-x: auto; scroll-behavior: smooth;
  scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;
}
.rail::-webkit-scrollbar { display: none; }
.rail-item { flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; }
.rail-arrow {
  position: absolute; top: 84px; z-index: 3; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid #D0D8E9; background: #fff; color: #0D162E; font-size: 22px; line-height: 1;
  cursor: pointer; box-shadow: 0 4px 14px rgba(13, 22, 46, .16); display: flex; align-items: center; justify-content: center;
  transition: opacity .15s;
}
.rail-arrow:hover { border-color: #1518A8; color: #1518A8; }
.rail-prev { inset-inline-start: -18px; }
.rail-next { inset-inline-end: -18px; }
.rail-arrow[disabled] { opacity: 0; pointer-events: none; }
/* ширину карточки задаём самой карточке (.rail-item), а не ленте:
   у ленты теперь flex, и grid-auto-columns на неё не действует */
@media (max-width: 1000px) { .rail-item { flex-basis: calc((100% - 20px) / 2); } .rail-arrow { display: none; } }
@media (max-width: 700px) { .rail { gap: 12px; } .rail-item { flex-basis: 74%; } }

/* ===== Рекламное место в ленте объявлений (как у Циана) ===== */
.ad-slot {
  grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr;   /* фото — ровно левая половина */
  background: #fff; border: 1px solid #D0D8E9; border-radius: 14px; overflow: hidden;
  color: #0D162E; text-decoration: none; min-height: 232px;
}
.ad-slot:hover .ad-title { color: #1518A8; }
.ad-pic { background: linear-gradient(135deg, #DDE5F1, #C3CFE2); }
.ad-pic img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.ad-text { padding: 22px 26px 22px 48px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; }
.ad-label { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8A5A0A; background: #FFF6E3; border-radius: 5px; padding: 2px 7px; }
.ad-title { font-size: 21px; font-weight: 900; line-height: 1.2; }
.ad-sub { font-size: 13.5px; color: #5B6B8A; }
.ad-btn { margin-top: 8px; }
.ad-legal { font-size: 11px; color: #9AA4B5; margin-top: 4px; }
@media (max-width: 700px) {
  .ad-slot { grid-template-columns: 1fr; min-height: 0; }
  .ad-pic { height: 150px; }
  .ad-text { padding: 14px 16px 18px; }
  .ad-title { font-size: 17px; }
}

/* ===== Баннер во всю ширину экрана ===== */
.sec-wide { position: relative; }
.bw { position: relative; display: block; min-height: 300px; color: #fff; text-decoration: none; overflow: hidden; background: #1B2436; }
.bw-bg, .bw-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.bw-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 14, 32, .72), rgba(8, 14, 32, .34) 58%, rgba(8, 14, 32, .16)); }
.bw-body { position: relative; z-index: 1; padding: 46px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
/* только подложка внутри баннера: сам баннер при оформлении «подложка» получает тот же класс */
.bw-body > .bw-plate { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
/* баннер — ссылка, а общее правило a:hover красит текст в синий и он тонет в фото.
   Поэтому цвет держим白ым явно, а на наведение отвечают фото и кнопка. */
.bw, .bw:hover, .bw:hover .bw-title, .bw:hover .bw-sub { color: #fff; }
.bw .bw-shade { transition: background .18s; }
.bw-btn { transition: background .18s, box-shadow .18s; }
.bw:hover .bw-btn { background: #0F1288; box-shadow: 0 6px 18px rgba(8, 14, 32, .4); }

/* оформление 1 — текст прямо на фото: при наведении снимок чуть темнеет */
.bw-plain:hover .bw-shade { background: linear-gradient(90deg, rgba(8, 14, 32, .82), rgba(8, 14, 32, .48) 58%, rgba(8, 14, 32, .28)); }

/* оформление 2 — подложка под текстом */
.bw.bw-plate .bw-plate {
  background: rgba(10, 16, 34, .52); backdrop-filter: blur(6px); border-radius: 16px;
  padding: 20px 22px; transition: background .18s;
}
.bw.bw-plate:hover .bw-plate { background: rgba(10, 16, 34, .72); }
.bw.bw-plate .bw-shade { background: linear-gradient(90deg, rgba(8, 14, 32, .42), rgba(8, 14, 32, .18) 58%, rgba(8, 14, 32, .1)); }

/* оформление 3 — плотная шторка слева */
.bw-curtain .bw-shade { background: linear-gradient(90deg, rgba(8, 14, 32, .88) 0%, rgba(8, 14, 32, .78) 34%, rgba(8, 14, 32, .26) 62%, rgba(8, 14, 32, .12) 100%); }
.bw-curtain:hover .bw-shade { background: linear-gradient(90deg, rgba(8, 14, 32, .94) 0%, rgba(8, 14, 32, .86) 34%, rgba(8, 14, 32, .34) 62%, rgba(8, 14, 32, .16) 100%); }
.bw-label { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: rgba(255, 255, 255, .22); border-radius: 5px; padding: 3px 8px; }
.bw-title { font-size: 28px; font-weight: 900; line-height: 1.15; max-width: 22ch; text-shadow: 0 2px 14px rgba(0, 0, 0, .4); }
.bw-sub { font-size: 15px; color: rgba(255, 255, 255, .9); max-width: 46ch; }
.bw-btn { margin-top: 10px; }
/* полоса между рядами новостроек: во всю ширину экрана, текст по полям страницы */
.jk-bw { margin: 26px 0; }
.jk-bw .bw { min-height: 290px; }
@media (max-width: 700px) {
  .bw { min-height: 0; }
  .bw-body { padding: 26px 18px; }
  .bw-title { font-size: 21px; }
  .bw-sub { font-size: 13.5px; }
  .bw-shade { background: linear-gradient(180deg, rgba(8, 14, 32, .5), rgba(8, 14, 32, .66)); }
}

/* ===== Окно «сайт в разработке» ===== */
.dev-notice { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 18px; }
.dev-backdrop { position: absolute; inset: 0; background: rgba(8, 14, 32, .62); backdrop-filter: blur(3px); }
.dev-box {
  position: relative; display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 18px;
  background: #fff; border-radius: 18px; padding: 26px 30px 28px; max-width: 620px; width: 100%;
  box-shadow: 0 24px 60px rgba(8, 14, 32, .34);
}
.dev-cat { width: 148px; height: 176px; color: #1518A8; align-self: center; }
.dev-body { min-width: 0; }
.dev-tag { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8A5A0A; background: #FFF6E3; border-radius: 5px; padding: 3px 8px; }
.dev-title { font-size: 23px; font-weight: 900; margin: 8px 0 10px; }
.dev-text { font-size: 14.5px; line-height: 1.55; color: #3C4660; margin: 0 0 10px; }
.dev-muted { color: #737A8E; font-size: 13.5px; }
.dev-ok { margin-top: 6px; }
@media (max-width: 700px) {
  .dev-box { grid-template-columns: 1fr; padding: 22px 20px 24px; text-align: start; }
  .dev-cat { width: 96px; height: 114px; }
  .dev-title { font-size: 20px; }
}

.grid { display: grid; gap: 20px; }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-4 + .grid-4 { margin-top: 20px; }
.card { background: #fff; border: 1px solid #D0D8E9; border-radius: 10px; overflow: hidden; }
.photo {
  height: 168px; background: linear-gradient(135deg, #DDE5F1, #C3CFE2);
  display: flex; align-items: center; justify-content: center;
}
.photo-sm { height: 132px; }
.photo-fresh { height: 150px; }
.card-body { padding: 14px; }
.price-row { display: flex; justify-content: space-between; align-items: center; }
.price { font-size: 20px; font-weight: 700; }
.price-md { font-size: 16px; }
.heart { background: none; border: 0; cursor: pointer; display: flex; padding: 2px; }
.heart:hover svg { stroke: #1518A8; }
.usd { color: #737A8E; font-size: 12px; }
.params { margin-top: 8px; font-weight: 700; font-size: 13.5px; }
.street { color: #737A8E; margin-top: 3px; font-size: 13px; }
.tag {
  display: inline-block; background: #F1F4F9; border-radius: 6px;
  padding: 3px 8px; font-size: 12px; color: #4A5568; margin-top: 10px;
}
.jk-name { font-weight: 700; }
.jk-meta { display: flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 12.5px; }
.jk-price { margin-top: 8px; font-weight: 700; }
.cta-card {
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  gap: 10px; padding: 20px; background: #F4F5FC; border-color: #D0DEF5;
}
.cta-title { font-weight: 700; font-size: 16px; line-height: 1.35; }

/* ===== Подписка ===== */
.subscribe-card {
  background: #F3F5FA; border: 1px solid #D0D8E9; border-radius: 12px;
  padding: 24px 28px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.subscribe-card > div:first-child { flex: 1; min-width: 220px; }
.sub-title { font-weight: 700; font-size: 17px; }
.sub-form { display: flex; gap: 10px; flex-wrap: wrap; }
.sub-form input {
  width: 280px; max-width: 100%; height: 44px; border: 1px solid #D0D8E9;
  border-radius: 8px; background: #fff; padding: 0 14px; font-size: 14px; outline: none;
}

/* ===== SEO-колонки и подвал ===== */
.footer-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.footer-cols a { display: block; font-size: 13px; margin-bottom: 9px; }
.footer-h { font-weight: 700; margin-bottom: 12px; font-size: 13.5px; }
.site-footer { background: #F3F5FA; border-top: 1px solid #D0D8E9; padding: 40px 0 30px; margin-top: 20px; }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  margin-top: 30px; padding-top: 18px; border-top: 1px solid #E1E6EF; flex-wrap: wrap;
}
.footer-legal { color: #737A8E; font-size: 12px; max-width: 760px; }
.site-footer .lang summary { border: 1px solid #D0D8E9; background: #fff; }

/* ===== Фото в карточках ===== */
.photo img, .hphoto img, .gphoto img, .thumb img, .cab-photo img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.gphoto img { border-radius: 12px; }
.thumb { overflow: hidden; }

/* ===== Вход ===== */
.auth-wrap { min-height: 60vh; display: flex; align-items: center; justify-content: center; padding: 40px 20px; background: #F3F5FA; }
.auth-card { width: 400px; max-width: 100%; padding: 28px; border-radius: 12px; }
.auth-logo { display: flex; align-items: center; gap: 9px; justify-content: center; margin-bottom: 8px; }
.auth-title { text-align: center; font-size: 20px; font-weight: 900; margin: 14px 0 6px; }
.auth-form { margin-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.phone-row { display: flex; gap: 10px; align-items: center; }
.phone-prefix { font-weight: 900; font-size: 15px; }
.phone-row .inp { flex: 1; height: 46px; font-size: 15px; }
.code-inp { height: 52px; font-size: 24px; font-weight: 900; text-align: center; letter-spacing: 8px; }
.form-error { color: #C22F2F; font-size: 13px; font-weight: 700; }
.legal-note { margin-top: 16px; line-height: 1.6; }
.dev-code { background: #FDF3E1; color: #8A5A0A; border-radius: 9px; padding: 10px 14px; font-size: 13px; margin-top: 14px; }
.logout-form { display: flex; }
.logout-btn { background: none; border: 0; color: #737A8E; cursor: pointer; display: flex; padding: 4px; }
.logout-btn:hover { color: #C22F2F; }

/* ===== Кабинет ===== */
.cab { padding-top: 24px; padding-bottom: 40px; }
.cab-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.cab-head h1 { font-size: 24px; font-weight: 900; }
.cab-list { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.cab-row { display: flex; align-items: center; gap: 16px; padding: 14px 18px; flex-wrap: wrap; }
.cab-photo {
  width: 96px; height: 70px; border-radius: 8px; flex: none; overflow: hidden;
  background: linear-gradient(135deg, #DDE5F1, #C3CFE2);
  display: flex; align-items: center; justify-content: center;
}
.cab-info { flex: 1; min-width: 200px; }
.tag-amber { background: #FDF3E1; color: #8A5A0A; }

/* ===== Подача ===== */
.sub { padding-top: 24px; padding-bottom: 40px; max-width: 900px; }
.sub-h1 { font-size: 24px; font-weight: 900; }
.sub-form-page { display: flex; flex-direction: column; gap: 16px; margin-top: 18px; }
.sub-step { display: flex; align-items: center; gap: 10px; font-weight: 900; font-size: 15px; margin-bottom: 14px; }
.snum {
  width: 26px; height: 26px; border-radius: 50%; background: #1518A8; color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex: none;
}
.sub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.sub-grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.inp-area { height: auto; padding: 10px 12px; resize: vertical; font-family: inherit; }
.file-inp { font-size: 13px; }
.sub-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.form-error.card { padding: 14px 18px; border-color: #E8C6C6; }

/* ===== Готово ===== */
.done-card { width: 480px; text-align: center; }
.done-ico { width: 72px; height: 72px; border-radius: 50%; background: #EAF7E3; display: flex; align-items: center; justify-content: center; margin: 0 auto 6px; }
.done-steps { display: flex; justify-content: center; gap: 22px; margin: 22px 0; flex-wrap: wrap; }
.st { font-size: 13px; font-weight: 700; color: #737A8E; }
.st.done { color: #34AC0A; }
.st.on { color: #8A5A0A; }
.done-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ===== ЖК и ипотека ===== */
.hero-sm { padding: 34px 0 26px; }
.hero-sm h1 { font-size: 28px; margin-bottom: 6px; }
.jk-head-price { text-align: end; }
.planrow { display: flex; align-items: center; gap: 16px; padding: 13px 0; border-bottom: 1px solid #F0F3F8; flex-wrap: wrap; }
.planrow:last-child { border-bottom: 0; }
.plan-info { flex: 1; min-width: 180px; }
.plan-price { text-align: end; }
.ipo { padding-top: 22px; padding-bottom: 40px; }
.ipo-calc { display: grid; grid-template-columns: minmax(0, 1fr) 360px; overflow: hidden; }
.ipo-left { padding: 24px; border-inline-end: 1px solid #EEF1F6; }
.ipo-right { padding: 24px; background: #F5F8FF; display: flex; flex-direction: column; }
.ipo-monthly { font-size: 30px; font-weight: 900; margin-top: 4px; }
.ipo-rows { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; }
.ipo-rows > div { display: flex; justify-content: space-between; gap: 10px; }
.ipo-tax { margin-top: 16px; background: #EAF7E3; color: #1E6B04; border-radius: 9px; padding: 10px 14px; font-size: 12.5px; }
.bank-stub { height: 76px; display: flex; align-items: center; justify-content: center; color: #8FA0BC; font-weight: 700; }
@media (max-width: 900px) { .ipo-calc { grid-template-columns: 1fr; } .ipo-left { border-inline-end: 0; border-bottom: 1px solid #EEF1F6; } }

/* ===== Избранное и сердечки ===== */
.pos-rel { position: relative; }
.stretched { position: absolute; inset: 0; z-index: 1; }
.mt16 { margin-top: 16px; }
.fav-form { display: flex; position: relative; z-index: 2; }
.listing-card .card-body, .listing-card .photo { position: relative; }
.heart.on svg { fill: #1518A8; stroke: #1518A8; }
.icon-wrap { position: relative; }
.icon-badge {
  position: absolute; top: -7px; inset-inline-end: -9px;
  background: #1518A8; color: #fff; font-size: 10.5px; font-weight: 700;
  min-width: 17px; height: 17px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.fav-btns { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; position: relative; z-index: 2; }
.action-btn {
  display: flex; align-items: center; gap: 6px; background: none; border: 0; cursor: pointer;
  color: #737A8E; font-size: 13px; font-weight: 700; font-family: inherit; padding: 0;
}
.action-btn:hover, .action-btn.fav-on { color: #1518A8; }
.phone-reveal summary { list-style: none; cursor: pointer; }
.phone-reveal summary::-webkit-details-marker { display: none; }
.phone-number { text-align: center; font-size: 20px; font-weight: 900; padding: 12px 0 4px; }

/* ===== Деньги: прайс, кошелёк, продвижение ===== */
.tag-blue { background: #E9EAF8; color: #0F1288; font-weight: 700; }
.green-text { color: #34AC0A; }
.card-accent { border-color: #1518A8; border-width: 2px; }
.card-dark { background: #0D162E; color: #fff; border-color: #0D162E; }
.card-dark .promo-desc, .card-dark .promo-per { color: rgba(255, 255, 255, .75); }
.price-title { font-size: 19px; font-weight: 900; margin-top: 10px; }
.prows-1 .prow { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #F0F3F8; font-size: 13.5px; }
.prows-1 .prow:last-child { border-bottom: 0; }
.promo-name { font-size: 16px; }
.promo-price { font-size: 20px; font-weight: 900; margin-top: 8px; }
.promo-per { font-size: 12.5px; font-weight: 400; color: #737A8E; }
.promo-desc { font-size: 12.5px; color: #737A8E; margin-top: 8px; line-height: 1.55; }
.note-card { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.wallet-head { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.wallet-balance { font-size: 28px; font-weight: 900; }
.wallet-sep { width: 1px; height: 48px; background: #F0F3F8; }
.wallet-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 20px; align-items: start; }
.amount { font-weight: 900; font-size: 15px; margin-inline-start: auto; }
.plus { color: #34AC0A; }
.minus { color: #C22F2F; }
.chips button.chip { cursor: pointer; }
.cab-head-links { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

.promo-list { display: flex; flex-direction: column; gap: 12px; }
.promo-opt { display: flex; gap: 14px; padding: 16px 18px; border: 1.5px solid #D0D8E9; border-radius: 12px; background: #fff; cursor: pointer; }
.promo-opt:hover { border-color: #BFC2EE; }
.promo-opt input { margin-top: 3px; accent-color: #1518A8; }
.promo-opt:has(input:checked) { border-color: #1518A8; background: #F4F5FC; }
.promo-body { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.promo-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.promo-costs { display: block; margin-top: 4px; }
.promo-pay { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.promo-total { text-align: end; }
.chips label.chip { cursor: pointer; gap: 7px; }

/* ===== Программа лояльности ===== */
/* Ступени программы «Знак Тука» — карточка на каждую */
.loy-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.loy-card { border: 1px solid #D0D8E9; border-radius: 12px; padding: 12px 11px; display: flex; flex-direction: column; gap: 6px; min-height: 110px; }
.loy-card.done { background: #F7F8FC; border-color: #E4E8F0; }
.loy-card.now { border-color: #1518A8; box-shadow: 0 0 0 2px #1518A8; }
.loy-card.goal { border-color: #FFC145; background: #FFF6E3; }
.loy-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.loy-card-name { font-size: 13.5px; font-weight: 900; line-height: 1.2; }
.loy-card .medal-lg { width: 24px; height: 24px; }
.loy-here, .loy-done { align-self: flex-start; font-size: 10px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; border-radius: 5px; padding: 2px 6px; }
.loy-here { color: #1518A8; background: #E9EAF8; }
.loy-done { color: #34AC0A; background: #EAF7E3; }
.loy-card-cond { font-size: 11.5px; color: #5B6B8A; line-height: 1.35; margin-top: auto; }
@media (max-width: 700px) { .loy-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.loy-status { margin-top: 18px; padding-top: 16px; border-top: 1px solid #F0F3F8; font-size: 13.5px; }
.loy-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.task-title { flex: 1; }
.loy-bonus { display: flex; align-items: center; gap: 14px; }
.loy-bonus-num { font-size: 32px; font-weight: 900; color: #34AC0A; }
.loy-bonus-note { border-top: 1px solid #F0F3F8; padding-top: 12px; }
.loy-perks { display: flex; flex-direction: column; gap: 12px; }
.loy-perks > div { background: #F4F5FC; border-radius: 9px; padding: 12px 14px; }

/* ===== Админка: справочники (цены) ===== */
.settings-form { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; }
.set-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 0 18px 18px; }
.set-field .flabel { display: block; margin-bottom: 6px; font-size: 12.5px; color: #737A8E; font-weight: 700; }
.set-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.saved-banner { background: #EAF7E3; border-color: #CBE9D4; color: #1E6B04; font-weight: 700; margin-top: 16px; }
@media (max-width: 900px) { .set-grid { grid-template-columns: 1fr 1fr; } }

/* ===== Админка: деньги ===== */
.src-row .bar { height: 8px; border-radius: 4px; background: #E9EAF8; margin-top: 6px; overflow: hidden; max-width: 460px; }
.src-row .bar > div { height: 100%; background: #1518A8; border-radius: 4px; }
.money-date { width: 110px; flex: none; }

@media (max-width: 900px) {
  .wallet-grid, .loy-grid { grid-template-columns: 1fr; }
}

/* ===== Страница продавца ===== */
.seller-head { display: flex; gap: 16px; align-items: center; }
.ava-lg { width: 72px; height: 72px; font-size: 20px; font-weight: 900; }

/* ===== Сравнение и уведомления ===== */
.compare-scroll { overflow-x: auto; }
.ctable { border-collapse: collapse; width: 100%; min-width: 640px; background: #fff; border: 1px solid #D0D8E9; border-radius: 12px; }
.ctable td { padding: 11px 14px; border-top: 1px solid #F0F3F8; font-size: 13.5px; vertical-align: top; min-width: 160px; }
.ctable tr:first-child td { border-top: 0; }
.ct-label { color: #737A8E; font-weight: 700; font-size: 12.5px; min-width: 120px; }
.ct-photo { display: flex; width: 150px; height: 100px; border-radius: 8px; overflow: hidden; background: linear-gradient(135deg, #DDE5F1, #C3CFE2); align-items: center; justify-content: center; }
.ct-photo img { width: 100%; height: 100%; object-fit: cover; }
.ct-title { display: block; font-weight: 700; margin-top: 8px; line-height: 1.3; }
.ct-remove { background: none; border: 0; color: #C22F2F; font-size: 18px; cursor: pointer; padding: 4px 0 0; }
.ct-best { background: #EAF7E3; font-weight: 700; }
.notif-row { align-items: center; }
.notif-new { background: #F4F5FC; }
.notif-ico { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.notif-ok { background: #EAF7E3; color: #34AC0A; }
.notif-warn { background: #FDF3E1; color: #8A5A0A; }
.notif-info { background: #E9EAF8; color: #0F1288; }

/* ===== Чат ===== */
.chat-wrap { max-width: 860px; }
.chat-row { align-items: center; }
.chat-preview { font-size: 13px; margin-top: 4px; }
.chat-unread {
  background: #1518A8; color: #fff; font-size: 11px; font-weight: 700;
  min-width: 20px; height: 20px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center; padding: 0 6px;
}
.chat-box { margin-top: 20px; margin-bottom: 40px; display: flex; flex-direction: column; }
.chat-head { padding: 14px 18px; border-bottom: 1px solid #F0F3F8; }
.chat-head-listing { display: flex; gap: 12px; align-items: center; margin-top: 10px; }
.chat-warn { background: #FDF3E1; border-bottom: 1px solid #F5E3BC; padding: 9px 16px; font-size: 12.5px; color: #8A5A0A; }
.chat-msgs { padding: 18px 16px; display: flex; flex-direction: column; gap: 12px; background: #FAFBFD; min-height: 260px; }
.bubble-row { display: flex; flex-direction: column; align-items: flex-start; }
.bubble-row.mine { align-items: flex-end; }
.bubble { max-width: 70%; padding: 10px 14px; border-radius: 14px; font-size: 14px; line-height: 1.5; background: #F3F5FA; border-end-start-radius: 4px; }
.bubble-row.mine .bubble { background: #1518A8; color: #fff; border-end-start-radius: 14px; border-end-end-radius: 4px; }
.bubble-time { font-size: 11px; margin-top: 4px; }
.chat-send { display: flex; gap: 10px; padding: 12px 16px; border-top: 1px solid #F0F3F8; }
.chat-send .inp { flex: 1; height: 44px; border-radius: 22px; }
.chat-note { padding: 0 16px 12px; }

/* ===== Страница карты ===== */
.map-topbar { border-bottom: 1px solid #D0D8E9; background: #fff; }
.map-topbar-row { display: flex; align-items: center; gap: 14px; padding-top: 12px; padding-bottom: 12px; flex-wrap: wrap; }
.mappage { position: relative; height: calc(100vh - 130px); min-height: 480px; }
#map { position: absolute; inset: 0; }
.mpanel {
  position: absolute; inset-inline-start: 14px; top: 14px; bottom: 14px; width: 400px; max-width: calc(100% - 28px);
  z-index: 5; display: flex; flex-direction: column; border-radius: 12px;
  box-shadow: 0 6px 24px rgba(20, 30, 50, .14); overflow: hidden;
}
.mpanel-head { display: flex; align-items: flex-start; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #F0F3F8; }
#panelClose { display: none; font-size: 22px; color: #737A8E; cursor: pointer; line-height: 1; padding: 0 6px; }
.mpanel-list { flex: 1; overflow-y: auto; }
.mpanel-empty { padding: 16px; }
.mpanel-foot { padding: 10px 14px; border-top: 1px solid #F0F3F8; }
/* Карточка объявления на карте — одна и та же в панели на компьютере и в шторке на телефоне.
   Правила общие: раньше они были заперты внутри .msheet, и в панели карточка рассыпалась. */
.mcard { border-bottom: 1px solid #F0F3F8; cursor: pointer; background: #fff; }
.mcard:hover { background: #F8FAFD; }
.mcard.on { background: #E9EAF8; }
.mc-ph { position: relative; overflow: hidden; background: #EEF1F6; }
.mc-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .2s; }
.mc-ph img.on { opacity: 1; position: relative; }
.mc-ph-none { display: flex; align-items: center; justify-content: center; }
.mc-dots { position: absolute; left: 0; right: 0; bottom: 8px; display: flex; gap: 5px; justify-content: center; }
.mc-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255, 255, 255, .55); }
.mc-dots i.on { background: #fff; }
.mc-bd { position: absolute; top: 8px; inset-inline-start: 8px; background: #E4F3EA; color: #1F7A4D; border-radius: 6px; padding: 2px 7px; font-size: 11px; font-weight: 800; }
.mc-body { padding: 10px 14px 12px; min-width: 0; }
.mc-price { font-size: 18px; font-weight: 900; display: flex; align-items: baseline; gap: 8px; }
.mc-usd { font-size: 12.5px; font-weight: 700; color: #737A8E; }
.mc-params { font-size: 13px; font-weight: 700; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-addr { font-size: 12.5px; color: #737A8E; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-tags { margin-top: 6px; }
.mc-btns { display: flex; gap: 8px; margin-top: 10px; }
.mc-btns .btn { flex: 1; min-height: 40px; display: flex; align-items: center; justify-content: center; }
.mc-big .mc-ph { height: 208px; }   /* крупное фото, как у Циана */
.mc-call { display: flex; align-items: center; justify-content: center; gap: 6px; }

/* рекламный блок в ленте карточек на карте (место «Карта» в админке) */
.mc-ad { display: block; border-bottom: 1px solid #F0F3F8; background: #fff; color: #0D162E; text-decoration: none; }
.mc-ad-pic { height: 132px; background: #EEF1F6; overflow: hidden; }
.mc-ad-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mc-ad-body { padding: 12px 14px 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.mc-ad-label { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8A5A0A; background: #FFF6E3; border-radius: 5px; padding: 2px 7px; }
.mc-ad-title { font-size: 16px; font-weight: 900; line-height: 1.25; }
.mc-ad-sub { font-size: 13px; color: #737A8E; }
.mc-ad-btn { margin-top: 6px; }

/* второй вид рекламы: лента новостроек, листается вбок (место «Карта — лента новостроек») */
.mc-jk { border-bottom: 1px solid #F0F3F8; background: #F7F8FC; padding: 14px 0 16px; }
.mc-jk-head { display: flex; align-items: flex-start; gap: 12px; padding: 0 14px 10px; }
.mc-jk-title { font-size: 15.5px; font-weight: 900; }
.mc-jk-sub { font-size: 12.5px; color: #737A8E; margin-top: 2px; }
.mc-jk-all { margin-inline-start: auto; flex: none; font-size: 13px; font-weight: 700; color: #1518A8; }
.mc-jk-label { display: inline-block; margin: 0 14px 8px; }
.mc-jk-rail { display: flex; gap: 10px; overflow-x: auto; padding: 0 14px 2px; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.mc-jk-rail::-webkit-scrollbar { display: none; }
.mc-jk-card { flex: 0 0 146px; scroll-snap-align: start; background: #fff; border: 1px solid #E4E8F0; border-radius: 12px; overflow: hidden; color: #0D162E; text-decoration: none; display: flex; flex-direction: column; }
.mc-jk-card:hover .mc-jk-name { color: #1518A8; }
.mc-jk-pic { display: block; height: 92px; background: #EEF1F6; }
.mc-jk-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mc-jk-name { display: block; font-size: 13px; font-weight: 800; line-height: 1.2; margin: 8px 10px 0; }
.mc-jk-price { display: block; font-size: 13px; font-weight: 800; color: #1518A8; margin: 4px 10px 0; }
.mc-jk-when { display: block; font-size: 11.5px; color: #737A8E; margin: 2px 10px 0; }
.mc-jk-dist { display: block; font-size: 11.5px; color: #9AA4B5; margin: 1px 10px 10px; }
.mc-row { display: flex; gap: 10px; padding: 8px 14px; }
.mc-row .mc-ph { width: 96px; height: 72px; border-radius: 10px; flex: none; }
.mc-row .mc-body { padding: 0; }
.mc-row .mc-price { font-size: 16px; }
.mc-row .mc-btns { display: none; }
.mpin {
  background: #fff; border: 1px solid #D0D8E9; border-radius: 16px; padding: 5px 11px;
  font-weight: 700; font-size: 12.5px; box-shadow: 0 2px 8px rgba(20, 30, 50, .18);
  white-space: nowrap; cursor: pointer; font-family: 'Manrope', 'Noto Sans Armenian', sans-serif; color: #0D162E;
}
.mpin.on { background: #1518A8; border-color: #1518A8; color: #fff; }
.mclust {
  width: 44px; height: 44px; background: rgba(21, 24, 168, .92); border: 3px solid #fff;
  border-radius: 50%; color: #fff; font-weight: 900; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 10px rgba(20, 30, 50, .25); cursor: pointer; font-family: 'Manrope', 'Noto Sans Armenian', sans-serif;
}
@media (max-width: 700px) {
  .mpanel { display: none; }
  .mappage.msingle .mpanel { display: flex; position: fixed; inset: auto 0 0 0; top: auto; width: auto; max-width: none; max-height: 62vh; border-radius: 16px 16px 0 0; box-shadow: 0 -8px 28px rgba(20, 30, 50, .22); z-index: 60; }
  .mappage.msingle .mpanel-foot, .mappage.msingle #areaSub { display: none; }
  .mappage.msingle .mpanel-head { padding: 10px 14px; }
}

/* ===== Админка ===== */
.panel-body { background: #F3F5FA; }
.panel-shell { display: flex; min-height: 100vh; }
.panel-side { width: 250px; flex: none; background: #222B3E; padding: 18px 12px; display: flex; flex-direction: column; }
.pside-logo { display: flex; align-items: center; gap: 9px; padding: 0 8px 18px; color: #fff; font-weight: 900; font-size: 15px; }
.pside-logo em { color: #8E99AF; font-style: normal; font-weight: 700; }
.pnav { display: flex; flex-direction: column; gap: 2px; }
.pnav a, .pnav .soon {
  display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 9px;
  font-size: 13.5px; font-weight: 700; color: #B9C2D4;
}
.pnav a:hover { color: #fff; }
.pnav a.on { background: #323D54; color: #fff; }
.pnav .soon { color: #5B6880; font-weight: 400; cursor: default; }
.pnav .soon em { font-style: normal; font-size: 10.5px; margin-inline-start: auto; border: 1px solid #3A465F; border-radius: 6px; padding: 1px 6px; }
.pbadge { margin-inline-start: auto; background: #1518A8; color: #fff; font-size: 11px; font-weight: 700; border-radius: 9px; padding: 2px 7px; }
.pside-user { margin-top: auto; padding: 12px 14px; background: #2B3549; border-radius: 10px; display: flex; flex-direction: column; }
.pside-user b { color: #fff; font-size: 12.5px; }
.pside-user span { color: #8E99AF; font-size: 11.5px; margin-top: 2px; }
.pside-back { display: block; color: #8E99AF; font-size: 12.5px; font-weight: 700; padding: 12px 14px 2px; }
.pside-back:hover { color: #fff; }
.panel-main { flex: 1; padding: 22px 26px; min-width: 0; }
.ptitle { font-size: 21px; font-weight: 900; margin-bottom: 4px; }
.pcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.pcard { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.pcard b { font-size: 24px; font-weight: 900; }
.pcard b.amber { color: #C24F0E; }
.pblock { margin-top: 22px; }
.pblock-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; }
.mod-row-lite { display: flex; align-items: center; gap: 14px; padding: 12px 18px; border-top: 1px solid #F0F3F8; flex-wrap: wrap; }
.pblock-empty { padding: 18px; }
.panel-main > .muted.small { margin-top: 18px; display: block; }
.mod-list { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.mod-row { display: flex; gap: 16px; padding: 16px 18px; flex-wrap: wrap; }
.mod-photo {
  width: 130px; height: 96px; border-radius: 8px; flex: none; overflow: hidden;
  background: linear-gradient(135deg, #DDE5F1, #C3CFE2);
  display: flex; align-items: center; justify-content: center;
}
.mod-photo img { width: 100%; height: 100%; object-fit: cover; }
.mod-info { flex: 1; min-width: 260px; }
.mod-desc { margin-top: 6px; }
.mod-actions { display: flex; gap: 10px; margin-top: 12px; align-items: center; flex-wrap: wrap; }
.reason-sel { max-width: 320px; }
.btn-ok { background: #34AC0A; }
.btn-ok:hover { background: #2C9108; }
.btn-no { background: #fff; color: #C22F2F; border: 1px solid #E8C6C6; }
.btn-no:hover { background: #FCF3F3; color: #C22F2F; }
.tag-red { background: #FCECEC; color: #C22F2F; }
.reject-note { width: 100%; }

@media (max-width: 900px) {
  .panel-shell { flex-direction: column; }
  .panel-side { width: 100%; }
  .pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

/* ===== Телефон и планшет ===== */
@media (max-width: 1000px) {
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== Мобильная шапка: меню уходит в бургер ===== */
.mmenu { display: none; }
@media (max-width: 1000px) {
  .wrap { padding-left: 16px; padding-right: 16px; }
  .header-row { height: 56px; gap: 8px; }
  .logo-text { font-size: 20px; }
  .header-row .btn-sm { padding: 0 12px; margin-inline-start: auto; }
  .header-row > .city-chip, .header-row > .main-nav, .header-row > .header-icons,
  .header-row > .login-link, .header-row > .logout-form { display: none; }
  .mmenu { display: block; position: relative; flex: none; }
  .mmenu summary { list-style: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; cursor: pointer; color: #0D162E; }
  .mmenu summary::-webkit-details-marker { display: none; }
  .mmenu-close { display: none; }
  .mmenu[open] .mmenu-burger { display: none; }
  .mmenu[open] .mmenu-close { display: block; }
  .mmenu-panel {
    position: fixed; top: 57px; left: 0; right: 0; bottom: 0; z-index: 100;
    background: #fff; overflow-y: auto; padding: 6px 16px 20px;
    display: flex; flex-direction: column;
  }
  .mmenu:not([open]) .mmenu-panel { display: none; }
  .sec-head { flex-wrap: wrap; gap: 4px 14px; }
  .mmenu-city { border: 0; padding: 13px 0; border-bottom: 1px solid #F0F3F8; border-radius: 0; font-size: 14px; }
  .mmenu-nav { display: flex; flex-direction: column; }
  .mmenu-nav a { display: flex; align-items: center; height: 48px; font-weight: 700; font-size: 15px; color: #0D162E; border-bottom: 1px solid #F0F3F8; }
  .mmenu-nav a:last-child { border-bottom: 0; }
  .mmenu-icons { display: flex; gap: 18px; padding: 14px 0 4px; border-top: 1px solid #F0F3F8; margin-top: 4px; flex-wrap: wrap; }
  .mmenu-icons a { display: flex; align-items: center; gap: 6px; color: #737A8E; font-size: 13px; font-weight: 700; }
  .mmenu-bottom { margin-top: auto; padding-top: 14px; display: flex; flex-direction: column; gap: 12px; }
  .mmenu-login { width: 100%; }
  .mmenu-logout { background: none; border: 0; cursor: pointer; color: #C22F2F; font-family: inherit; font-size: 14px; font-weight: 700; min-height: 44px; padding: 0; text-align: start; }
  .mmenu-bottom .lang { align-self: flex-start; }
  .mmenu-bottom .lang summary { border: 1px solid #D0D8E9; background: #fff; }
  /* Язык в шапке рядом с «Разместить» (вариант Б, 15.09.2026); внизу меню ☰ тоже остаётся.
     Правило ≤700px раскладывает списки языков в поток — для шапки возвращаем выпадающий список поверх страницы */
  .header-row > .lang { position: relative; }
  .header-row > .lang summary { height: 40px; min-height: 0; padding: 0 9px; border: 1px solid #D0D8E9; border-radius: 9px; }
  .header-row > .lang .lang-menu {
    position: absolute; width: 240px; max-width: calc(100vw - 32px); max-height: calc(100vh - 80px); overflow-y: auto;
    margin-top: 0; box-shadow: 0 16px 40px rgba(13, 22, 46, .16); z-index: 110;
  }
}
/* ===== Выдача поиска ===== */
.search-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 22px; flex-wrap: wrap; }
.search-title { font-size: 22px; font-weight: 900; }
.search-head-right { display: flex; gap: 10px; align-items: center; }
.inp, .inp-select {
  height: 40px; border: 1px solid #D0D8E9; border-radius: 8px; background: #fff;
  padding: 0 12px; font-size: 13.5px; color: #0D162E; outline: none;
}
.inp-select { font-weight: 700; }
.w100 { width: 100%; }
.view-toggle { display: flex; border: 1px solid #D0D8E9; border-radius: 8px; overflow: hidden; font-size: 13px; font-weight: 700; }
.vt { padding: 10px 14px; color: #0D162E; }
.vt.on { background: #1518A8; color: #fff; }
.search-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 24px; padding-top: 16px; padding-bottom: 40px; align-items: start; }
.filter-card { background: #fff; border: 1px solid #D0D8E9; border-radius: 10px; padding: 4px 18px 18px; }
.fgroup { padding: 14px 0; border-bottom: 1px solid #EEF1F6; }
.fgroup:last-of-type { border-bottom: 0; }
.flabel { font-weight: 700; font-size: 13px; margin-bottom: 8px; }
.minmax { display: flex; gap: 8px; }
.minmax .inp { width: 50%; }
/* шесть кнопок по фиксированной ширине не влезали в колонку фильтра, поэтому делим ширину поровну */
.rooms-row { display: flex; gap: 5px; }
.room { flex: 1 1 0; min-width: 0; }
.room input { display: none; }
.room span {
  display: flex; width: 100%; height: 36px; border: 1px solid #D0D8E9; border-radius: 9px;
  align-items: center; justify-content: center; font-weight: 700; font-size: 13px; cursor: pointer;
}
.room input:checked + span { background: #1518A8; border-color: #1518A8; color: #fff; }
.fbtns { display: flex; gap: 10px; margin-top: 14px; }
.fbtns .btn { flex: 1; }
.results { display: flex; flex-direction: column; gap: 16px; }
.hcard { display: flex; }
.hphoto {
  width: 280px; min-height: 200px; flex: none;
  background: linear-gradient(135deg, #DDE5F1, #C3CFE2);
  display: flex; align-items: center; justify-content: center;
}
.hbody { flex: 1; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.hbody-top { display: flex; justify-content: space-between; gap: 10px; }
.htitle { font-size: 20px; font-weight: 700; line-height: 1.25; display: block; }
.hprice { font-size: 20px; font-weight: 700; margin-top: 6px; }
.hdesc { font-size: 13px; }
.hfoot { display: flex; align-items: center; gap: 12px; margin-top: auto; flex-wrap: wrap; }
.spacer { flex: 1; }
.tag-green { background: #EAF7E3; color: #34AC0A; }
.empty-card { padding: 24px; color: #737A8E; }
.pagination { display: flex; gap: 8px; justify-content: center; padding: 14px 0; align-items: center; flex-wrap: wrap; }
.pg {
  min-width: 38px; height: 38px; border-radius: 8px; border: 1px solid #D0D8E9;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px; color: #0F1288; padding: 0 10px;
}
.pg.on { background: #1518A8; border-color: #1518A8; color: #fff; }
.pg-dots { color: #9AA4B5; }

/* ===== Карточка объявления ===== */
.detail-top { padding-top: 18px; }
.detail-head { display: flex; justify-content: space-between; gap: 16px; margin-top: 10px; flex-wrap: wrap; }
.detail-head h1 { font-size: 26px; font-weight: 900; }
.actions { display: flex; gap: 18px; font-size: 13px; font-weight: 700; align-items: center; flex-wrap: wrap; }
/* «Поделиться»: на телефоне — системное окно, на компьютере — меню */
.share { position: relative; }
.share-menu { position: absolute; top: calc(100% + 8px); inset-inline-start: 0; z-index: 40; min-width: 220px; background: #fff; border: 1px solid #D0D8E9; border-radius: 12px; box-shadow: 0 14px 36px rgba(13, 22, 46, .16); padding: 6px; display: flex; flex-direction: column; }
.share-menu[hidden] { display: none; }
.share-menu a, .share-menu button { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; border: 0; background: none; font: inherit; font-size: 13.5px; font-weight: 700; color: #0D162E; cursor: pointer; text-align: start; }
.share-menu a:hover, .share-menu button:hover { background: #F3F5FA; }
.share-menu i { width: 22px; height: 22px; border-radius: 50%; flex: none; }
.sh-tg { background: #2AABEE; } .sh-wa { background: #25D366; } .sh-vb { background: #7360F2; } .sh-fb { background: #1877F2; } .sh-ln { background: #EEF1F6; border: 1px solid #D0D8E9; }
.share-toast { position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%); background: #0D162E; color: #fff; font-size: 13.5px; font-weight: 700; padding: 10px 16px; border-radius: 10px; z-index: 300; box-shadow: 0 8px 24px rgba(13, 22, 46, .3); }
.actions span { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; padding-top: 18px; padding-bottom: 40px; align-items: start; }
.detail-main { display: flex; flex-direction: column; gap: 24px; }
.detail-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 16px; }
.gphoto {
  height: 420px; border-radius: 12px; background: linear-gradient(135deg, #DDE5F1, #C3CFE2);
  display: flex; align-items: center; justify-content: center; position: relative;
}
.gcount {
  position: absolute; inset-inline-start: 14px; bottom: 14px;
  background: rgba(20, 25, 35, .65); color: #fff; font-size: 12px; padding: 5px 10px; border-radius: 7px;
}
.thumbs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.thumb { height: 74px; border-radius: 8px; background: linear-gradient(135deg, #DDE5F1, #C3CFE2); }
.thumb-plan { display: flex; align-items: center; justify-content: center; font-size: 12px; color: #5B6B85; font-weight: 700; background: #EDF1F8; }
.card.pad { padding: 20px; }
.prows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
/* подпись слева, значение справа; при нехватке места значение переносится, а не налезает на подпись */
.prow { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 18px; padding: 9px 0; border-bottom: 1px solid #F0F3F8; font-size: 13.5px; }
.prow > .muted { flex: none; }
.prow > b { margin-inline-start: auto; text-align: end; min-width: 0; overflow-wrap: anywhere; }
/* на телефоне — одна колонка, как у Циана: в две колонки подписи и значения не помещались */
@media (max-width: 700px) { .prows { grid-template-columns: minmax(0, 1fr); gap: 0; } }
.desc { font-size: 14px; line-height: 1.65; margin: 0; color: #0D162E; }
.map-stub {
  height: 220px; border-radius: 10px; background: linear-gradient(120deg, #F2F3F5, #E8ECF2);
  display: flex; align-items: center; justify-content: center; position: relative;
  margin-top: 12px; border: 1px solid #E4E8F0;
}
.map-note { position: absolute; bottom: 10px; inset-inline-end: 14px; }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dprice { font-size: 26px; font-weight: 900; }
.card-blue { background: #F5F8FF; border-color: #D7E2F6; }
.mt4 { margin-top: 4px; }
.mt10 { margin-top: 10px; }
.center { text-align: center; }
.seller { display: flex; gap: 12px; align-items: center; }
.ava {
  width: 48px; height: 48px; border-radius: 50%; background: #E4EAF4;
  display: flex; align-items: center; justify-content: center; font-weight: 700; color: #5B6B85;
}
.verified { color: #34AC0A; font-size: 12px; font-weight: 700; margin-top: 2px; }
.stat-lines { line-height: 1.8; }

@media (max-width: 1000px) {
  .search-layout, .detail-grid { grid-template-columns: 1fr; }
  .detail-side { position: static; }
  .grid-3 { grid-template-columns: 1fr; }
  .hcard { flex-direction: column; }
  .hphoto { width: 100%; height: 180px; min-height: 0; }
  .gphoto { height: 260px; }
}

@media (max-width: 560px) {
  .grid-4 { grid-template-columns: 1fr; }
  .hero h1 { font-size: 26px; }
  .search-bar { flex-direction: column; }
  .map-btn { display: none; }
  .promo-banner { flex-direction: column; align-items: flex-start; }
  .footer-cols { grid-template-columns: 1fr; }
}

/* ===== Админка: жалобы, контент, аналитика, рассылки ===== */
.pbadge.red { background: #C22F2F; }
.complaint-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.complaint-text { background: #F3F5FA; border-radius: 9px; padding: 11px 13px; margin-top: 10px; font-size: 13.5px; line-height: 1.55; }
.complain { position: relative; }
.complain summary { list-style: none; cursor: pointer; }
.complain summary::-webkit-details-marker { display: none; }
.complain-form { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; z-index: 20; width: 320px; padding: 16px; box-shadow: 0 10px 28px rgba(20, 30, 50, .16); }
.banner-list { display: flex; flex-direction: column; gap: 16px; }
.switch-row { display: flex; align-items: center; gap: 8px; height: 40px; font-size: 13.5px; font-weight: 700; }
.pad-x { padding-inline: 18px; }
.pad-b { padding-bottom: 14px; }
.set-actions.pad-x { padding-bottom: 16px; }
.sub-head { border-top: 1px solid #F0F3F8; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.funnel { padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.fn-bar { height: 36px; border-radius: 8px; background: #1518A8; color: #fff; display: flex; align-items: center; padding: 0 14px; font-weight: 700; font-size: 13px; min-width: 200px; white-space: nowrap; }
.fn-bar.fn-2 { background: #4A90F5; }
.fn-bar.fn-3 { background: #7FB2F9; color: #0D162E; }
.mail-list { display: flex; flex-direction: column; gap: 14px; }
.mail-edit { display: flex; gap: 10px; padding: 0 18px 12px; }
.amber { color: #C24F0E; }
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; } }

/* ===== Типы аккаунтов и профиль ===== */
.kind-card { width: 440px; }
/* кабинет того, кто ищет жильё */
.sk-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 700px) { .sk-grid { grid-template-columns: 1fr 1fr; } }
.sk-tile { padding: 16px 18px; display: flex; flex-direction: column; gap: 2px; color: #0D162E; }
.sk-tile b { font-size: 26px; font-weight: 900; }
.sk-tile span { font-size: 12.5px; color: #737A8E; }
.sk-tile:hover { border-color: #1518A8; }
.sk-hot b { color: #1518A8; }
.sk-sell { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sk-sell b { font-size: 15px; }
.sk-sell .btn { margin-inline-start: auto; }
.kind-list { display: flex; flex-direction: column; gap: 10px; }
.kind-opt { display: flex; gap: 12px; align-items: flex-start; border: 1.5px solid #D0D8E9; border-radius: 10px; padding: 13px 14px; background: #fff; cursor: pointer; }
.kind-opt:hover { border-color: #BFC2EE; }
.kind-opt:has(input:checked) { border-color: #1518A8; background: #F4F5FC; }
.kind-opt input { margin-top: 3px; accent-color: #1518A8; }
.kind-body { display: flex; flex-direction: column; gap: 2px; }
.auth-card .flabel { display: block; margin: 0 0 6px; font-size: 12.5px; font-weight: 700; color: #737A8E; }
.ava img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.seller-head-info { flex: 1; min-width: 240px; }
.seller-title-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.verified-badge { display: inline-flex; align-items: center; gap: 5px; background: #EAF7E3; color: #34AC0A; font-size: 12.5px; font-weight: 700; padding: 4px 10px; border-radius: 7px; }
.seller-about { margin-top: 10px; font-size: 13.5px; line-height: 1.6; max-width: 640px; }
.seller-stats { display: flex; gap: 26px; margin-top: 14px; flex-wrap: wrap; }
.seller-stats > div { display: flex; flex-direction: column; }
.seller-stats b { font-size: 20px; font-weight: 900; }
.seller-actions { width: 220px; flex: none; }
.doc-row { display: flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 12.5px; }
@media (max-width: 700px) { .seller-actions { width: 100%; } .kind-card { width: 100%; } }

/* ===== Поиск на телефоне: фильтры за кнопкой ===== */
.fltoggle { display: none; }
.flt-btn { display: none; }
@media (max-width: 1000px) {
  .flt-btn {
    display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px;
    border-radius: 8px; font-size: 13px; font-weight: 700; color: #0F1288; background: #E9EAF8; cursor: pointer;
  }
  .flt-count {
    background: #1518A8; color: #fff; font-size: 11px; font-weight: 700; min-width: 17px; height: 17px;
    border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px;
  }
  .search-layout .filter-card { display: none; }
  .fltoggle:checked ~ .search-layout .filter-card { display: block; }
  .search-head { padding-top: 14px; }
  .search-title { font-size: 20px; }
  .search-head-right { width: 100%; flex-wrap: wrap; }
}

/* ===== Карточка объявления на телефоне ===== */
.mob-price { display: none; }
.mob-cta { display: none; }
@media (max-width: 1000px) {
  .detail-head h1 { font-size: 21px; }
  .mob-price { display: block; background: #fff; border: 1px solid #D0D8E9; border-radius: 10px; padding: 14px 16px; }
  .detail-side .card:first-child, .detail-side .card-blue { display: none; }
  .detail-grid { padding-bottom: 84px; }
  .mob-cta {
    display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    background: #fff; border-top: 1px solid #D0D8E9; box-shadow: 0 -6px 18px rgba(20, 30, 50, .08);
    padding: 10px 16px 12px;
  }
  .mob-cta-chat { flex: 1; }
  .mob-cta-phone { flex: 1.4; position: relative; }
  .mob-cta-phone summary { width: 100%; }
  .mob-phone-pop {
    position: absolute; bottom: calc(100% + 10px); left: 0; right: 0;
    background: #fff; border: 1px solid #D0D8E9; border-radius: 10px;
    box-shadow: 0 10px 28px rgba(20, 30, 50, .16); padding: 12px 14px;
    display: flex; flex-direction: column; gap: 3px; text-align: center;
  }
  .mob-phone-pop b { font-size: 18px; font-weight: 900; }
  .thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .thumb { height: 64px; }
  .thumb-plan { font-size: 11px; }
}

/* ===== Формы и кабинет на телефоне ===== */
@media (max-width: 700px) {
  .sub-grid, .sub-grid-4 { grid-template-columns: 1fr 1fr; }
  .set-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .sub-grid { grid-template-columns: 1fr; }
}

/* ===== Админка на телефоне: меню в бургере ===== */
.pmob { display: none; }
@media (max-width: 900px) {
  .pmob { display: block; background: #222B3E; }
  .pmob summary { list-style: none; display: flex; align-items: center; gap: 9px; height: 56px; padding: 0 16px; cursor: pointer; }
  .pmob summary::-webkit-details-marker { display: none; }
  .pmob-title { color: #fff; font-weight: 900; font-size: 14px; flex: 1; }
  .pmob-title em { color: #8E99AF; font-style: normal; font-weight: 700; }
  .pmob-close { display: none; }
  .pmob[open] .pmob-burger { display: none; }
  .pmob[open] .pmob-close { display: block; }
  .panel-side { display: none; }
  .pmob[open] ~ .panel-side { display: flex; }
  .pmob[open] ~ .panel-side .pside-logo { display: none; }
  .panel-main { padding: 18px 16px; }
}

/* ===== Логотип: точки-глаза изредка моргают ===== */
.logo-eye {
  transform-box: fill-box; transform-origin: center;
  animation: logo-blink 2.6s infinite;
}
@keyframes logo-blink {
  0%, 87%, 97%, 100% { transform: scaleY(1); }
  92% { transform: scaleY(0.08); }
}
@media (prefers-reduced-motion: reduce) { .logo-eye { animation: none; } }

/* ================================================================
   МОБИЛЬНАЯ СИСТЕМА: размеры целей, типографика, воздух
   Единые правила для всех экранов — палец должен попадать без промаха,
   текст читаться без прищура, блоки дышать.
   ================================================================ */
@media (max-width: 700px) {
  /* Типографика: мелкий текст поднимаем до читаемого */
  body { font-size: 15px; line-height: 1.5; }
  .small { font-size: 13.5px; }
  .muted.small, .street, .usd { font-size: 13px; }
  h1, .search-title, .sub-h1, .cab-head h1 { font-size: 22px; line-height: 1.25; }
  h2 { font-size: 19px; margin-bottom: 14px; }
  .h2-sm { font-size: 18px; }
  .price { font-size: 21px; }
  .dprice { font-size: 24px; }

  /* Цели нажатия: минимум 44px по вертикали */
  .footer-cols a { padding: 9px 0; margin-bottom: 0; font-size: 14px; }
  .crumbs a, .more-link, .action-btn, .login-link { display: inline-flex; align-items: center; min-height: 44px; }
  .heart { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
  .action-btn { padding: 0 4px; font-size: 14px; }
  .actions { gap: 4px 18px; flex-wrap: wrap; }
  .lang summary, .phone-reveal summary { min-height: 44px; }
  .btn-sm { height: 40px; font-size: 14px; }
  .inp, .inp-select { height: 46px; font-size: 15px; }
  .inp-area { min-height: 96px; }
  .chip { height: 42px; font-size: 14px; }
  .room span { height: 44px; font-size: 14px; }
  .vt { padding: 12px 16px; font-size: 14px; }
  .file-inp { min-height: 44px; display: block; width: 100%; font-size: 14px; }
  .flabel { font-size: 13.5px; margin-bottom: 7px; }
  .pg, .pg-dots { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

  /* Воздух: блоки не липнут друг к другу */
  .sec { padding: 26px 0; }
  .card.pad { padding: 16px; }
  .cab-list, .promo-list, .mail-list, .banner-list { gap: 14px; }
  .grid { gap: 14px; }

  /* Карта: кнопки масштаба под палец */
  .maplibregl-ctrl button, .mapboxgl-ctrl button { width: 44px !important; height: 44px !important; }
}

/* Экраны, у которых на телефоне ломалась сетка */
@media (max-width: 700px) {
  .sub-grid-4 { grid-template-columns: 1fr 1fr; }
  .done-card { width: 100%; }
  .loy-grid { grid-template-columns: 1fr; }
  .seller-head { flex-direction: column; align-items: flex-start; }
  .seller-actions { width: 100%; }
  .seller-actions .btn, .seller-actions .phone-reveal { width: 100%; }
  .phone-number { font-size: 18px; word-break: break-all; }
  .compare-scroll { margin-inline: -16px; padding-inline: 16px; }
}

/* Добивка целей нажатия до 44px там, где осталось меньше */
@media (max-width: 700px) {
  .search-input { padding: 0 10px; }
  .search-input input { height: 46px; font-size: 16px; }  /* 16px — iOS не приближает экран при фокусе */
  .footer-cols a { padding: 11px 0; }
  .lang-item { padding: 13px 16px; min-height: 46px; }
  .logo { min-height: 44px; align-items: center; }
  .htitle { display: inline-block; padding: 4px 0; }
  .inp, .inp-select, .search-input input, .code-inp, .sub-form input { font-size: 16px; }
}

/* Ссылки-заголовки в карточках и списках — тоже полноценные цели */
@media (max-width: 700px) {
  .htitle { display: block; padding: 7px 0; line-height: 1.35; }
  .jk-name, .jk-name a { display: inline-block; padding: 6px 0; }
  .note-card a, .chat-head-listing a, .cab-info a { display: inline-block; padding: 8px 0; }
  .card-body .jk-name { padding-top: 0; }
}

/* Последние цели: меню-бургер, галочки, телефон, ссылки-подписи */
@media (max-width: 700px) {
  .mmenu-icons a { min-height: 44px; padding: 4px 0; }
  .pside-back { min-height: 44px; display: flex; align-items: center; }
  .phone-number, .phone-number a { min-height: 44px; display: flex; align-items: center; justify-content: center; }
  .loy-link, .note-card a, .promo-note a { min-height: 44px; display: inline-flex; align-items: center; }
  /* Галочки и переключатели: сам квадратик крупнее, вся строка кликабельна */
  input[type="checkbox"], input[type="radio"] { width: 22px; height: 22px; accent-color: #1518A8; }
  .switch-row, .promo-opt, .kind-opt { min-height: 48px; }
  .switch-row label, .promo-opt, .kind-opt { cursor: pointer; }
}

/* Карточка в выдаче: цена отдельной строкой, пересчёт под ней */
@media (max-width: 700px) {
  .hprice { display: flex; flex-direction: column; gap: 2px; font-size: 21px; margin-top: 8px; }
  .hprice .small { font-size: 13px; font-weight: 400; }
  .hbody-top { align-items: flex-start; }
  .hfoot { gap: 8px 10px; flex-wrap: wrap; align-items: center; }
  .hfoot .spacer { display: none; }
  .hfoot .tag { width: auto; margin-top: 0; align-self: flex-start; }
  .hfoot { flex-direction: column; align-items: stretch; }
  .hfoot .hfoot-btns { display: flex; gap: 10px; }
  .hfoot .btn-sm { flex: 1; min-width: 0; font-size: 13px; padding: 0 10px; white-space: nowrap; }
}

/* Строка операции в кошельке — стилей не было вовсе */
.trow {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 18px; border-top: 1px solid #F0F3F8;
}
.trow:first-of-type { border-top: 0; }
.trow .cab-info { min-width: 0; }
.trow .amount { white-space: nowrap; }

/* Правки после осмотра экранов на телефоне */
@media (max-width: 700px) {
  /* Действия на карточке объявления — четыре кнопки в два ряда, чтобы не вылезать за экран */
  .actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .actions > * { min-width: 0; }
  .action-btn { width: 100%; justify-content: center; font-size: 13px; gap: 5px; }
  .share-menu { inset-inline-start: 0; min-width: 0; width: 100%; }
  .action-btn svg { flex: none; }

  /* Кабинет: кнопки объявления ровным рядом */
  .cab-row { gap: 12px; }
  .cab-row .btn-sm { flex: 1; min-width: 132px; }
  .cab-row .tag { align-self: center; margin-top: 0; }

  /* Подвал: чуть плотнее, чем было */
  .footer-cols a { padding: 8px 0; }
  .site-footer { padding: 28px 0 22px; }

  /* Кошелёк */
  .wallet-sep { display: none; }
  .wallet-head { flex-direction: column; align-items: stretch; gap: 16px; }
  .wallet-head .btn { width: 100%; }
  .wallet-grid .card .pad b { font-size: 16px; }

  /* Заголовок блока и подпись — в столбик, а не в строку */
  .sec-head, .card > .pad:has(+ .trow), .prow-head { flex-wrap: wrap; }
  .set-actions { flex-direction: column; align-items: stretch; gap: 12px; }
  .set-actions .btn { width: 100%; }

  /* Единицы после суммы не липнут к символу драма */
  .promo-per, .price .usd { margin-inline-start: 3px; }
}

/* Финальная доводка целей нажатия */
@media (max-width: 700px) {
  .footer-cols a { padding: 11px 0; }
  .plan-info a, .seller a { display: inline-block; padding: 9px 0; }
  .planrow { padding: 10px 0; }
}

/* Админка на телефоне: формы в столбик, кнопки на всю ширину */
@media (max-width: 700px) {
  .mail-edit { flex-direction: column; }
  .mail-edit .btn { width: 100%; }
  .pblock-head { flex-wrap: wrap; gap: 8px; }
  .pblock-head .btn-sm { flex: none; }
  .banner-list .card .pad form { display: flex; flex-direction: column; gap: 10px; }
  .banner-list .btn { width: 100%; }
  .money-date { width: auto; }
  .src-row .bar { max-width: none; }
}

/* Список языков на телефоне раскрывается в потоке — не уезжает ни при каком письме */
@media (max-width: 700px) {
  .lang { position: static; }
  .lang-menu {
    position: static; width: 100%; margin-top: 8px;
    box-shadow: none; max-height: 236px; overflow-y: auto;
  }
  .lang-up .lang-menu { bottom: auto; top: auto; }
  .mmenu-bottom, .footer-bottom { padding-bottom: 8px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* Всплывающая форма жалобы: держим в пределах экрана при любом направлении письма */
@media (max-width: 700px) {
  .complain { position: static; }
  .complain-form {
    position: absolute; left: 16px; right: 16px; width: auto;
    inset-inline-start: 16px; inset-inline-end: 16px;
  }
  .detail-top { position: relative; }
}

/* ===== Выбор региона — по образцу Циана ===== */
.place-btn { display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: start; cursor: pointer; font-family: inherit; font-weight: 700; color: #0D162E; background: #fff; }
.place-btn .place-btn-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ferr { color: #C22F2F; font-size: 12.5px; margin-top: 6px; }
.city-chip .place-btn-text { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hero-pin { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 18px; padding: 8px 12px; border: 1px solid #D0D8E9; border-radius: 8px; background: rgba(255,255,255,.7); color: #0D162E; font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; }
.hero-pin:hover { border-color: #1518A8; color: #1518A8; }
.hero-pin svg { flex: none; }

/* Погода выбранного региона — рядом с кнопкой города */
.wx { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid #D0D8E9; border-radius: 999px; background: rgba(255,255,255,.7); font-size: 13px; font-weight: 800; white-space: nowrap; }
.wx svg { width: 17px; height: 17px; flex: none; }
.wx i { font-style: normal; font-weight: 700; color: #737A8E; }
.hero-place { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.hero-place .hero-pin { margin-bottom: 0; }
.header-row > .wx { padding: 5px 10px; font-size: 12.5px; }
.header-row > .wx i { display: none; }
.mmenu-wx { margin: 10px 0 2px; }

/* Медаль Тука — высший уровень программы «Знак Тука» */
.medal { width: 14px; height: 14px; flex: none; }
.medal-lg { width: 17px; height: 17px; }
.tag-gold { display: inline-flex; align-items: center; gap: 5px; background: #FFF6E3; color: #8A5A0A; font-weight: 700; }
.verified-gold { display: inline-flex; align-items: center; gap: 5px; color: #8A5A0A; }
.verified-badge.gold { background: #FFF6E3; color: #8A5A0A; }
.pm-wx { display: inline-flex; align-items: center; gap: 3px; margin-inline-start: 7px; color: #737A8E; font-size: 12px; font-weight: 700; }
.pm-wx svg { width: 15px; height: 15px; flex: none; }
.pm-row .pm-wx { margin-inline-start: auto; }
@media (max-width: 700px) {
  .hero .hero-place { gap: 8px; margin-bottom: 8px; }
  .hero .hero-place .hero-pin { margin: 0; }
  .hero-place .wx { margin-inline-start: auto; padding: 4px 9px; font-size: 12px; }
  .hero-place .wx i { display: none; }
}
.search-crumbs { padding-top: 18px; font-size: 13px; color: #737A8E; }
.search-crumbs a { color: #737A8E; }
.search-crumbs a:hover { color: #1518A8; }
.search-crumbs b { color: #0D162E; }
.search-crumbs + .search-head { padding-top: 10px; }
/* строка «Адрес · Область | Район» над результатами */
.geo-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.geo-bar .geo-q { flex: 1; display: flex; align-items: center; gap: 8px; height: 44px; border: 1px solid #D0D8E9; border-radius: 8px; background: #fff; padding: 0 12px; color: #9AA4B5; }
.geo-bar .geo-q input { flex: 1; border: 0; outline: none; font: inherit; font-size: 14px; color: #0D162E; min-width: 0; background: none; }
.geo-links { display: flex; align-items: center; gap: 2px; flex: none; }
.geo-links button { background: none; border: 0; font: inherit; font-weight: 700; font-size: 13.5px; color: #1518A8; cursor: pointer; padding: 10px 8px; border-radius: 6px; }
.geo-links button:hover { background: #F4F5FC; }
.geo-links i { color: #D0D8E9; font-style: normal; }
.place-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: -6px 0 14px; }
.place-chips .chip { height: 32px; font-size: 13px; cursor: pointer; font-family: inherit; }
/* окно */
.pm-root { position: fixed; inset: 0; z-index: 200; }
.pm-backdrop { position: absolute; inset: 0; background: rgba(13, 22, 46, .55); }
.pm { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 1040px; max-width: calc(100% - 32px); max-height: calc(100% - 32px); background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); display: flex; flex-direction: column; overflow: hidden; }
.pm-head { padding: 24px 24px 18px; text-align: center; border-bottom: 1px solid #EEF1F6; position: relative; flex: none; }
.pm-title { font-size: 18px; font-weight: 900; margin-bottom: 12px; }
.pm-close { position: absolute; inset-inline-end: 14px; top: 14px; width: 36px; height: 36px; border-radius: 8px; border: 0; background: none; font: inherit; font-size: 20px; color: #737A8E; cursor: pointer; }
.pm-close:hover { background: #F3F5F9; }
.pm-search { position: relative; width: 360px; max-width: 100%; margin: 0 auto; }
.pm-search input { width: 100%; height: 40px; border: 1px solid #D0D8E9; border-radius: 8px; padding: 0 12px; font: inherit; font-size: 14px; outline: none; color: #0D162E; }
.pm-search input:focus { border-color: #1518A8; box-shadow: 0 0 0 3px #E9EAF8; }
.pm-sug { position: absolute; left: 0; right: 0; top: 44px; background: #fff; border: 1px solid #D0D8E9; border-radius: 8px; box-shadow: 0 10px 28px rgba(13, 22, 46, .14); text-align: start; z-index: 5; overflow: hidden; }
.pm-sug div { padding: 10px 12px; cursor: pointer; font-size: 14px; }
.pm-sug div:hover { background: #F4F5FC; }
.pm-sug span { color: #737A8E; font-size: 12.5px; }
.pm-sug .pm-none, .pm-none { color: #737A8E; cursor: default; padding: 14px 12px; font-size: 13.5px; }
.pm-body { padding: 18px 24px 26px; overflow-y: auto; }
.pm-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 22px; }
.pm-chip { height: 32px; padding: 0 12px; border-radius: 8px; border: 0; background: #E9EAF8; color: #1518A8; font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; }
.pm-chip:hover { background: #D9E8FF; }
.pm-cols { columns: 4; column-gap: 28px; }
.pm-grp { margin-bottom: 22px; break-inside: avoid; }
.pm-grp h5 { margin: 0 0 2px; font-size: 16px; font-weight: 900; }
.pm-grp h5 a { color: #0D162E; cursor: pointer; }
.pm-grp h5 a:hover { color: #1518A8; }
.pm-grp em { display: block; font-size: 12.5px; color: #737A8E; margin-bottom: 8px; }
.pm-grp a, .pm-vcols a { display: block; padding: 5px 0; font-size: 14px; color: #0D162E; cursor: pointer; text-decoration: none; }
.pm-grp a:hover, .pm-vcols a:hover { color: #1518A8; }
.pm-vil { color: #1518A8 !important; font-size: 13px !important; font-weight: 700; margin-top: 4px; }
.pm-back { display: inline-flex; align-items: center; gap: 6px; color: #1518A8; font-weight: 700; cursor: pointer; margin-bottom: 10px; }
.pm-vh { margin-bottom: 12px; }
.pm-vh b { font-size: 16px; font-weight: 900; margin-inline-end: 10px; }
.pm-vh em { font-size: 12.5px; color: #737A8E; }
.pm-vcols { columns: 4; column-gap: 28px; }
.pm-vcols a { break-inside: avoid; }
.pm-whole { color: #1518A8 !important; font-weight: 700; }
/* окно «Район» */
.pm-d { top: 14px; transform: translateX(-50%); width: 900px; max-height: calc(100% - 28px); }
.pm-dtop { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 60px 16px 22px; border-bottom: 1px solid #EEF1F6; flex: none; flex-wrap: wrap; }
.pm-dtop .pm-title { margin: 0; font-size: 16px; }
.pm-dtop .pm-close { position: absolute; inset-inline-end: 14px; top: 12px; }
.pm-togs { display: flex; gap: 8px; flex-wrap: wrap; }
.pm-tog { height: 34px; padding: 0 12px; border: 1px solid #D0D8E9; border-radius: 8px; background: #fff; font: inherit; font-weight: 700; font-size: 13px; color: #0D162E; cursor: pointer; }
.pm-tog.on { border-color: #1518A8; color: #1518A8; background: #E9EAF8; }
.pm-dbody { padding: 18px 22px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; overflow-y: auto; }
.pm-cb { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 14px; cursor: pointer; color: #0D162E; }
.pm-cb:hover { color: #1518A8; }
.pm-cb input { width: 18px; height: 18px; margin: 0; accent-color: #1518A8; flex: none; }
.pm-cb.on { color: #1518A8; font-weight: 700; }
.pm-cb small { color: #9AA4B5; font-weight: 400; font-size: 12px; }
.pm-foot { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 14px 22px; border-top: 1px solid #EEF1F6; flex: none; background: #fff; }
.pm-show { height: 42px; }
.pm-reset { background: none; border: 0; color: #737A8E; font: inherit; font-weight: 700; cursor: pointer; }
.pm-ib { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font: inherit; font-size: 22px; color: #0D162E; background: none; border: 0; cursor: pointer; border-radius: 8px; flex: none; }
/* телефон */
.pm-sheet { position: absolute; left: 0; right: 0; bottom: 0; top: 56px; background: #fff; border-radius: 18px 18px 0 0; display: flex; flex-direction: column; box-shadow: 0 -10px 30px rgba(0, 0, 0, .15); }
.pm-sh { display: flex; align-items: center; height: 56px; padding: 0 6px 0 16px; border-bottom: 1px solid #EEF1F6; flex: none; }
.pm-sh b { flex: 1; font-size: 18px; font-weight: 900; }
.pm-ssearch { padding: 12px 16px 4px; flex: none; }
.pm-ssearch input { width: 100%; height: 46px; border: 1px solid #D0D8E9; border-radius: 8px; padding: 0 12px; font: inherit; font-size: 16px; outline: none; }
.pm-ssearch input:focus { border-color: #1518A8; box-shadow: 0 0 0 3px #E9EAF8; }
.pm-list { overflow-y: auto; flex: 1; padding: 4px 0 16px; }
.pm-row { display: flex; align-items: center; width: 100%; min-height: 50px; padding: 6px 12px 6px 16px; border: 0; background: none; font: inherit; font-size: 16px; color: #0D162E; text-align: start; cursor: pointer; gap: 8px; }
.pm-row:active { background: #F4F5FC; }
.pm-row small, .pm-rt small { color: #737A8E; font-size: 12.5px; margin-inline-start: 8px; font-weight: 400; }
.pm-exp { padding-inline-end: 4px; }
.pm-rt { flex: 1; min-height: 44px; display: flex; align-items: center; border: 0; background: none; font: inherit; font-size: 16px; color: #0D162E; text-align: start; padding: 0; cursor: pointer; }
.pm-exp.open { background: #F4F5FC; }
.pm-sub { background: #F4F5FC; padding: 2px 0 8px; }
.pm-sub .pm-row { padding-inline-start: 28px; min-height: 44px; font-size: 15px; }
.pm-div { height: 1px; background: #EEF1F6; margin: 6px 16px; }
/* вопрос «Ваш регион?» */
.pm-ask { position: absolute; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 18px 18px 0 0; padding: 20px 16px 16px; box-shadow: 0 -10px 30px rgba(0, 0, 0, .15); }
.pm-ask-x { position: absolute; inset-inline-end: 8px; top: 8px; color: #737A8E; }
.pm-ask p { margin: 6px 0 16px; text-align: center; color: #737A8E; font-size: 15px; }
.pm-ask p b { display: block; color: #0D162E; font-size: 17px; margin-top: 2px; }
.pm-ask-btns { display: flex; gap: 10px; }
.pm-ask-btns .btn { flex: 1; height: 48px; }
@media (max-width: 900px) { .pm-cols { columns: 2; } .pm-vcols { columns: 2; } .pm-dbody { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) {
  .geo-bar { flex-direction: column; align-items: stretch; gap: 6px; }
  .geo-bar .geo-q { height: 46px; }
  .geo-bar .geo-q input { font-size: 16px; }
  .geo-links { justify-content: flex-start; }
  .geo-links button { min-height: 44px; }
  .pm, .pm-d { inset: 0; transform: none; width: auto; max-width: none; max-height: none; border-radius: 0; }
  .pm-head { padding: 12px 16px 10px; text-align: start; }
  .pm-title { font-size: 17px; padding-inline-end: 44px; }
  .pm-search { width: 100%; }
  .pm-search input { height: 46px; font-size: 16px; }
  .pm-cols { columns: 1; }
  .pm-vcols { columns: 1; }
  .pm-grp a, .pm-vcols a { min-height: 44px; display: flex; align-items: center; font-size: 15px; }
  .pm-dbody { grid-template-columns: 1fr; padding: 8px 16px; }
  .pm-cb { min-height: 48px; font-size: 16px; }
  .pm-cb input { width: 22px; height: 22px; }
  .pm-togs .pm-tog { height: 38px; }
  .pm-foot { padding: 10px 12px; }
  .pm-show { flex: 1; height: 48px; }
}

/* ===== Галерея карточки: листание ===== */
.gphoto { overflow: hidden; }
.gphoto .gimg { position: absolute; inset: 0; opacity: 0; transition: opacity .25s; }
.gphoto .gimg.on { opacity: 1; }
.gnav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: #0D162E; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(13, 22, 46, .18); opacity: .88; transition: opacity .2s, background .2s; z-index: 2; }
.gnav:hover { background: #fff; color: #1518A8; }
.gprev { inset-inline-start: 14px; }
.gnext { inset-inline-end: 14px; }
.gnav:focus-visible { opacity: 1; }
@media (hover: hover) { .gphoto:hover .gnav, .gnav:hover { opacity: 1; } }
[dir="rtl"] .gnav svg { transform: scaleX(-1); }
.gcount { z-index: 2; }
.thumbs .thumb { padding: 0; border: 2px solid transparent; cursor: pointer; font: inherit; }
.thumbs .thumb.on { border-color: #1518A8; }
.thumbs .thumb img { border-radius: 6px; }
@media (max-width: 700px) {
  .gnav { opacity: 1; width: 40px; height: 40px; }
}
@media (max-width: 700px) {
  .thumbs { display: flex; overflow-x: auto; gap: 8px; padding-bottom: 4px; scrollbar-width: none; }
  .thumbs::-webkit-scrollbar { display: none; }
  .thumbs .thumb { flex: none; width: 84px; height: 64px; }
  .thumb-plan { font-size: 11px; padding: 0 6px; text-align: center; }
}
@media (max-width: 700px) {
  .gallery, .thumbs, .detail-main > * { min-width: 0; }
  .detail-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ===== Баннер с иллюстрацией ===== */
.promo-illu { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 50%); align-items: stretch; min-height: 270px; padding: 0; color: #0D162E; text-decoration: none; overflow: hidden; background-image: none; }
.promo-illu .promo-text { padding: 44px 40px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.promo-illu .promo-label { color: #737A8E; opacity: 1; }
.promo-illu .promo-title { font-size: 24px; font-weight: 900; line-height: 1.2; text-wrap: balance; }
.promo-illu .promo-sub { color: #3C4660; opacity: 1; font-size: 14px; margin-top: 8px; }
.promo-illu .promo-btn { margin-top: 16px; }
.promo-illu .promo-pic { order: 2; background-size: cover; background-position: right center; min-height: 270px; }
.promo-illu:hover .promo-title { color: #1518A8; }
@media (max-width: 700px) {
  .promo-illu { grid-template-columns: 1fr; }
  .promo-illu .promo-pic { order: -1; min-height: 150px; background-position: 70% 65%; }
  .promo-illu .promo-text { padding: 18px 18px 20px; }
  .promo-illu .promo-title { font-size: 19px; }
  .promo-illu .promo-btn { width: auto; }
}

.promo-compact { min-height: 200px; grid-template-columns: minmax(0, 1fr) minmax(0, 44%); }
.promo-compact .promo-text { padding: 28px 30px; }
.promo-compact .promo-title { font-size: 20px; }
.promo-compact .promo-pic { min-height: 200px; }
.search-banner { margin-bottom: 16px; }
/* редактор баннеров в админке */
/* панель → баннеры: номер места, схема «где на сайте», превью тем же шаблоном, что на сайте */
.bf-head { gap: 10px; flex-wrap: wrap; justify-content: flex-start; }
.bf-head b { flex: 1; min-width: 200px; }
.bf-n { width: 30px; height: 30px; border-radius: 50%; background: #1518A8; color: #fff; font-weight: 800; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.bf-open { font-size: 12.5px; font-weight: 700; color: #1518A8; white-space: nowrap; }
.bf-body { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 0 18px 18px; align-items: start; }
@media (max-width: 700px) { .bf-body { grid-template-columns: 1fr; } }
.bf-where { font-size: 12px; color: #737A8E; margin-top: 8px; line-height: 1.4; }
.sch { width: 150px; background: #F7F8FC; border: 1px solid #D0D8E9; border-radius: 8px; padding: 6px; display: flex; flex-direction: column; gap: 3px; box-sizing: border-box; }
.sch i { display: block; border-radius: 2px; background: #DDE3EE; }
.sch .s-hero { height: 22px; background: #B9C4D8; }
.sch .s-bar { height: 10px; }
.sch .s-list { height: 12px; }
.sch .s-wide { height: 12px; }
.sch .s-row, .sch .s-nav { height: 16px; display: flex; gap: 3px; background: none; }
.sch .s-nav { height: 8px; }
.sch .s-row b, .sch .s-nav b { flex: 1; background: #DDE3EE; border-radius: 2px; }
.sch .s-map { height: 70px; display: flex; gap: 3px; background: none; }
.sch .s-map u { width: 40%; display: flex; flex-direction: column; gap: 3px; text-decoration: none; }
.sch .s-map u b { flex: 1; background: #DDE3EE; border-radius: 2px; }
.sch .s-map em { flex: 1; background: #E4EBD9; border-radius: 2px; }
.sch .hl { background: #FF7A1A !important; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #FF7A1A; }
.sch .hl2 { background: #FFB27A !important; }
.bp { border: 1px solid #D0D8E9; border-radius: 10px; overflow: hidden; background: #F7F8FC; }
.bp-cap { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: #737A8E; padding: 6px 10px; border-bottom: 1px solid #D0D8E9; }
.bp-promo .promo-illu, .bp-promo .promo-pic { min-height: 190px; }
.bp-promo .promo-text { padding: 24px 26px; }
.bp-promo .promo-title { font-size: 20px; }
.bp-wide .bw { min-height: 190px; }
.bp-wide .bw-body { padding: 30px 24px; }
.bp-wide .bw-title { font-size: 22px; }
.bp-slot { padding: 0; }
.bp-slot .ad-slot { border-radius: 0; border: 0; }
.bp-empty { padding: 22px 18px; font-size: 13px; color: #737A8E; }
.bp-phone { width: 340px; max-width: 100%; margin: 12px; border: 1px solid #D0D8E9; border-radius: 12px; overflow: hidden; background: #fff; }
.bp-phone .mc-ad { border-bottom: 0; }
.bp-phone .mc-jk-rail { padding: 0 12px 12px; }
.banner-preview { padding: 0 18px 18px; }
.banner-preview .promo-illu { min-height: 200px; }
.banner-preview .promo-pic { min-height: 200px; }
.banner-preview .promo-text { padding: 26px 28px; }
.banner-preview .promo-title { font-size: 20px; }
.color-row { display: flex; align-items: center; gap: 10px; }
.color-row input[type=color] { width: 52px; height: 40px; border: 1px solid #D0D8E9; border-radius: 8px; padding: 2px; background: #fff; cursor: pointer; }
.preset-grid { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 12px; }
.preset { position: relative; width: 200px; height: 60px; border-radius: 8px; overflow: hidden; cursor: pointer; border: 2px solid transparent; }
.preset input { position: absolute; opacity: 0; }
.preset img { width: 100%; height: 100%; object-fit: cover; display: block; }
.preset:has(input:checked) { border-color: #1518A8; box-shadow: 0 0 0 3px #E9EAF8; }
.preset-del { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(13, 22, 46, .65); color: #fff; font-size: 15px; line-height: 22px; padding: 0; cursor: pointer; opacity: 0; transition: opacity .15s; }
.preset:hover .preset-del { opacity: 1; }
.preset-del:hover { background: #C22F2F; }
.err-banner { background: #FDECEC; color: #8A1F1F; }
.preset-none { display: flex; align-items: center; justify-content: center; background: #F3F5F9; color: #737A8E; font-size: 13px; font-weight: 700; }
.upload-row { display: flex; align-items: center; gap: 12px; cursor: pointer; margin-bottom: 8px; }
@media (max-width: 700px) {
  .promo-illu, .promo-compact { grid-template-columns: 1fr; min-height: 0; }
  .promo-illu .promo-text, .promo-compact .promo-text { padding: 20px 18px 22px; }
  .preset { width: calc(50% - 5px); }
}

.sec-alt + .sec-banner { padding-top: 30px; }

[hidden] { display: none !important; }

/* ===== Строка поиска на главной (вкладки + одна строка) ===== */
.sb { margin-top: 4px; }
/* Вкладки-пилюли поверх фото (одобрено Айком 18.09.2026, макет design/hero/tabs.html) */
.sb-tabs { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.sb-tab {
  display: inline-flex; align-items: center; padding: 8px 15px; border-radius: 999px;
  font-weight: 700; font-size: 13.5px; color: #fff; cursor: pointer;
  background: rgba(13, 22, 46, .42); border: 1px solid rgba(255, 255, 255, .22);
  backdrop-filter: blur(6px); transition: background .15s, border-color .15s;
}
.sb-tab:hover { background: rgba(13, 22, 46, .62); border-color: rgba(255, 255, 255, .45); }
.sb-tab input { position: absolute; opacity: 0; width: 0; height: 0; }
.sb-tab:has(input:focus-visible) { outline: 2px solid #fff; outline-offset: 2px; }
.sb-tab:has(input:checked) { background: #fff; color: #0D162E; border-color: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.sb-a { color: #fff; text-decoration: none; }
.sb-sec { margin-inline-start: auto; color: #fff; background: none; border-color: transparent; backdrop-filter: none; }
.sb-sec:hover { background: none; border-color: transparent; text-decoration: underline; }
/* без overflow: hidden — иначе выпадающие меню «Комнат», «Цена» обрезаются и их не видно */
.sb-bar { display: flex; background: #fff; border: 1px solid #D0D8E9; border-radius: 14px; box-shadow: 0 10px 28px rgba(13, 22, 46, .2); position: relative; }
.sb-f:first-child .sb-btn { border-radius: 13px 0 0 13px; }
.sb-f { position: relative; border-inline-end: 1px solid #EEF1F6; }
.sb-type { min-width: 240px; }
.sb-btn { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 58px; padding: 0 18px; border: 0; background: none; font: inherit; font-weight: 700; font-size: 15px; color: #0D162E; cursor: pointer; white-space: nowrap; width: 100%; text-align: start; }
.sb-soft { color: #737A8E; font-weight: 400; min-width: 150px; }
.sb-f.open .sb-btn { background: #E9EAF8; }
.sb-btn .caret { color: #9AA4B5; font-size: 12px; }
.sb-addr { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 18px; border: 0; background: none; font: inherit; font-size: 15px; color: #0D162E; cursor: pointer; text-align: start; min-width: 0; }
.sb-addr svg { color: #9AA4B5; flex: none; }
.sb-addr .place-btn-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-acts { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.sb-acts .btn { height: 48px; padding: 0 24px; font-size: 15px; display: inline-flex; align-items: center; }
/* выпадашки (главная и панель) */
[data-dd] { position: relative; }
.dd { position: absolute; inset-inline-start: 0; top: calc(100% + 8px); min-width: 100%; width: max-content; max-width: min(520px, calc(100vw - 32px)); background: #fff; border: 1px solid #D0D8E9; border-radius: 12px; box-shadow: 0 14px 36px rgba(13, 22, 46, .16); padding: 16px; z-index: 40; font-weight: 400; white-space: normal; color: #0D162E; text-align: start; }
.dd-type { width: 470px; }
.dd-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; }
.seg { display: inline-flex; border: 1px solid #D0D8E9; border-radius: 8px; overflow: hidden; margin-bottom: 10px; }
.seg-b { padding: 8px 14px; border: 0; background: #fff; font: inherit; font-weight: 700; font-size: 13px; color: #0D162E; cursor: pointer; }
.seg-b.on { background: #E9EAF8; color: #1518A8; }
.tp-list { columns: 2; column-gap: 20px; }
.tp-list .chk { break-inside: avoid; }
/* жилые — одним столбцом с линиями между подгруппами, как у Циана */
.tp-list[data-group-list="res"] { columns: 1; }
.tp-sep { border: 0; border-top: 1px solid #E4E8F0; margin: 6px 0; }
.sb-type { max-width: 320px; }
.sb-btn .tp-label { min-width: 0; flex: 1; }
.chk { display: flex; align-items: center; gap: 9px; min-height: 34px; font-size: 14px; cursor: pointer; }
.chk input { width: 18px; height: 18px; accent-color: #1518A8; margin: 0; flex: none; }
.opts { display: flex; flex-direction: column; }
.tp-btn .tp-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fbtns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fbtn-reset { color: #737A8E; font-weight: 700; font-size: 13px; margin-inline-start: auto; }
/* «Ещё фильтры» */
.mf-modal { position: fixed; inset: 0; z-index: 200; }
.mf-backdrop { position: absolute; inset: 0; background: rgba(13, 22, 46, .55); }
.mf-win { position: absolute; left: 50%; top: 20px; transform: translateX(-50%); width: 980px; max-width: calc(100% - 32px); max-height: calc(100% - 40px); background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); display: flex; flex-direction: column; overflow: hidden; }
.mf-head { display: flex; align-items: center; gap: 12px; padding: 16px 22px; border-bottom: 1px solid #EEF1F6; flex: none; position: relative; padding-inline-end: 60px; }
.mf-head b { font-size: 18px; font-weight: 900; }
.mf-head .pm-close { position: absolute; inset-inline-end: 14px; top: 10px; }
.mf-body { overflow-y: auto; padding: 6px 22px 18px; }
.mf-sec { padding: 16px 0; border-bottom: 1px solid #EEF1F6; }
.mf-sec h3 { margin: 0 0 10px; font-size: 14px; font-weight: 900; }
.mf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; }
.mf-grid .fgroup { margin: 0; }
.mf-grid .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.mf-foot { display: flex; justify-content: space-between; align-items: center; padding: 14px 22px; border-top: 1px solid #EEF1F6; flex: none; }
body.mf-open { overflow: hidden; }
/* форма подачи: разделы каталога */
.sub-cat { margin-top: 18px; padding-top: 14px; border-top: 1px solid #EEF1F6; }
.sub-cat-title { font-weight: 900; font-size: 14px; margin-bottom: 10px; }
.sub-multi .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.sub-multi { grid-column: span 2; }
@media (max-width: 900px) { .mf-grid { grid-template-columns: 1fr 1fr; } .dd-type { width: min(470px, calc(100vw - 32px)); } }
@media (max-width: 700px) {
  .sb-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; padding-bottom: 2px; }
  .sb-tabs::-webkit-scrollbar { display: none; }
  .sb-tab { flex: none; padding: 10px 12px; font-size: 13.5px; border-radius: 8px; border: 1px solid #D0D8E9; background: #fff; margin-bottom: 8px; }
  .sb-tab:has(input:checked) { background: #1518A8; color: #fff; border-color: #1518A8; box-shadow: none; }
  .sb-sec { margin-inline-start: 0; }
  .sb-bar { flex-direction: column; border-radius: 12px; }
  .sb-f { border-inline-end: 0; border-bottom: 1px solid #EEF1F6; }
  .sb-type { min-width: 0; }
  .sb-btn { height: 50px; }
  .sb-soft { min-width: 0; }
  .sb-addr { height: 50px; }
  .sb-acts { flex-direction: column; }
  .sb-acts .btn { width: 100%; justify-content: center; }
  .dd { position: fixed; inset: auto 0 0 0; top: auto; max-width: none; width: auto; border-radius: 18px 18px 0 0; max-height: 80vh; overflow-y: auto; box-shadow: 0 -10px 30px rgba(0, 0, 0, .18); }
  .dd-type { width: auto; }
  .tp-list { columns: 1; }
  .chk { min-height: 44px; font-size: 15px; }
  .chk input { width: 22px; height: 22px; }
  .mf-win { inset: 0; transform: none; width: auto; max-width: none; max-height: none; border-radius: 0; }
  .mf-grid { grid-template-columns: 1fr; }
  .mf-grid .opts { grid-template-columns: 1fr; }
  .sub-multi .opts { grid-template-columns: 1fr; }
  .sub-multi { grid-column: auto; }
}
@media (max-width: 700px) { .sb-addr { min-height: 50px; } }
.mf-foot .fbtn-reset { margin: 0; }
.hero-pin { min-height: 40px; }
@media (max-width: 700px) {
  .fbtn-reset { min-height: 44px; display: inline-flex; align-items: center; padding: 0 10px; }
  .hero-pin { min-height: 44px; }
}
@media (max-width: 700px) { .geo-bar .geo-q { flex: none; } }

/* ===== Мастер подачи объявления ===== */
.wiz-wrap { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; padding-top: 26px; padding-bottom: 40px; align-items: start; }
.wiz-side { position: sticky; top: 20px; }
.wiz-crumb { font-size: 12.5px; color: #737A8E; }
.wiz-stepname { font-weight: 700; margin: 4px 0 8px; }
.wiz-prog { height: 5px; border-radius: 3px; background: #E1E7F0; overflow: hidden; margin-bottom: 30px; }
.wiz-prog i { display: block; height: 100%; background: linear-gradient(90deg, #9A9EE0, #1518A8); border-radius: 3px; }
.wiz-illu svg { width: 150px; height: 110px; margin-bottom: 14px; }
.wiz-side h3 { font-size: 16px; font-weight: 900; margin: 0 0 8px; }
.wiz-side p { color: #737A8E; font-size: 13px; margin: 0 0 12px; max-width: 34ch; }
.wiz-side a { display: block; color: #1518A8; font-weight: 700; font-size: 13px; margin-bottom: 6px; }
.wiz-card { background: #fff; border-radius: 14px; box-shadow: 0 2px 12px rgba(13, 22, 46, .05); padding: 26px 28px 22px; max-width: 680px; }
.wiz-h1 { font-size: 22px; font-weight: 900; margin: 0 0 18px; }
.wiz-h3 { font-size: 15px; font-weight: 900; margin: 24px 0 10px; }
.wf { margin-bottom: 18px; }
.wfields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.wfields .wf { grid-column: 1 / -1; }
.wfields .wf-num { grid-column: auto; }
.wf-num .winp { max-width: none; }
.wf-label { display: block; font-size: 13px; margin-bottom: 8px; color: #0D162E; }
.wchips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.wchip { position: relative; }
.wchip input { position: absolute; opacity: 0; width: 0; height: 0; }
.wchip span { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 14px; border: 1px solid #D0D8E9; border-radius: 8px; background: #fff; font-size: 14px; cursor: pointer; }
.wchip.sq span { width: 46px; padding: 0; }
.wchip input:checked + span { background: #E9EAF8; border-color: #1518A8; color: #0F1288; font-weight: 700; }
.wchip input:focus-visible + span { box-shadow: 0 0 0 3px #E9EAF8; }
.wchip-clear { border: 0; background: none; color: #9AA4B5; font-size: 14px; cursor: pointer; padding: 6px; }
.wcount { display: inline-flex; align-items: center; gap: 2px; height: 40px; border: 1px solid #D0D8E9; border-radius: 8px; padding: 0 2px 0 14px; font-size: 14px; }
.wcount.on { border-color: #1518A8; background: #E9EAF8; }
.wcount span { margin-inline-end: 6px; }
.wcount button { width: 38px; height: 38px; border: 0; background: none; color: #1518A8; font-size: 18px; font-weight: 700; cursor: pointer; }
.wcount input { width: 30px; text-align: center; border: 0; font: inherit; font-weight: 700; background: none; }
.winp { position: relative; max-width: 260px; }
.winp .inp { width: 100%; padding-inline-end: 44px; }
.winp u { position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); text-decoration: none; color: #737A8E; font-size: 13px; pointer-events: none; }
.winp.w-sm { max-width: 160px; } .winp.w-md { max-width: 300px; }
.wta { position: relative; } .wta-c { position: absolute; inset-inline-end: 10px; bottom: 8px; font-size: 11px; color: #9AA4B5; }
.wiz-help { color: #1518A8; font-size: 12.5px; cursor: pointer; display: inline-block; margin-top: 8px; }
.wiz-hx { display: none; font-size: 12.5px; color: #737A8E; margin-top: 6px; line-height: 1.5; }
.wiz-help.open + .wiz-hx { display: block; }
.wiz-note { background: #1518A8; color: #fff; border-radius: 10px; padding: 14px 44px 14px 16px; margin-bottom: 18px; position: relative; font-size: 13.5px; line-height: 1.45; }
.wiz-note b { display: block; margin-bottom: 4px; font-size: 14px; }
.wiz-note .btn { margin-top: 10px; }
.wiz-note-x { position: absolute; inset-inline-end: 4px; top: 4px; width: 36px; height: 36px; background: none; border: 0; color: #fff; opacity: .8; font-size: 16px; cursor: pointer; padding: 6px; }
.wiz-map { height: 300px; border-radius: 10px; overflow: hidden; background: #E8EEF5; }
.wiz-rules { display: flex; gap: 10px; color: #737A8E; font-size: 12.5px; margin-bottom: 12px; line-height: 1.4; }
.wiz-drop { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 24px; border: 1.5px dashed #D0D8E9; border-radius: 10px; color: #737A8E; font-size: 13px; cursor: pointer; text-align: center; flex-wrap: wrap; }
.wiz-drop.over { border-color: #1518A8; background: #F4F5FC; }
.wiz-drop-sm { padding: 16px; }
.btn-soft { background: #E9EAF8; color: #1518A8; }
.wiz-warn { color: #C7761B; font-size: 12.5px; margin-top: 8px; }
.wiz-thumbs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.wiz-thumb { position: relative; width: 108px; height: 80px; border-radius: 8px; overflow: visible; }
.wiz-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; display: block; }
.wiz-thumb.main img { outline: 2px solid #1518A8; }
.wiz-mainlbl { position: absolute; left: 0; top: -18px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.wiz-tb { position: absolute; left: 4px; top: 4px; width: 26px; height: 26px; border-radius: 6px; border: 0; background: rgba(255, 255, 255, .92); cursor: pointer; font-size: 13px; }
.wiz-tb-x { left: auto; right: 4px; color: #C22F2F; }
.wiz-ai { display: inline-flex; align-items: center; gap: 8px; background: #E9EAF8; color: #1518A8; font: inherit; font-weight: 700; border: 0; border-radius: 8px; padding: 9px 14px; font-size: 13px; margin-top: 10px; cursor: pointer; }
.wiz-warnbox { display: flex; gap: 10px; font-size: 12.5px; color: #737A8E; margin: -6px 0 16px; }
.wiz-foot { display: flex; align-items: center; gap: 14px; margin-top: 26px; padding-top: 16px; border-top: 1px solid #EEF1F6; }
.wiz-save { flex: 1; font-size: 13px; background: none; border: 0; text-align: start; font-family: inherit; }
button.wiz-save { color: #1518A8; font-weight: 700; cursor: pointer; }
.btn-ghost { background: none; color: #1518A8; border: 0; }
.wiz-price0 { font-weight: 900; font-size: 20px; margin-bottom: 18px; }
.wiz-promo-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.wiz-switch { position: relative; flex: none; }
.wiz-switch input { position: absolute; opacity: 0; }
.wiz-switch i { display: block; width: 46px; height: 26px; border-radius: 13px; background: #D0D8E9; position: relative; cursor: pointer; transition: background .2s; }
.wiz-switch i:after { content: ""; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: left .2s; }
.wiz-switch input:checked + i { background: #1518A8; } .wiz-switch input:checked + i:after { left: 23px; }
.wiz-tbl { border: 1px solid #D0D8E9; border-radius: 10px; overflow: hidden; margin: 14px 0; }
.wiz-tbl .r { display: grid; grid-template-columns: 22px 1.2fr 1fr 1fr; gap: 10px; align-items: center; padding: 12px 16px; border-top: 1px solid #EEF1F6; font-size: 13.5px; cursor: pointer; }
.wiz-tbl .r.h { border: 0; color: #9AA4B5; font-size: 11.5px; cursor: default; }
.wiz-tbl .r input { width: 16px; height: 16px; accent-color: #1518A8; margin: 0; }
.wiz-tbl .r:has(input:checked) { background: #F4F5FC; box-shadow: inset 0 0 0 2px #1518A8; }
.wiz-tbl .r b { text-align: end; } .wiz-tbl .g { color: #737A8E; }
.wiz-tbl.off { opacity: .45; pointer-events: none; }
.wiz-sum { max-width: 380px; margin-inline-start: auto; margin-top: 10px; }
.wiz-sum .row { display: flex; justify-content: space-between; font-weight: 700; margin-top: 10px; }
.wiz-sum-note { background: #F3F5F9; border-radius: 8px; padding: 10px 12px; margin-top: 8px; }
.wiz-sum .total { font-size: 16px; font-weight: 900; padding-top: 10px; border-top: 1px solid #EEF1F6; }
@media (max-width: 900px) {
  .wiz-wrap { grid-template-columns: 1fr; gap: 12px; }
  .wiz-side { position: static; display: grid; grid-template-columns: 1fr; }
  .wiz-illu, .wiz-side h3, .wiz-side p, .wiz-side a { display: none; }
  .wiz-prog { margin-bottom: 4px; }
}
@media (max-width: 700px) {
  .wiz-card { padding: 18px 16px 16px; border-radius: 12px; }
  .wiz-h1 { font-size: 19px; }
  .wchip span { min-height: 44px; font-size: 15px; }
  .wcount { height: 44px; }
  .winp, .winp.w-md { max-width: none; }
  .wiz-map { height: 240px; }
  .wiz-foot { flex-direction: column-reverse; align-items: stretch; gap: 8px; }
  .wiz-foot .btn { height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  .wiz-save { text-align: center; padding: 11px 0; min-height: 44px; }
  .wiz-tbl .r { grid-template-columns: 22px 1fr auto; } .wiz-tbl .r .g { display: none; }
  .wiz-sum { max-width: none; }
}

.headline { font-size: 15px; font-weight: 700; color: #C7761B; margin-bottom: 4px; }

/* ---------- Кот Тук Тук: маскот ---------- */
.cat { color: #1518A8; display: block; }
@keyframes cat-blink { 0%, 93%, 100% { transform: scaleY(1); } 96.5% { transform: scaleY(.1); } }
.cat-eye { transform-box: fill-box; transform-origin: center; animation: cat-blink 6s infinite; }
@media (prefers-reduced-motion: reduce) { .cat-eye { animation: none; } }
.wiz-illu .cat { width: 132px; height: 156px; margin-bottom: 12px; }
.empty-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
.cat-empty { width: 96px; height: 114px; opacity: .9; }
.done-cat { width: 120px; height: 142px; margin: 0 auto 6px; }
@media (max-width: 700px) { .wiz-illu .cat { width: 96px; height: 114px; } }
.cat-intro { display: grid; grid-template-columns: 200px 1fr; gap: 32px; align-items: center; background: #F3F5FA; border-radius: 18px; padding: 28px 36px; }
.cat-intro-pic { text-align: center; }
.cat-intro-pic .cat { width: 150px; height: 178px; margin: 0 auto; }
.cat-intro-name { font-size: 12px; color: #737A8E; margin-top: 6px; }
.cat-intro-text h2 { font-size: 22px; font-weight: 900; margin: 0 0 14px; letter-spacing: -.3px; }
.cat-intro-text ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cat-intro-text li b { display: block; font-size: 14px; margin-bottom: 4px; }
.cat-intro-text li span { font-size: 13px; color: #5B6B8A; line-height: 1.45; }
@media (max-width: 900px) { .cat-intro-text ul { grid-template-columns: 1fr; gap: 10px; } }
@media (max-width: 700px) { .cat-intro { grid-template-columns: 1fr; gap: 12px; padding: 22px 18px; text-align: center; } .cat-intro-pic .cat { width: 110px; height: 130px; } .cat-intro-text h2 { font-size: 19px; } .cat-intro-text ul { text-align: start; } }

/* ---------- Листание фото в карточке ---------- */
.cg { position: relative; width: 100%; height: 100%; overflow: hidden; touch-action: pan-y; z-index: 2; cursor: pointer; }
.cg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .18s; }
.cg img.on { opacity: 1; }
.cg-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .94); color: #0D162E; font: 22px/30px inherit; font-family: inherit; cursor: pointer; z-index: 3; opacity: 0; transition: opacity .15s; box-shadow: 0 1px 4px rgba(13, 22, 46, .18); padding: 0 0 2px; }
.cg-prev { left: 8px; } .cg-next { right: 8px; }
/* фото карточки — настоящая ссылка: на телефоне открывается как любая ссылка, без скрипта; стрелки и точки лежат выше */
.cg-link { position: absolute; inset: 0; z-index: 2; }
.cg-btn, .cg-dots { z-index: 3; }
.cg-btn:hover { background: #fff; }
.cg-btn:focus { outline: none; } .cg-btn:focus-visible { outline: 2px solid #1518A8; outline-offset: 2px; }
/* только для мыши: на iPhone правило :hover перехватывает первое касание, и карточка не открывается */
@media (hover: hover) { .card:hover .cg-btn, .hcard:hover .cg-btn, .lc:hover .cg-btn, [data-cg]:hover .cg-btn { opacity: 1; } }

/* фото на странице объявления открывается во весь экран */
.gphoto { cursor: zoom-in; }
.gphoto .gnav, .gphoto .gcount { cursor: default; }
.lb { position: fixed; inset: 0; z-index: 300; background: rgba(6, 10, 22, .96); display: flex; align-items: center; justify-content: center; }
.lb[hidden] { display: none; }
.lb img { max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); object-fit: contain; border-radius: 6px; user-select: none; }
.lb-x, .lb-nav { position: absolute; border: 0; background: rgba(255, 255, 255, .12); color: #fff; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lb-x:hover, .lb-nav:hover { background: rgba(255, 255, 255, .24); }
.lb-x { top: 16px; right: 16px; }
.lb-nav { top: 50%; transform: translateY(-50%); }
.lb-prev { left: 16px; } .lb-next { right: 16px; }
.lb-x svg, .lb-nav svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; }
.lb-n { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); color: rgba(255, 255, 255, .85); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lb-lock { overflow: hidden; }
@media (max-width: 700px) { .lb-nav { display: none; } .lb img { max-width: 100vw; max-height: 100vh; border-radius: 0; } }
.cg-dots { position: absolute; left: 0; right: 0; bottom: 8px; display: flex; justify-content: center; gap: 4px; z-index: 3; pointer-events: none; }
.cg-dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); }
.cg-dots i.on { background: #fff; }
@media (hover: none) { .cg-btn { display: none; } }

/* ---------- Карточка объявления в сетке (вариант «характеристики таблицей») ---------- */
/* Карточка объявления: крупное фото, под ним текст без рамки (идея 4, одобрено Айком 18.09.2026) */
.lc { border: 0; background: none; border-radius: 0; overflow: visible; }
.lc-photo { height: 210px; position: relative; border-radius: 14px; overflow: hidden; }
.lc-bds { position: absolute; left: 10px; top: 10px; display: flex; gap: 6px; z-index: 3; pointer-events: none; }
.bd { display: inline-flex; align-items: center; gap: 4px; background: #fff; color: #0D162E; font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 6px; box-shadow: 0 1px 3px rgba(13, 22, 46, .15); }
.bd-g { color: #1E6B04; background: #EAF7E3; } .bd-b { color: #0F1288; background: #E9EAF8; }
.lc-fav { position: absolute; right: 10px; top: 10px; z-index: 3; margin: 0; }
.ht { width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .94); color: #8E99AF; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 1px 3px rgba(13, 22, 46, .15); padding: 0; }
.ht:hover, .ht.on { color: #1518A8; } .ht.on svg { fill: #1518A8; }
.lc-body { padding: 10px 2px 0; }
.lc-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.lc-row .price { font-size: 20px; font-weight: 800; letter-spacing: -.2px; }
/* одна строка вместо трёх серых плашек: тип · характеристики · район, лишнее срезается многоточием */
.lc-line { color: #737A8E; font-size: 13px; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-tags { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.tg { display: inline-flex; align-items: center; gap: 4px; background: #F0F3F8; border-radius: 6px; padding: 3px 8px; font-size: 12px; color: #5B6B85; }
.tg-g { background: #EAF7E3; color: #1E6B04; }
@media (max-width: 700px) { .lc-photo { height: 190px; } }

/* ---------- Карта в объявлении ---------- */
.dmap { height: 300px; border-radius: 10px; margin-top: 12px; border: 1px solid #E4E8F0; overflow: hidden; }
.dmap-area { width: 120px; height: 120px; border-radius: 50%; background: rgba(21, 24, 168, .14); border: 2px solid rgba(21, 24, 168, .5); }
@media (max-width: 700px) { .dmap { height: 220px; } }

/* ---------- Телефон: карточки в две колонки, как у Циана ---------- */
@media (max-width: 560px) {
  .grid-4, .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .lc-photo { height: 136px; }
  .lc-body { padding: 8px 2px 0; }   /* текст по краю фото, как на компьютере */
  .lc-row { flex-direction: column; align-items: flex-start; gap: 0; }
  .lc-row .price { font-size: 15.5px; }
  .lc-row .usd { font-size: 11px; }
  .lc-line { font-size: 12px; }
  .lc-tags { margin-top: 7px; gap: 4px; } .tg { font-size: 11px; padding: 2px 6px; }
  .lc-bds { left: 6px; top: 6px; } .bd { font-size: 10px; padding: 3px 6px; }
  .lc-fav { right: 6px; top: 6px; } .ht { width: 30px; height: 30px; }
  .cg-dots { bottom: 6px; }
  /* выдача поиска */
  .results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .results > *:not(.hcard) { grid-column: 1 / -1; }
  .hcard { flex-direction: column; }
  .hphoto { width: 100%; height: 136px; min-height: 0; }
  .hbody { padding: 9px 10px 10px; gap: 4px; }
  .hbody-top { gap: 6px; }
  .htitle { font-size: 13.5px; padding: 0; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .hprice { font-size: 15.5px; margin-top: 2px; flex-direction: column; gap: 0; }
  .hprice .small { font-size: 11px; }
  .hbody .street { font-size: 12px; margin-top: 2px; }
  .hdesc { display: none; }
  .hfoot { margin-top: 4px; flex-direction: row; }
  .hfoot .hfoot-btns { display: none; }
  .hfoot .tag { font-size: 11px; }
  .hbody-top .heart svg { width: 18px; height: 18px; }
}

/* ---------- Подвал и SEO-блок: плотнее, на телефоне аккордеон ---------- */
.sec-seo { padding: 24px 0 20px; }
.seo-cols a { font-size: 12.5px; color: #5B6B85; margin-bottom: 5px; }
.seo-cols .footer-h { font-size: 13px; margin-bottom: 8px; }
.footer-cols a { margin-bottom: 6px; }
.site-footer { padding: 28px 0 22px; }
.fcol summary { list-style: none; cursor: default; }
.fcol summary::-webkit-details-marker { display: none; }
@media (min-width: 701px) { .fcol summary { pointer-events: none; } }
@media (max-width: 700px) {
  .footer-cols { display: block; }
  .fcol { border-bottom: 1px solid #E1E6EF; }
  .fcol summary { display: flex; justify-content: space-between; align-items: center; min-height: 46px; padding: 8px 0; margin: 0; cursor: pointer; font-size: 14.5px; }
  .fcol summary::after { content: "⌄"; color: #737A8E; font-size: 18px; line-height: 1; }
  .fcol[open] summary::after { content: "⌃"; }
  .fcol-b { padding: 0 0 8px; }
  .footer-cols a, .seo-cols a { padding: 9px 0; margin: 0; font-size: 14px; }
  .seo-cols a { color: #5B6B85; }
  .sec-seo { padding: 6px 0 4px; }
  .site-footer { padding: 6px 0 22px; margin-top: 8px; }
  .footer-bottom { margin-top: 18px; }
}

/* ---------- Правила сайта ---------- */
.rules { max-width: 760px; padding-top: 28px; padding-bottom: 40px; }
.rules h2 { font-size: 18px; margin: 26px 0 8px; }
.rules ul { padding-inline-start: 20px; margin: 0; }
.rules li { margin: 6px 0; line-height: 1.55; }

/* ---------- Админка: модерация и карточка объявления ---------- */
.ptabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 14px 0 10px; }
.ptabs a { padding: 7px 12px; border-radius: 8px; background: #F0F3F8; font-weight: 600; font-size: 13.5px; color: #0D162E; }
.ptabs a.on { background: #1518A8; color: #fff; }
.pfilters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.pfilters .inp { flex: 1; min-width: 220px; }
.ptable-wrap { overflow-x: auto; }
.ptable { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ptable th { text-align: start; font-size: 12px; color: #737A8E; padding: 10px 12px; border-bottom: 1px solid #EAEEF6; font-weight: 600; }
.ptable td { padding: 10px 12px; border-bottom: 1px solid #F0F3F8; vertical-align: top; }
.ptable .plink { color: #0D162E; }
.ptable .plink:hover b { color: #1518A8; }
.nowrap { white-space: nowrap; }
.inline-form { display: inline; }
.bd-a { background: #FDF3E1; color: #8A5A0A; } .bd-r { background: #FBE9E9; color: #C22F2F; }
.pcrumb { margin-bottom: 12px; }
.pl-grid { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; align-items: start; }
.pl-photos { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.pl-photos a { position: relative; width: 108px; height: 76px; border-radius: 8px; overflow: hidden; background: #DDE5F1; }
.pl-photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pl-photos span { position: absolute; left: 6px; bottom: 6px; background: rgba(13, 22, 46, .7); color: #fff; font-size: 11px; padding: 2px 6px; border-radius: 4px; }
.pl-status { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 14px; }
.kv { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 6px 12px; font-size: 13.5px; }
.kv span { color: #737A8E; } .kv b { font-weight: 600; } .kv .pl-desc { font-weight: 400; }
.h3-sm { font-size: 15px; margin: 18px 0 8px; }
.pl-params { display: flex; flex-wrap: wrap; gap: 6px; }
.pl-params span { background: #F5F7FB; border-radius: 8px; padding: 5px 9px; font-size: 13px; }
.pl-params small { display: block; font-size: 11px; color: #737A8E; }
.pchecks { display: flex; flex-wrap: wrap; gap: 6px; }
.pchecks span { border-radius: 6px; padding: 4px 8px; font-size: 12.5px; font-weight: 600; background: #EAF7E3; color: #1E6B04; }
.pchecks .warn { background: #FDF3E1; color: #8A5A0A; } .pchecks .bad { background: #FBE9E9; color: #C22F2F; }
.phist div { padding: 6px 0; border-bottom: 1px dashed #EAEEF6; font-size: 13px; }
.phist div span { margin-inline-end: 8px; }
.phist .ok { color: #1E6B04; } .phist .warn { color: #8A5A0A; } .phist .bad { color: #C22F2F; }
.pl-side { display: flex; flex-direction: column; gap: 8px; position: sticky; top: 20px; }
.pl-side .btn { text-align: center; }
.pl-actions { display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 900px) { .pl-grid { grid-template-columns: minmax(0, 1fr); } .pl-side { position: static; } .kv { grid-template-columns: 96px minmax(0, 1fr); } }
.kv b, .kv span { min-width: 0; overflow-wrap: anywhere; }
.ptitle { overflow-wrap: anywhere; }

/* ---------- Профессионалы на главной: плотный список как у Циана ---------- */
.pl-grp { margin-bottom: 36px; }
.pl-grp:last-child { margin-bottom: 0; }
.pl-h { font-size: 22px; font-weight: 900; margin: 0 0 18px; }
.pl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 32px; margin-bottom: 20px; }
@media (max-width: 900px) { .pl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pl-grid { grid-template-columns: 1fr; gap: 14px; } }
.pl-row { display: flex; align-items: center; gap: 14px; color: #0D162E; min-width: 0; }
.pl-row:hover b { color: #1518A8; }
.pl-ava { position: relative; width: 54px; height: 54px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px; color: #fff; flex: none; }
.pl-ava.sq { border-radius: 12px; font-size: 14px; }
.pl-ava img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.pl-medal { position: absolute; right: -4px; bottom: -4px; width: 22px; height: 22px; border-radius: 50%; background: #FFF3D6; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; }
.pl-medal .medal { width: 13px; height: 13px; }
.pl-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pl-txt b { font-size: 16px; font-weight: 800; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-txt span { font-size: 14px; color: #5B6B8A; }
.pl-btn { background: #E9EAF8; color: #1518A8; }
.pl-btn:hover { background: #DCDEF5; }

/* ---------- Профессионалы: риелторы, агентства, застройщики ---------- */
.pros-grp { margin-top: 22px; }
.h3-pro { font-size: 18px; font-weight: 900; margin: 0; }
.pro-rail { display: flex; gap: 12px; overflow-x: auto; padding: 4px 0 8px; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-top: 10px; }
.pro-rail::-webkit-scrollbar { display: none; }
.pro-card { flex: 0 0 232px; scroll-snap-align: start; background: #fff; border: 1px solid #D0D8E9; border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 8px; color: #0D162E; }
.pro-card:hover { border-color: #1518A8; }
.pro-ava { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; color: #fff; flex: none; overflow: hidden; }
.pro-ava.sq { border-radius: 12px; font-size: 15px; letter-spacing: .02em; }
.pro-ava.xl { width: 84px; height: 84px; font-size: 26px; }
.pro-ava img { width: 100%; height: 100%; object-fit: cover; }
.pro-name { font-weight: 800; font-size: 15px; line-height: 1.2; }
.pro-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 800; padding: 3px 8px; border-radius: 99px; background: #EEF1F6; color: #737A8E; align-self: flex-start; white-space: nowrap; }
.pro-badge.gold { background: #FFF3D6; color: #8A5A0A; } .pro-badge.blue { background: #E9EAF8; color: #1518A8; } .pro-badge.green { background: #E4F5E8; color: #1B8A3A; }
.pro-meta { font-size: 12.5px; color: #737A8E; line-height: 1.45; }
.pro-meta b { color: #0D162E; }
.pros-search { display: flex; gap: 8px; margin-top: 14px; max-width: 520px; }
.pros-search .inp { flex: 1; }
.pros-list { display: flex; flex-direction: column; }
.pros-row { display: grid; grid-template-columns: 56px minmax(180px, 1.2fr) minmax(0, 2fr) repeat(auto-fit, 110px); gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid #EAEEF6; color: #0D162E; }
.pros-row:hover b { color: #1518A8; }
.pros-who { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.pros-who b { font-size: 15px; }
.pros-spec { line-height: 1.45; }
.pros-n { display: flex; flex-direction: column; }
.pros-n b { font-size: 16px; font-weight: 900; }
@media (max-width: 700px) { .pros-row { grid-template-columns: 48px minmax(0, 1fr); } .pros-spec { grid-column: 2; } .pros-n { flex-direction: row; gap: 6px; align-items: baseline; grid-column: 2; } }
.seller-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
@media (max-width: 900px) { .seller-grid { grid-template-columns: 1fr; } }
.seller-side { position: sticky; top: 16px; }
.seller-docs { display: inline-flex; align-items: center; gap: 6px; color: #1518A8; font-weight: 700; font-size: 13.5px; margin-top: 6px; }
.seller-kv .kv-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px 16px; padding: 10px 0; border-bottom: 1px solid #F0F3F8; font-size: 14px; line-height: 1.55; }
.seller-kv .kv-row:last-child { border-bottom: 0; }
.seller-kv .kv-row > span { color: #737A8E; }
@media (max-width: 600px) { .seller-kv .kv-row { grid-template-columns: 1fr; gap: 2px; } }
.phone-reveal.inline { display: inline; } .phone-reveal.inline summary { display: inline; cursor: pointer; list-style: none; } .phone-reveal.inline summary b { color: #1518A8; margin-inline-start: 6px; }
.phone-reveal.inline[open] summary { display: none; }
.lead-form h2 { margin-bottom: 12px; }
.lead-deals { display: flex; gap: 6px; flex-wrap: wrap; }
.lead-tab { background: #fff; color: #0D162E; border-color: #D0D8E9; height: 34px; padding: 0 12px; font-size: 13px; }
.lead-tab:hover { background: #F3F5FA; }
.lead-tab:has(input:checked) { background: #1518A8; color: #fff; border-color: #1518A8; box-shadow: none; }
.lead-ok { background: #E4F5E8; color: #1B6B2A; border-radius: 10px; padding: 14px; font-weight: 700; }
.lead-new { border-color: #1518A8; }
.mt24 { margin-top: 24px; }
.impersonate-bar { background: #FFF3D6; color: #5A4300; font-size: 13px; padding: 8px 0; text-align: center; }
.impersonate-bar a { color: #1518A8; font-weight: 800; margin-inline-start: 8px; }

/* ---------- Панель управления: светлая оболочка (меню слева, поиск сверху, обзор) ---------- */
.pw-body { background: #F6F7FA; display: block; }
.pw { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; }
.pw-side { background: #fff; border-inline-end: 1px solid #E3E7EE; padding: 14px 12px; display: flex; flex-direction: column; gap: 2px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.pw-brand { display: flex; align-items: center; gap: 10px; padding: 8px 8px 16px; color: #161B2E; }
.pw-brand .tt-logo { font-size: 18px; }
.pw-brand b { font-size: 13px; font-weight: 800; color: #6B7386; padding-inline-start: 10px; border-inline-start: 1px solid #E3E7EE; line-height: 1.6; }
.pw-nav { display: flex; flex-direction: column; gap: 2px; }
.pw-cap { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: #9AA3B5; padding: 12px 10px 4px; }
.pw-mi { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; font-size: 13.5px; font-weight: 700; color: #3C4660; }
.pw-mi:hover { background: #F3F5FA; color: #161B2E; }
.pw-mi.on { background: #EEF0FB; color: #1518A8; }
.pw-mi svg { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pw-mi span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-b { font-size: 11px; font-weight: 800; border-radius: 99px; min-width: 18px; height: 18px; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; background: #C22F2F; color: #fff; }
.pw-b.soft { background: #EEF1F6; color: #6B7386; }
.pw-me { margin-top: auto; padding: 12px 10px 4px; border-top: 1px solid #E3E7EE; font-size: 12.5px; color: #6B7386; }
.pw-me b { display: block; color: #161B2E; font-size: 13px; }
.pw-out { border: 0; background: none; padding: 0; font: inherit; color: #6B7386; cursor: pointer; text-decoration: underline; }
.pw-main { min-width: 0; }
.pw-top { height: 56px; display: flex; align-items: center; gap: 12px; padding: 0 22px; background: #fff; border-bottom: 1px solid #E3E7EE; position: sticky; top: 0; z-index: 20; }
.pw-burger { display: none; width: 36px; height: 36px; border: 1px solid #E3E7EE; border-radius: 8px; background: #fff; align-items: center; justify-content: center; }
.pw-burger svg { width: 18px; height: 18px; stroke: #161B2E; fill: none; stroke-width: 2; stroke-linecap: round; }
.pw-search { flex: 1; max-width: 480px; height: 36px; border: 1px solid #E3E7EE; border-radius: 8px; background: #fff; display: flex; align-items: center; gap: 8px; padding: 0 12px; }
.pw-search:focus-within { border-color: #1518A8; box-shadow: 0 0 0 3px #E9EAF8; }
.pw-search svg { width: 15px; height: 15px; stroke: #9AA3B5; fill: none; stroke-width: 2; flex: none; }
.pw-search input { border: 0; outline: 0; background: none; font: inherit; font-size: 13.5px; color: #161B2E; width: 100%; min-width: 0; }
.pw-search input::placeholder { color: #9AA3B5; }
.pw-ic { width: 34px; height: 34px; border: 1px solid #E3E7EE; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; position: relative; background: #fff; flex: none; }
.pw-ic svg { width: 16px; height: 16px; stroke: #161B2E; fill: none; stroke-width: 2; }
.pw-ic i { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: #C22F2F; color: #fff; font-size: 10px; font-weight: 800; font-style: normal; display: flex; align-items: center; justify-content: center; }
.pw-lang { display: inline-flex; border: 1px solid #E3E7EE; border-radius: 8px; overflow: hidden; font-size: 12px; font-weight: 800; flex: none; }
.pw-lang a { padding: 8px 10px; color: #6B7386; }
.pw-lang a.on { background: #1518A8; color: #fff; }
.pw-site { font-size: 13px; font-weight: 700; color: #1518A8; white-space: nowrap; }
.pw-content { padding: 18px 22px 40px; max-width: 1240px; }
.pw-hello { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.pw-hello h1 { margin: 0; font-size: 20px; font-weight: 800; }
.pw-hello span { color: #6B7386; font-size: 13.5px; }
.pw-kpi { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.pw-kpi .k { background: #fff; border: 1px solid #E3E7EE; border-radius: 10px; padding: 14px 16px; color: #161B2E; display: block; }
.pw-kpi .l { font-size: 12px; color: #6B7386; font-weight: 700; }
.pw-kpi .n { font-size: 26px; font-weight: 800; margin: 4px 0 2px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.pw-kpi .d { font-size: 12px; color: #6B7386; }
.pw-kpi .d b { font-weight: 800; color: #161B2E; }
.pw-kpi .up { color: #1B8A3A; } .pw-kpi .dn { color: #C22F2F; }
.pw-kpi .k.warn { border-color: #F5D9AE; background: #FFF6E8; }
.pw-kpi .k.warn .n { color: #C24F0E; }
.pw-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; align-items: start; }
.pw-grid .card { border-radius: 10px; }
.pw-grid .card .h { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid #EEF1F6; font-weight: 800; font-size: 14px; }
.pw-grid .card .h .q { font-weight: 400; color: #6B7386; font-size: 12.5px; }
.pw-grid .card .h .r { margin-inline-start: auto; font-size: 12.5px; font-weight: 700; color: #1518A8; }
.pw-grid .card.mt12 { margin-top: 12px; }
.pw-chart { padding: 14px 16px 10px; }
.pw-chart .legend { display: flex; gap: 14px; font-size: 12px; color: #6B7386; margin-bottom: 10px; }
.pw-chart .legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-inline-end: 5px; vertical-align: middle; }
.pw-chart .c1 { background: #1518A8; } .pw-chart .c2 { background: #C9CFF0; }
.pw-chart .bars { display: flex; align-items: flex-end; gap: 5px; height: 120px; }
.pw-chart .bars i { flex: 1; border-radius: 3px 3px 0 0; min-height: 2px; }
.pw-chart .bars i.a { background: #1518A8; } .pw-chart .bars i.v { background: #C9CFF0; }
.pw-chart .axis { display: flex; justify-content: space-between; font-size: 10.5px; color: #9AA3B5; margin-top: 6px; }
.pw-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.pw-t { width: 100%; border-collapse: collapse; font-size: 13px; }
.pw-t th { text-align: start; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: #6B7386; padding: 8px 16px; border-bottom: 1px solid #EEF1F6; font-weight: 700; }
.pw-t td { padding: 9px 16px; border-bottom: 1px solid #EEF1F6; vertical-align: top; }
.pw-t tr:last-child td { border-bottom: 0; }
.pw-t td small { display: block; color: #6B7386; font-size: 12px; }
.pw-t td a { color: #161B2E; font-weight: 700; }
.pw-t td a:hover { color: #1518A8; }
.pw-t .num { text-align: end; font-variant-numeric: tabular-nums; }
.pw-t .tag { font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 99px; background: #EEF1F6; color: #6B7386; white-space: nowrap; }
.pw-t .tag.ok { background: #E6F5EA; color: #1B8A3A; } .pw-t .tag.w { background: #FFF6E8; color: #C24F0E; }
.pw-ti { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid #EEF1F6; font-size: 13.5px; }
.pw-ti:last-child { border-bottom: 0; }
.pw-ti .dot { width: 8px; height: 8px; border-radius: 50%; background: #C22F2F; flex: none; }
.pw-ti .dot.ok { background: #1B8A3A; } .pw-ti .dot.warn { background: #C24F0E; }
.pw-ti .t { flex: 1; min-width: 0; } .pw-ti .t small { display: block; color: #6B7386; font-size: 12px; }
.pw-ti .btn { white-space: nowrap; }
.pw-ev { padding: 9px 16px; border-bottom: 1px solid #EEF1F6; font-size: 12.5px; display: flex; gap: 10px; }
.pw-ev:last-child { border-bottom: 0; }
.pw-ev time { color: #9AA3B5; flex: none; width: 44px; font-variant-numeric: tabular-nums; }
.pw-tab, .pw-backdrop { display: none; }
@media (max-width: 900px) {
  .pw { grid-template-columns: 1fr; }
  .pw-side { position: fixed; inset: 0 auto 0 0; width: 264px; z-index: 60; transform: translateX(-100%); transition: transform .2s; box-shadow: 0 0 40px rgba(13, 22, 46, .25); }
  .pw-side.open { transform: none; }
  .pw-backdrop { display: block; position: fixed; inset: 0; background: rgba(13, 22, 46, .4); z-index: 55; }
  .pw-backdrop[hidden] { display: none; }
  .pw-lock { overflow: hidden; }
  .pw-burger { display: inline-flex; }
  .pw-top { padding: 0 14px; gap: 8px; }
  .pw-site, .pw-lang { display: none; }
  .pw-content { padding: 14px 14px 90px; }
  .pw-kpi { grid-template-columns: 1fr 1fr; }
  .pw-grid, .pw-two { grid-template-columns: 1fr; }
  .pw-tab { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #fff; border-top: 1px solid #E3E7EE; padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
  .pw-tab a, .pw-tab button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 10px; font-weight: 700; color: #6B7386; border: 0; background: none; font-family: inherit; position: relative; padding: 4px 0; }
  .pw-tab a.on { color: #1518A8; }
  .pw-tab svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .pw-tab i { position: absolute; top: 0; right: calc(50% - 18px); min-width: 14px; height: 14px; padding: 0 3px; border-radius: 99px; background: #C22F2F; color: #fff; font-size: 9px; font-style: normal; display: flex; align-items: center; justify-content: center; }
}

/* ---------- Админка «Я ДОМА» ---------- */
.yd-body { background: #F3F5FA; display: block; }
.yd-hdr { background: #fff; border-bottom: 1px solid #D0D8E9; }
.yd-hdr-row { display: flex; align-items: center; gap: 14px; height: 60px; }
.yd-brand { display: flex; align-items: center; gap: 12px; color: #1518A8; font-weight: 900; font-size: 19px; letter-spacing: .3px; }
.yd-brand b { padding-inline-start: 12px; border-inline-start: 1px solid #D0D8E9; line-height: 1.6; }
.yd-crumb { color: #737A8E; font-weight: 600; font-size: 14px; }
.yd-user { font-weight: 700; font-size: 14px; }
.yd-lnk { color: #1518A8; font-weight: 700; font-size: 14px; background: none; border: 0; font-family: inherit; cursor: pointer; padding: 0; }
.yd-chips { display: flex; gap: 6px; flex-wrap: wrap; padding: 14px 0 0; }
.yd-chip { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid #D0D8E9; border-radius: 8px; padding: 6px 10px; font-size: 13px; font-weight: 700; color: #0D162E; min-height: 36px; }
.yd-chip svg { width: 18px; height: 18px; color: #1518A8; }
.yd-chip.on { background: #1518A8; border-color: #1518A8; color: #fff; } .yd-chip.on svg { color: #fff; }
.yd-chip:hover { border-color: #1518A8; }
.rb { background: #C22F2F; color: #fff; font-style: normal; font-size: 11px; font-weight: 800; border-radius: 999px; padding: 1px 7px; line-height: 1.5; }
.yd-main { padding-top: 18px; padding-bottom: 40px; max-width: 1200px; }
.yd-hdr-row, .yd-chips { max-width: 1160px; }
.yd-welcome { display: flex; align-items: center; gap: 18px; padding: 14px 20px; margin-bottom: 16px; }
.yd-cat { width: 64px; height: 76px; flex: none; }
.yd-wt { font-size: 18px; font-weight: 900; }
.yd-wq { margin-inline-start: auto; display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.yd-wq .tag { font-weight: 600; } .tag-red { background: #FBE9E9; color: #C22F2F; }
.yd-rooms { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.yd-room { aspect-ratio: 1 / 1; background: #fff; border: 1px solid #D0D8E9; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; position: relative; color: #0D162E; transition: border-color .15s, box-shadow .15s, transform .15s; }
.yd-room:hover { border-color: #1518A8; box-shadow: 0 6px 18px rgba(21, 24, 168, .10); transform: translateY(-2px); }
.yd-room .rb { position: absolute; top: 12px; right: 12px; }
.yd-ric { width: 44px; height: 44px; border-radius: 12px; background: #E9EAF8; display: flex; align-items: center; justify-content: center; }
.yd-ric svg { width: 28px; height: 28px; }
.yd-rt { margin-top: auto; min-width: 0; }
.yd-rt b { display: block; font-size: 17px; line-height: 1.15; font-weight: 900; overflow-wrap: anywhere; }
.yd-rt span { display: block; font-size: 12.5px; color: #737A8E; margin-top: 3px; line-height: 1.3; }
.yd-rt em { display: inline-block; font-style: normal; font-size: 12px; font-weight: 700; color: #1518A8; background: #E9EAF8; border-radius: 6px; padding: 3px 8px; margin-top: 9px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1100px) { .yd-rooms { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) { .yd-rooms { grid-template-columns: repeat(3, minmax(0, 1fr)); } .yd-welcome { flex-wrap: wrap; } .yd-wq { margin-inline-start: 0; justify-content: flex-start; } }
@media (max-width: 700px) {
  .yd-hdr-row { height: 56px; gap: 10px; } .yd-crumb, .yd-user { display: none; }
  .yd-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .yd-room { padding: 12px; border-radius: 12px; } .yd-ric { width: 38px; height: 38px; border-radius: 10px; } .yd-ric svg { width: 24px; height: 24px; }
  .yd-rt b { font-size: 15px; } .yd-rt span { font-size: 11.5px; } .yd-rt em { font-size: 11px; padding: 2px 7px; }
  .yd-welcome { padding: 12px 14px; gap: 12px; } .yd-cat { width: 48px; height: 58px; } .yd-wt { font-size: 16px; }
  .yd-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; } .yd-chip { flex: none; }
}
.yd-lang { display: inline-flex; border: 1px solid #D0D8E9; border-radius: 8px; overflow: hidden; }
.yd-lang a { padding: 5px 10px; font-size: 13px; font-weight: 700; color: #0D162E; min-height: 32px; display: inline-flex; align-items: center; }
.yd-lang a.on { background: #1518A8; color: #fff; }

/* ---------- «Подвал»: сервисы, платежи, ключи (одобрено Айком 14.09.2026, макет design/panel/podval-services.html) ---------- */
.sv-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.sv-tile { background: #fff; border: 1px solid #D0D8E9; border-radius: 14px; padding: 16px 18px; }
.sv-tile small { display: block; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #737A8E; }
.sv-tile b { display: block; font-size: 26px; font-weight: 900; color: #0D162E; margin-top: 4px; font-variant-numeric: tabular-nums; }
.sv-tile span { display: block; font-size: 13px; color: #5B6B8A; margin-top: 2px; }
.sv-tile.next { border-color: #1518A8; } .sv-tile.next b { color: #1518A8; }
.sv-grp { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #737A8E; padding: 14px 20px 6px; border-top: 1px solid #E4E8F0; }
.sv-row { display: grid; grid-template-columns: minmax(0, 2.3fr) minmax(0, 1fr) minmax(0, 1.3fr) 310px; gap: 16px; align-items: start; padding: 14px 20px; border-top: 1px solid #EEF1F6; }
.sv-grp + .sv-row { border-top: 0; }
.sv-add { grid-template-columns: minmax(0, 1fr) auto; border-top: 1px solid #E4E8F0; background: #FAFBFD; }
.sv-name b { display: block; font-size: 15px; }
.sv-name span { display: block; font-size: 13px; color: #737A8E; line-height: 1.4; margin-top: 2px; white-space: pre-line; }
.sv-cost b, .sv-when b { display: block; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.sv-cost span, .sv-when span { display: block; font-size: 12.5px; color: #737A8E; margin-top: 2px; }
.sv-when .tag { display: inline-block; margin-top: 6px; font-style: normal; }
.sv-act { display: flex; gap: 8px; align-items: center; justify-content: flex-start; flex-wrap: nowrap; }
.sv-row > .sv-act .sv-edit { margin-inline-start: auto; }   /* кнопки начинаются с одной линии, «Изменить» у правого края */
.sv-act-l { justify-content: flex-start; margin-top: 8px; }
.sv-open { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid #1518A8; border-radius: 8px; color: #1518A8; font-weight: 700; font-size: 13px; white-space: nowrap; }
.sv-open:hover { background: #1518A8; color: #fff; }
.sv-edit { font: inherit; font-size: 12.5px; color: #737A8E; font-weight: 700; background: none; border: 0; cursor: pointer; padding: 6px 2px; }
.sv-edit:hover { color: #1518A8; }
.tag-grey { background: #EEF1F6; color: #5B6B8A; }
.sv-form { padding: 6px 0 16px; background: #FAFBFD; border-top: 1px dashed #D0D8E9; }
.sv-form[hidden] { display: none; }
.sv-mt { margin-top: 6px; }
.sv-form-foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 4px 20px 0; }
.sv-check { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 600; }
.sv-order { width: 72px; }
.sv-cal { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); padding: 22px 20px 18px; }
.sv-ev { position: relative; padding: 22px 12px 0 0; border-top: 3px solid #D0D8E9; }
.sv-ev::before { content: ""; position: absolute; top: -8px; left: 0; width: 13px; height: 13px; border-radius: 50%; background: #fff; border: 3px solid #1518A8; }
.sv-ev.pay::before { background: #1518A8; }
.sv-ev.far::before { border-color: #9A9EE0; }
.sv-ev small { display: block; font-size: 12px; font-weight: 800; color: #1518A8; letter-spacing: .03em; text-transform: uppercase; }
.sv-ev b { display: block; font-size: 14px; margin-top: 3px; }
.sv-ev span { display: block; font-size: 12.5px; color: #737A8E; margin-top: 2px; line-height: 1.35; }
.sv-keys { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; padding: 0 20px; }
.sv-keys .sv-form { grid-column: 1 / -1; margin: 0 -20px; }
.sv-key { padding: 14px 0; border-top: 1px solid #EEF1F6; display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.sv-key > i { flex: none; width: 30px; height: 30px; border-radius: 8px; background: #E9EAF8; color: #1518A8; display: flex; align-items: center; justify-content: center; font-style: normal; font-weight: 900; font-size: 14px; }
.sv-key.risk > i { background: #FBE9E9; color: #C22F2F; }
.sv-key b { display: block; font-size: 14.5px; }
.sv-key span { display: block; font-size: 13px; color: #5B6B8A; line-height: 1.4; margin-top: 2px; white-space: pre-line; }
.sv-key .sv-due { color: #1518A8; font-weight: 700; }
@media (max-width: 900px) {
  .sv-sum { grid-template-columns: minmax(0, 1fr); }
  .sv-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 14px; }
  .sv-name, .sv-row > .sv-act { grid-column: 1 / -1; justify-content: flex-start; }
  .sv-add { grid-template-columns: minmax(0, 1fr); }
  .sv-cal { grid-template-columns: minmax(0, 1fr); padding-left: 30px; }
  .sv-ev { border-top: 0; border-left: 3px solid #D0D8E9; padding: 0 0 16px 18px; }
  .sv-ev::before { top: 0; left: -8px; }
  .sv-keys { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .yd-hdr-row { gap: 8px; }
  .yd-brand { gap: 8px; } .yd-brand b { font-size: 15px; white-space: nowrap; padding-inline-start: 8px; } .yd-brand .tt-logo { font-size: 17px; }
  .yd-lang a { padding: 4px 8px; font-size: 12px; min-height: 30px; }
  .yd-lnk { font-size: 12.5px; white-space: nowrap; }
  .yd-hdr-row .yd-lnk:not(.yd-out) { display: none; }
}
.yd-rhead { display: flex; align-items: center; gap: 10px; padding-inline-end: 28px; }
.yd-rhead b { font-size: 17px; font-weight: 900; line-height: 1.15; overflow-wrap: normal; word-break: normal; min-width: 0; }
.yd-rt span { margin-top: 0; }
@media (max-width: 700px) { .yd-rhead { gap: 8px; padding-inline-end: 22px; } .yd-rhead b { font-size: 13.5px; letter-spacing: -.2px; } }

/* ---------- Мобильная главная: поиск «Что ищете?» и плитки, как у Циана ---------- */
.mh, .mh-sheet { display: none; }
@media (max-width: 700px) {
  .hero { padding: 12px 0 18px; }
  .hero .hero-pin { border: 0; background: none; padding: 0; margin: 0 0 8px; min-height: 36px; font-size: 13.5px; }
  .hero-h1 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
  .mh { display: block; }
  /* на телефоне фото занимает верх экрана, поиск лежит на нём снизу, плитки — под фото на белом */
  .hero { min-height: 0; height: 273px; padding: 0; align-items: flex-end; }
  .hero .hero-body { padding-bottom: 12px; }
  .hero h1 { display: none; }
  .hero-place { margin-bottom: 10px; }
  .mh-tiles-sec { padding: 12px 0 4px; }
  .mh-sbox { display: flex; align-items: center; gap: 4px; background: rgba(255, 255, 255, .94); border-radius: 16px; padding: 6px; box-shadow: 0 8px 22px rgba(8, 14, 32, .3); }
  .mh-q { flex: 1; min-width: 0; text-align: start; background: #fff; border: 0; border-radius: 12px; padding: 0 14px; height: 48px; font: inherit; font-size: 16px; color: #7B849A; cursor: pointer; }
  .mh-fil { width: 44px; height: 44px; flex: none; border: 0; background: none; display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 10px; }
  .mh-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
  .mh-tile { position: relative; display: block; aspect-ratio: 1.28 / 1; background: #EEF1F8; border: 0; border-radius: 12px; overflow: hidden; padding: 9px; color: #0D162E; font: inherit; text-align: start; cursor: pointer; }
  .mh-tile span { position: relative; z-index: 1; display: block; font-size: 13px; font-weight: 700; line-height: 1.2; letter-spacing: -.2px; }
  .mh-ill { position: absolute; right: 4px; bottom: 2px; width: 76%; height: 68%; }
  .mh-more { position: absolute; right: 9px; bottom: 12px; width: 32px; height: 32px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 22px; font-weight: 700; color: #5B6B85; box-shadow: 0 1px 4px rgba(13, 22, 46, .1); }
  .sb { display: none; }
  .mh-stitle { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
  .mh-stitle b { font-size: 19px; font-weight: 900; }
  .mh-x { width: 40px; height: 40px; border: 0; background: #F0F3F8; border-radius: 50%; font-size: 22px; line-height: 1; cursor: pointer; color: #0D162E; }
  body.mh-lock { overflow: hidden; }
  .mh-backdrop:not([hidden]) { position: fixed; inset: 0; background: rgba(13, 22, 46, .45); z-index: 90; }
  .mh-sheet:not([hidden]) { display: block; position: fixed; z-index: 95; background: #fff; }
  .mh-full { inset: 0; overflow-y: auto; }
  .mh-bottom { left: 0; right: 0; bottom: 0; top: 12vh; border-radius: 20px 20px 0 0; padding: 8px 16px 24px; overflow-y: auto; box-shadow: 0 -10px 30px rgba(13, 22, 46, .2); }
  .mh-grab { width: 40px; height: 5px; border-radius: 3px; background: #D0D8E9; margin: 0 auto 10px; }
  .mh-shead { display: flex; align-items: center; gap: 6px; padding: 8px 10px; border-bottom: 1px solid #E4E8F0; position: sticky; top: 0; background: #fff; }
  .mh-back { width: 40px; height: 44px; flex: none; border: 0; background: none; font-size: 30px; line-height: 1; color: #0D162E; cursor: pointer; }
  .mh-input { flex: 1; min-width: 0; height: 46px; border: 2px solid #1518A8; border-radius: 12px; padding: 0 12px; font: inherit; font-size: 16px; }
  .mh-sbody { padding: 4px 16px 24px; }
  .mh-cap { font-size: 12px; color: #737A8E; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; margin: 16px 0 6px; }
  .mh-sug a { display: block; padding: 10px 0; min-height: 44px; border-bottom: 1px solid #F0F3F8; color: #0D162E; }
  .mh-sug b { display: block; font-weight: 600; } .mh-sug small { color: #737A8E; }
  .mh-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .mh-chips a { background: #F0F3F8; border-radius: 8px; padding: 10px 12px; font-size: 13.5px; font-weight: 600; color: #0D162E; }
  .mh-seg { display: flex; background: #F0F3F8; border-radius: 10px; padding: 3px; margin-bottom: 4px; }
  .mh-seg label { flex: 1; } .mh-seg input { position: absolute; opacity: 0; width: 0; height: 0; }
  .mh-seg span { display: block; text-align: center; padding: 10px 2px; font-size: 13px; font-weight: 700; border-radius: 8px; cursor: pointer; }
  .mh-seg input:checked + span { background: #fff; box-shadow: 0 1px 3px rgba(13, 22, 46, .12); }
  .mh-row { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 46px; padding: 12px 0; border: 0; border-bottom: 1px solid #F0F3F8; background: none; font: inherit; font-size: 15px; color: #0D162E; text-align: start; cursor: pointer; }
  .mh-row span { color: #9AA4B5; font-size: 18px; }
}

/* ---------- Фильтры на телефоне на весь экран, как у Циана ---------- */
.mf-sheet, .flt-btn-m { display: none; }
@media (max-width: 700px) {
  .flt-btn-d { display: none !important; }
  .flt-btn-m { display: inline-flex; align-items: center; gap: 6px; font: inherit; cursor: pointer; }
  .mf-sheet:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 96; background: #fff; }
  .mf-form { display: flex; flex-direction: column; height: 100%; }
  .mf-sheet .mf-head { display: flex; align-items: center; justify-content: space-between; gap: 0; position: static; padding: 6px 8px; padding-inline-end: 8px; border-bottom: 1px solid #E4E8F0; flex: none; }
  .mf-sheet .mf-head b { font-size: 17px; font-weight: 800; }
  .mf-x, .mf-reset { min-width: 76px; height: 44px; border: 0; background: none; font: inherit; color: #1518A8; cursor: pointer; }
  .mf-x { font-size: 22px; text-align: start; padding-left: 8px; } .mf-reset { font-weight: 600; font-size: 14.5px; text-align: end; padding-right: 8px; }
  .mf-sheet .mf-body { flex: 1; overflow-y: auto; padding: 14px 16px 24px; -webkit-overflow-scrolling: touch; }
  .mf-cap { font-size: 14px; color: #3C4660; margin: 18px 0 8px; }
  .mf-sheet .mf-body > .mf-chips:first-of-type { margin-top: 0; }
  .mf-chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .mf-ch { display: inline-flex; position: relative; cursor: pointer; background: none; border: 0; padding: 0; font: inherit; }
  .mf-ch input { position: absolute; opacity: 0; width: 0; height: 0; }
  .mf-ch span { display: block; border: 1px solid #D0D8E9; border-radius: 10px; padding: 10px 14px; font-size: 15px; color: #0D162E; background: #fff; }
  .mf-ch input:checked + span, .mf-com.on span { background: #E9EAF8; border-color: #1518A8; }
  .mf-ch input:focus-visible + span { outline: 2px solid #1518A8; outline-offset: 2px; }
  .mf-rooms { display: flex; gap: 6px; }
  .mf-rooms label { flex: 1; position: relative; cursor: pointer; }
  .mf-rooms input { position: absolute; opacity: 0; width: 0; height: 0; }
  .mf-rooms span { display: block; text-align: center; border: 1px solid #D0D8E9; border-radius: 10px; padding: 11px 0; font-weight: 600; }
  .mf-rooms input:checked + span { background: #E9EAF8; border-color: #1518A8; }
  .mf-mm { display: flex; gap: 8px; align-items: center; }
  .mf-mm .inp { flex: 1; min-width: 0; height: 46px; font-size: 16px; }
  .mf-mm em { font-style: normal; color: #737A8E; font-size: 13px; white-space: nowrap; }
  .mf-row { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; border: 0; border-bottom: 1px solid #F0F3F8; background: none; font: inherit; color: #0D162E; cursor: pointer; padding: 0; text-align: start; }
  .mf-row b { font-weight: 500; } .mf-row > span { color: #737A8E; font-size: 14px; }
  .mf-acc { border-bottom: 1px solid #F0F3F8; }
  .mf-acc:first-of-type { margin-top: 12px; border-top: 1px solid #F0F3F8; }
  .mf-acc summary { list-style: none; display: flex; justify-content: space-between; align-items: center; min-height: 50px; font-weight: 600; cursor: pointer; }
  .mf-acc summary::-webkit-details-marker { display: none; }
  .mf-acc summary::after { content: "⌄"; color: #9AA4B5; font-size: 18px; }
  .mf-acc[open] summary::after { content: "⌃"; }
  .mf-acc[open] { padding-bottom: 12px; }
  .mf-sub { font-size: 13px; color: #737A8E; margin: 10px 0 6px; }
  .mf-sheet .mf-foot { flex: none; align-items: stretch; justify-content: flex-start; border-top: 1px solid #E4E8F0; padding: 12px 16px calc(14px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 10px; background: #fff; }
  .mf-cta { height: 52px; border: 0; border-radius: 12px; background: #1518A8; color: #fff; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; }
  .mf-save { display: flex; align-items: center; justify-content: center; height: 48px; border: 0; border-radius: 12px; background: #E9EAF8; color: #1518A8; font: inherit; font-weight: 700; cursor: pointer; }
}

/* ===== Выпадающее меню шапки (только компьютер) ===== */
.mm, .mm-dim { display: none; }
@media (min-width: 1001px) {
  .site-header { position: relative; z-index: 60; }
  .main-nav { align-self: stretch; }
  .main-nav a { display: flex; align-items: center; border-bottom: 3px solid transparent; padding-top: 3px; }
  .main-nav a.on { color: #1518A8; border-bottom-color: #1518A8; }
  .mm:not([hidden]) { display: block; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid #E4E8F0; box-shadow: 0 18px 30px rgba(13, 22, 46, .16); }
  .mm-dim:not([hidden]) { display: block; position: fixed; inset: 0; background: rgba(13, 22, 46, .45); z-index: 55; }
  .mm-cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; padding-top: 26px; padding-bottom: 24px; }
  .mm-main a { display: block; width: max-content; max-width: 100%; font-weight: 700; font-size: 16px; padding: 6px 0; color: #0D162E; }
  .mm-main .mm-acc { color: #1518A8; }
  .mm-two { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
  .mm-two a { display: block; width: max-content; max-width: 100%; font-weight: 600; font-size: 15px; padding: 5px 0; color: #0D162E; }
  .mm-h { font-weight: 800; font-size: 14.5px; margin-bottom: 8px; color: #0D162E; }
  .mm-plist { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; }
  .mm-plist a { padding: 6px 0; color: #3C4660; font-size: 14.5px; }
  .mm a:hover { color: #1518A8; }
  .mm a:focus-visible { outline: 2px solid #1518A8; outline-offset: 2px; border-radius: 4px; }
  .mm-card { position: relative; display: block; align-self: start; min-height: 172px; border-radius: 14px; overflow: hidden; color: #0D162E; }
  .mm-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
  .mm-card.has-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .9) 48%, rgba(255, 255, 255, 0) 78%); }
  [dir="rtl"] .mm-card img { object-position: left center; }
  [dir="rtl"] .mm-card.has-img::after { background: linear-gradient(270deg, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .9) 48%, rgba(255, 255, 255, 0) 78%); }
  .mm-card-t { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 6px; max-width: 64%; padding: 18px 20px; }
  .mm-card-t b { font-size: 17px; line-height: 1.25; }
  .mm-card-t span { font-size: 13px; line-height: 1.4; color: #3C4660; }
  .mm-card-t .mm-card-ad { font-size: 10.5px; letter-spacing: .06em; color: #737A8E; }
  .mm-card-t i { font-style: normal; width: max-content; max-width: 100%; margin-top: 6px; padding: 9px 14px; border-radius: 9px; background: #1518A8; color: #fff; font-weight: 700; font-size: 13.5px; }
  .mm-card:hover .mm-card-t i { background: #0F1288; }
  .mm-foot { border-top: 1px solid #F0F3F8; }
  .mm-foot-row { display: flex; flex-wrap: wrap; gap: 8px 28px; padding-top: 14px; padding-bottom: 18px; }
  .mm-foot a { color: #737A8E; font-size: 13.5px; }
  .mm-foot .mm-post { color: #1518A8; font-weight: 700; }
}

/* ===== Мастерская: карточки меню шапки ===== */
.pc-h2 { font-size: 19px; margin: 30px 0 6px; }
.mmc-jump { display: flex; flex-wrap: wrap; gap: 8px; }
.mmc-jump a { padding: 6px 12px; border: 1px solid #D0D8E9; border-radius: 999px; font-size: 13px; font-weight: 700; color: #0D162E; background: #fff; }
.mmc-jump a:hover { border-color: #1518A8; color: #1518A8; }
.mmc-row { border-top: 1px solid #EEF1F6; }
.mmc-row > summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 12px 18px; cursor: pointer; }
.mmc-row > summary::-webkit-details-marker { display: none; }
.mmc-row[open] > summary { background: #F4F5FC; }
.mmc-thumb { width: 76px; height: 46px; flex: none; border-radius: 8px; overflow: hidden; }
.mmc-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.mmc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mmc-info b, .mmc-info span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mmc-edit { color: #1518A8; font-weight: 700; font-size: 13px; }
.mmc-row[open] .mmc-edit { visibility: hidden; }
.mmc-preview { max-width: 420px; padding: 16px 18px; }
.mmc-preview .mm-card { position: relative; display: block; min-height: 172px; border-radius: 14px; overflow: hidden; color: #0D162E; }
.mmc-preview .mm-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.mmc-preview .mm-card.has-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .9) 48%, rgba(255, 255, 255, 0) 78%); }
.mmc-preview .mm-card-t { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 6px; max-width: 64%; padding: 18px 20px; }
.mmc-preview .mm-card-t b { font-size: 17px; line-height: 1.25; }
.mmc-preview .mm-card-t span { font-size: 13px; line-height: 1.4; color: #3C4660; }
.mmc-preview .mm-card-t i { font-style: normal; width: max-content; max-width: 100%; margin-top: 6px; padding: 9px 14px; border-radius: 9px; background: #1518A8; color: #fff; font-weight: 700; font-size: 13.5px; }
.mmc-btns { display: flex; align-items: center; gap: 14px; }
.mmc-del { border: 0; background: none; padding: 8px 4px; color: #C62828; font: inherit; font-weight: 700; font-size: 13.5px; cursor: pointer; }
.mmc-del:hover { text-decoration: underline; }
@media (max-width: 700px) {
  .mmc-row > summary { flex-wrap: wrap; }
  .mmc-info { flex-basis: calc(100% - 90px); }
  .mmc-btns { flex-direction: column; align-items: stretch; }
}

/* ===== Журнал «Мой дом» ===== */
.jl { display: grid; grid-template-columns: 212px minmax(0, 1fr) 290px; gap: 36px; padding-block: 26px 48px; }
.j-mast { display: block; }
.j-mast-t { display: block; font-size: 31px; font-weight: 900; color: #1518A8; letter-spacing: -.7px; line-height: 1; }
.j-mast-s { display: block; font-size: 12.5px; color: #737A8E; margin-top: 7px; line-height: 1.4; }
.j-mast-s b { color: #0D162E; }
.j-rub { display: flex; flex-direction: column; gap: 1px; margin-top: 18px; padding-top: 12px; border-top: 1px solid #E4E8F0; }
.j-rub a { padding: 8px 10px; border-radius: 8px; font-weight: 700; font-size: 14.5px; color: #0D162E; }
.j-rub a:hover { color: #1518A8; }
.j-rub a.on { background: #E9EAF8; color: #1518A8; }
.j-guides { margin-top: 16px; padding-top: 14px; border-top: 1px solid #E4E8F0; }
.j-guides a { display: block; padding: 6px 10px; font-size: 14px; color: #3C4660; border-radius: 8px; }
.j-guides a:hover, .j-guides a.on { color: #1518A8; }
.j-cap { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: #737A8E; font-weight: 700; }
.j-guides .j-cap { padding-inline: 10px; margin-bottom: 4px; }
.j-search { display: flex; align-items: center; gap: 10px; height: 46px; border: 1px solid #D0D8E9; border-radius: 12px; padding: 0 14px; color: #9AA4B5; background: #fff; }
.j-search:focus-within { border-color: #1518A8; }
.j-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 15px; color: #0D162E; }
.j-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.j-tag { border: 1px solid #D0D8E9; border-radius: 8px; padding: 5px 11px; font-size: 13.5px; font-weight: 700; color: #3C4660; }
.j-tag:hover, .j-tag.on { border-color: #1518A8; color: #1518A8; }
.j-cover { display: block; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #E9EAF8; }
.j-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.j-chip { display: inline-block; align-self: flex-start; background: #E9EAF8; color: #1518A8; font-weight: 700; font-size: 12.5px; border-radius: 999px; padding: 3px 10px; }
.j-chip.j-ad { background: #FFF3D6; color: #8A5A00; }
.j-meta { font-size: 12.5px; color: #737A8E; }
.j-lead { color: #3C4660; font-size: 15.5px; line-height: 1.5; }
.j-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: 28px; margin-top: 22px; align-items: center; color: #0D162E; }
.j-hero-t { display: flex; flex-direction: column; gap: 10px; }
.j-hero-title { font-size: 30px; line-height: 1.15; font-weight: 900; letter-spacing: -.45px; text-wrap: balance; }
.j-hero:hover .j-hero-title, .j-card:hover .j-title { color: #1518A8; }
.j-guide { margin-top: 30px; background: #F4F5FC; border-radius: 14px; padding: 18px 20px 20px; }
.j-guide-h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.j-guide-h b { font-size: 18px; }
.j-guide-h a, .j-rowh a { color: #1518A8; font-weight: 700; font-size: 13.5px; }
.j-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.j-step { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid #E4E8F0; border-radius: 10px; padding: 10px 12px; font-size: 13.5px; font-weight: 700; line-height: 1.3; color: #0D162E; }
.j-step:hover { border-color: #1518A8; }
.j-step span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.j-step i { font-style: normal; flex: none; width: 24px; height: 24px; border-radius: 50%; background: #1518A8; color: #fff; font-size: 12px; display: grid; place-items: center; }
.j-rowh { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 32px; }
.j-rowh h2 { font-size: 20px; font-weight: 900; margin: 0; }
.j-h1 { font-size: 30px; font-weight: 900; letter-spacing: -.5px; margin: 22px 0 4px; }
.j-found { color: #737A8E; }
.j-feed { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 20px; margin-top: 14px; }
.j-card { display: flex; flex-direction: column; color: #0D162E; }
.j-card-b { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; }
.j-title { font-size: 16px; line-height: 1.3; font-weight: 900; }
.j-more { margin-top: 26px; text-align: center; }
.j-more a { display: inline-block; border: 1px solid #D0D8E9; border-radius: 10px; padding: 10px 22px; font-weight: 700; color: #0D162E; }
.j-more a:hover { border-color: #1518A8; color: #1518A8; }
.j-empty { grid-column: 1 / -1; color: #737A8E; padding: 30px 0; list-style: none; }
.j-subs { margin-top: 32px; display: flex; justify-content: space-between; align-items: center; gap: 14px 18px; flex-wrap: wrap; border: 1px solid #D0D8E9; border-radius: 14px; padding: 18px 22px; }
.j-subs b { display: block; font-size: 17px; }
.j-subs span { color: #737A8E; font-size: 13.5px; }
.j-subs-f { display: flex; gap: 8px; }
.j-subs-f input { height: 42px; min-width: 230px; border: 1px solid #D0D8E9; border-radius: 10px; padding: 0 12px; font: inherit; }
.j-subs-ok, .j-subs-bad { flex-basis: 100%; margin: 0; font-weight: 700; }
.j-subs-ok { color: #2E9A09; }
.j-subs-bad { color: #C62828; }
.j-side-h { display: flex; justify-content: space-between; align-items: baseline; }
.j-side-h h2, .j-pop h2 { font-size: 20px; font-weight: 900; margin: 0 0 4px; }
.j-side-h a { color: #1518A8; font-weight: 700; font-size: 13.5px; }
.j-news a { display: block; padding: 11px 0; border-bottom: 1px solid #E4E8F0; color: #0D162E; }
.j-news a b { display: block; font-size: 14.5px; line-height: 1.35; }
.j-news a:hover b { color: #1518A8; }
.j-news a span { font-size: 12px; color: #737A8E; }
.j-pop { margin-top: 26px; }
.j-pop a { display: grid; grid-template-columns: 26px 1fr; gap: 8px; padding: 8px 0; font-weight: 700; font-size: 14px; line-height: 1.35; color: #0D162E; }
.j-pop a i { font-style: normal; font-weight: 900; color: #1518A8; font-size: 18px; line-height: 1.1; }
.j-promo { margin-top: 26px; }
.j-promo .mm-card { position: relative; display: block; min-height: 176px; border-radius: 14px; overflow: hidden; color: #0D162E; }
.j-promo .mm-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.j-promo .mm-card.has-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .9) 50%, rgba(255, 255, 255, 0) 82%); }
.j-promo .mm-card-t { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 6px; max-width: 66%; padding: 16px 18px; }
.j-promo .mm-card-t b { font-size: 16px; line-height: 1.25; }
.j-promo .mm-card-t span { font-size: 12.5px; color: #3C4660; }
.j-promo .mm-card-t i { font-style: normal; width: max-content; max-width: 100%; margin-top: 4px; padding: 8px 12px; border-radius: 9px; background: #1518A8; color: #fff; font-weight: 700; font-size: 13px; }
.j-guide-head p { color: #3C4660; margin: 4px 0 0; }
.j-glist { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.j-glist a { display: grid; grid-template-columns: 40px 160px minmax(0, 1fr); gap: 16px; align-items: center; padding: 12px; border: 1px solid #E4E8F0; border-radius: 14px; color: #0D162E; }
.j-glist a:hover { border-color: #1518A8; }
.j-gnum { width: 36px; height: 36px; border-radius: 50%; background: #1518A8; color: #fff; font-weight: 900; display: grid; place-items: center; }
.j-glist img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.j-glist b { display: block; font-size: 17px; line-height: 1.3; margin-bottom: 4px; }
.j-preview { margin-top: 16px; background: #FFF8E6; border: 1px solid #FFE3A3; border-radius: 10px; padding: 10px 14px; color: #5A4300; font-weight: 700; }
.j-home { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }

/* статья журнала */
.ja { display: grid; grid-template-columns: minmax(0, 760px) 290px; gap: 56px; justify-content: center; padding-block: 22px 20px; }
.ja-crumb { font-size: 13px; color: #737A8E; }
.ja-crumb a { color: #1518A8; font-weight: 700; }
.ja-ad { margin-top: 10px; font-size: 13px; color: #8A5A00; }
.ja-main h1 { font-size: 38px; line-height: 1.12; font-weight: 900; letter-spacing: -.7px; margin: 12px 0 16px; text-wrap: balance; }
.ja-by { display: flex; align-items: center; gap: 12px; }
.ja-by b { display: block; font-size: 14px; }
.ja-ava { width: 40px; height: 40px; flex: none; border-radius: 50%; background: #E9EAF8; color: #1518A8; font-weight: 900; font-size: 14px; display: grid; place-items: center; }
.ja-lead { font-size: 19px; line-height: 1.55; color: #2A3350; margin: 20px 0; }
.ja-cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; }
.ja-gbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 18px; padding: 12px 16px; border-radius: 12px; background: #F4F5FC; color: #0D162E; font-size: 14.5px; }
.ja-gbar span:last-child { margin-inline-start: auto; color: #1518A8; font-weight: 700; }
.ja-mtoc { display: none; }
.ja-body { font-size: 17px; line-height: 1.7; margin-top: 8px; overflow-wrap: break-word; }
.ja-body h2 { font-size: 24px; line-height: 1.25; font-weight: 900; margin: 32px 0 8px; letter-spacing: -.3px; scroll-margin-top: 16px; }
.ja-body p { margin: 0 0 14px; }
.ja-body ul, .ja-body ol { margin: 0 0 16px; padding-inline-start: 22px; }
.ja-body li { margin: 4px 0; }
.ja-body .ja-steps, .ja-body .ja-check { list-style: none; padding-inline-start: 0; }
.ja-steps { counter-reset: st; }
.ja-steps li { counter-increment: st; display: grid; grid-template-columns: 30px 1fr; gap: 10px; margin: 8px 0; }
.ja-steps li::before { content: counter(st); width: 26px; height: 26px; margin-top: 2px; border-radius: 50%; background: #1518A8; color: #fff; font-size: 13px; font-weight: 900; display: grid; place-items: center; }
.ja-check li { display: grid; grid-template-columns: 26px 1fr; gap: 8px; }
.ja-check li::before { content: ""; width: 18px; height: 18px; margin-top: 5px; border-radius: 5px; border: 2px solid #1518A8; }
.ja-table { overflow-x: auto; margin: 6px 0 18px; }
.ja-table table { border-collapse: collapse; width: 100%; font-size: 15px; line-height: 1.45; }
.ja-table th, .ja-table td { text-align: start; vertical-align: top; padding: 9px 12px; border-bottom: 1px solid #E4E8F0; }
.ja-table th { background: #F4F5FC; font-weight: 700; }
.ja-tip { display: grid; grid-template-columns: 78px 1fr; gap: 16px; align-items: center; background: #F4F5FC; border-radius: 14px; padding: 14px 20px; margin: 22px 0; font-size: 15.5px; line-height: 1.55; }
.ja-tip b { display: block; color: #1518A8; margin-bottom: 2px; }
.ja-tip .cat { width: 78px; height: 92px; }
.ja-quote { margin: 22px 0; padding: 4px 0; padding-inline-start: 18px; border-inline-start: 4px solid #1518A8; font-size: 18px; }
.ja-quote p { margin: 0 0 6px; }
.ja-quote cite { font-style: normal; font-size: 13.5px; color: #737A8E; }
.ja-cta { display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1.5px solid #1518A8; border-radius: 14px; padding: 16px 20px; margin: 24px 0; font-size: 15px; line-height: 1.4; }
.ja-cta b { display: block; font-size: 16px; }
.ja-cta .btn { flex: none; }
.ja-poll { margin: 24px 0; display: flex; flex-direction: column; gap: 8px; }
.ja-poll > b { font-size: 17px; margin-bottom: 4px; }
.ja-po { position: relative; overflow: hidden; display: flex; justify-content: space-between; gap: 10px; text-align: start; border: 1px solid #D0D8E9; border-radius: 10px; padding: 10px 14px; background: #fff; font: inherit; font-size: 15px; color: #0D162E; cursor: pointer; }
.ja-po:hover:not(:disabled) { border-color: #1518A8; }
.ja-po:disabled { cursor: default; }
.ja-po span, .ja-po em { position: relative; z-index: 1; }
.ja-po em { font-style: normal; font-weight: 700; color: #1518A8; }
.ja-po i { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; background: #E9EAF8; }
.ja-po.on { border-color: #1518A8; font-weight: 700; }
.ja-src { margin-top: 26px; padding-top: 16px; border-top: 1px solid #E4E8F0; }
.ja-src ul { margin: 8px 0 0; padding-inline-start: 18px; font-size: 14px; }
.ja-src a { color: #1518A8; word-break: break-word; }
.ja-gnav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 22px; }
.ja-gnav a { border: 1px solid #E4E8F0; border-radius: 12px; padding: 12px 14px; color: #0D162E; font-weight: 700; font-size: 14.5px; line-height: 1.35; }
.ja-gnav a:hover { border-color: #1518A8; }
.ja-gnav a span { display: block; font-size: 12px; color: #737A8E; font-weight: 400; }
.ja-gnav a.next { grid-column: 2; text-align: end; }
.ja-end { margin-top: 28px; padding-top: 22px; border-top: 1px solid #E4E8F0; display: flex; flex-direction: column; gap: 16px; }
.ja-like { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-weight: 700; }
.ja-like button { border: 1px solid #D0D8E9; border-radius: 10px; padding: 8px 16px; background: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ja-like button.on { border-color: #1518A8; background: #E9EAF8; color: #1518A8; }
.ja-like button:disabled { cursor: default; }
.ja-thanks { color: #2E9A09; }
.ja-share { display: flex; gap: 8px; flex-wrap: wrap; }
.ja-share a, .ja-share button { background: #F4F5FC; border: 0; border-radius: 10px; padding: 8px 14px; font: inherit; font-weight: 700; font-size: 13.5px; color: #3C4660; cursor: pointer; }
.ja-share a:hover, .ja-share button:hover { color: #1518A8; }
.ja-note { margin: 0; font-size: 12.5px; color: #737A8E; line-height: 1.5; }
.ja-rail { position: sticky; top: 20px; align-self: start; display: flex; flex-direction: column; gap: 22px; }
.ja-toc a { display: block; padding: 7px 0; padding-inline-start: 14px; border-inline-start: 2px solid #E4E8F0; font-size: 14px; line-height: 1.35; color: #3C4660; }
.ja-toc a.on { border-inline-start-color: #1518A8; color: #1518A8; font-weight: 700; }
.ja-toc .j-cap { margin-bottom: 8px; }
.ja-rail .j-promo { margin-top: 0; }
.ja-after { padding-block: 4px 48px; }
.ja-after .grid { margin-top: 14px; }
.ja-mbar { display: none; }
.ja-cover img, .j-cover img, .j-glist img, .mm-art img { height: auto; }
.jl > *, .ja > *, .j-hero > *, .j-feed > *, .j-home > * { min-width: 0; }
@media (max-width: 800px) {
  .jl, .ja, .j-hero { grid-template-columns: minmax(0, 1fr); }
  .jl-main > .j-tags { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; }
  .jl-main > .j-tags::-webkit-scrollbar { display: none; }
  .jl-main > .j-tags .j-tag { flex: none; white-space: nowrap; }
}
.j-cover img { height: 100%; }
/* восемь пунктов меню: на средних экранах шапка плотнее, чтобы «Мой дом» не уезжал за край */
@media (min-width: 1001px) and (max-width: 1500px) {
  .header-row { gap: 10px; }
  .main-nav { gap: 11px; }
  .main-nav a { font-size: 13px; }
  .header-icons { gap: 9px; }
  .header-row > .city-chip { max-width: 150px; }
  .header-row > .city-chip .place-btn-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (min-width: 1001px) and (max-width: 1180px) {
  .header-row > .city-chip { display: none; }
  .header-icons .icon-wrap:first-child { display: none; }
}
@media (min-width: 1001px) {
  .mm-art a { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; padding: 6px 0; font-weight: 700; font-size: 14px; line-height: 1.3; color: #0D162E; }
  .mm-art img { display: block; width: 96px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
}
@media (max-width: 1150px) {
  .jl { grid-template-columns: 200px minmax(0, 1fr); }
  .jl-right { grid-column: 2; }
  .ja { grid-template-columns: minmax(0, 1fr) 250px; gap: 32px; }
}
@media (max-width: 1000px) {
  .j-feed, .j-home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .j-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .jl { grid-template-columns: 1fr; gap: 18px; padding-block: 14px 36px; }
  .jl-right { grid-column: auto; }
  .j-mast-t { font-size: 27px; }
  .j-rub { flex-direction: row; gap: 8px; overflow-x: auto; margin: 12px -16px 0; padding: 0 16px 4px; border-top: 0; scrollbar-width: none; }
  .j-rub::-webkit-scrollbar { display: none; }
  .j-rub a { flex: none; white-space: nowrap; border: 1px solid #D0D8E9; border-radius: 999px; padding: 7px 12px; font-size: 13px; }
  .j-rub a.on { background: #1518A8; border-color: #1518A8; color: #fff; }
  .j-guides { display: none; }
  .j-hero { grid-template-columns: 1fr; gap: 12px; margin-top: 16px; }
  .j-hero-title { font-size: 22px; }
  .j-guide { margin-inline: -16px; border-radius: 0; }
  .j-steps { display: flex; overflow-x: auto; margin: 10px -20px 0; padding: 0 20px 4px; scrollbar-width: none; }
  .j-step { flex: 0 0 210px; }
  .j-feed { grid-template-columns: 1fr; gap: 0; }
  .j-feed .j-card { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid #E4E8F0; }
  .j-feed .j-cover { aspect-ratio: 1; border-radius: 10px; }
  .j-feed .j-card-b { padding-top: 0; gap: 4px; }
  .j-feed .j-chip { font-size: 11.5px; padding: 2px 8px; }
  .j-feed .j-title { font-size: 15px; }
  .j-subs-f { flex-basis: 100%; }
  .j-subs-f input { flex: 1; min-width: 0; }
  .j-glist a { grid-template-columns: 36px 96px minmax(0, 1fr); gap: 10px; }
  .j-glist .j-lead { display: none; }
  .j-home { display: flex; overflow-x: auto; gap: 14px; margin-inline: -16px; padding: 0 16px 4px; scrollbar-width: none; }
  .j-home .j-card { flex: 0 0 240px; }
  .ja { grid-template-columns: 1fr; gap: 0; padding-block: 14px 10px; }
  .ja-rail { display: none; }
  .ja-main h1 { font-size: 26px; letter-spacing: -.4px; }
  .ja-lead { font-size: 17px; }
  .ja-mtoc { display: block; margin-top: 14px; border: 1px solid #D0D8E9; border-radius: 12px; }
  .ja-mtoc summary { list-style: none; display: flex; justify-content: space-between; padding: 12px 14px; font-weight: 700; cursor: pointer; }
  .ja-mtoc summary::-webkit-details-marker { display: none; }
  .ja-mtoc summary::after { content: "⌄"; color: #9AA4B5; }
  .ja-mtoc[open] summary::after { content: "⌃"; }
  .ja-mtoc ol { margin: 0; padding: 0 14px 12px; padding-inline-start: 34px; }
  .ja-mtoc li { padding: 5px 0; }
  .ja-mtoc a { color: #1518A8; }
  .ja-body { font-size: 16px; line-height: 1.65; }
  .ja-body h2 { font-size: 20px; margin-top: 24px; }
  .ja-tip { grid-template-columns: 56px 1fr; gap: 12px; padding: 12px 14px; font-size: 14.5px; }
  .ja-tip .cat { width: 56px; height: 66px; }
  .ja-cta { flex-direction: column; align-items: stretch; }
  .ja-cta .btn { width: 100%; }
  .ja-gnav { grid-template-columns: 1fr; }
  .ja-gnav a.next { grid-column: auto; }
  .ja-mbar { display: flex; gap: 8px; position: sticky; bottom: 0; z-index: 20; padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #E4E8F0; }
  .ja-mbar button { flex: 1; background: #F4F5FC; border: 0; border-radius: 10px; padding: 11px 0; font: inherit; font-weight: 700; font-size: 14px; color: #3C4660; cursor: pointer; }
}

/* ===== Мастерская: журнал ===== */
/* панель → «Фильтр поиска» */
.pf-lay { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
@media (max-width: 980px) { .pf-lay { grid-template-columns: 1fr; } }
.pf-q { font-size: 12.5px; font-weight: 400; color: #737A8E; margin-inline-start: 8px; }
.pf-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.pf-table th { text-align: start; font-size: 11.5px; color: #737A8E; padding: 10px; border-bottom: 1px solid #EAEEF6; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.pf-table td { padding: 8px 10px; border-bottom: 1px solid #F0F3F8; vertical-align: middle; }
.pf-table tr:last-child td { border-bottom: 0; }
.pf-sub-h td { background: #FAFBFE; font-weight: 800; font-size: 12.5px; padding: 9px 10px; }
.pf-badge { font-weight: 700; color: #737A8E; margin-inline-start: 8px; font-size: 12px; }
.pf-sub-h .pf-act { float: right; }
.pf-grip { color: #B0B8C8; cursor: grab; font-size: 16px; letter-spacing: -3px; user-select: none; width: 24px; }
.pf-drag { opacity: .4; }
.pf-over td { border-top: 2px solid #1518A8; }
.pf-off td { opacity: .55; }
.pf-lang { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.pf-lang i { font-style: normal; font-size: 10.5px; font-weight: 800; color: #737A8E; }
.pf-lang input.inp { width: 118px; height: 34px; font-size: 13.5px; }
.pf-table td { padding: 8px 8px; }
.pf-sel { height: 34px; width: 128px; font-size: 13px; }
.pf-cbs { display: flex; gap: 9px; white-space: nowrap; }
.pf-cbs label { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; }
.pf-cbs input { accent-color: #1518A8; width: 16px; height: 16px; margin: 0; }
.pf-sw { position: relative; display: inline-block; width: 34px; height: 20px; vertical-align: middle; }
.pf-sw input { opacity: 0; width: 0; height: 0; position: absolute; }
.pf-sw span { position: absolute; inset: 0; border-radius: 99px; background: #C9D0DE; transition: background .15s; }
.pf-sw span::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left .15s; }
.pf-sw input:checked + span { background: #1B8A3A; }
.pf-sw input:checked + span::after { left: 16px; }
.pf-act { border: 0; background: none; color: #1518A8; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; padding: 4px 6px; }
.pf-tag { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #C24F0E; }
.pf-note { padding: 10px 12px 14px; }
.pf-pl { display: inline-flex; align-items: center; height: 26px; padding: 0 9px; border-radius: 99px; background: #F0F3F8; font-size: 12px; font-weight: 700; margin: 2px 3px 2px 0; cursor: pointer; }
.pf-pl.on { background: #E9EAF8; color: #1518A8; }
.pf-seg { display: inline-flex; border: 1px solid #D0D8E9; border-radius: 8px; overflow: hidden; }
.pf-seg-b { padding: 6px 10px; font-size: 12px; font-weight: 700; color: #737A8E; border-inline-end: 1px solid #D0D8E9; cursor: pointer; white-space: nowrap; }
.pf-seg-b:last-child { border-inline-end: 0; }
.pf-seg-b.on { background: #E9EAF8; color: #1518A8; }
.pf-types { margin-top: 6px; max-width: 360px; }
.pf-types-sum { font-size: 12.5px; }
.pf-deals { white-space: nowrap; }
.pf-extra { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; padding: 10px; background: #FAFBFE; border-radius: 8px; }
.pf-extra label { font-size: 11.5px; font-weight: 700; color: #737A8E; display: flex; flex-direction: column; gap: 3px; }
.pf-extra .inp { height: 32px; font-size: 13px; font-weight: 400; color: #0D162E; }
.pf-extra textarea.inp { height: auto; }
.pf-extra .pf-wide { grid-column: 1 / -1; }
.pf-prev { position: sticky; top: 14px; }
.pf-prev-card { padding: 14px; }
.pf-pick { display: flex; gap: 4px; flex-wrap: wrap; margin: 10px 0; }
.pf-hero { border-radius: 10px; padding: 12px; background: linear-gradient(160deg, #2B3A5C, #1B2436); }
.pf-tabs { display: flex; gap: 5px; margin-bottom: 8px; flex-wrap: wrap; }
.pf-tab { height: 24px; padding: 0 9px; border-radius: 99px; display: inline-flex; align-items: center; font-size: 11px; font-weight: 700; color: #fff; background: rgba(13, 22, 46, .5); border: 1px solid rgba(255, 255, 255, .28); }
.pf-tab.on { background: #fff; color: #0D162E; border-color: #fff; }
.pf-bar { display: flex; background: #fff; border-radius: 9px; overflow: hidden; font-size: 12px; }
.pf-f { padding: 0 9px; height: 36px; display: flex; align-items: center; gap: 5px; border-inline-end: 1px solid #EEF1F6; white-space: nowrap; font-weight: 700; }
.pf-f.soft { color: #737A8E; font-weight: 400; }
.pf-f.addr { flex: 1; border-inline-end: 0; font-weight: 400; overflow: hidden; }
.pf-c { color: #9AA4B5; font-size: 9px; }
.pf-list { margin-top: 10px; background: #fff; border-radius: 9px; padding: 8px 12px; font-size: 12.5px; }
.pf-s { padding: 4px 0; border-bottom: 1px solid #E4E8F0; }
.pf-s:last-child { border-bottom: 0; }
.pf-r { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.pf-cb { width: 15px; height: 15px; border: 1.5px solid #9AA4B5; border-radius: 4px; display: inline-block; flex: none; }
.pf-cb.on { background: #1518A8; border-color: #1518A8; }
.pf-legend { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; font-size: 12px; color: #737A8E; }
.pf-legend b { color: #0D162E; }
.pf-save { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; border-top: 1px solid #D0D8E9; padding: 14px 0; margin-top: 26px; }
.pf-save .muted { margin-inline-start: auto; }
.mt4 { margin-top: 4px; }

.pj-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.pj-tabs a { padding: 8px 14px; border: 1px solid transparent; border-radius: 10px; font-weight: 700; font-size: 14px; color: #737A8E; }
.pj-tabs a.on { background: #fff; border-color: #E4E8F0; color: #0D162E; }
.pj { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
.pj-ed { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 18px; align-items: start; }
.pj-list { padding: 0; overflow: hidden; }
.pj-list-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px; }
.pj-list-h b { font-size: 16px; }
.pj-q { padding: 0 14px 10px; }
.pj-f { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 12px; }
.pj-f a { border: 1px solid #D0D8E9; border-radius: 999px; padding: 4px 10px; font-size: 12.5px; font-weight: 700; color: #3C4660; }
.pj-f a.on { background: #0D162E; border-color: #0D162E; color: #fff; }
.pj-rows { max-height: 78vh; overflow-y: auto; }
.pj-row { display: grid; grid-template-columns: 58px 1fr; gap: 10px; padding: 10px 14px; border-top: 1px solid #E4E8F0; color: #0D162E; }
.pj-row:hover { background: #F7F8FC; }
.pj-row.on { background: #F4F5FC; box-shadow: inset 3px 0 0 #1518A8; }
.pj-row img, .pj-noimg { display: block; width: 58px; aspect-ratio: 16 / 11; object-fit: cover; border-radius: 7px; background: #E9EAF8; }
.pj-row b { display: block; font-size: 13.5px; line-height: 1.3; }
.pj-rm { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-top: 5px; font-size: 11.5px; color: #737A8E; }
.pj-st { font-style: normal; border-radius: 999px; padding: 2px 8px; font-weight: 700; font-size: 11px; }
.pj-st.pub { background: #EAF7E3; color: #2E9A09; }
.pj-st.draft { background: #EEF0F4; color: #5B6478; }
.pj-st.plan { background: #E9EAF8; color: #1518A8; }
.pj-st.ad { background: #FFF3D6; color: #8A5A00; }
.pj-lg { font-style: normal; border: 1px solid #D0D8E9; border-radius: 5px; padding: 0 5px; font-weight: 700; font-size: 10.5px; color: #3C4660; }
.pj-lg.miss { border-style: dashed; color: #9AA4B5; }
.pj-empty-l { padding: 14px; }
.pj-main, .pj-side { display: flex; flex-direction: column; gap: 14px; padding: 16px 18px 20px; }
.pj-ltabs { display: flex; flex-wrap: wrap; gap: 8px; }
.pj-ltabs a { border: 1px solid #D0D8E9; border-radius: 10px; padding: 7px 12px; font-weight: 700; font-size: 13px; color: #0D162E; }
.pj-ltabs a.on { border-color: #1518A8; background: #F4F5FC; color: #1518A8; }
.pj-ltabs a.miss { border-style: dashed; }
.pj-ltabs em { font-style: normal; font-weight: 400; font-size: 12px; color: #737A8E; }
.pj-title { height: auto; padding: 10px 12px; font-size: 20px; font-weight: 900; }
.pj-ta { height: auto; min-height: 38px; padding: 8px 10px; line-height: 1.45; resize: vertical; font-family: inherit; }
.pj-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pj-cover { display: grid; grid-template-columns: 200px 1fr; gap: 14px; align-items: start; }
.pj-cover > img, .pj-cover > .pj-noimg { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.pj-sw { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.pj-sw label { position: relative; cursor: pointer; }
.pj-sw input { position: absolute; opacity: 0; }
.pj-sw span { display: block; width: 30px; height: 30px; border-radius: 8px; border: 2px solid transparent; }
.pj-sw input:checked + span { border-color: #1518A8; box-shadow: inset 0 0 0 2px #fff; }
.pj-sw input:focus-visible + span { outline: 2px solid #1518A8; outline-offset: 2px; }
.pj-blocks { display: flex; flex-direction: column; gap: 8px; }
.pj-blk { border: 1px solid #E4E8F0; border-radius: 10px; background: #fff; }
.pj-blk.pj-tip { background: #F4F5FC; }
.pj-bh { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-bottom: 1px solid #EEF1F6; }
.pj-bt { font-size: 11.5px; font-weight: 700; color: #1518A8; background: #E9EAF8; border-radius: 6px; padding: 2px 7px; }
.pj-bb { width: 28px; height: 28px; border: 0; border-radius: 6px; background: none; color: #737A8E; font: inherit; cursor: pointer; }
.pj-bb:hover { background: #F4F5FC; color: #0D162E; }
.pj-bf { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px 10px; }
.pj-h2 .pj-ta { font-weight: 900; font-size: 16px; }
.pj-add { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; border: 1.5px dashed #D0D8E9; border-radius: 10px; padding: 10px 12px; }
.pj-add b { font-size: 13px; color: #1518A8; margin-inline-end: 4px; }
.pj-add button { border: 0; border-radius: 8px; background: #F4F5FC; padding: 5px 10px; font: inherit; font-size: 12.5px; font-weight: 700; color: #3C4660; cursor: pointer; }
.pj-add button:hover { color: #1518A8; }
.pj-check { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13.5px; }
.pj-serp { border: 1px solid #E4E8F0; border-radius: 10px; padding: 10px 12px; font-size: 12.5px; line-height: 1.4; }
.pj-serp i { display: block; font-style: normal; color: #1A7F37; word-break: break-all; }
.pj-serp b { display: block; margin: 2px 0; color: #1A0DAB; font-size: 15px; font-weight: 400; }
.pj-serp span { color: #4D5156; }
.pj-acts { display: flex; flex-direction: column; gap: 8px; }
.pj-err { background: #FDECEC; color: #B3261E; border-radius: 10px; padding: 10px 12px; font-weight: 700; font-size: 13.5px; }
.pj-ok { background: #EAF7E3; color: #2E7D0A; border-radius: 10px; padding: 10px 12px; font-weight: 700; font-size: 13.5px; }
.pj-hint { font-size: 12px; color: #737A8E; line-height: 1.45; }
.pj-del { border: 0; background: none; padding: 8px; color: #C62828; font: inherit; font-weight: 700; cursor: pointer; }
.pj-emptyed { padding: 30px; text-align: center; color: #737A8E; }
@media (max-width: 1200px) {
  .pj { grid-template-columns: 1fr; }
  .pj-rows { max-height: 320px; }
}
@media (max-width: 900px) {
  .pj-ed, .pj-2, .pj-cover { grid-template-columns: 1fr; }
}

/* ===== Юридические документы, согласия, удаление аккаунта ===== */
.lg { display: grid; grid-template-columns: 240px minmax(0, 760px); gap: 48px; padding-block: 28px 56px; }
.lg-side { position: sticky; top: 20px; align-self: start; }
.lg-side nav { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.lg-side a { padding: 8px 10px; border-radius: 8px; font-weight: 700; font-size: 14px; color: #0D162E; }
.lg-side a:hover { color: #1518A8; }
.lg-side a.on { background: #E9EAF8; color: #1518A8; }
.lg-main h1 { font-size: 32px; font-weight: 900; letter-spacing: -.5px; margin: 0 0 8px; text-wrap: balance; }
.lg-meta { color: #737A8E; font-size: 13.5px; margin-bottom: 18px; }
.lg-body { font-size: 16px; line-height: 1.65; }
.lg-body h2 { font-size: 20px; font-weight: 900; margin: 28px 0 8px; scroll-margin-top: 16px; }
.lg-body p { margin: 0 0 10px; }
.lg-body ul { margin: 0 0 12px; padding-inline-start: 22px; }
.lg-body li { margin: 4px 0; }
.lg-body a, .auth-agree a, .j-subs-agree a { color: #1518A8; text-decoration: underline; text-underline-offset: 2px; }
.lg-ph { background: #FFF3D6; color: #8A5A00; border-radius: 4px; padding: 0 4px; }
.lg-note { background: #FFF8E6; border: 1px solid #FFE3A3; border-radius: 10px; padding: 10px 14px; color: #5A4300; font-size: 14px; margin: 0 0 16px; }
.lg-table { border-collapse: collapse; width: 100%; margin: 6px 0 16px; font-size: 15px; }
.lg-table th, .lg-table td { text-align: start; vertical-align: top; padding: 9px 12px; border-bottom: 1px solid #E4E8F0; }
.lg-table th { width: 42%; color: #3C4660; font-weight: 700; }
.lg-back { display: inline-block; margin-top: 16px; color: #1518A8; font-weight: 700; }
.auth-agree, .j-subs-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.45; color: #3C4660; text-align: start; cursor: pointer; }
.auth-agree input, .j-subs-agree input { flex: none; width: 18px; height: 18px; margin-top: 1px; accent-color: #1518A8; }
.auth-agree { margin: 4px 0 12px; }
.j-subs-agree { flex-basis: 100%; }
.danger-zone { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 22px; margin-bottom: 30px; }
.btn-danger-line { background: #fff; color: #C62828; border: 1px solid #F1C4C4; }
.btn-danger-line:hover { background: #FDECEC; color: #B3261E; }
.btn-danger { background: #C62828; color: #fff; }
.btn-danger:hover { background: #B3261E; color: #fff; }
.del-card { max-width: 640px; margin: 24px auto; }
.del-list { margin: 8px 0 14px; padding-inline-start: 22px; line-height: 1.6; }
.del-actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 800px) {
  .lg { grid-template-columns: 1fr; gap: 16px; padding-block: 16px 40px; }
  .lg-side { position: static; }
  .lg-side nav { flex-direction: row; overflow-x: auto; gap: 8px; margin-inline: -16px; padding: 0 16px 4px; scrollbar-width: none; }
  .lg-side a { flex: none; white-space: nowrap; border: 1px solid #D0D8E9; border-radius: 999px; padding: 7px 12px; font-size: 13px; }
  .lg-side a.on { background: #1518A8; border-color: #1518A8; color: #fff; }
  .lg-main h1 { font-size: 25px; }
  .lg-table th { width: auto; }
}

/* ===== Программа «Супер-агент» для гостей ===== */
.loy-cta { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.loy-cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* Язык в подвале на телефоне раскрывается вверх над кнопкой (просьба Айка, 14.09.2026) */
@media (max-width: 700px) {
  .site-footer .lang-up { position: relative; }
  .site-footer .lang-up .lang-menu {
    position: absolute; top: auto; bottom: calc(100% + 6px);
    inset-inline-start: 0; inset-inline-end: auto;
    width: min(280px, calc(100vw - 32px)); margin-top: 0;
    box-shadow: 0 10px 30px rgba(13, 22, 46, .18); z-index: 30;
  }
}
/* Документы на телефоне: боковое меню-лента не должна раздувать страницу шире экрана */
.lg > * { min-width: 0; }
@media (max-width: 800px) { .lg { grid-template-columns: minmax(0, 1fr); } }

/* ===== Страница «О Тук Тук» ===== */
.ab { max-width: 1040px; padding-block: 44px 60px; }
.ab > * { min-width: 0; }
.ab-eyebrow { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #737A8E; font-weight: 700; }
.ab-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.ab-hero h1 { font-size: 44px; line-height: 1.08; font-weight: 900; letter-spacing: -1.2px; margin: 10px 0 18px; text-wrap: balance; }
.ab-hero p { font-size: 18px; line-height: 1.6; color: #2A3350; margin: 0; }
.ab-knock { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-weight: 900; color: #1518A8; line-height: .9; letter-spacing: -3px; user-select: none; }
.ab-knock .tt-logo { font-size: 112px; }
.ab-knock small { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #737A8E; font-weight: 700; margin-top: 12px; line-height: 1.3; }
.ab-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 44px; font-size: 16.5px; line-height: 1.7; color: #3C4660; }
.ab-story p { margin: 0; }
.ab-quote { margin: 40px 0 0; background: #F4F5FC; border-radius: 16px; padding: 28px 34px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 22px; }
.ab-qmark { font-size: 72px; line-height: .6; font-weight: 900; color: #1518A8; margin-top: 14px; }
.ab-quote blockquote { margin: 0; font-size: 22px; line-height: 1.45; font-weight: 700; color: #0D162E; text-wrap: pretty; }
.ab-who { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.ab-ava { width: 42px; height: 42px; flex: none; border-radius: 50%; background: #1518A8; color: #fff; font-weight: 900; display: grid; place-items: center; font-size: 15px; }
.ab-who b { display: block; font-size: 15px; }
.ab-who span span { font-size: 13px; color: #737A8E; }
.ab-h2 { font-size: 24px; font-weight: 900; letter-spacing: -.3px; margin: 48px 0 16px; }
.ab-have { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ab-have div { border: 1px solid #E4E8F0; border-radius: 12px; padding: 14px 16px; line-height: 1.4; }
.ab-have b { display: block; font-size: 15px; margin-bottom: 3px; }
.ab-have span { color: #737A8E; font-size: 13px; }
.ab-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; }
.ab-rule { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; }
.ab-rule i { font-style: normal; width: 36px; height: 36px; border-radius: 10px; background: #E9EAF8; color: #1518A8; display: grid; place-items: center; font-weight: 900; }
.ab-rule b { display: block; font-size: 16px; }
.ab-rule p { margin: 2px 0 0; color: #3C4660; font-size: 14.5px; line-height: 1.5; }
.ab-cat { margin-top: 48px; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 28px; align-items: center; border: 1px solid #E4E8F0; border-radius: 16px; padding: 22px 30px; }
.ab-cat .cat { width: 130px; height: 153px; }
.ab-cat b { font-size: 20px; display: block; margin-bottom: 6px; }
.ab-cat p { margin: 0; color: #3C4660; font-size: 15.5px; line-height: 1.6; max-width: 62ch; }
.ab-cat a { display: inline-block; margin-top: 10px; color: #1518A8; font-weight: 700; }
.ab-cta { margin-top: 40px; display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; background: #1518A8; color: #fff; border-radius: 16px; padding: 24px 30px; }
.ab-cta b { font-size: 20px; display: block; }
.ab-cta span { opacity: .85; font-size: 14px; }
.ab-cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.ab-btn-w { background: #fff; color: #1518A8; border-radius: 10px; padding: 12px 18px; font-weight: 700; }
.ab-btn-w:hover { background: #F0F2FF; color: #0F1288; }
.ab-btn-o { border: 1px solid rgba(255, 255, 255, .55); color: #fff; border-radius: 10px; padding: 12px 18px; font-weight: 700; }
.ab-btn-o:hover { background: rgba(255, 255, 255, .1); color: #fff; }
@media (max-width: 900px) {
  .ab-have { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .ab { padding-block: 20px 40px; }
  .ab-hero { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .ab-knock { order: -1; align-items: flex-start; margin-bottom: 8px; }
  .ab-knock .tt-logo { font-size: 56px; }
  .ab-knock small { display: none; }
  .ab-hero h1 { font-size: 28px; letter-spacing: -.6px; margin: 6px 0 12px; }
  .ab-hero p { font-size: 16px; }
  .ab-story { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 16px; font-size: 15.5px; }
  .ab-quote { grid-template-columns: minmax(0, 1fr); padding: 18px; margin-top: 24px; }
  .ab-qmark { display: none; }
  .ab-quote blockquote { font-size: 17px; }
  .ab-h2 { font-size: 20px; margin: 30px 0 12px; }
  .ab-have { gap: 8px; }
  .ab-have div { padding: 10px 12px; }
  .ab-rules { grid-template-columns: minmax(0, 1fr); }
  .ab-cat { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 20px; margin-top: 30px; }
  .ab-cat .cat { width: 100px; height: 118px; }
  .ab-cta { padding: 20px; }
  .ab-cta-btns, .ab-cta-btns a { width: 100%; text-align: center; }
}

/* ===== Сообщения: фильтры, отметки, архив, блокировка (одобрено Айком 17.09.2026, макет design/messages/messages.html) ===== */
.ms-chips { display: flex; gap: 8px; margin-top: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
.ms-chip { flex: none; border: 1px solid #D0D8E9; border-radius: 999px; padding: 7px 13px; font-size: 13px; font-weight: 700; color: #0D162E; white-space: nowrap; }
.ms-chip.on { background: #1518A8; border-color: #1518A8; color: #fff; }
.ms-chip span { color: #9AA4B5; }
.ms-chip.on span { color: #C9CDF0; }

.ms-row { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid #F0F3F8; position: relative; }
.ms-row > a { display: flex; gap: 12px; align-items: flex-start; flex: 1; min-width: 0; color: #0D162E; }
.ms-body { min-width: 0; flex: 1; }
.ms-name { display: flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 800; }
.ms-star { color: #E8A400; font-style: normal; }
.ms-obj { font-size: 12px; color: #737A8E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.ms-last { font-size: 13px; color: #3C4660; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 4px; }
.ms-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }
.ms-time { font-size: 11.5px; color: #9AA4B5; white-space: nowrap; }
.ms-unread { background: #1518A8; color: #fff; border-radius: 999px; min-width: 20px; height: 20px; padding: 0 6px; font-size: 11.5px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.ms-row.ms-off .ms-name, .ms-row.ms-off .ms-last { color: #9AA4B5; }

.ms-menu { position: relative; flex: none; }
.ms-menu > summary { list-style: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 8px; color: #9AA4B5; cursor: pointer; font-weight: 800; }
.ms-menu > summary::-webkit-details-marker { display: none; }
.ms-menu[open] > summary { background: #F0F2F8; color: #1518A8; }
.ms-menu-panel { position: absolute; inset-inline-end: 0; top: calc(100% + 4px); z-index: 60; min-width: 210px; background: #fff; border: 1px solid #D0D8E9; border-radius: 12px; box-shadow: 0 12px 30px rgba(20, 30, 50, .18); padding: 5px; }
.ms-menu-panel button { display: flex; align-items: center; gap: 9px; width: 100%; padding: 10px 11px; border: 0; border-radius: 8px; background: none; font-family: inherit; font-size: 13.5px; font-weight: 700; color: #0D162E; text-align: start; cursor: pointer; }
.ms-menu-panel button:hover { background: #F4F5FC; }
.ms-menu-panel button.ms-bad { color: #C22F2F; }

.ms-blocked { background: #FBE9E9; border-radius: 12px; padding: 14px 16px; text-align: center; font-size: 13.5px; color: #8A1F1F; }
.ms-blocked b { display: block; font-weight: 800; margin-bottom: 4px; }
.ms-blocked form { margin-top: 8px; }
.ms-blocked button { background: none; border: 0; color: #1518A8; font-family: inherit; font-size: 13.5px; font-weight: 800; cursor: pointer; }

/* ===== Избранное: вкладки, фильтры, подборки, отметки (одобрено Айком 17.09.2026, макет design/favorites/favorites.html) ===== */
.fv-tabs { display: flex; background: #F0F2F8; border-radius: 12px; padding: 4px; gap: 3px; margin-top: 14px; }
.fv-tabs a { flex: 1; text-align: center; padding: 9px 6px; border-radius: 9px; font-size: 14px; font-weight: 700; color: #5B6B8A; position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 430px) { .fv-tabs a { font-size: 12.5px; padding: 9px 2px; } }
.fv-tabs a.on { background: #fff; color: #0D162E; box-shadow: 0 1px 3px rgba(13, 22, 46, .12); }
.fv-tabs i { position: absolute; top: 6px; inset-inline-end: 8px; width: 7px; height: 7px; border-radius: 50%; background: #E1272B; }

.fv-fl { display: flex; align-items: center; gap: 8px; margin-top: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
.fv-sort { flex: none; width: 36px; height: 34px; border: 1px solid #D0D8E9; border-radius: 9px; background: #fff; color: #1518A8; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.fv-sort.on { background: #E9EAF8; border-color: #C9CDF0; }
.fv-chip { flex: none; border: 1px solid #D0D8E9; border-radius: 999px; padding: 7px 13px; font-size: 13px; font-weight: 700; color: #0D162E; white-space: nowrap; }
.fv-chip.on { background: #1518A8; border-color: #1518A8; color: #fff; }
.fv-chip span { color: #9AA4B5; }
.fv-chip.on span { color: #C9CDF0; }

.fv-sec { display: flex; align-items: center; margin-top: 18px; font-size: 15px; font-weight: 800; }
.fv-sec .fv-more { margin-inline-start: auto; font-size: 13px; font-weight: 700; color: #1518A8; }
.fv-fold { display: flex; gap: 11px; align-items: center; padding: 10px 0; border-bottom: 1px solid #F0F3F8; }
.fv-fold > i { flex: none; width: 38px; height: 38px; border-radius: 10px; background: #E9EAF8; color: #1518A8; display: flex; align-items: center; justify-content: center; }
.fv-fold b { display: block; font-size: 14px; }
.fv-fold .muted { display: block; font-size: 12px; }
.fv-fold form { margin-inline-start: auto; }
.fv-new { display: inline-flex; align-items: center; gap: 8px; padding: 12px 0; font-size: 14px; font-weight: 700; color: #1518A8; background: none; border: 0; cursor: pointer; font-family: inherit; }

.fv-mark { display: inline-flex; align-items: center; gap: 5px; border-radius: 7px; padding: 3px 9px; font-size: 12px; font-weight: 800; margin-top: 8px; }
.fv-down { background: #E4F3EA; color: #1F7A4D; }
.fv-gone { background: #EEF1F6; color: #5B6B8A; }
.fv-off .lc-photo, .fv-off .price { opacity: .55; }

.fv-srow { display: flex; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid #F0F3F8; }
.fv-srow b { display: block; font-size: 14.5px; }
.fv-srow .muted { display: block; font-size: 12.5px; margin-top: 2px; }
.fv-badge { background: #E1272B; color: #fff; border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.fv-srow .fv-acts { margin-inline-start: auto; display: flex; gap: 8px; align-items: center; }

.fv-modal[hidden] { display: none; }
.fv-modal { position: fixed; inset: 0; z-index: 120; display: flex; align-items: flex-end; justify-content: center; }
.fv-modal .fv-dim { position: absolute; inset: 0; background: rgba(13, 22, 46, .35); }
.fv-modal form { position: relative; width: 100%; max-width: 460px; background: #fff; border-radius: 16px 16px 0 0; padding: 16px 18px 20px; }
.fv-modal b { display: block; font-size: 18px; font-weight: 900; margin-bottom: 12px; }
.fv-modal .flabel { display: block; margin-bottom: 6px; }
.fv-modal .fv-btns { display: flex; gap: 10px; margin-top: 14px; }
.fv-modal .fv-btns .btn { flex: 1; min-height: 44px; }
@media (min-width: 701px) {
  .fv-modal { align-items: center; }
  .fv-modal form { border-radius: 16px; }
}

/* ===== Поиск через карту на телефоне (одобрено Айком 16.09.2026, макет design/map-search/map-search.html) =====
   Вкладка «Поиск» открывает карту; снизу шторка в трёх положениях: одно объявление · список · полоска. */
.mnav, .msheet, .msave { display: none; }
@media (max-width: 700px) {
  .map-topbar { display: none; }
  .mappage { height: calc(100vh - 56px - 69px); min-height: 0; }   /* шапка и таб-бар */
  .mappage .mpanel { display: none !important; }

  .mnav { display: flex; flex-direction: column; gap: 7px; position: absolute; left: 8px; right: 8px; top: 8px; z-index: 5; }
  .mnav-q {
    display: flex; align-items: center; gap: 8px; width: 100%; height: 42px; padding: 0 12px;
    background: #fff; border: 0; border-radius: 12px; box-shadow: 0 2px 10px rgba(20, 30, 50, .14);
    font-family: inherit; font-size: 13.5px; color: #737A8E; text-align: start; cursor: pointer;
  }
  .mnav-q b { font-size: 13.5px; color: #0D162E; }
  .mnav-q-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mnav-fl { position: relative; margin-inline-start: auto; display: flex; flex: none; }
  .mnav-fl i { position: absolute; top: -2px; inset-inline-end: -3px; width: 9px; height: 9px; border-radius: 50%; background: #E1272B; border: 2px solid #fff; }
  .mnav-chips { display: flex; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .mnav-chip {
    flex: none; background: #fff; border: 0; border-radius: 999px; padding: 6px 12px; min-height: 32px;
    font-family: inherit; font-size: 12px; font-weight: 700; color: #0D162E; box-shadow: 0 2px 8px rgba(20, 30, 50, .12); cursor: pointer;
  }
  .mnav-chip.on { background: #1518A8; color: #fff; }

  .msave { display: block; position: absolute; inset-inline-end: 10px; bottom: calc(100% - 100%); z-index: 4; }
  .mappage .msave { bottom: 76px; transition: opacity .2s; opacity: 0; pointer-events: none; }
  .mappage.s-strip .msave { opacity: 1; pointer-events: auto; }
  .msave button, .msave span {
    display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px;
    background: #1518A8; color: #fff; font-family: inherit; font-size: 13px; font-weight: 700;
    box-shadow: 0 4px 12px rgba(21, 24, 168, .3); cursor: pointer;
  }

  .msheet {
    display: flex; flex-direction: column; position: absolute; left: 0; right: 0; bottom: 0; z-index: 6;
    background: #fff; border-radius: 16px 16px 0 0; box-shadow: 0 -8px 28px rgba(20, 30, 50, .18);
    transition: height .26s cubic-bezier(.22, 1, .36, 1); overflow: hidden;
  }
  .mappage.s-strip .msheet { height: 56px; }
  .mappage.s-card .msheet { height: 380px; }
  .mappage.s-list .msheet { height: 78%; }
  .msheet-grip { padding: 8px 0 4px; cursor: grab; touch-action: none; }
  .msheet-grip span { display: block; width: 36px; height: 4px; border-radius: 999px; background: #D0D8E9; margin: 0 auto; }
  .msheet-head { display: flex; align-items: center; gap: 10px; padding: 2px 14px 8px; font-size: 14px; font-weight: 800; touch-action: none; }
  .msheet-toggle { margin-inline-start: auto; background: none; border: 0; padding: 4px; color: #1518A8; cursor: pointer; display: flex; }
  .msheet-list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; }

  /* вид карточки — в общих стилях выше (.mcard / .mc-*), здесь только мобильные отличия */

  /* кнопки карты — справа, видны когда шторка свёрнута (как у Циана) */
  .mappage .maplibregl-ctrl-top-right { top: 104px; transition: opacity .2s; }
  .mappage:not(.s-strip) .maplibregl-ctrl-top-right { opacity: 0; pointer-events: none; }
  .mdot { width: 11px; height: 11px; border-radius: 50%; background: #1518A8; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(20, 30, 50, .3); cursor: pointer; }
}

/* ===== Таб-бар внизу экрана на телефоне (одобрено Айком 16.09.2026, макет design/tabbar/tabbar.html) =====
   Листы на весь экран (фильтры, поиск, выбор региона) лежат выше (z-index 96+) и сами закрывают таб-бар. */
.tabbar { display: none; }
@media (max-width: 700px) {
  .tabbar {
    display: grid; grid-template-columns: repeat(5, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
    background: #fff; border-top: 1px solid #E4E8F0; box-shadow: 0 -2px 10px rgba(13, 22, 46, .05);
    padding-bottom: calc(16px + env(safe-area-inset-bottom));   /* подписи не прижимаются к краю экрана */
    /* свой слой отрисовки: на айфоне без этого таб-бар «уезжает» вместе со страницей при инерционной прокрутке */
    transform: translateZ(0); backface-visibility: hidden; will-change: transform;
  }
  .tabbar a {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    position: relative; min-height: 52px; padding: 6px 2px 5px; overflow: hidden;
    color: #6B7590; font-size: 9.5px; font-weight: 700; text-align: center;
  }
  /* длинные подписи (армянский, персидский) не должны налезать на соседнюю вкладку */
  .tabbar .tb-label { display: block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tabbar a.on { color: #1518A8; }
  .tabbar svg { width: 24px; height: 24px; fill: currentColor; }
  .tabbar .tb-badge {
    position: absolute; top: 2px; left: calc(50% + 4px); min-width: 17px; padding: 0 5px;
    background: #E1272B; color: #fff; font-size: 9.5px; font-weight: 800; line-height: 16px;
    border: 2px solid #fff; border-radius: 999px; text-align: center;
  }
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }   /* место под таб-бар */
  .mob-cta {                                                            /* «Позвонить» — над таб-баром */
    bottom: calc(69px + env(safe-area-inset-bottom));
    transform: translateZ(0); backface-visibility: hidden; will-change: transform;
  }
  .detail-grid { padding-bottom: 12px; }                               /* запас снизу теперь даёт body */
}

/* ===== Живой логотип «ТУК. ТУК.»: заглавные, две строки, «стук», ru → hy → en (одобрено Айком 14.09.2026) ===== */
.tt-logo { position: relative; display: inline-block; font-size: 21px; font-weight: 900; color: #1518A8; line-height: .9; white-space: nowrap; }
.tt-w { position: absolute; top: 0; inset-inline-start: 0; display: flex; flex-direction: column; opacity: 0; }
.tt-w.tt-sizer { position: relative; visibility: hidden; }
.tt-w.on { opacity: 1; }
.tt-w > span { display: block; }
.tt-w { letter-spacing: -.01em; }
.tt-w[lang="hy"] { font-family: 'TT Armenian', 'Noto Sans Armenian', Lato, sans-serif; }
.tt-w:not([lang="hy"]) { font-family: Lato, 'Helvetica Neue', Arial, sans-serif; }
.tt-w.on > span { animation: tt-knock .5s cubic-bezier(.3, 1.6, .5, 1) both; }
.tt-w.on > span + span { animation-delay: .22s; }
@keyframes tt-knock {
  0% { opacity: 0; transform: scale(.55) translateY(8%); }
  55% { opacity: 1; transform: scale(1.12) rotate(-2deg); }
  75% { transform: scale(.96) rotate(1deg); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { .tt-w.on > span { animation: none; } }
.auth-logo .tt-logo { font-size: 30px; }
@media (max-width: 1000px) { .header-row .tt-logo { font-size: 19px; } }

/* панель → роли и сотрудники */
.role-name { width: 320px; max-width: 100%; }
.role-table .role-th, .role-table .role-td { width: 90px; text-align: center; }
.role-table .role-td input { width: 18px; height: 18px; accent-color: #1518A8; }
.role-group td { background: #F6F7FA; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #6B7386; padding: 8px 12px; }
.role-fixed td { color: #6B7386; }
.ava-owner { background: #1518A8; color: #fff; }
.staff-off .cab-info { opacity: .55; }
.staff-pw .inline-form { display: inline-flex; gap: 6px; align-items: center; margin-inline-start: 10px; }
.inp-xs { height: 28px; padding: 0 8px; font-size: 12.5px; width: 130px; }
.linkbtn { border: 0; background: none; padding: 0; color: #1518A8; font: inherit; font-size: 12.5px; cursor: pointer; text-decoration: underline; }
.staff-form { padding: 18px; max-width: 480px; }
.staff-pw-row { display: flex; gap: 8px; }
.pw-denied { padding: 28px; text-align: center; }
.pw-denied .ptitle { margin-top: 10px; }
.pw-ro-note { background: #FFF6E5; color: #8A5A00; border: 1px solid #F3DDA8; border-radius: 8px; padding: 10px 14px; font-size: 13px; font-weight: 700; margin-bottom: 14px; }
.pw-ro .pw-content form[method="post"] button, .pw-ro .pw-content form[method="post"] .btn { display: none !important; }
.pw-login-body { background: #F6F7FA; }
.pw-login-body .auth-wrap { min-height: 100vh; }
.pw-login-cap { font-size: 13px; font-weight: 700; color: #6B7386; }
.role-form .flabel { display: block; margin-bottom: 6px; }
.role-head { padding: 18px 18px 8px; }
.role-table .role-th small { display: block; font-weight: 400; text-transform: none; letter-spacing: 0; color: #9AA3B5; }
.role-cell { display: flex; align-items: center; justify-content: center; min-height: 40px; margin: -10px -12px; cursor: pointer; }
.role-actions { position: sticky; bottom: 0; background: #F6F7FA; padding: 12px 0; margin-top: 10px; }
.pw-tab ~ .role-actions { bottom: 70px; }
