
/* ↓ восстановлено из утверждённого дизайна ↓ */
.tile.imgph,.ctile.imgph,.coll-hero.imgph{background-color:#dadbde}
.ngrid,.jgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:var(--gap)}
.ncard,.jcard{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
/* ── Единый эффект наведения ─────────────────────────────────
   Поднимается сама карточка, а не текст внутри. Тень и высота
   подъёма одинаковые везде: и на главной, и в разделах. */
.jcard,.ncard,.vcard,.ecard,.ppcard,.coli,.lcard,.ctile,.epost,.tile,
.jdeal,.hbanner,.b3,.trow,.dad,.wide-ad,.vd-menu-banner{
  transition:transform .18s,box-shadow .18s,border-color .18s}
.jcard:hover,.ncard:hover,.vcard:hover,.ecard:hover,.ppcard:hover,.coli:hover,
.lcard:hover,.ctile:hover,.epost:hover,.jdeal:hover,.hbanner:hover,
.b3:hover,.trow:hover{
  transform:translateY(var(--lift));box-shadow:var(--card-sh);border-color:var(--line-2)}
/* плитки витрины сами не двигаются — поднимается только текст внутри */
.tile,.tile:hover{transform:none;box-shadow:none}
.tile .tile-in{transition:transform .18s}
.tile:hover .tile-in{transform:translateY(var(--lift))}
/* внутренности карточек не ездят отдельно — кроме витрины,
   где двигается только текст, а сама плитка стоит */
.ctile:hover .ctile-in,.epost:hover .epost-in{transform:none}
@media(max-width:640px){
  .jcard:hover,.ncard:hover,.vcard:hover,.ecard:hover,.ppcard:hover,.coli:hover,
  .lcard:hover,.ctile:hover,.epost:hover,.jdeal:hover,.hbanner:hover,
  .b3:hover,.trow:hover{box-shadow:var(--card-sh-sm)}
}

.ncard-img,.jcard-img{aspect-ratio:16/10;position:relative}
.ncard-b,.jcard-b{padding:14px 16px 13px;display:flex;flex-direction:column;flex:1}
.nrubric,.edate{font-size:.72em;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;color:var(--ink-3)}
.ncard h4,.jcard h3,.ecard-body h3{font-family:var(--display);font-weight:600;font-size:clamp(17px,1.4vw,21px);line-height:1.1;letter-spacing:-.01em}
.ncard h4,.jcard h3{margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ncard p,.jcard p,.ecard .eloc{font-size:.88em;color:var(--ink-2);line-height:1.45}
.ncard p,.jcard p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ncard-foot,.jcard-foot{margin-top:auto;padding-top:11px}
.nd,.jdate{font-size:.75em;color:var(--ink-3)}
.btn.wa:hover{background:#1eb457;border-color:#1eb457}
.band .btn{background:#fff;color:var(--green);border-color:#fff}
.band .btn:hover{background:#fff}
.band .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.band .btn.ghost:hover{background:rgba(255,255,255,.12)}
#homeBlocks:not(:empty){margin-top:var(--sec)}
h1,h2,h3,h4,.art-title,.lst-title,.lcard-b h4,.art-rel-t,.jcard h3,.vcard h3,.ctile h3{text-wrap:balance;overflow-wrap:anywhere;word-break:normal}
.deal-card-in h4,.trow h4,.lcard-b h4,.epost h4{text-wrap:balance}
h1,h2,h3,h4,.art-title,.lst-title,.tile-in h3,.jcard h3,.jdeal h3,.vcard h3,.vcard-body h3,.lcard-b h4,.trow h4,.ctile h3,.epost h4,.epost-in h4,.mod-head h2,.pop-card h3{line-height:1.15}
.tile-lbl,.jpromo,.ecat,.epost-date,.vbadge,.seltag,.winbadge,.nrubric-pill,.poll-tag,.lst-cat{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:14px!important;line-height:1!important;box-sizing:border-box!important}
.poll.awrd .awyr,.awdesc,.awchips,.awlegs{display:none}
.visabar .bnr,.bnr-top{border-radius:0}
/* ↑ конец восстановленного ↑ */

:root{
  --blue:#007DF8; --green:#00AE84; --yellow:#FFCA00; --pink:#FF98A2;
  --ink:#111315; --ink-2:#63676e; --ink-3:#9a9ea6; --line:#e9e9ec; --line-2:#dedee2;
  --paper:#fff; --wash:#f5f5f6; --wash-2:#fafafa;
  --display:'Onest',system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
  --body:'Onest',system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
  --r:16px;
  /* единый эффект наведения для всех карточек контента */
  --lift:-2px;                                      /* как в «Тренде» */
  --card-sh:0 14px 32px -22px rgba(0,0,0,.45);      /* эталон — карточки «Тренда» */
  --card-sh-sm:0 12px 26px -20px rgba(0,0,0,.42);   /* то же, чуть компактнее на телефоне */ --r-s:16px; --r-l:16px; --gap:16px; --sec:32px;
  --hh:clamp(44px,3.6vw,52px);
  --pad:32px;
  --maxw:1300px;
}
*{box-sizing:border-box;margin:0;padding:0}
b,strong{font-weight:700}   /* иначе bolder от 600 даёт 900, а такого начертания нет */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-anchor:none}
body{font-family:var(--body);color:var(--ink);background:var(--paper);font-size:clamp(14px,.3vw+12px,16px);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@media(min-width:2200px){body{font-size:18px}}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.dn{display:none!important}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}

/* ============ HEADER ============ */
.hdr{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s}
.hdr.stuck{box-shadow:0 8px 30px -16px rgba(0,0,0,.28)}
.brand{flex:0 0 auto;display:flex;align-items:center}
.brand img{height:var(--hh);width:auto;display:block}
.hdr-search:focus-within{border-color:var(--blue)!important;background:#fff!important}
.hdr-search{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:11px;background:var(--wash);border:1px solid transparent;border-radius:40px;padding:0 20px;height:var(--hh);transition:.15s}
.hdr-search:focus-within{background:#fff;border-color:var(--ink-3)}
.hdr-search svg{width:19px;height:19px;stroke:var(--ink-3);stroke-width:1.9;fill:none;flex:0 0 auto}
.hdr-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:16px;min-width:0}
.lang{position:relative;flex:0 0 auto}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:var(--hh);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);border:1px solid var(--line-2);border-radius:40px;padding:0 15px;transition:.14s}
.lang-btn:hover{border-color:var(--ink-3)}
.lang-btn svg{width:13px;height:13px;stroke:var(--ink-3);stroke-width:2;fill:none;transition:transform .2s}
.lang.open .lang-btn svg{transform:rotate(180deg)}
.topnav{display:flex;width:100%;justify-content:space-between;gap:4px}
.topnav a{flex:0 0 auto;text-align:center;font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap;padding:9px 18px;border-radius:40px;border-bottom:none;transition:background .15s,color .15s;line-height:1}
.topnav a:hover{color:var(--ink);background:var(--wash-2)}
.topnav a.on{color:#fff;background:var(--ink)}
.topnav a .soon{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-left:5px;vertical-align:middle}
@media(max-width:900px){
  .topnav{overflow-x:auto;scrollbar-width:none}
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{flex:0 0 auto;padding:9px 18px}
}
@media(max-width:680px){
  .brand img{height:38px}
  .hdr-search{padding:0 14px;height:42px}
  .lang-btn{padding:0 11px;font-size:12px;height:42px}
}.tile.imgph,.ctile.imgph{background-color:#dadbde}
.photo{background-color:#100f0d;background-size:cover;background-position:center;background-repeat:no-repeat}

/* ============ buttons ============ */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;padding:11px 20px;border-radius:40px;background:var(--ink);color:#fff;border:1px solid var(--ink);transition:.16s}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(0,0,0,.5)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{background:var(--wash);box-shadow:none;transform:none}
.btn svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none}
.btn.sm{padding:8px 16px;font-size:14px}

/* ============ module heading ============ */
.mod{padding-block:0;margin-top:var(--sec)}
/* Ленты гасят своё нижнее поле (-24), из-за чего шаг между блоками
   выходил 8 вместо 32. Возвращаем недостающие 24 самим лентам. */
/* Поле под тень есть, но в шаг блоков не входит — гасится отрицательным полем */
/* нижнего поля лентам не нужно — тень уходит в зазор блока */

.mod-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:clamp(14px,1.6vw,20px);flex-wrap:wrap}
.mod-head h2{font-family:var(--display);font-weight:600;font-size:clamp(20px,2vw,24px);line-height:1.15;letter-spacing:-.01em}
.mod-head .lbl{font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-top:4px;margin-bottom:1px}   /* опущен ближе к заголовку блока */
.mlink{font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:.15s;align-self:flex-end}
.mlink:hover{color:var(--ink)}
.mlink:hover{color:var(--ink);gap:9px}
.mlink svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none}

/* ============ feature mosaic ============ */
.feature{display:grid;grid-template-columns:1.75fr 1fr;gap:var(--gap);padding-top:var(--sec)}
.tile{position:relative;border-radius:var(--r-l);overflow:hidden;display:block;color:#fff}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.08) 55%,transparent)}
.tile-in{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,2vw,30px)}
.tile-lbl{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;background:#fff;color:var(--ink);padding:4px 10px;border-radius:30px;margin-bottom:11px}
.feat-main{min-height:clamp(340px,42vw,540px)}
.feat-main h2{font-family:var(--display);font-weight:600;font-size:clamp(26px,3.2vw,46px);line-height:1.02;letter-spacing:-.015em}
.feat-main p{margin-top:9px;font-size:clamp(14px,1vw,18px);color:rgba(255,255,255,.86);max-width:42ch}
.feat-side{display:grid;grid-template-rows:1fr 1fr;gap:var(--gap)}
.feat-s{min-height:150px}
.feat-s h3{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.5vw,24px);line-height:1.04;letter-spacing:-.01em}

.tile-in{transition:transform .2s}
@media(max-width:760px){.feature{grid-template-columns:1fr}.feat-side{grid-template-rows:none;grid-template-columns:1fr}.feat-main{min-height:300px}}
@media(max-width:460px){.feat-side{grid-template-columns:1fr}}

/* ============ horizontal rail ============ */
.rail{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad);padding-block:8px 28px;margin-top:-8px;margin-bottom:-28px}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 auto}

/* collection tiles — full photo (Instagram covers) */
.ctile{width:clamp(220px,25vw,290px);aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;position:relative;display:block;color:#fff;background:#100f0d}
.ctile .ctile-img{position:absolute;inset:0}
.ctile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.05) 55%,transparent);z-index:1}
.ctile-in{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px;transition:transform .2s}

.ctile-cnt{font-size:12px;font-weight:600;opacity:.9}
.ctile-in h3{font-family:var(--display);font-weight:600;font-size:clamp(22px,2vw,28px);line-height:1.04;letter-spacing:-.01em;margin-top:4px}

/* collections grid (page) */
.cgrid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.cgrid .ctile{width:100%}
.cgrid .ctile{width:auto}

/* ============ venue card (compact) ============ */
.vcard{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;cursor:pointer;transition:.18s;display:flex;flex-direction:column}

.vcard-img{aspect-ratio:1/1;background:#100f0d center/cover no-repeat;position:relative}
.vcard-img{aspect-ratio:1/1;position:relative}
.vcard-body{padding:16px;display:flex;flex-direction:column;gap:3px}
.vcard-body h3{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,18px);line-height:1.06;letter-spacing:-.01em}.vcard-body h3,.vcard-body .vmeta{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0;overflow-wrap:normal!important;word-break:normal!important;text-wrap:nowrap!important;display:block!important;-webkit-line-clamp:none!important}#venueRail .vcard-body h3,#venueRail .vcard-body .vmeta{line-height:21px!important}#venueRail .vcard-body{gap:3px}
.vmeta{font-size:14px;color:var(--ink-2)}
.vrail .vcard{width:clamp(190px,21vw,230px)}

/* venue grid (catalog page) */
.vgrid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,224px),1fr))}.tile-sub{margin:4px 0 0;font-size:14px;line-height:1.25;color:#fff;opacity:.9;font-weight:500}.cat-pager{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:24px}.cat-pager .cpg{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);background:#fff;border-radius:10px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}.cat-pager .cpg:hover:not(:disabled){border-color:var(--ink)}.cat-pager .cpg.on{background:var(--ink);color:#fff;border-color:var(--ink)}.cat-pager .cpg:disabled{opacity:.35;cursor:default}.cat-pager .cpg-dots{color:var(--ink-3);padding:0 2px}
@media(min-width:2200px){.vgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}

/* ============ top of week (leaderboard) ============ */
/* recommended to visit — editorial list */
.toplist{border:1px solid var(--line);border-radius:var(--r-l);padding:4px 22px;background:#fff;margin-bottom:-4px}
.toplist .tl-row:last-child{border-bottom:none}
.tl-row{display:grid;grid-template-columns:1fr auto;gap:clamp(12px,1.6vw,22px);align-items:start;padding:15px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:.15s}
/* карточки-ссылки: убираем оформление якоря, вид не меняется */
a.tl-row,a.vcard,a.epost{text-decoration:none}
a.tl-row,a.vcard{color:inherit}
a.tl-row:hover,a.vcard:hover,a.epost:hover{text-decoration:none}
.tl-row:hover{background:var(--wash-2)}
.tl-info h4{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,18px);line-height:1.1;letter-spacing:-.01em}
.tl-meta{font-size:14px;color:var(--ink-2);margin-top:3px}
.tl-chk{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.4vw,22px);color:var(--ink);white-space:nowrap;text-align:right;line-height:1.1;letter-spacing:-.01em}
.tl-chk span{display:block;font-family:var(--body);font-weight:400;font-size:14px;letter-spacing:0;text-transform:none;color:var(--ink-2);margin-top:3px;line-height:1.3;white-space:nowrap}
@media(max-width:560px){.tl-row{grid-template-columns:1fr auto;gap:12px}.tl-meta{font-size:12px}}

/* ============ agenda (события недели) — poster rail ============ */
.epost{width:clamp(220px,25vw,290px);aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;position:relative;display:block;color:#fff;background:#100f0d;cursor:pointer}
.epost .photo{position:absolute;inset:0}
.epost::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.12) 56%,rgba(0,0,0,.18));z-index:1}
.epost-date{position:absolute;left:13px;top:13px;z-index:2;font-size:14px;font-weight:600;letter-spacing:.02em;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.24);padding:5px 11px;border-radius:30px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.epost-in{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px;transition:transform .2s}

.epost-in h4{font-family:var(--display);font-weight:600;font-size:clamp(20px,2vw,24px)!important;line-height:1.08;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.epost-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:8px;font-size:14px}
.epost-loc{opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.epost-price{font-weight:600;white-space:nowrap}/* ============ editorial news cards (home + journal,.jgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:var(--gap)}.jcard{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}.jcard-img{aspect-ratio:16/10;position:relative}.jcard-b{padding:14px 16px 13px;display:flex;flex-direction:column;flex:1}.nrubric{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;color:var(--ink-3)}.jcard h3,.ecard-body h3{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.4vw,22px);line-height:1.1;letter-spacing:-.01em}.jcard h3{margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jcard p,.ecard .eloc{font-size:14px;color:var(--ink-2);line-height:1.45}.jcard p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jcard-foot{margin-top:auto;padding-top:11px}.nd,.jdate{font-size:12px;color:var(--ink-3)}
.btn.wa{background:#25D366;border-color:#25D366;color:#fff;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 18px;line-height:1;border-radius:30px;margin-top:clamp(16px,2.5vw,30px)}
.btn.wa:hover{background:#1eb457;border-color:#1eb457}
.band .btn{background:#fff;color:var(--green);border-color:#fff}
.band .btn:hover{background:#fff}
.band .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.band .btn.ghost:hover{background:rgba(255,255,255,.12)}
#homeBlocks:not(:empty){margin-top:var(--sec)}

/* ============ events page cards ============ */
.egrid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.ecard{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;cursor:pointer;transition:.18s;display:flex;flex-direction:column}

.ecard-img{aspect-ratio:16/10;position:relative}
.ecat{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:600;letter-spacing:.04em;background:#fff;color:var(--ink);padding:4px 9px;border-radius:30px;text-transform:uppercase}
.ecard-body{padding:12px 14px 22px;display:flex;flex-direction:column;gap:5px;flex:1}
.eprice{margin-top:auto;padding-top:5px;font-size:14px;font-weight:600}

/* ============ chips (catalog filters) ============ */
.chips{display:flex;flex-wrap:wrap;gap:8px}
/* теги переносятся на нужное число строк, ничего не уходит за экран */
.chips-scroll{flex-wrap:wrap;overflow-x:visible;padding-bottom:0}
.chips-scroll::-webkit-scrollbar{display:none}
.chips-scroll .chip{white-space:normal;flex:0 1 auto;max-width:100%;text-align:center;line-height:1.15}
.chip{font-size:14px;border:1px solid var(--line-2);border-radius:30px;padding:8px 15px;color:var(--ink-2);transition:.14s;line-height:1}
.chip:hover{border-color:var(--ink-3);color:var(--ink)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ============ page hero (inner pages) ============ */
.view{display:none;animation:fade .3s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.page-hero{padding-block:clamp(18px,2.4vw,32px) clamp(16px,2.5vw,30px)}
.page-hero h1{font-family:var(--display);font-weight:var(--t-ph1-w,600);font-size:var(--t-ph1-s,clamp(24px,3.2vw,34px));line-height:var(--t-ph1-lh,.98);letter-spacing:var(--t-ph1-ls,-.015em);color:var(--t-ph1-c,var(--ink))}
.page-hero p{color:var(--t-phs-c,var(--ink-2));max-width:56ch;margin-top:13px;font-size:var(--t-phs-s,clamp(14px,1vw,18px));line-height:var(--t-phs-lh,1.55)}

/* ============ catalog layout ============ */
/* нижнего поля нет: расстояние до пагинации задаёт сама пагинация, как в других разделах */
.cat{display:grid;grid-template-columns:240px 1fr;gap:clamp(18px,2.4vw,40px);align-items:start;padding-top:0;padding-bottom:0}
@media(min-width:2200px){.cat{grid-template-columns:300px 1fr}}
.filters{position:sticky;top:140px}
.fgroup{border-bottom:1px solid var(--line);padding:16px 0}
.fgroup:first-child{padding-top:0}
.fgt{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px}
.chips.clamp{max-height:108px;overflow:hidden}
.chips.clamp:not(.open){-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent);mask-image:linear-gradient(to bottom,#000 60%,transparent)}
.chips.clamp.open{max-height:none}
.flist.clamp{max-height:210px;overflow:hidden}
.flist.clamp:not(.open){-webkit-mask-image:linear-gradient(to bottom,#000 66%,transparent);mask-image:linear-gradient(to bottom,#000 66%,transparent)}
.flist.clamp.open{max-height:none}
.fmore{margin-top:11px;background:none;border:none;font:inherit;font-size:14px;font-weight:600;color:var(--blue);cursor:pointer;padding:2px 0}
.fmore:hover{opacity:.7}

.cat-main-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.count{font-size:14px;color:var(--ink-2)}
.count b{color:var(--ink);font-weight:600}
.filter-toggle{display:none}
.filters-close{display:none}
.filters-apply{display:none}
@media(max-width:820px){
  .cat{grid-template-columns:1fr}
  .filters{position:fixed;inset:0;z-index:80;background:#fff;padding:18px var(--pad) 90px;overflow:auto;transform:translateX(-105%);transition:transform .3s;top:0}
  .filters.open{transform:none}
  .filter-toggle{display:inline-flex;height:38px;padding:0 16px;line-height:1}
  .filters.open .filters-close{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid var(--line)}
  .filters.open .filters-apply{display:inline-flex;position:fixed;left:var(--pad);right:var(--pad);bottom:16px;justify-content:center}
}

/* ============ venue detail ============ */
.vd{padding-block:clamp(16px,2.4vw,32px) clamp(40px,6vw,80px)}
.vd-back{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-weight:600;font-size:14px;margin-bottom:16px}
.vd-back:hover{color:var(--ink)}
.vd-back svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none}
@media(max-width:820px){.vd-top{grid-template-columns:1fr}}
@media(max-width:760px){.vd-cols{grid-template-columns:1fr;gap:0}}
@media(max-width:760px){.vd-cols .vd-sec+.vd-sec{margin-top:36px}}
/* menu iframe (open) */
.vd,.ed{padding-block:clamp(18px,2.6vw,30px) clamp(26px,3vw,40px)}
.dhero{position:relative;aspect-ratio:160/49;border-radius:var(--r-l);overflow:hidden;margin-bottom:clamp(22px,3vw,36px)}
@media(max-width:680px){.dhero{aspect-ratio:15/7}}
.dhero-ov{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,3vw,36px);background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,.15) 58%,transparent);color:#fff}
/* тот же кегль и вес, что у заголовков страниц и статей */
.dhero h1{font-family:var(--display);font-weight:var(--t-title-w,600);
  font-size:var(--t-title-s,clamp(24px,3.2vw,34px));line-height:var(--t-title-lh,1.0);
  letter-spacing:var(--t-title-ls,-.02em);color:#fff}
.dhero-meta{margin-top:10px;font-size:clamp(14px,1.1vw,18px);color:rgba(255,255,255,.92);font-weight:500}
.dgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"main aside";gap:clamp(28px,4vw,56px);align-items:start}
@media(max-width:860px){.dgrid{grid-template-columns:1fr;grid-template-areas:"aside" "main";gap:26px}}
.dmain{grid-area:main;min-width:0}
.daside{grid-area:aside}
@media(min-width:861px){.daside{position:sticky;top:140px}}
.dcard{border:1px solid var(--line);border-radius:var(--r);padding:6px 18px 16px}
.d-row{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.d-row:last-of-type{border-bottom:none}
.d-k{color:var(--ink-3);font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.04em;line-height:1.3}
.d-v{text-align:left;font-weight:600;color:var(--ink);line-height:1.3}
.d-btn{width:100%;justify-content:center;margin-top:14px}
.dmap{margin-top:14px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:var(--wash)}
.dad{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;margin-top:14px;border-radius:var(--r);aspect-ratio:4/3;padding:22px;background:var(--blue);color:#fff;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.dad:hover{transform:translateY(-2px);box-shadow:0 18px 40px -22px rgba(0,125,248,.65)}
.dad::after{content:"";position:absolute;right:-34px;bottom:-34px;width:132px;height:132px;border:18px solid rgba(255,255,255,.14);border-radius:50%}
.dad-tag{position:relative;font-size:.62em;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.dad h4{position:relative;font-family:var(--display);font-weight:700;font-size:clamp(20px,2vw,26px);line-height:1.05;letter-spacing:-.01em}
.dad p{position:relative;font-size:14px;color:rgba(255,255,255,.85);max-width:26ch}
.dad-cta{position:relative;margin-top:6px;display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.9em;background:#fff;color:var(--blue);padding:9px 16px;border-radius:30px}
.pmenu-row{display:flex;align-items:baseline;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.pmenu-row .pk{font-size:16px;color:var(--ink)}
.pmenu-row .dl{flex:1 1 auto;align-self:center;border-bottom:1px dashed var(--line-2);min-width:14px}
.pmenu-row .pv{font-family:var(--display);font-weight:600;color:var(--ink);white-space:nowrap;font-size:16px}
.pmenu-row.avg .pk{color:var(--ink-3);font-weight:600}
/* Страница объявления: большое фото, под ним миниатюры, дальше текст */
.lst-hero{aspect-ratio:16/10;border-radius:var(--r);cursor:zoom-in;margin-bottom:10px}
.lst-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--gap);margin-bottom:clamp(20px,2.4vw,28px)}
/* фото больше шести — миниатюры превращаются в ленту с прокруткой */
.lst-thumbs.is-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
  padding:8px 12px 8px 0;margin:-8px -12px 20px 0}
.lst-thumbs.is-rail::-webkit-scrollbar{display:none}
.lst-thumbs.is-rail .lst-th{flex:0 0 calc((100% - 5*var(--gap))/6);scroll-snap-align:start}
.lst-more{flex:0 0 auto;align-self:stretch;min-width:64px;border:1px solid var(--line-2);
  border-radius:var(--r-s);background:#fff;font:inherit;font-size:14px;font-weight:600;
  color:var(--ink-2);cursor:pointer;transition:.15s}
.lst-more:hover{border-color:var(--ink);color:var(--ink)}
@media(max-width:900px){.lst-thumbs.is-rail .lst-th{flex:0 0 calc((100% - 3*var(--gap))/4)}}
@media(max-width:560px){.lst-thumbs.is-rail .lst-th{flex:0 0 calc((100% - 2*var(--gap))/3)}}
.lst-th{aspect-ratio:1/1;border-radius:var(--r-s);cursor:zoom-in;transition:opacity .15s}
.lst-th:hover{opacity:.85}
@media(max-width:900px){.lst-thumbs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.lst-hero{aspect-ratio:4/3}.lst-thumbs{grid-template-columns:repeat(3,1fr)}}
.vgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--gap)}
.vgal-i{aspect-ratio:4/3;border-radius:var(--r-s);cursor:zoom-in;transition:opacity .15s}
.vgal-i:hover{opacity:.9}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox.on{display:flex}
.lightbox img{max-width:95vw;max-height:92vh;border-radius:8px;object-fit:contain}
.lb-x{position:fixed;top:16px;right:18px;background:rgba(255,255,255,.16);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer}
.lb-x:hover{background:rgba(255,255,255,.28)}
.d-row .d-v a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.d-row .d-v a:hover{text-decoration-thickness:2px}
/* листание в просмотре: стрелки, счётчик, клик по фото, клавиши, свайп */
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.16);color:#fff;border:none;width:46px;height:46px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer;z-index:2;display:none;align-items:center;justify-content:center;padding:0 0 3px}
.lb-nav:hover{background:rgba(255,255,255,.28)}
.lb-prev{left:18px}.lb-next{right:18px}
.lightbox.many .lb-nav{display:flex}
.lightbox.many img{cursor:pointer}
.lb-cnt{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);color:#fff;font-size:12px;letter-spacing:.06em;opacity:.7;display:none}
.lightbox.many .lb-cnt{display:block}
@media(max-width:600px){.lb-nav{width:40px;height:40px;font-size:24px}.lb-prev{left:8px}.lb-next{right:8px}}
@media(max-width:520px){.vgal{grid-template-columns:1fr 1fr}}
.dmap-frame{width:100%;height:100%;border:0;display:block}
.dmain .d-lead{font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:var(--ink);margin-bottom:8px}
.dmain h2{font-family:var(--display);font-weight:600;font-size:clamp(20px,2vw,28px);letter-spacing:-.01em;margin:0 0 16px}
.dmain p{font-size:clamp(16px,1.1vw,18px);line-height:1.65;color:var(--ink-2);margin-bottom:20px}
.vd-sec2{margin-top:clamp(26px,3.5vw,42px)}
.d-addbanner{margin-top:clamp(26px,3.5vw,44px)}
/* admin */
.adm-login{max-width:340px;margin:6vh auto;text-align:center}
.adm-login h2{font-family:var(--display);font-weight:700;font-size:28px;margin-bottom:18px}
.adm-login input{width:100%;border:1px solid var(--line-2);border-radius:var(--r-s);padding:12px 14px;font:inherit;margin-bottom:12px;outline:none}
.adm-login input:focus{border-color:var(--ink)}
.adm-who{font-size:.8em;color:var(--ink-3);margin-left:auto}
.adm-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.adm-bar strong{font-family:var(--display);font-size:18px}
.adm-status{font-size:.82em;font-weight:600}
.adm-status.ok{color:var(--green)} .adm-status.no{color:var(--ink-3)}
.adm-bar .btn{height:38px;padding:0 14px;font-size:.84em}
.adm-empty{color:var(--ink-3);padding:18px 0}
.adm-save{display:flex;align-items:center;gap:14px;margin-top:12px}
.adm-msg{font-size:.88em;font-weight:600;color:var(--green)}
/* menu iframe legacy */
.vd-menu{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.vd-menu-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;background:var(--wash);border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-3);font-weight:600}
.vd-menu-open{color:var(--blue);font-weight:600}
.vd-menu-frame{width:100%;height:min(80vh,820px);border:0;display:block;background:#fff}
.vd-menu-note{padding:16px;font-size:14px;color:var(--ink-3)}
/* menu banner */
.vd-menu-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:linear-gradient(120deg,var(--blue),var(--green));color:#fff;border-radius:var(--r-l);padding:clamp(22px,3vw,34px);transition:.18s}
.vd-menu-banner:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 22px 44px -26px rgba(0,125,248,.7)}
.vmb-l{display:flex;flex-direction:column;gap:5px;min-width:0}
.vmb-kicker{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.vmb-title{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.6vw,34px);line-height:1.04;letter-spacing:-.01em}
.vmb-sub{font-size:18px;opacity:.92}
.vmb-btn{flex:0 0 auto;background:#fff;color:var(--ink);font-weight:600;border-radius:30px;padding:13px 22px;white-space:nowrap}
@media(max-width:680px){.vd-map{aspect-ratio:4/3}}
/* ============ article ============ */
.art{padding-block:clamp(20px,3vw,34px) clamp(40px,6vw,80px)}
.art-head{max-width:920px;margin-bottom:clamp(18px,2.4vw,28px)}
.art-rubric{margin-bottom:10px}
.art-title{font-family:var(--display);font-weight:var(--t-title-w,600);font-size:var(--t-title-s,clamp(24px,3.2vw,34px));line-height:var(--t-title-lh,1.0);letter-spacing:var(--t-title-ls,-.02em);color:var(--t-title-c,var(--ink))}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--t-meta-c,var(--ink-3));font-size:var(--t-meta-s,14px);margin-top:16px}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(34px,4.5vw,72px);align-items:start}
@media(max-width:920px){.art-grid{grid-template-columns:1fr}}
.art-body{max-width:740px}
.art-lead{font-size:var(--t-lead-s,clamp(18px,1.8vw,22px));line-height:var(--t-lead-lh,1.5);font-weight:var(--t-lead-w,500);color:var(--t-lead-c,var(--ink));margin-bottom:24px}
.art-body p{font-size:var(--t-body-s,clamp(14px,1.4vw,16px));line-height:var(--t-body-lh,1.7);font-weight:var(--t-body-w,400);color:var(--t-body-c,var(--ink-2));margin-bottom:var(--t-body-mb,22px)}
.art-body h2{font-family:var(--display);font-weight:var(--t-h2-w,600);font-size:var(--t-h2-s,clamp(20px,2vw,24px));line-height:var(--t-h2-lh,1.2);letter-spacing:var(--t-h2-ls,-.01em);color:var(--t-h2-c,var(--ink));margin:16px 0 16px}
.art-fig{margin:10px 0 26px}
.art-fig .imgph,.art-fig .photo{aspect-ratio:16/10;border-radius:var(--r)}
.art-fig figcaption{font-size:var(--t-cap-s,14px);color:var(--t-cap-c,var(--ink-3));margin-top:9px}
.art-quote{border-left:3px solid var(--t-quote-bar,var(--green));padding:6px 0 6px 22px;margin:10px 0 28px;font-family:var(--display);font-weight:var(--t-quote-w,600);font-size:var(--t-quote-s,clamp(22px,2vw,24px));line-height:1.22;letter-spacing:-.01em;color:var(--ink)}
.art-video{aspect-ratio:16/9;border-radius:var(--r);background:#111315;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;margin:10px 0 28px;cursor:pointer}
.art-play{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center}
.art-play svg{width:26px;height:26px;margin-left:3px}
.art-vid-lbl{font-size:14px;color:rgba(255,255,255,.6)}
.art-tags{margin-top:8px}
/* article sidebar */
.art-aside{position:sticky;top:140px}
@media(max-width:920px){.art-aside{position:static;border-top:1px solid var(--line);padding-top:26px;margin-top:8px}}
.art-aside-card h3{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.4vw,18px);margin-bottom:16px}
.art-rel{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.art-rel:first-of-type{border-top:1px solid var(--line)}
.art-rel-th{width:72px;height:60px;border-radius:var(--r-s);flex:0 0 auto}
.art-rel-b{display:flex;flex-direction:column;gap:4px;min-width:0}
.art-rel-b .nrubric{margin:0}
.art-rel-t{font-family:var(--display);font-weight:600;font-size:14px;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
.art-rel:hover .art-rel-t{color:var(--blue)}
.coll-cta .btn.wa{margin-top:0;flex:0 0 auto}
/* ============ event detail ============ */
.ed{padding-block:clamp(20px,3vw,34px) clamp(40px,6vw,80px)}
.collist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--gap);margin-top:clamp(24px,3.2vw,40px);align-items:start}
.coli{display:flex;flex-direction:column;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}

.coli-img{aspect-ratio:4/3;width:100%}
.coli-b{padding:clamp(16px,1.8vw,22px);display:flex;flex-direction:column;gap:13px}
.coli-b h3{font-family:var(--display);font-weight:600;font-size:clamp(20px,1.8vw,26px);line-height:1.05;letter-spacing:-.015em}
.coli-why{font-size:clamp(14px,1vw,16px);color:var(--ink);line-height:1.6}
@media(max-width:680px){.coli-img{aspect-ratio:16/10}}

/* ============ forms ============ */
.form{max-width:760px;margin-top:0}
.fnote{background:var(--wash);border-radius:var(--r);padding:15px 17px;font-size:14px;color:var(--ink-2);margin-bottom:26px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}
@media(max-width:620px){.frow{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:14px;font-weight:600;color:var(--ink-2)}
.field label .req{color:var(--blue)}
.field input,.field select,.field textarea{border:1px solid var(--line-2);border-radius:var(--r-s);padding:11px 13px;font:inherit;outline:none;background:#fff;transition:.15s;width:100%}
.field select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}
.kit{margin-top:clamp(30px,4vw,52px);max-width:none;border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(22px,3vw,34px)}
.kit h2{font-family:var(--display);font-weight:600;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.01em}
.kit .btn{margin-top:4px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.field textarea{resize:vertical;min-height:92px}
.checkrow{display:flex;flex-wrap:wrap;gap:8px}
.checkrow label{display:inline-flex;align-items:center;gap:7px;font-size:14px;border:1px solid var(--line-2);border-radius:30px;padding:7px 13px;cursor:pointer;font-weight:400;color:var(--ink-2)}
.checkrow input{width:auto}
.form-done{display:none;text-align:center;padding:clamp(36px,6vw,80px) 0}
.form-done.show{display:block;animation:fade .4s}
.form-done .ic{width:68px;height:68px;border-radius:50%;background:var(--green);display:grid;place-items:center;margin:0 auto 20px}
.form-done .ic svg{width:30px;height:30px;stroke:#fff;stroke-width:2.4;fill:none}
.form-done h2{font-family:var(--display);font-weight:600;font-size:clamp(24px,3.2vw,34px);margin-bottom:12px}
.form-done p{color:var(--ink-2);max-width:42ch;margin:0 auto}

/* ============ advertise ============ */
.adgrid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));margin-top:0}
.adcard{border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.2vw,28px)}
.adcard .n{font-family:var(--display);font-weight:600;font-size:24px;color:var(--line-2);margin-bottom:9px}
.adcard h3{font-family:var(--display);font-weight:600;font-size:18px;margin-bottom:7px}
.adcard p{font-size:14px;color:var(--ink-2)}

/* ============ coming soon page ============ */
.cs{min-height:58vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-block:clamp(44px,7vw,110px)}
.cs .kick{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}
.cs h1{font-family:var(--display);font-weight:600;font-size:clamp(40px,8vw,120px);line-height:.94;letter-spacing:-.02em}
.cs p{color:var(--ink-2);max-width:48ch;font-size:clamp(16px,1.3vw,22px);margin:20px 0 28px}
.notify{display:flex;gap:10px;flex-wrap:wrap;max-width:480px;width:100%}
.notify input{flex:1 1 220px;border:1px solid var(--line-2);border-radius:40px;padding:12px 18px;font:inherit;outline:none;min-width:0}
.notify input:focus{border-color:var(--ink)}

/* ============ ratings ============ */
.rtabs{display:inline-flex;gap:8px;margin-bottom:clamp(18px,2.2vw,26px)}
.rtab{display:inline-flex;align-items:center;height:38px;padding:0 18px;border:1px solid var(--line);background:#fff;font:inherit;font-size:14px;font-weight:600;line-height:1;color:var(--ink);border-radius:30px;cursor:pointer;white-space:nowrap;transition:.15s}
.rtab:hover{border-color:var(--line-2)}
.rtab.on{background:var(--ink);border-color:var(--ink);color:#fff}
.rbtn.voted{background:transparent;color:var(--ink-3);border-color:var(--line-2);cursor:default;transform:none}
/* polls */
.pollgrid{display:grid;align-items:start;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}
.pollgrid.rtgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
/* поля со всех сторон одинаковые */
.poll{border:1px solid var(--line);border-radius:var(--r);padding:20px;background:#fff}
.poll-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.poll-tag{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:30px;background:var(--wash);color:var(--ink-2)}
.poll-tag.live{background:var(--green);color:#fff;display:inline-flex;align-items:center;gap:6px}
.poll-tag.live::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:pulseDot 1.4s ease-in-out infinite}
@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
.pollgrid .poll:nth-child(3n+1) .poll-tag.live{background:var(--blue)}
.pollgrid .poll:nth-child(3n+2) .poll-tag.live{background:var(--green)}
.pollgrid .poll:nth-child(3n+3) .poll-tag.live{background:var(--pink)}
.poll-go{color:var(--ink)!important}
.poll-end{font-size:12px;color:var(--ink-3);white-space:nowrap}
.poll h3{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,18px)!important;line-height:1.1;letter-spacing:-.01em;margin-bottom:20px}
.poll-opts{display:flex;flex-direction:column;gap:8px}
.poll-opt{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line-2);border-radius:40px;padding:11px 18px;overflow:hidden;font-size:14px;width:100%;text-align:left;background:#fff}
.poll-opt.vote{cursor:pointer;transition:.14s}
/* наведение как в «Избранных» на главной: только светлая заливка */
.poll-opt.vote:hover{background:var(--wash-2)}
.poll-go{font-size:14px;font-weight:600;color:var(--green);flex:0 0 auto}
.poll-opt.res .poll-bar{position:absolute;left:0;top:0;bottom:0;background:rgba(0,174,132,.14);z-index:0}
/* золото премии — свой цвет, как серебро и бронза ниже */
.poll-opt.res.win .poll-bar{background:rgba(255,202,0,.28)}
/* свой голос: заливка и жирная подпись вместо цветного канта */
.poll-opt.res.win{border-color:rgba(255,202,0,.65)}
.poll-opt.mine{border-color:var(--ink)}
.poll-opt.mine .poll-n{font-weight:700}
.poll-opt.mine::after{content:'';position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:var(--green);z-index:1}
.poll-n,.poll-pct{position:relative;z-index:1}
.poll-n{font-weight:500}
.poll-pct{font-weight:600;flex:0 0 auto}
.poll-foot{font-size:12px;color:var(--ink-3)}
.poll-footrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.poll-share{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--blue);border:1px solid var(--line-2);border-radius:30px;padding:7px 13px;transition:.14s;flex:0 0 auto}
.poll-share:hover{border-color:var(--blue);background:rgba(0,125,248,.06)}
.poll-share svg{flex:0 0 auto}

/* share modal */
.share-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.55)}
.share-modal.open{display:flex}
.share-box{background:#fff;border-radius:18px;max-width:440px;width:100%;max-height:92vh;overflow:auto;padding:18px}
.share-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.share-top strong{font-size:16px}
.share-x{font-size:24px;line-height:1;color:var(--ink-3);width:32px;height:32px;border-radius:50%;transition:.14s}
.share-x:hover{background:var(--wash);color:var(--ink)}
.sharecard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px;overflow:hidden}
.sc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.sc-logo{height:30px;width:auto;display:block}
.sc-tag{font-size:.62em;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.sc-q{font-family:var(--display);font-weight:700;font-size:clamp(22px,5vw,28px);line-height:1.06;letter-spacing:-.015em;margin-bottom:16px}
.sc-winner{display:flex;align-items:center;gap:14px;background:rgba(0,174,132,.1);border:1px solid rgba(0,174,132,.4);border-radius:14px;padding:14px 16px;margin-bottom:10px}
.sc-w-pl{font-family:var(--display);font-weight:700;font-size:24px;color:var(--green);line-height:1;flex:0 0 auto}
.sc-w-mid{display:flex;flex-direction:column;flex:1;min-width:0}
.sc-w-name{font-family:var(--display);font-weight:700;font-size:clamp(18px,3.6vw,22px);line-height:1.08;letter-spacing:-.01em}
.sc-w-sub{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-top:2px}
.sc-w-pct{font-family:var(--display);font-weight:700;font-size:24px;color:var(--green);flex:0 0 auto}
.sc-rest{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.sc-o{display:flex;align-items:center;gap:12px;background:var(--wash);border-radius:10px;padding:11px 14px;font-size:16px}
.sc-o-pl{font-family:var(--display);font-weight:700;color:var(--ink-3);flex:0 0 auto;width:1em}
.sc-o-n{flex:1;font-weight:600;min-width:0}
.sc-o-p{font-family:var(--display);font-weight:600;flex:0 0 auto}
.sc-foot{text-align:center;font-size:14px;font-weight:600;color:var(--ink-2);padding-top:14px;border-top:1px solid var(--line)}
.sc-actions{margin-top:16px}
.sc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sc-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:13px 6px;border:1px solid var(--line-2);border-radius:12px;font-size:12px;font-weight:600;color:var(--ink-2);transition:.14s}
.sc-btn:hover{border-color:var(--ink);color:var(--ink)}
.sc-btn svg{width:22px;height:22px}
.sc-hint{font-size:12px;color:var(--ink-3);margin-top:12px;text-align:center;line-height:1.4}/* ============ projects / contacts ============ */
/* проекты: одна карточка в ряд, во всю ширину и невысокая */
/* ===== проекты: карточки как в новостях, три в ряд ===== */
.prgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
/* карточка использует классы .jcard — вид и вертикальный ритм наследуются от новостей */
a.jcard{text-decoration:none;color:inherit}
.jcard.is-static{cursor:default}
.jcard.is-static:hover{transform:none;box-shadow:none;border-color:var(--line)}
@media(max-width:1000px){.prgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.prgrid{grid-template-columns:1fr}}
.ctcard{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;display:flex;flex-direction:column;gap:5px}
.ctk{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.ctv{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.3vw,20px);letter-spacing:-.01em}
.ct-deps{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.ctp{font-size:14px;color:var(--ink-2);transition:.14s}
.ctp:hover,.ctv:hover{color:var(--blue)}

/* ============ filter bar (journal / collections) ============ */
/* Фильтры разделов свёрнуты по умолчанию — раскрываются кнопкой */
/* ── вход посетителя ── */
/* Всё по системе сайта: токены радиусов, кнопка как .btn,
   поле как .field input, заголовок как .page-hero h1. */
/* ── личный кабинет ── */
/* Кружок посетителя устроен как кружок языка: тот же размер, заливка --wash
   и прозрачная рамка. Кант появляется только на наведении. */
.mb-ava{width:var(--lh);height:var(--lh);border-radius:50%;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  background:var(--ink);border:1px solid transparent;color:#fff;
  font-family:var(--body);font-weight:700;font-size:17px;line-height:1;transition:.15s}
.mb-ava.guest{background:var(--wash);color:var(--ink-2);border-color:transparent}
/* наведение: кружок заливается чёрным, иконка становится белой */
.mb-ava.guest:hover{background:var(--ink);color:#fff}
.mb-ava:not(.guest):hover{background:#000}
.mb-ava svg{width:24px;height:24px}
.acc-cols{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:var(--gap)}
.acc-cols .card{border:1px solid var(--line);border-radius:var(--r);padding:20px;
  display:flex;flex-direction:column;gap:14px;min-width:0}
.acc-cols .card h2{font-family:var(--display);font-weight:600;font-size:clamp(20px,2vw,24px);line-height:1.2;letter-spacing:-.01em}
.c-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cnt{font-size:14px;font-weight:600;color:var(--ink-3)}
.acc-cols .f{display:flex;flex-direction:column;gap:6px}
.acc-cols .f span{font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.acc-cols .f input{border:1px solid transparent;border-radius:40px;padding:0 20px;height:48px;
  background:var(--wash);font:inherit;outline:none;width:100%;color:var(--ink-2)}
.acc-meta{font-size:14px;color:var(--ink-3)}
.acc-act{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lnk-del{border:none;background:none;color:var(--ink-3);font:inherit;font-size:14px;
  cursor:pointer;text-decoration:underline;padding:0}
.lnk-del:hover{color:#e5484d}
.acc-empty{color:var(--ink-3);font-size:14px}
.v-list{display:flex;flex-direction:column}
.v-row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:15px 0;border-bottom:1px solid var(--line);transition:.15s;color:inherit}
.v-row:last-child{border-bottom:none}
.v-row:hover{background:var(--wash-2)}
.v-l{display:flex;flex-direction:column;min-width:0}
.v-l b{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.2}
.v-l i{font-style:normal;color:var(--ink-2);font-size:14px}
.v-r{flex:0 0 auto}
.v-st{font-style:normal;font-size:14px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.v-st.on{color:var(--green)}
@media(max-width:820px){.acc-cols{grid-template-columns:1fr}}
.mb-ov{position:fixed;inset:0;z-index:300;background:rgba(17,19,21,.5);
  display:flex;align-items:center;justify-content:center;padding:20px}
.mb-w{background:#fff;border-radius:var(--r-l);padding:clamp(24px,3vw,32px);
  width:min(380px,100%);position:relative;text-align:center;
  box-shadow:0 26px 60px -30px rgba(0,0,0,.35)}
.mb-x{position:absolute;right:12px;top:10px;border:none;background:none;font-size:24px;
  line-height:1;color:var(--ink-3);cursor:pointer}
.mb-x:hover{color:var(--ink)}

.mb-step{display:flex;flex-direction:column;align-items:center;gap:12px}
.mb-step[hidden]{display:none}          /* класс с display перебивал атрибут hidden */

.mb-w h3{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.2vw,24px);
  line-height:1.15;letter-spacing:-.015em;margin:0}
.mb-w p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.55}

/* способ входа: как .btn, только светлая и во всю ширину */
.mb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  height:44px;padding:0 20px;border:1px solid var(--line-2);border-radius:40px;background:#fff;
  font-family:var(--body);font-weight:600;font-size:14px;color:var(--ink);
  cursor:pointer;transition:.16s}
.mb-btn:hover{border-color:var(--ink)}
.mb-btn svg{flex:0 0 auto}

/* поле — как в анкетах сайта */
.mb-step input{width:100%;border:1px solid var(--line-2);border-radius:var(--r-s);
  padding:11px 13px;font:inherit;font-size:16px;text-align:center;background:#fff;
  outline:none;transition:.15s}
.mb-step input:focus{border-color:var(--blue)}

.mb-go{width:100%;justify-content:center}
.mb-back{border:none;background:none;color:var(--ink-3);cursor:pointer;
  font:inherit;font-size:13px;text-decoration:underline;padding:0}
.mb-back:hover{color:var(--ink)}
.mb-msg{min-height:18px;font-size:13px;margin-top:16px}

#memberBar{display:inline-flex;align-items:center;gap:8px;font-size:13px;
  flex:0 0 auto;max-width:210px;overflow:hidden}
#memberBar:empty{display:none}
.hdr-lang{flex:0 0 auto}
.lang-btn{flex:0 0 auto}
.mb-who{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.mb-out{border:none;background:none;color:var(--ink-3);cursor:pointer;font:inherit;
  font-size:13px;text-decoration:underline;white-space:nowrap}
.mb-out:hover{color:var(--ink)}
.fbtn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;
  margin-bottom:clamp(18px,2.2vw,26px);
  border:1px solid var(--line);border-radius:30px;background:#fff;cursor:pointer;
  font-family:var(--body);font-weight:600;font-size:14px;color:var(--ink);
  transition:border-color .15s,background .15s}
.fbtn:hover{border-color:var(--line-2)}
/* Кнопка фильтров во всех разделах — круглая, только иконка, без подписи.
   Подпись остаётся в разметке и читается скринридером (и переводится как
   раньше), но визуально скрыта. */
.fbtn,[data-view="catalog"] .filter-toggle{
  position:relative;width:38px;min-width:38px;height:38px;padding:0!important;
  gap:0!important;border-radius:50%;justify-content:center;flex:0 0 auto}
.fbtn>span[data-i="filters"],
[data-view="catalog"] .filter-toggle>span[data-i="filters"]{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.fbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fbtn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}
.fbox{display:none}
.fbox.open{display:block;margin-bottom:clamp(18px,2.2vw,26px)}
/* раскрытый блок сам держит отступ — у кнопки его убираем, чтобы не удваивался */
.fbtn.on{margin-bottom:14px}
.filterbar{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:clamp(22px,2.8vw,32px)}
.fsearch{display:flex;align-items:center;gap:9px;background:var(--wash);border:1px solid transparent;border-radius:40px;padding:0 18px;height:46px;width:min(100%,520px);transition:.15s}
.fsearch:focus-within{background:#fff;border-color:var(--ink-3)}
.fsearch svg{width:17px;height:17px;stroke:var(--ink-3);stroke-width:1.9;fill:none;flex:0 0 auto}
.fsearch input{flex:1;border:none;outline:none;background:none;font:inherit;min-width:0}
.filterbar .chips{flex:1 1 auto}
.empty{color:var(--ink-3);padding:30px 0;font-size:16px}

/* ============ footer (informative) ============ */
.ft{background:var(--ink);color:#fff;margin-top:var(--sec);padding:clamp(34px,4vw,46px) 0 22px}
@media(max-width:520px){.ft-brand{grid-column:1/-1}}
.ft-brand .brand img{height:var(--hh);width:auto;display:block;margin-bottom:14px}
.ft-desc{color:rgba(255,255,255,.6)line-height:1.5;max-width:34ch;margin-bottom:16px;white-space:pre-line}
.ft-soc{display:flex;flex-wrap:wrap;gap:9px}
.ft-ic{width:33px;height:33px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:rgba(255,255,255,.8);transition:.15s}
.ft-ic:hover{background:#fff;color:var(--ink);border-color:#fff}
.ft-ic svg{width:15px;height:15px}
.ft-bottom{display:flex;gap:8px 22px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-top:22px;color:rgba(255,255,255,.6)}
.ft-bottom a{color:rgba(255,255,255,.6);transition:.15s}
.ft-dot{display:none}
@media(max-width:520px){.ft-dot{display:none}.ft-bottom{flex-direction:column;align-items:flex-start;gap:6px}}

.scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:54;opacity:0;pointer-events:none;transition:.25s}
.scrim.show{opacity:1;pointer-events:auto}

.secret-tile{min-height:clamp(280px,34vw,440px);border-radius:20px}
.secret-tile .tile-in{align-self:flex-end}

/* --- home modules: today / news digest --- */
.today{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.today{grid-template-columns:1fr}}
.trow{display:grid;grid-template-columns:minmax(0,44%) 1fr;align-items:stretch;cursor:pointer;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:#fff;min-height:clamp(128px,11.5vw,152px);transition:border-color .15s,box-shadow .2s,transform .2s}

.trow:hover h4{color:var(--blue)}
.tthumb{width:100%;height:100%;border-radius:0}
.tbody{min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:13px;padding:clamp(16px,1.5vw,22px)}
.tdir{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:transparent;border:1px solid var(--line);padding:4px 10px;border-radius:30px}
.trow h4{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.7vw,20px);line-height:1.2;margin:0;transition:color .15s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.trow .tmeta{font-size:14px;line-height:1.38;color:var(--ink-2);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* --- deals carousel: photo cards --- */
.deals{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad);padding-block:2px 8px}
.deals::-webkit-scrollbar{display:none}

/* --- catalog v2: checklist, sliders, status, listings --- */
.flist{display:flex;flex-direction:column;gap:2px}
.fcheck{display:flex;align-items:center;gap:9px;padding:6px 2px;cursor:pointer;font-size:14px;color:var(--ink-2)}
.fcheck input{width:16px;height:16px;accent-color:var(--ink);cursor:pointer;flex:0 0 auto}
.fcheck:hover{color:var(--ink)}
.rslider-vals{font-size:16px;color:var(--ink);margin-bottom:18px;font-weight:600}
.rslider-vals b{font-weight:700;font-family:var(--display);letter-spacing:-.01em}
.rslider-vals b{font-weight:600}
.rslider-track{position:relative;height:24px;margin:0 11px}
.rslider-track::before{content:"";position:absolute;left:-11px;right:-11px;top:9px;height:6px;border-radius:6px;background:var(--line)}
.rslider-fill{position:absolute;top:9px;height:6px;border-radius:6px;background:var(--ink)}
.rslider-track input[type=range]{position:absolute;left:0;top:0;width:100%;height:24px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.rslider-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--ink);box-shadow:0 2px 9px rgba(0,0,0,.2);cursor:grab;transition:transform .12s,box-shadow .12s}
.rslider-track input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 4px 13px rgba(0,0,0,.28)}
.rslider-track input[type=range]:active::-webkit-slider-thumb{transform:scale(1.14);cursor:grabbing}
.rslider-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--ink);box-shadow:0 2px 9px rgba(0,0,0,.2);cursor:grab}
.catmode{display:inline-flex;gap:8px;margin-right:auto}
.cmtab{display:inline-flex;align-items:center;height:38px;padding:0 18px;border:1px solid var(--line);background:#fff;font:inherit;font-size:14px;font-weight:600;line-height:1;color:var(--ink);border-radius:30px;cursor:pointer;white-space:nowrap;transition:.15s}
.cmtab:hover{border-color:var(--line-2)}
.cmtab.on{background:var(--ink);border-color:var(--ink);color:#fff}
.vcard-img{position:relative}
.vbadge{position:absolute;top:10px;left:10px;z-index:2;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:30px;color:#fff}
.vbadge.cl{background:rgba(17,19,21,.85)}
.vbadge.sale{background:var(--green)}
.vbadge.nw{background:var(--blue)}
.vcard.is-cl .vcard-img{filter:grayscale(.55)}
.dhero-status{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:5px 11px;border-radius:30px;vertical-align:middle;color:#fff}
.dhero-status.cl{background:rgba(0,0,0,.6)}
.dhero-status.sale{background:var(--green)}
.dhero-status.nw{background:var(--blue)}
.lcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:#fff;cursor:pointer;transition:.18s}

.lcard-img{aspect-ratio:16/10}
.lcard-b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.lcat{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.lcard-b h4{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.2;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lprice{align-self:flex-start;margin-top:auto;font-family:var(--display);font-weight:700;font-size:14px;color:var(--ink);background:transparent;border:1px solid var(--line);padding:6px 13px;border-radius:30px;letter-spacing:-.01em}
.deals-rail .lcard-b{gap:9px}
.deals-rail .lprice{font-size:14px}
.deals-rail .lcard{width:clamp(240px,27vw,300px);flex:0 0 auto}
.lspec .d-row{border-bottom:1px solid var(--line)}

.tile-lbl.tl-blue{background:var(--blue);color:#fff}
.tile-lbl.tl-green{background:var(--green);color:#fff}
.tile-lbl.tl-pink{background:var(--pink);color:#fff}
.tdir.td-gid{background:transparent;border-color:var(--line);color:var(--ink)}
.tdir.td-ev{background:transparent;border-color:var(--line);color:var(--ink)}
.tdir.td-nw{background:transparent;border-color:var(--line);color:var(--ink)}
.tdir.td-cat{background:transparent;border-color:var(--line);color:var(--ink)}
.epost-date{background:transparent!important;border:1px solid #fff!important;color:#fff!important}
.epost-price{background:none;color:#fff;padding:0;border-radius:0;font-weight:700;font-size:14px}
.lgal-thumbs .photo{aspect-ratio:4/3;border-radius:var(--r)}
.lgroup .chips{gap:8px}
.llist{margin:0;padding-left:20px;color:var(--ink-2)}
.llist li{margin:7px 0;line-height:1.45}
.lsim .mod-head{padding-top:26px}
.laside-price .d-k{font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.daside .dcard .d-btn{margin-top:14px}
.daside .art-aside-card{margin-top:36px}
.art-rel-t{text-wrap:balance}.b3{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(26px,3vw,40px);min-height:clamp(150px,15vw,180px);border-radius:var(--r);color:#fff;transition:transform .18s,box-shadow .18s}

.b3 h3{font-family:var(--display);font-weight:700;font-size:clamp(16px,1.5vw,20px);margin:0;color:inherit}
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.deals-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
@media(max-width:1000px){.deals-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.deals-grid{grid-template-columns:1fr}}
@media(max-width:900px){.ind-grid{grid-template-columns:repeat(2,1fr)}}
.trend-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--gap)}
@media(max-width:1050px){.trend-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1051px){.trend-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:560px){.trend-grid{grid-template-columns:repeat(2,1fr)}}h1,h2,h3,h4,.art-title,.lcard-b h4,.art-rel-t,.jcard h3,.vcard h3,.ctile h3{text-wrap:balance;overflow-wrap:anywhere;word-break:normal}.trow h4,.lcard-b h4,.epost h4{text-wrap:balance}
/* Полоса над шапкой: KABARE Studio. Четыре пары «до / после» из самой студии
   под ровным затемнением, заголовок по центру. Вся полоса ведёт в студию. */
.visabar{background:#0d0f11;color:#fff;position:relative;overflow:hidden}
.visabar-in{display:flex;align-items:center;justify-content:center;gap:20px;height:120px}
.kbs .kbs-a{display:block;position:relative;color:inherit;text-decoration:none}
.kbs .visabar-in{height:200px;position:relative;z-index:2;text-align:center;padding:0 24px;box-sizing:border-box;width:100%}
.kbs .kbs-h{font-family:var(--display,inherit);font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.12;margin:0;max-width:min(720px,100%);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35);text-wrap:balance}
.kbs .kbs-ph{position:absolute;inset:0;display:flex;z-index:0}
.kbs .kbs-t{flex:1;display:block;background-size:cover;background-position:center}
.kbs .kbs-veil{position:absolute;inset:0;z-index:1;background:rgba(13,15,17,.6)}
@media(max-width:760px){.kbs .visabar-in{height:160px;padding:0 16px}.kbs .kbs-h{font-size:20px;text-wrap:pretty}.kbs .kbs-t:nth-child(n+5){display:none}}
.home-banners{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
/* обёртка баннеров держит тот же шаг, что и остальные блоки главной */
.home-tail{margin-top:var(--sec)}
/* На телефоне --sec равен 16, но между модулями главной этого мало:
   заголовок следующего блока липнет к последней карточке. Держим 32. */
@media(max-width:640px){
  .view[data-view="home"] .wrap.mod,
  .view[data-view="home"] .home-tail{margin-top:32px}
}
@media(max-width:760px){.home-banners{grid-template-columns:1fr}}
.hbanner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:clamp(26px,3vw,38px);border-radius:var(--r-l);color:#fff;transition:transform .18s,box-shadow .18s;min-height:clamp(140px,14vw,168px)}

.hb-green{background:var(--green)}
.hb-blue{background:var(--blue)}
.hb-txt h3{font-family:var(--display);font-weight:700;font-size:clamp(20px,2vw,28px);margin:0;color:#fff;letter-spacing:-.01em}
.hb-txt p{margin:9px 0 0;font-size:16px;opacity:.9;line-height:1.4;max-width:34ch}
.hb-arr{flex:0 0 auto;font-size:26px;line-height:1;opacity:.9}
.fupload{border:1px dashed var(--line-2);border-radius:var(--r);padding:24px;text-align:center;color:var(--ink-3);cursor:pointer;transition:.15s}
.fupload:hover{border-color:var(--ink-3);color:var(--ink-2)}
.jcard-img{position:relative}
.jpromo{position:absolute;top:12px;left:12px;background:var(--yellow);border:none;color:var(--ink);font-weight:700;font-size:12px;padding:5px 12px;border-radius:30px;letter-spacing:.01em;backdrop-filter:blur(2px)}

.jdeal{position:relative;color:#fff;border:none;background-color:#111}
.jdeal-ov{position:absolute;inset:0;z-index:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.08) 62%)}
.jdeal .jcard-img{background:none!important;position:relative;z-index:1}
.jdeal .jcard-b{position:relative;z-index:1}
.jdeal h3,.jdeal .jdate{color:#fff!important}
.jdeal h3{font-size:clamp(20px,2vw,24px);line-height:1.15;letter-spacing:-.015em}
.jdeal p{color:#fff!important;opacity:.8;text-wrap:balance;-webkit-hyphens:none;hyphens:none}
h1,h2,h3,h4,.art-title,.tile-in h3,.jcard h3,.jdeal h3,.vcard h3,.vcard-body h3,.lcard-b h4,.trow h4,.ctile h3,.epost h4,.epost-in h4,.mod-head h2{line-height:1.15}

/* ===== unified home type scale ===== */
/* Tier 2 — main hero + secret */
#feature .feat-main .tile-in h2,#secretMod .tile-in h2{font-size:clamp(28px,3.1vw,40px);line-height:1.12}
/* Tier 3 — small heroes, collections, bottom banners */
#feature .feat-s .tile-in h3,#collRail .ctile h3,.home-banners .hbanner h3{font-size:clamp(20px,2vw,24px)}
/* Tier 1 — today / events / poll / industry cards */
#todayMod .trow h4,#agenda .epost h4,#agenda .epost-in h4,#homeRatings .poll h3,#industryMod .lcard-b h4{font-size:clamp(18px,1.7vw,20px)}

@media(max-width:640px){
  .feature{grid-template-columns:1fr}
  .feat-main{min-height:0!important;aspect-ratio:4/3}
  .feat-s{min-height:0!important;aspect-ratio:2/1}
  #collRail .ctile{aspect-ratio:3/4}
  #agenda .epost{aspect-ratio:3/4}
  .secret-tile{min-height:0!important;aspect-ratio:4/3}
  .jdeal{aspect-ratio:5/3;display:flex;flex-direction:column;justify-content:flex-end}
  .jdeal .jcard-img{aspect-ratio:auto;flex:1 1 auto}
  #topList .tl-row{grid-template-columns:1fr auto;gap:7px}
}
.ft-new{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:clamp(34px,4vw,46px);border-bottom:1px solid rgba(255,255,255,.12)}
.ft-new .ft-desc{max-width:44ch;margin-bottom:0}
.ft-bottom .ft-kokon{color:rgba(255,255,255,.55)}
@media(max-width:560px){.ft-new{flex-direction:column;gap:18px}}
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal-ov.open{display:flex}
.modal-card{background:#fff;border-radius:var(--r-l);max-width:620px;width:100%;max-height:82vh;overflow:auto;padding:clamp(26px,3.4vw,42px);position:relative}
.modal-card h2{font-family:var(--display);font-weight:700;font-size:clamp(20px,2.4vw,28px);margin:0 0 16px;line-height:1.15}
.modal-body p{color:var(--ink-2);line-height:1.6;margin:0 0 12px;font-size:16px}
.modal-body h3{font-family:var(--display);font-weight:700;font-size:17px;line-height:1.25;margin:22px 0 8px;color:var(--ink)}
.modal-body h3:first-child{margin-top:0}
.modal-body ul{margin:0 0 14px;padding-left:20px;color:var(--ink-2)}
.modal-body li{line-height:1.55;margin-bottom:7px;font-size:16px}
.modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.modal-close:hover{background:var(--wash)}
.modal-close svg{width:16px;height:16px}
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:190;background:var(--pink);color:var(--ink);padding:14px 0;display:none;box-shadow:0 -8px 30px -18px rgba(0,0,0,.4)}
.cookie-bar.show{display:block;animation:ckup .35s ease}
@keyframes ckup{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.cookie-in{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.cookie-in span{flex:1 1 300px;font-size:14px;color:var(--ink);font-weight:500}
@media(max-width:600px){.cookie-in{gap:12px}}
.cookie-bar .btn{flex:0 0 auto;padding:10px 22px;font-weight:600}
.cookie-accept{background:var(--ink);color:#fff;border:none}
.cookie-accept:hover{filter:brightness(1.1)}
.ft-bottom a[data-i=ft_terms]{color:rgba(255,255,255,.6);text-decoration:underline;text-underline-offset:3px}
.ft-bottom a[data-i=ft_terms]:hover{color:#fff}
.jcard h3,.lcard-b h4,.trow h4,.epost-in h4{-webkit-line-clamp:unset;display:block;overflow:visible}

.ft{background:var(--ink);color:#fff;margin-top:var(--sec);padding:clamp(34px,4vw,46px) 0 22px}
.ft-mid .ft-desc{color:rgba(255,255,255,.6)line-height:1.5;max-width:46ch;margin:0}
.ft-soc{display:flex;gap:9px;flex:0 0 auto}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px 22px;flex-wrap:wrap;margin-top:22px;color:rgba(255,255,255,.6)}
.ft-bottom a{color:rgba(255,255,255,.6);text-decoration:underline;text-underline-offset:3px;transition:.15s}
.ft-bottom a:hover{color:#fff}.hdr-lang{justify-self:start;display:flex;gap:3px}
.hdr-lang button{border:none;background:none;cursor:pointer;font-weight:600;font-size:12px;letter-spacing:.04em;color:var(--ink-3);padding:6px 8px;border-radius:8px;transition:.15s}
.hdr .topnav{display:flex;width:100%;justify-content:center;gap:clamp(16px,2.4vw,38px);border-top:1px solid var(--line);padding-top:13px;overflow-x:auto;scrollbar-width:none}
.hdr .topnav a{flex:0 0 auto;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);white-space:nowrap;padding:6px 2px;border:none;background:none;border-radius:0;transition:color .15s;position:relative}
.hdr .topnav a:hover{color:var(--ink);background:none}
.hdr .topnav a.on{color:var(--blue);background:none}
.hdr .topnav a.on::after{content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--blue)}
@media(max-width:640px){
  .hdr-lang{order:3;justify-self:center}
  .hdr .topnav{justify-content:flex-start;gap:20px}
}

@media(max-width:600px){
  #cookieBar .cookie-in{gap:12px}
  footer .ft-bottom{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;text-align:left}
  footer .ft-new{flex-direction:column;align-items:flex-start;gap:16px}
}
.hdr-lang{justify-self:end;display:flex;gap:2px}
.hdr-lang button{border:none;background:none;cursor:pointer;font-weight:600;font-size:12px;letter-spacing:.04em;color:var(--ink-3);padding:6px 9px;border-radius:8px;transition:.15s}
.hdr-lang button.on{color:var(--ink);background:var(--wash-2)}
.hdr .topnav{display:flex;gap:3px;background:var(--wash);border-radius:14px;padding:5px;margin-top:4px;overflow-x:auto;scrollbar-width:none}
.hdr .topnav::-webkit-scrollbar{display:none}
.hdr .topnav a{flex:1 1 0;text-align:center;font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap;padding:10px 14px;border-radius:10px;text-transform:none;letter-spacing:0;border:none;background:none;transition:background .15s,color .15s,box-shadow .15s}
.hdr .topnav a::after{display:none}
.hdr .topnav a:hover{color:var(--ink);background:rgba(0,0,0,.03)}
.hdr .topnav a.on{background:#fff;color:var(--ink);box-shadow:0 2px 10px -4px rgba(0,0,0,.25)}
@media(max-width:560px){
  .hdr .topnav a{flex:0 0 auto}
}

/* header v4: 3 rows */
.hdr .wrap{padding-top:0;padding-bottom:0}
.hdr-r1{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 0 0}
.hdr-r1 .brand{margin-right:auto}
.hdr-r1 .brand img{height:34px;width:auto;display:block}
.hdr-lang{height:44px;display:flex;align-items:center;gap:2px;background:var(--wash);border-radius:40px;padding:0 6px}
.hdr-lang button{height:32px;border:none;background:none;cursor:pointer;font-weight:600;font-size:12px;letter-spacing:.04em;color:var(--ink-3);padding:0 10px;border-radius:40px;transition:.15s}
.hdr-r2{margin:12px 0 0;width:100%;height:44px;display:flex;align-items:center;gap:11px;background:var(--wash);border:1px solid transparent;border-radius:40px;padding:0 18px;transition:.15s}
.hdr-r2 svg{width:18px;height:18px;stroke:var(--ink-3);stroke-width:1.9;fill:none;flex:0 0 auto}
.hdr-r2 input{flex:1;min-width:0;border:none;outline:none;background:none;font:inherit;font-size:16px}
.hdr-r3{display:flex;gap:8px;width:100%;margin:12px 0 12px;overflow-x:auto;scrollbar-width:none}
.hdr-r3 a{flex:1 1 0;text-align:center;height:42px;display:flex;align-items:center;justify-content:center;border-radius:40px;border:1px solid var(--line);color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap;padding:0 12px;background:none;text-transform:none;letter-spacing:0;transition:.15s}
.hdr-r3 a:hover{border-color:var(--ink-3);color:var(--ink);background:none}@media(max-width:460px){
  .hdr-r1 .brand{margin-right:0;width:100%}
}

/* header v5: 2 rows, 60px controls, outline pills, no separator */
.hdr{border-bottom:none!important}
.hdr.stuck{box-shadow:none!important}
.hdr-r1{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 0}
.hdr-r1 .brand{flex:0 0 auto}
.hdr-r1 .brand img{height:60px;width:auto;display:block}
.hdr-r2{flex:1 1 auto;min-width:0;height:60px;display:flex;align-items:center;gap:12px;background:var(--wash);border:1px solid transparent;border-radius:40px;padding:0 22px;transition:.15s;margin:0}
.hdr-r2:focus-within{border-color:var(--blue);background:#fff}
.hdr-r2 svg{width:19px;height:19px;stroke:var(--ink-3);stroke-width:1.9;fill:none;flex:0 0 auto}
.hdr-r2 input{flex:1;min-width:0;border:none;outline:none;background:none;font:inherit;font-size:16px}
.hdr-lang{flex:0 0 auto;height:60px;display:flex;align-items:center;gap:2px;background:var(--wash);border-radius:40px;padding:0 7px}
.hdr-lang button{height:40px;border:none;background:none;cursor:pointer;font-weight:600;font-size:12px;letter-spacing:.04em;color:var(--ink-3);padding:0 12px;border-radius:40px;transition:.15s}
.hdr-lang button:hover{color:var(--ink)}
.hdr-lang button.on{color:var(--ink);background:#fff}
.hdr-r3{display:flex;gap:8px;width:100%;margin:0 0 12px;overflow-x:auto;scrollbar-width:none}
.hdr-r3::-webkit-scrollbar{display:none}
.hdr-r3 a{flex:1 1 0;text-align:center;height:44px;display:flex;align-items:center;justify-content:center;border-radius:40px;border:1px solid var(--line);background:transparent;color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap;padding:0 12px;text-transform:none;letter-spacing:0;transition:.15s}
.hdr-r3 a::after{display:none}
.hdr-r3 a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.hdr-r3 a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:640px){
  .hdr-r1{gap:10px}
  .hdr-r1 .brand img{height:46px}
  .hdr-r2{height:50px;order:3;width:100%;flex:1 1 100%}
  .hdr-lang{height:46px;margin-left:auto}
  .hdr-r3 a{flex:0 0 auto}
}

.hdr .hdr-r3 a{flex:1 1 0;text-align:center;height:44px;display:flex;align-items:center;justify-content:center;border-radius:40px;border:1px solid var(--line);background:transparent;color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap;padding:0 12px;text-transform:none;letter-spacing:0;transition:.15s}
.hdr .hdr-r3 a:hover,.hdr .hdr-r3 a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.hdr .hdr-r3 a::after{display:none}

/* header v5 fixes */
.hdr .topnav.hdr-r3{background:none!important;border-radius:0!important;padding:0!important;margin:0 0 12px!important;gap:8px}
.hdr-r1{flex-wrap:nowrap}
.hdr-r1 .brand img{height:clamp(40px,4.6vw,60px)}
.hdr-r2{flex:1 1 auto;min-width:0}
@media(max-width:640px){
  .hdr-r1{flex-wrap:nowrap;gap:10px}
  .hdr-r2{order:0;width:auto;flex:1 1 auto;height:52px;padding:0 16px}
  .hdr-lang{height:52px;margin-left:0}
  .hdr-r2 input{font-size:14px}
}
@media(max-width:420px){
  .hdr-lang button{padding:0 8px;font-size:12px}
  .hdr-r2{padding:0 13px}
}

@media(max-width:640px){
  .hdr .hdr-r1{flex-wrap:nowrap!important;gap:9px}
  .hdr .hdr-r1 .brand{width:auto!important;flex:0 0 auto!important;margin:0!important}
  .hdr .hdr-r2{order:0!important;width:auto!important;flex:1 1 auto!important;min-width:0!important;height:50px}
  .hdr .hdr-lang{flex:0 0 auto;margin:0!important;height:50px;padding:0 4px}
  .hdr .hdr-lang button{padding:0 8px}
}

/* header v6: unified heights, no separator, --sec rhythm */
:root{--lh:clamp(44px,4.6vw,60px)}
.hdr .hdr-r1 .brand img{height:var(--lh)!important}
.hdr .hdr-r2{height:var(--lh)!important}
.hdr .hdr-lang{height:var(--lh)!important}
.hdr .hdr-lang button{height:calc(var(--lh) - 14px)}
.hdr .topnav,.hdr .hdr-r3{border-top:none!important}
.hdr .hdr-r1{padding:var(--sec) 0 0!important;flex-wrap:nowrap!important}
.hdr .hdr-r3{margin:12px 0 0!important}
.feature{margin-top:0!important;padding-top:0!important}

:root{--rowgap:16px}
.hdr .hdr-r1{gap:var(--rowgap)!important}
.hdr .topnav.hdr-r3{margin-top:var(--rowgap)!important;margin-bottom:0!important}
.hdr>.wrap{padding-bottom:var(--sec)!important}

/* menu gap 16 + lang circle */
.hdr .topnav.hdr-r3{gap:8px!important}
.hdr .hdr-lang{position:relative;width:var(--lh);height:var(--lh)!important;flex:0 0 auto;background:none;padding:0;border-radius:0;overflow:visible}
.lang-btn{width:var(--lh);height:var(--lh);border-radius:50%;background:var(--wash);border:1px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:.15s}
.lang-btn:hover{background:var(--wash-2)}
.lang-btn:active{transform:scale(.94)}
#lang.open .lang-btn{border-color:var(--ink)}
.lang-cur{font-weight:700;font-size:14px;letter-spacing:.03em;color:var(--ink)}
.hdr .hdr-lang .lang-btn{width:var(--lh)!important;height:var(--lh)!important;border-radius:50%}
.hdr .hdr-lang .lang-btn{border:1px solid transparent!important;background:var(--green)!important}
html[lang=ru] .hdr .hdr-lang .lang-btn{background:var(--pink)!important}
html[lang=en] .hdr .hdr-lang .lang-btn{background:var(--blue)!important}
.hdr .hdr-lang .lang-btn:hover{filter:brightness(1.08)}
.lang-cur{color:#fff!important}
@media(max-width:640px){:root{--sec:16px;--pad:16px}}

/* cookie v2 - yellow, aligned, responsive */
#cookieBar{position:fixed;left:0;right:0;bottom:0;z-index:190;background:var(--yellow);color:var(--ink);padding:16px 0!important;border-radius:0!important;display:none;box-shadow:0 -8px 30px -18px rgba(0,0,0,.35)}
#cookieBar .cookie-in{display:flex!important;align-items:center;justify-content:space-between;gap:14px 30px;flex-wrap:wrap}
#cookieBar .cookie-in span{flex:1 1 340px;color:var(--ink);font-weight:500;font-size:16px;line-height:1.45;opacity:1}
#cookieBar .btn{flex:0 0 auto!important;height:46px;display:inline-flex!important;align-items:center;justify-content:center;padding:0 26px!important;margin:0!important;border-radius:40px;font-weight:600;font-size:14px;line-height:1;white-space:nowrap;text-align:center;width:auto}
#cookieBar .cookie-accept{background:var(--ink)!important;color:#fff!important;border:none!important}
@media(max-width:600px){
  #cookieBar .btn{width:100%!important;padding:0!important}
}
@media(max-width:640px){#feature .feat-main h2{font-size:20px!important}}

#cookieBar{position:fixed;left:16px;right:16px;bottom:16px;z-index:190;max-width:640px;margin:0 auto;background:#fff!important;color:var(--ink);border:1px solid var(--line)!important;border-radius:18px!important;padding:18px 22px!important;box-shadow:0 24px 60px -20px rgba(0,0,0,.4);display:none}
#cookieBar.show{display:block!important;animation:ckup .35s ease}
#cookieBar .cookie-in{display:flex!important;align-items:center;justify-content:space-between;gap:16px 26px;flex-wrap:nowrap;width:auto}
#cookieBar .cookie-in span{flex:1 1 auto;font-size:clamp(16px,1.1vw,18px);line-height:1.6;color:var(--ink-2);opacity:1}
#cookieBar .cookie-accept{flex:0 0 auto!important;height:46px;padding:0 34px!important;background:var(--yellow)!important;color:var(--ink)!important;border:none!important;border-radius:40px;font-weight:600;font-size:14px;display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;width:auto!important;margin:0!important}
#cookieBar .cookie-accept:hover{filter:brightness(1.05)}
@media(max-width:600px){#cookieBar{left:12px;right:12px;bottom:12px;padding:22px 20px!important;text-align:center}#cookieBar .cookie-in{flex-direction:column;gap:16px}#cookieBar .cookie-accept{width:100%!important}}

/* cookie: 2 lines, button matches text height, word-lift hover */
#cookieBar{max-width:820px!important}
#cookieBar .cookie-in{align-items:stretch!important}
#cookieBar .cookie-in span{flex:1 1 auto;text-wrap:balance;display:flex;align-items:center}
#cookieBar .cookie-accept{height:auto!important;min-height:52px;padding:10px 36px!important;align-self:stretch;filter:none!important}
#cookieBar .cookie-accept>span{display:inline-block;transition:transform .15s;text-wrap:nowrap}
#cookieBar .cookie-accept:hover{filter:none!important;transform:none!important;box-shadow:none!important}
#cookieBar .cookie-accept:hover>span{transform:translateY(-2px)}
@media(max-width:600px){
  #cookieBar .cookie-in{align-items:center!important;flex-direction:column}
  #cookieBar .cookie-in span{display:block;justify-content:center}
  #cookieBar .cookie-accept{width:100%!important;height:auto!important;min-height:48px;padding:14px 0!important;align-self:auto}
}
/* menu pills: hover/active = brand-color outline + black text (cycle teal/pink/blue/yellow) */
.hdr .hdr-r3 a:hover,.hdr .hdr-r3 a.on{background:transparent!important;color:var(--ink)!important}
.hdr .hdr-r3 a:nth-child(4n+1):hover,.hdr .hdr-r3 a:nth-child(4n+1).on{border-color:var(--green)!important}
.hdr .hdr-r3 a:nth-child(4n+2):hover,.hdr .hdr-r3 a:nth-child(4n+2).on{border-color:var(--pink)!important}
.hdr .hdr-r3 a:nth-child(4n+3):hover,.hdr .hdr-r3 a:nth-child(4n+3).on{border-color:var(--blue)!important}
.hdr .hdr-r3 a:nth-child(4n+4):hover,.hdr .hdr-r3 a:nth-child(4n+4).on{border-color:var(--yellow)!important}

/* cookie: site width, meta-size text, black button word */
#cookieBar{left:var(--pad)!important;right:var(--pad)!important;max-width:var(--maxw)!important;margin:0 auto!important;bottom:var(--pad)!important}
#cookieBar .cookie-in span{font-size:14px!important;color:var(--ink-2)!important;line-height:1.5}
#cookieBar .cookie-accept,#cookieBar .cookie-accept>span{color:var(--ink)!important}
@media(max-width:600px){#cookieBar{left:var(--pad)!important;right:var(--pad)!important;bottom:var(--pad)!important}}

/* mobile: proportional titles on full-width cards */
@media(max-width:600px){
  #feature .feat-main h2{font-size:28px!important;line-height:1.1!important}
  #feature .feat-s h3{font-size:24px!important}
  .jcard h3{font-size:24px!important}
  #industryMod .lcard-b h4{font-size:22px!important}
}

/* === TYPE SCALE (Samir spec) desktop === */
.hdr .hdr-r3 a{font-size:14px!important}
.hdr-r2 input{font-size:14px!important}
.mod-head .lbl,.lbl{font-size:14px!important}
.mod-head h2{font-size:clamp(20px,2vw,24px)!important}
.mlink{font-size:14px!important}
#feature .feat-main h2{font-size:44px!important}
#feature .feat-s h3{font-size:24px!important}
.tile-lbl{font-size:14px!important}
#todayMod .trow h4{font-size:24px!important}
#collRail .ctile h3{font-size:24px!important}
.vcard-body h3{font-size:18px!important}
.tl-info h4{font-size:18px!important}
.tl-meta{font-size:14px!important}
#agenda .epost-in h4{font-size:24px!important}
#secretMod h2{font-size:44px!important}
.poll h3{font-size:18px!important}
.jdeal h3{font-size:24px!important}
.jdeal p{font-size:14px!important}
.lcard-b h4{font-size:24px!important}
.hbanner h3{font-size:24px!important}
#cookieBar .cookie-in span{font-size:14px!important}
/* === mobile === */
@media(max-width:640px){
  .hdr .hdr-r3 a{font-size:14px!important}
  .hdr-r2 input{font-size:14px!important}
  .mod-head .lbl,.lbl{font-size:14px!important}
  .mod-head h2{font-size:22px!important}
  .mlink{font-size:14px!important}
  #feature .feat-main h2{font-size:22px!important}
  #feature .feat-s h3{font-size:22px!important}
  .tile-lbl{font-size:14px!important}
  #todayMod .trow h4{font-size:22px!important}
  #collRail .ctile h3{font-size:22px!important}
  .vcard-body h3{font-size:16px!important}
  .tl-info h4{font-size:16px!important}
  .tl-meta{font-size:14px!important}
  #agenda .epost-in h4{font-size:22px!important}
  #secretMod h2{font-size:22px!important}
  .poll h3{font-size:16px!important}
  .jdeal h3{font-size:22px!important}
  .jdeal p{font-size:14px!important}
  .lcard-b h4{font-size:22px!important}
  .hbanner h3{font-size:22px!important}
  #cookieBar .cookie-in span{font-size:14px!important}
}/* card category pills unified to 12px */
.tile-lbl,.tdir,.ecat,.vbadge,.lcat,.poll-tag,.jpromo{font-size:12px!important;letter-spacing:.09em!important}
.jpromo{font-weight:700!important;text-transform:uppercase!important;color:var(--ink)!important}
@media(max-width:640px){.tile-lbl,.tdir,.nrubric-pill,.ecat,.vbadge,.lcat,.lst-cat,.seltag,.poll-tag,.winbadge,.jpromo{font-size:12px!important}}#todayMod .trow h4{font-size:18px!important}
#todayMod .tdir{font-size:14px!important}
#industryMod .lcard-b h4{font-size:18px!important}
@media(max-width:640px){
  #todayMod .trow h4{font-size:16px!important}
  #todayMod .tdir{font-size:14px!important}
  #industryMod .lcard-b h4{font-size:16px!important}
}


.lprice{font-size:12px!important}
@media(max-width:640px){#todayMod .tdir{font-size:12px!important}.lprice{font-size:12px!important}}

/* === CARD TITLE SCALE (3 tiers) === */
/* Tier 1 — feature cards: 22/20 */
#collRail .ctile h3,#agenda .epost-in h4,.jdeal h3,.home-banners .hbanner h3{font-size:22px!important}
/* Tier 2 — standard cards: 18/16 */
#todayMod .trow h4,#industryMod .lcard-b h4{font-size:18px!important}
/* Tier 3 — compact lists: 16/15 */
.vcard-body h3,#topList .tl-info h4,#homeRatings .poll h3{font-size:16px!important}
@media(max-width:640px){
  #collRail .ctile h3,#agenda .epost-in h4,.jdeal h3,.home-banners .hbanner h3{font-size:26px!important;line-height:1.15!important}
  #todayMod .trow h4,#industryMod .lcard-b h4{font-size:16px!important}
  .vcard-body h3,#topList .tl-info h4,#homeRatings .poll h3{font-size:16px!important}
}
/* === search dropdown === */
.hdr-r2{position:relative}
.search-res{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 54px -22px rgba(0,0,0,.38);padding:6px;display:none;z-index:120;max-height:64vh;overflow:auto}
.search-res.show{display:block}
.kbs-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;border-radius:10px;color:var(--ink);transition:background .12s}
.kbs-row:hover{background:var(--wash)}
.kbs-name{font-weight:600;font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kbs-empty{padding:18px;text-align:center;color:var(--ink-3);font-size:14px}
@media(max-width:640px){
.vmeta,.vmeta2,.vd-sub,.art-meta,.art-rel-t,.lst-place{font-size:14px}
.vmb-sub{font-size:16px}
}

/* deal cards: content group bottom-anchored, per card */
.jdeal .jcard-b{flex:0 0 auto!important}

/* deal cards: hard bottom-anchor content group */
.jdeal{display:flex!important;flex-direction:column!important;justify-content:flex-end!important}
.jdeal .jcard-img{flex:1 1 auto!important;min-height:56px!important;aspect-ratio:auto!important;height:auto!important}
.jdeal .jcard-b{flex:0 0 auto!important;margin-top:0!important}
.jdeal .jcard-foot{margin-top:0!important}

/* hero pills pinned top-left */
.tile>.tile-lbl{position:absolute;top:clamp(14px,1.6vw,18px);left:clamp(14px,1.6vw,18px);z-index:3}

/* collections page-count pill (matches events pill) */
.ctile>.ctile-cnt{position:absolute;left:13px;top:13px;z-index:3;font-size:12px;font-weight:600;letter-spacing:.02em;background:transparent;border:1px solid #fff;color:#fff;padding:4px 10px;border-radius:30px;line-height:1;opacity:1}

.ctile>.ctile-cnt{font-size:12px!important}
.epost-date{font-size:14px!important}

/* pills unify + colors */
/* Объявления: flat text -> pill (like other card pills) */
#industryMod .lcat{display:inline-block!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink-2)!important;padding:4px 11px!important;border-radius:30px!important;font-size:12px!important;letter-spacing:.09em!important}
/* Готовые идеи: pink filled, no outline */
.ctile>.ctile-cnt{background:var(--pink)!important;border:none!important;color:var(--ink)!important;font-weight:700!important}
/* collections pink pill: white digits, bigger like yellow deal pills */
.ctile>.ctile-cnt{color:#fff!important;background:var(--pink)!important;border:none!important;font-size:14px!important;font-weight:700!important;padding:6px 13px!important}
/* listings price pill: bigger, like others */
.lprice{font-size:14px!important;padding:6px 13px!important}
/* remove the category pill above title in listings (revert to flat text) */
#industryMod .lcat{border:none!important;background:none!important;padding:0!important;border-radius:0!important;color:var(--ink-3)!important;letter-spacing:.09em!important}
/* категория в карточке объявления — тот же вид, что рубрика в «Актуально» */
/* объявления на главной — тот же стиль, что и везде (см. .scat) *//* ALL indicator pills: single uniform size (fixed height) */
.tile-lbl,.jpromo,.ecat,.epost-date,.vbadge,.poll-tag{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:14px!important;line-height:1!important;box-sizing:border-box!important}
#todayMod .tdir{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:12px!important;line-height:1!important;box-sizing:border-box!important}
.ctile>.ctile-cnt{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:12px!important;line-height:1!important;box-sizing:border-box!important}
.lprice{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:12px!important;line-height:1!important;box-sizing:border-box!important}
#homeRatings .poll-tag,#ratingsBody .poll-tag{height:26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;border-radius:30px!important;font-size:12px!important;line-height:1!important;box-sizing:border-box!important}

/* listing price pill: text to reference (Inter, neutral tracking) */
.lprice{font-family:inherit!important;letter-spacing:0!important;font-weight:700!important}

/* nav active pill: even glow all around, not clipped */
.hdr .topnav.hdr-r3{overflow:visible!important}
.hdr .topnav a.on,.hdr .hdr-r3 a.on{box-shadow:0 0 10px -2px rgba(0,0,0,.12)!important}
@media(max-width:640px){.hdr .topnav.hdr-r3{overflow-x:auto!important;overflow-y:visible!important;padding-block:6px!important;margin-top:calc(var(--rowgap) - 6px)!important}}

/* catalog listings: match event card title */
#catVenues .lcard-full .lcard-b h4,#industryMod .lcard-full .lcard-b h4{font-size:clamp(16px,1.4vw,18px)!important;font-family:inherit!important;font-weight:600!important}

/* section-page cards: uniform structure, no pills */
/* Рубрика на карточках — один стиль везде: новости, объявления, главная */
.scat{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);line-height:1.2;margin-bottom:2px}
.lcard-full .lcard-b{display:flex;flex-direction:column;gap:7px}
.lcard-full .ldesc{font-size:14px;color:var(--ink-2);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ecard .eloc{font-size:14px;color:var(--ink-2);line-height:1.5}
/* price bottom-left, flat (no pill) on section pages */
.lcard-full .lprice,.ecard .eprice{margin-top:auto!important;align-self:flex-start!important;height:auto!important;padding:0!important;border:none!important;background:none!important;border-radius:0!important;font-size:16px!important;font-weight:700!important;color:var(--ink)!important;font-family:inherit!important;letter-spacing:0!important;display:inline-block!important}

/* uniform text rhythm in section cards (эталон listing) */
#allNews,#evGrid,#catVenues,#industryMod{align-items:start!important}
.jcard-b,.ecard-body,.lcard-full .lcard-b{padding:16px!important;row-gap:12px!important;column-gap:0!important;flex:0 0 auto!important;display:flex!important;flex-direction:column!important}
.jcard-foot{margin:0!important;padding:0!important}
.jcard .jcard-foot,.ecard .eprice,.lcard-full .lprice{margin-top:0!important;align-self:flex-start!important}
.ecard .eloc,.lcard-full .ldesc{margin:0!important}

.scat{margin:0!important}
.jcard-b h3,.jcard-b p,.ecard-body h3,.lcard-full .lcard-b h4,.lcard-full .ldesc,.ecard .eloc,.jcard-foot{margin:0!important}

/* listing cards: fixed title/desc height -> equal card heights */
.lcard-full .lcard-b h4{display:-webkit-box!important;-webkit-line-clamp:1!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:0!important;line-height:1.25!important}
.lcard-full .ldesc{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:calc(1.5em * 2)!important}

/* today category: flat text above title (no pill) */
#todayMod .tdir{height:auto!important;padding:0!important;border:none!important;background:none!important;border-radius:0!important;display:inline-block!important;align-self:flex-start!important}

/* listing cards: more air under price */
.lcard-full .lcard-b{padding-bottom:19px!important}

/* size tweaks */
#topList .tl-info h4{font-size:16px!important}
#homeRatings .poll h3{font-size:16px!important}
.lcard-full .lprice{font-size:16px!important}
@media(max-width:640px){#topList .tl-info h4{font-size:16px!important}#homeRatings .poll h3{font-size:16px!important}.lcard-full .lprice{font-size:16px!important}}

/* catalog: toggle above filters (left column) */
.cat-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.cat-side>.catmode{align-self:flex-start}
@media(max-width:820px){.cat-side{gap:14px}}

/* catalog: remove count, cards align with toggle */
.count{display:none!important}
.cat-main-head{display:none}
@media(max-width:820px){.cat-main-head{display:flex}}

#dealsMod .jdeal .jcard-b{row-gap:8px!important}

#evGrid .ecard-body{padding-bottom:19px!important}
#evGrid .eloc{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:calc(1.5em * 2)!important}

/* advertise accordion */
#adGrid{display:flex!important;flex-direction:column;gap:var(--gap)}
.accard{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.accard.open{border-color:var(--line-2);box-shadow:0 8px 28px -14px rgba(0,0,0,.16)}
.accard-head{display:flex;align-items:center;padding:clamp(20px,2.3vw,26px);cursor:default}
.accard-tt{flex:1;min-width:0}
.accard-tt h3{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.8vw,22px);letter-spacing:-.01em;line-height:1.15;margin:0 0 4px}
.accard-tt p{font-size:14px;color:var(--ink-2);margin:0;line-height:1.45}
.accard-chev{flex:0 0 auto;width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);transition:transform .38s ease}
.accard.open .accard-chev{transform:rotate(180deg);color:var(--ink)}
.accard-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s ease}
.accard.open .accard-body{grid-template-rows:1fr}
.accard-inner{overflow:hidden}
/* левый отступ был под номер, номера больше нет — списки по общей линии */
.accard-items{list-style:none;margin:0;padding:2px clamp(20px,2.3vw,26px) clamp(18px,2.1vw,24px);display:flex;flex-direction:column}
.accard-items li{padding:11px 0;border-top:1px solid var(--line);font-size:16px;color:var(--ink)}
.accard-items li:first-child{border-top:none;padding-top:4px}

.accard-desc{padding:2px clamp(20px,2.3vw,26px) clamp(20px,2.3vw,26px)}
.accard-desc p{font-size:16px;line-height:1.6;color:var(--ink-2);margin:0}
.accard-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.accard-desc .btn{display:inline-flex}
.prsoon-inline{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--line-2);border-radius:20px;padding:3px 10px;vertical-align:middle;margin-left:10px;white-space:nowrap}
@media(max-width:640px){.accard-desc{padding-left:clamp(20px,2.3vw,26px)}}/* awards result cards (medal layout) */
.poll.awrd .awyr{display:none}
.poll-opt.res.s{border-color:rgba(154,158,166,.5)}
.poll-opt.res.b{border-color:rgba(207,154,111,.55)}
.poll-opt.res.s .poll-bar{background:rgba(154,158,166,.20)}
.poll-opt.res.b .poll-bar{background:rgba(207,154,111,.26)}
.poll-medal{position:relative;z-index:1;flex:0 0 auto;font-size:16px;line-height:1}

/* admin: UI text editor */
.txt-adm{margin-top:12px}
.txt-bar{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.txt-bar input{flex:1;min-width:220px;padding:10px 14px;border:1px solid var(--line-2);border-radius:10px;font:inherit}
.txt-hint{font-size:12px;color:var(--ink-3)}
.txt-list{display:flex;flex-direction:column;gap:10px;max-height:70vh;overflow:auto;padding-right:4px}
.txt-row{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--paper)}
.txt-key{font-family:var(--display);font-weight:600;font-size:12px;color:var(--ink-2);margin-bottom:8px;word-break:break-all}
.txt-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.txt-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase}
.txt-fields textarea{font:inherit;font-size:14px;color:var(--ink);padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;resize:vertical;min-height:44px;text-transform:none;letter-spacing:normal}
.txt-fields textarea.saved{border-color:var(--green);background:rgba(0,174,132,.06)}
.txt-fields textarea.err{border-color:#e5484d;background:rgba(229,72,77,.05)}
@media(max-width:720px){.txt-fields{grid-template-columns:1fr}}

/* banners */
.bnr{width:100%;overflow:hidden;border-radius:var(--r)}
.bnr .bnr-a{display:block;line-height:0}
.bnr img{width:100%;height:auto;display:block}.visabar .bnr{border-radius:0}
.home-mid{margin:clamp(24px,3.5vw,48px) 0;padding:0}
.home-mid:empty{display:none}
.log-act.delete{background:rgba(229,72,77,.12);color:#b5343a}
.log-act.create{background:rgba(0,174,132,.12);color:#007a5c}
@media(max-width:720px){.log-row{grid-template-columns:1fr;gap:4px}}

/* wide ad placeholder (home_mid) */
.wide-ad{position:relative;display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,2.5vw,32px);flex-wrap:wrap;
  width:100%;box-sizing:border-box;border-radius:var(--r);background:var(--blue);color:#fff;text-decoration:none;overflow:hidden;
  padding:clamp(26px,3.4vw,44px) clamp(24px,3.2vw,40px);transition:transform .2s,box-shadow .2s}
.wide-ad:hover{transform:translateY(-2px);box-shadow:0 18px 40px -24px rgba(0,125,248,.65)}
.wide-ad::after{content:"";position:absolute;right:-40px;bottom:-50px;width:150px;height:150px;border:18px solid rgba(255,255,255,.13);border-radius:50%}
.wide-ad-l{position:relative;min-width:0}
.wide-ad-tag{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:6px}
.wide-ad h4{font-family:var(--display);font-weight:700;font-size:clamp(20px,2vw,26px);line-height:1.1;margin:0}
.wide-ad p{font-size:14px;color:rgba(255,255,255,.85);margin:7px 0 0}
.wide-ad-cta{position:relative;flex:0 0 auto;background:#fff;color:var(--blue);font-weight:600;font-size:14px;padding:11px 20px;border-radius:30px;white-space:nowrap}
@media(max-width:640px){.wide-ad{padding:22px}.wide-ad-cta{width:100%;text-align:center}}

/* admin: design/typography */
.dsg{margin-top:14px}
.dsg-note{font-size:14px;color:var(--ink-2);background:var(--wash);padding:12px 14px;border-radius:10px;margin:0 0 14px}
.dsg-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.dsg-row{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.dsg-g{font-family:var(--display);font-weight:600;font-size:14px;margin-bottom:10px}
.dsg-f{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.dsg-f label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase}
.dsg-f input{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;text-transform:none}
@media(max-width:720px){.dsg-f{grid-template-columns:1fr 1fr}}

/* admin: submissions */
.subs{margin-top:14px}
.sub-chips{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.sub-chip{border:1px solid var(--line-2);background:var(--paper);border-radius:30px;padding:8px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.sub-chip b{color:var(--ink-3);margin-left:4px}
.sub-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.sub-chip.on b{color:rgba(255,255,255,.7)}
.sub-list{display:flex;flex-direction:column;gap:12px}
.sub-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--paper)}
.sub-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.sub-kind{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--wash);padding:4px 10px;border-radius:20px}
.sub-t{font-family:var(--display);font-weight:600;font-size:16px;flex:1;min-width:0}
.sub-date{font-size:12px;color:var(--ink-3)}
.sub-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 18px;margin-bottom:12px}
.sub-f{display:flex;gap:6px;font-size:14px;border-bottom:1px solid var(--line);padding:5px 0}
.sub-f span{color:var(--ink-3);min-width:78px}
.sub-f b{font-weight:600;word-break:break-word}
.sub-contact{font-size:14px;color:var(--ink-2);background:var(--wash);padding:8px 12px;border-radius:8px;margin-bottom:12px}
.sub-edit{margin-bottom:12px}
.sub-edit summary{font-size:12px;color:var(--ink-3);cursor:pointer}
.sub-edit textarea{width:100%;min-height:140px;font:12px/1.5 ui-monospace,monospace;padding:10px;border:1px solid var(--line-2);border-radius:8px;margin:8px 0}
.sub-acts{display:flex;gap:8px;flex-wrap:wrap}
.sub-ok{background:var(--green)!important;border-color:var(--green)!important}
.sub-no{color:#b5343a}

/* photo uploader */
.upv{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.upv:empty{display:none}
.upi{position:relative;width:88px;height:88px;border-radius:10px;overflow:hidden;border:1px solid var(--line-2);background:var(--wash)}
.upi img{width:100%;height:100%;object-fit:cover;display:block}
.upi.up img,.upi.wait img{opacity:.45}
.upi.err{border-color:#e5484d}
.upx{position:absolute;top:4px;right:4px;width:20px;height:20px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:1;cursor:pointer;padding:0}
.upst{position:absolute;left:4px;bottom:4px;min-width:18px;height:18px;border-radius:9px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.upi.ok .upst{background:var(--green)}
.upi.err .upst{background:#e5484d}
.fupload{user-select:none}

.sub-pics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.sub-pics img{width:74px;height:74px;object-fit:cover;border-radius:8px;border:1px solid var(--line-2);display:block}

/* geo */
.vkm{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;font-weight:600;padding:4px 9px;border-radius:20px;backdrop-filter:blur(4px)}
.near-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--paper);border-radius:30px;height:38px;padding:0 16px;font:inherit;font-size:14px;font-weight:600;line-height:1;cursor:pointer;transition:.15s;white-space:nowrap}
.near-btn:hover{border-color:var(--ink)}
.near-btn.on{background:var(--blue);border-color:var(--blue);color:#fff}
.near-btn.loading{opacity:.6;cursor:wait}
.dmap{position:relative}
.dmap-go{display:block;text-align:center;margin-top:8px;padding:10px;border-radius:10px;background:var(--ink);color:#fff;text-decoration:none;font-size:14px;font-weight:600}

/* settings tab */
.setw{margin-top:14px;max-width:760px}
.set-g{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.set-g h4{font-family:var(--display);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:0 0 12px}
.set-f{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.set-f>span{font-size:12px;font-weight:600;color:var(--ink-2)}
.set-f input,.set-f textarea{font:inherit;font-size:14px;padding:9px 12px;border:1px solid var(--line-2);border-radius:8px}
.set-f textarea{min-height:60px;resize:vertical}
.set-f .saved{border-color:var(--green);background:rgba(0,174,132,.06)}
.set-f .err{border-color:#e5484d}

/* taxonomy tab */
.taxw{margin-top:14px}
.tax-g{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.tax-g summary{font-family:var(--display);font-weight:600;font-size:14px;cursor:pointer}
.tax-g summary b{color:var(--ink-3);font-weight:600;margin-left:4px}
.tax-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}
.tax-r{display:grid;grid-template-columns:120px 1fr 1fr 1fr 30px;gap:7px;align-items:center}
.tax-r code{font-size:12px;color:var(--ink-3);background:var(--wash);padding:6px 8px;border-radius:6px;overflow:hidden;text-overflow:ellipsis}
.tax-r input{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line-2);border-radius:7px;min-width:0}
.tax-x{border:0;background:none;color:var(--ink-3);font-size:18px;cursor:pointer;padding:0}
.tax-x:hover{color:#e5484d}
.tax-add{margin-top:12px;font-size:12px;padding:7px 14px}
@media(max-width:720px){.tax-r{grid-template-columns:1fr 1fr;gap:6px}.tax-r code{grid-column:1/-1}}

/* ===== ADMIN 2.0 ===== */
.adm-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.adm-bar>strong{font-family:var(--display);font-size:17px}
.adm-langs{display:flex;gap:4px;margin-left:auto}
.adm-top{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.adm-cnt{font-size:13px;color:var(--ink-3)}

/* карточки записей */
.adm-cards{display:flex;flex-direction:column;gap:8px}
.ac{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--paper);transition:.15s}
.ac:hover{border-color:var(--line-2);box-shadow:0 4px 14px -8px rgba(0,0,0,.15)}
.ac-th{width:56px;height:56px;border-radius:9px;background:var(--wash) center/cover no-repeat;flex:0 0 auto}
.ac-th-empty{background:repeating-linear-gradient(45deg,var(--wash),var(--wash) 6px,#eee 6px,#eee 12px)}
.ac-b{flex:1;min-width:0}
.ac-t{font-family:var(--display);font-weight:600;font-size:16px;margin-bottom:2px}
.ac-s{font-size:12px;color:var(--ink-3)}
.ac-a{display:flex;gap:6px;flex:0 0 auto}
.ac-a .btn{padding:7px 13px;font-size:12px}
.ac-del{color:#b5343a}

/* форма-редактор */
.fe-box{margin-top:20px;border:1px solid var(--line-2);border-radius:14px;padding:22px 24px;background:var(--paper)}
.fe-box>h3{font-family:var(--display);font-size:17px;margin:0 0 18px}
.fe{margin-bottom:16px}
.fe-l{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.fe-req{color:var(--pink);font-style:normal;margin-left:3px}
.fe-hint{display:block;font-weight:400;font-size:11px;color:var(--ink-3);margin-top:2px}
.fe input[type=text],.fe input[type=number],.fe input:not([type]),.fe select,.fe textarea{width:100%;font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--paper)}
.fe textarea{min-height:74px;resize:vertical}
.fe-chk{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;max-height:170px;overflow:auto}
.fe-chk label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.fe-sw{display:inline-block}
.fe-sw input{width:auto!important}
.fe-color{display:flex;gap:8px;align-items:center}
.fe-color input[type=color]{width:44px;height:40px;padding:2px;border:1px solid var(--line-2);border-radius:8px;cursor:pointer;flex:0 0 auto}
.fe-img{display:flex;gap:14px;align-items:flex-start}
.fe-img-prev{width:120px;height:82px;flex:0 0 auto;border:1px dashed var(--line-2);border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--wash)}
.fe-img-prev img{width:100%;height:100%;object-fit:contain}
.fe-img-prev span{font-size:11px;color:var(--ink-3)}
.fe-img-ctl{flex:1;display:flex;flex-direction:column;gap:8px}
.fe-po{display:flex;flex-direction:column;gap:7px}
.fe-pal{display:flex;flex-wrap:wrap;gap:8px}
.fe-fold{display:flex;align-items:center;gap:10px;cursor:pointer;margin:22px 0 4px;padding-bottom:9px;
  border-bottom:1px solid var(--line);user-select:none}
.fe-fold span{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3)}
.fe-fold i{font-style:normal;font-size:11px;color:var(--ink-3);transition:transform .18s}
.fe-fold.on i{transform:rotate(180deg)}
.fe-fold em{font-style:normal;font-size:12px;color:var(--ink-3);margin-left:auto}
.fe-hid{display:none!important}
.it-list{display:flex;flex-direction:column;gap:8px}
.it{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.it-head{display:flex;align-items:center;gap:12px;padding:8px 10px;cursor:pointer;user-select:none}
.it-head:hover{background:var(--wash)}
.it-th{width:44px;height:44px;flex:0 0 44px;border-radius:8px;background-size:cover;background-position:center;background-color:#eee}
.it-nm{flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.it-ch{font-style:normal;font-size:11px;color:var(--ink-3);transition:transform .18s}
.it.it-open .it-ch{transform:rotate(180deg)}
.it-body{display:none;gap:16px;padding:4px 12px 14px;border-top:1px solid var(--line)}
.it.it-open .it-body{display:flex}
.it-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
.it-adds{display:flex;flex-wrap:wrap;gap:8px}
.it-cnt{font-size:12px;color:var(--ink-3);white-space:nowrap}
.it-cnt b{color:var(--ink);font-size:15px;margin-left:4px}
.ip-ov{position:fixed;inset:0;z-index:260;background:rgba(17,19,21,.45);
  display:flex;align-items:center;justify-content:center;padding:24px}
.ip-panel{background:#fff;border-radius:18px;width:min(620px,100%);max-height:82vh;display:flex;flex-direction:column;overflow:hidden}
.ip-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.ip-h b{font-family:var(--display);font-size:17px}
.ip-bd{padding:16px 20px 20px;overflow:auto}
.ip-q{width:100%;padding:11px 14px;border:1px solid var(--line-2);border-radius:12px;font:inherit;margin-bottom:12px}
.ip-list{display:flex;flex-direction:column;gap:6px}
.ip-r{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);
  border-radius:12px;background:#fff;font:inherit;cursor:pointer;transition:.14s}
.ip-r:hover{border-color:var(--ink);background:var(--wash)}
.ip-th{width:52px;height:52px;flex:0 0 52px;border-radius:9px;background-size:cover;background-position:center;background-color:#eee}
.ip-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ip-b b{font-size:14px;line-height:1.2}
.ip-b small{font-size:12px;color:var(--ink-3)}
.ip-add{font-size:20px;color:var(--ink-3);padding:0 6px}
@media(max-width:640px){.it-body{flex-direction:column}.ip-ov{padding:0}.ip-panel{border-radius:0;max-height:100vh;height:100%}}
.ls-b-rev{color:var(--ink);font-weight:600}
.rev-list{display:flex;flex-direction:column;gap:10px}
.rev-r{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.rev-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rev-b b{font-size:14px}
.rev-b small{font-size:12px;color:var(--ink-3)}
.rev-ch{color:var(--ink-2)!important}
@media(max-width:600px){.rev-r{flex-direction:column;align-items:stretch}}
@keyframes edNudgeK{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.ed-pf-nudge{animation:edNudgeK .22s ease}
.fe-pal{gap:0!important;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;width:fit-content;max-width:100%}
.pal-b{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:0;
  background:#fff;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;transition:.14s;white-space:nowrap}
.pal-b+.pal-b{border-left:1px solid var(--line-2)}
.pal-b i{width:12px;height:12px;border-radius:50%;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pal-b:hover{background:var(--wash)}
.pal-b.on{background:var(--ink);color:#fff;font-weight:600}
.pal-b.on i{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.pal-none i{display:none}
@media(max-width:560px){.fe-pal{width:100%}.pal-b{flex:1;justify-content:center;padding:10px 8px}}
.po-v{min-width:34px;text-align:right;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.po-r{display:grid;grid-template-columns:24px 1fr 1fr 1fr 40px 26px;gap:6px;align-items:center}
.po-n{font-size:12px;color:var(--ink-3);text-align:center}
.po-r input{font-size:14px!important;padding:8px 10px!important}
.fe-po-add{margin-top:8px;font-size:12px;padding:7px 14px}
.adm-save{display:flex;align-items:center;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.adm-msg{font-size:13px;color:#b5343a}

/* оформление: живой пример */
.dsg-row{display:grid;grid-template-columns:150px 1fr;gap:14px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;align-items:start}
.dsg-live{grid-column:2;background:var(--wash);border-radius:9px;padding:14px 16px;margin-bottom:10px;overflow:hidden}
.dsg-g{grid-row:1/3;font-family:var(--display);font-weight:600;font-size:14px;padding-top:4px}
.dsg-f{grid-column:2}
@media(max-width:820px){
  .fe-i18n{grid-template-columns:1fr}
  .dsg-row{grid-template-columns:1fr}
  .dsg-g{grid-row:auto}
  .dsg-live,.dsg-f{grid-column:1}
  .ac{flex-wrap:wrap}
  .po-r{grid-template-columns:1fr 1fr}
}

.adm-sp{flex:1}
.adm-langs{display:flex;gap:3px;margin:0}

/* ===== АДМИНКА: страницы ===== */
.adm2{display:grid;grid-template-columns:210px 1fr;gap:26px;align-items:start}
.adm-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:14px;padding:8px;background:var(--paper)}
.pg{text-align:left;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);padding:10px 13px;border-radius:9px;cursor:pointer;transition:.12s}
.pg:hover{background:var(--wash);color:var(--ink)}
.pg.on{background:var(--ink);color:#fff}
/* Agent и Content — отдельные программы внутри админки: свой цвет в меню и
   в подразделах, чтобы их было видно среди разделов сайта (27.10.2026). */
:root{--adm-agent:#6d3fd9;--adm-agent-bg:#f1ecfd;--adm-content:#e0620d;--adm-content-bg:#fdf0e6}
.pg[data-k="agent"],.pg[data-k="content"]{display:flex;align-items:center;gap:8px}
.pg[data-k="agent"]::before,.pg[data-k="content"]::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:currentColor}
.pg[data-k="agent"]{color:var(--adm-agent)}
.pg[data-k="agent"]:hover{background:var(--adm-agent-bg);color:var(--adm-agent)}
.pg[data-k="agent"].on{background:var(--adm-agent-bg);color:var(--adm-agent)}
.pg-sub{padding:7px 13px 7px 29px;font-size:13.5px;font-weight:500;color:var(--ink-2)}
.pg-sub[data-k="agent-sub"]:hover{background:var(--adm-agent-bg);color:var(--adm-agent)}
.pg-sub[data-k="agent-sub"].on{background:var(--adm-agent);color:#fff}
.pg-sub[data-k="content-sub"]:hover{background:var(--adm-content-bg);color:var(--adm-content)}
.pg-sub[data-k="content-sub"].on{background:var(--adm-content);color:#fff}
/* Agent во всю рабочую область: без заголовка, вкладок и полей админки —
   свои поля и ширину страницы он рисует сам, как её разделы. */
body.adm-mode[data-adm-sec="agent"] .adm-main,body.adm-mode[data-adm-sec="content"] .adm-main{padding:0!important;max-width:none!important}
body[data-adm-sec="agent"] .adm-main>.sub-tabs,body[data-adm-sec="content"] .adm-main>.sub-tabs{display:none}
.pg[data-k="content"]{color:var(--adm-content)}
.pg[data-k="content"]:hover{background:var(--adm-content-bg);color:var(--adm-content)}
.pg[data-k="content"].on{background:var(--adm-content-bg);color:var(--adm-content)}
body[data-adm-sec="agent"] .sub-tabs button.on{background:var(--adm-agent);border-color:var(--adm-agent);color:#fff}
body[data-adm-sec="content"] .sub-tabs button.on{background:var(--adm-content);border-color:var(--adm-content);color:#fff}
.adm-main{min-width:0}
.adm-bar{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:14px}
.adm-sp{flex:1}
.pg-h{font-family:var(--display);font-size:24px;font-weight:700;margin:2px 0 8px;letter-spacing:-.02em}
.sub-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:12px}
.ent-search{flex:1;max-width:280px;font:inherit;font-size:14px;padding:9px 13px;border:1px solid var(--line-2);border-radius:9px}
/* баннеры-плитки */
.bn-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bn-h{margin-bottom:12px}
.bn-h b{display:block;font-family:var(--display);font-size:14px;margin-bottom:3px}
.bn-h span{font-size:12px;color:var(--ink-3);line-height:1.45;display:block}
.bn-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.bn-empty{font-size:12px;color:var(--ink-3);background:var(--wash);padding:14px;border-radius:9px;margin:0;text-align:center}
.bn-item{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px}
.bn-item.off{opacity:.5}
.bn-prev{width:64px;height:40px;border-radius:6px;overflow:hidden;background:var(--wash);flex:0 0 auto}
.bn-prev img{width:100%;height:100%;object-fit:cover;display:block}
.bn-prev span{display:block;width:100%;height:100%}
.bn-i{flex:1;min-width:0}.bn-i b{display:block;font-size:14px}.bn-i small{font-size:12px;color:var(--ink-3)}
.bn-a{display:flex;gap:4px}.bn-a .btn{padding:6px 10px;font-size:12px}
.bn-add{width:100%;font-size:12px;padding:9px}
@media(max-width:1000px){
  .adm2{grid-template-columns:1fr}
  .adm-nav{position:static;flex-direction:row;flex-wrap:wrap}
  .pg{padding:8px 12px;font-size:12px}
  .bn-wrap{grid-template-columns:1fr}
}

.fe-gal{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:10px}
.fe-gal:empty{display:none}
.gi{position:relative;width:96px;height:72px;border-radius:9px;overflow:hidden;border:1px solid var(--line-2);background:var(--wash)}
.gi img{width:100%;height:100%;object-fit:cover;display:block}
.gi-load,.gi-err{display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:14px}
.gi-err{border-color:#e5484d;color:#e5484d}
.gi-x{position:absolute;top:3px;right:3px;width:19px;height:19px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:1;cursor:pointer;padding:0}
.fe-i18n.big{grid-template-columns:1fr}
.fe-i18n.big textarea{min-height:190px;font-size:14px;line-height:1.6}

.art-gal{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}
.art-gal figure{margin:0;border-radius:12px;overflow:hidden}
.art-gal img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:640px){.art-gal{grid-template-columns:1fr}}

.adm-langs{display:flex;gap:3px}

.set-cur{display:block;font-size:12px;color:var(--ink-3);font-style:normal;margin-top:4px}
.hb{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--paper)}
.hb.off{opacity:.55}
.hm-f{display:flex;flex-direction:column;gap:5px;margin-top:10px}
.hm-f>span{font-size:12px;font-weight:600;color:var(--ink-2)}
.hm-f select,.hm-f input{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px}
.hm-cards{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.hmc{position:relative;display:grid;grid-template-columns:150px 1fr;gap:14px;border:1px solid var(--line);border-radius:11px;padding:12px}
.hmc-img{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.hmc-img .fe-img-prev{width:100%;height:88px}
.hmc-img .btn{font-size:11px;padding:6px}
.hmc-img em{font-size:10px;color:var(--ink-3);font-style:normal;text-align:center}
.hmc-b{min-width:0}
.hmc .tax-x{position:absolute;top:8px;right:10px}
@media(max-width:760px){.hmc{grid-template-columns:1fr}}

/* wireframe-админка */
.wf-mod{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:var(--paper)}
.wf-h{margin-bottom:12px}
.wf-h b{display:block;font-family:var(--display);font-size:16px;margin-bottom:3px}
.wf-h span{font-size:12px;color:var(--ink-3);line-height:1.45}
.wf-cards{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.wf-card{position:relative;border:1px solid var(--line-2);border-radius:11px;padding:12px 14px 12px 40px;background:var(--wash)}
.wf-n{position:absolute;left:12px;top:12px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}
.wf-card .tax-x{position:absolute;top:10px;right:12px}
.wf-img{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.wf-img .fe-img-prev{width:110px;height:70px;flex:0 0 auto}
.wf-img .btn{font-size:12px;padding:7px 12px}
.wf-img em{font-size:12px;color:var(--ink-3);font-style:normal}
.wf-f{margin-bottom:10px}
.wf-f>span{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.wf-f input,.wf-f select{width:100%;font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px;background:var(--paper)}
.wf-f .fe-color input[type=color]{width:44px}

/* ===== АДМИНКА: отдельный экран ===== */
body.adm-mode .hdr,
body.adm-mode .topbanner,
body.adm-mode #topBanner,
body.adm-mode .visa-strip,
body.adm-mode footer,
body.adm-mode .ft,
body.adm-mode .cookie{display:none!important}
body.adm-mode{background:#f6f7f9}
body.adm-mode .view[data-view="admin"]{padding:0!important;max-width:none!important;margin:0!important}
body.adm-mode main,body.adm-mode .wrap{max-width:none!important;padding:0!important;margin:0!important}
.adm-top-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:14px;
  padding:12px 22px;background:#fff;border-bottom:1px solid var(--line)}
.adm-logo{font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:-.01em}
.adm-logo b{font-weight:500;color:var(--ink-3)}
.adm-ver{font-style:normal;font-weight:600;font-size:11px;color:var(--ink-3);border:1px solid var(--line-2);border-radius:20px;padding:2px 8px;margin-left:8px;letter-spacing:.02em}
.adm-site{font-size:12px;color:var(--blue);text-decoration:none;font-weight:600}
.adm-status{font-size:11px;color:var(--ink-3)}
.adm-status.ok{color:var(--green)}
.adm-who{font-size:12px;color:var(--ink-3)}
.adm-top-bar .btn{padding:7px 14px;font-size:12px}
.adm2{display:grid;grid-template-columns:220px 1fr;gap:0;align-items:start;min-height:calc(100vh - 57px)}
.adm-nav{position:sticky;top:57px;display:flex;flex-direction:column;gap:2px;padding:14px 10px;
  background:#fff;border-right:1px solid var(--line);border-radius:0;min-height:calc(100vh - 57px)}
.adm-main{min-width:0;padding:26px 30px 60px}
.pg-h{margin-top:0}
@media(max-width:1000px){
  .adm2{grid-template-columns:1fr}
  .adm-nav{position:static;flex-direction:row;flex-wrap:wrap;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .adm-main{padding:18px 16px 50px}
  .adm-top-bar{flex-wrap:wrap;gap:8px;padding:10px 14px}
}
.dsg-note{margin:0 0 18px;font-size:14px;color:var(--ink-2);background:var(--wash);padding:12px 15px;border-radius:9px;line-height:1.5}
.wf-mod{padding:18px 20px;margin-bottom:14px}
.wf-h{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.wf-cards{gap:12px}
.wf-card{padding:14px 16px 14px 44px}
.wf-card:last-child{margin-bottom:0}
.wf-f{margin-bottom:12px}
.wf-f:last-child{margin-bottom:0}
.wf-img{margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.wf-add{margin-top:12px;width:100%;font-size:12px;padding:10px}
.txt-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.txt-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-3)}
.txt-fields textarea{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px;min-height:44px;resize:vertical;background:var(--paper)}
@media(max-width:900px){.txt-fields{grid-template-columns:1fr}}

/* ===== АДМИНКА: чистая сетка ===== */
body.adm-mode .adm-main{padding:28px 32px 80px}
.adm-main>*:first-child{margin-top:0}
.pg-h{margin:0 0 10px}
.sub-tabs{margin:0 0 22px;padding:0 0 14px;gap:8px}
.dsg-note{margin:0 0 20px}

/* карточки-записи */
.adm-top{display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-wrap:wrap}
.adm-cards{gap:10px}
.ac{padding:12px 16px;gap:16px}
.ac-a .btn{white-space:nowrap}

/* модули главной */
.wf-mod{padding:20px 22px;margin:0 0 16px;border-radius:14px}
.wf-mod:last-child{margin-bottom:0}
.wf-h{margin:0 0 16px;padding:0 0 14px}
.wf-h b{font-size:16px;line-height:1.3;margin-bottom:4px}
.wf-h span{font-size:12px;line-height:1.5}
.wf-cards{display:flex;flex-direction:column;gap:12px;margin:0}
.wf-card{padding:16px 18px 16px 46px;border-radius:12px;margin:0}
.wf-n{left:14px;top:16px}
.wf-card .tax-x{top:12px;right:14px;width:22px;height:22px;line-height:1;display:flex;align-items:center;justify-content:center}
.wf-img{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:0 0 14px;flex-wrap:wrap}
.wf-img .fe-img-prev{width:120px;height:76px;border-radius:8px;flex:0 0 auto}
.wf-img .btn{flex:0 0 auto}
.wf-img em{flex:0 0 auto;white-space:nowrap}
.wf-f{margin:0 0 14px}
.wf-f:last-child{margin-bottom:0}
.wf-f>span{margin-bottom:6px;line-height:1.4}
.wf-f input,.wf-f select{height:40px;box-sizing:border-box}
.wf-add{margin-top:14px}

/* тексты на 3 языка */
.txt-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.txt-fields label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.04em;min-width:0}
.txt-fields textarea{width:100%;box-sizing:border-box;font:inherit;font-size:14px;line-height:1.5;
  padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;min-height:46px;resize:vertical;background:var(--paper)}

/* формы */
.fe{margin:0 0 18px}
.fe:last-child{margin-bottom:0}
.fe-box{padding:24px 26px;border-radius:14px;margin-top:22px}
.fe-l{margin-bottom:7px;line-height:1.4}
.fe-hint{margin-top:3px;line-height:1.4}
.adm-save{margin-top:22px;padding-top:20px;gap:12px;flex-wrap:wrap}

/* настройки */
.setw{max-width:720px}
.set-g{padding:18px 20px;margin:0 0 14px;border-radius:12px}
.set-f{margin:0 0 16px}
.set-f:last-child{margin-bottom:0}
.set-f>span{display:block;margin-bottom:6px;line-height:1.4}
.set-f input,.set-f textarea{width:100%;box-sizing:border-box;height:auto;min-height:40px}

/* тексты/меню */
.txt-row{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start}
.txt-row:last-child{border-bottom:0}
.txt-key{font-size:12px;color:var(--ink-3);word-break:break-word;padding-top:4px;line-height:1.4}
@media(max-width:900px){
  .txt-fields{grid-template-columns:1fr}
  .txt-row{grid-template-columns:1fr;gap:8px}
  body.adm-mode .adm-main{padding:18px 16px 60px}
  .wf-card{padding:14px 14px 14px 40px}
}

/* живой редактор */
.lv-bar{display:flex;align-items:center;gap:14px;padding:12px 0 14px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.lv-p{border:1px solid var(--line-2);background:var(--paper);border-radius:8px;padding:8px 14px;
  font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer}
.lv-p:hover{border-color:var(--ink-3)}
.lv-p.on{background:var(--ink);border-color:var(--ink);color:#fff}
.lv-tog{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer}
.lv-wrap{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
#siteFrame{width:100%;height:calc(100vh - 190px);border:0;display:block}
.lv-hint{position:absolute;left:14px;bottom:14px;background:rgba(17,19,21,.88);color:#fff;
  font-size:12px;padding:8px 13px;border-radius:8px;pointer-events:none}
/* меню на элементе */
.ed-menu{position:fixed;z-index:200;background:#fff;border:1px solid var(--line-2);border-radius:11px;
  box-shadow:0 14px 40px -12px rgba(0,0,0,.28);padding:6px;min-width:190px;display:flex;flex-direction:column;gap:2px}
.ed-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;
  font:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:9px 11px;border-radius:8px;cursor:pointer}
.ed-menu button:hover{background:var(--wash)}
.ed-menu button b{width:18px;text-align:center;color:var(--ink-3);font-weight:600}
.ed-menu button.ed-d{color:#e5484d}
.ed-menu button.ed-d:hover{background:rgba(229,72,77,.08)}
/* панель правки */
.ed-panel{position:fixed;top:0;right:0;width:440px;max-width:100%;height:100vh;z-index:210;background:#fff;
  border-left:1px solid var(--line);box-shadow:-20px 0 50px -24px rgba(0,0,0,.3);display:flex;flex-direction:column}
.ed-ph{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.ed-ph b{font-family:var(--display);font-size:16px}
.ed-x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--ink-3);padding:0 4px}
.ed-pb{flex:1;overflow:auto;padding:20px 22px}
.ed-pf{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}
.ed-msg{font-size:12px}
.ed-f{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.ed-f>span{font-size:12px;font-weight:600;color:var(--ink-2)}
.ed-f input,.ed-f textarea{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;width:100%;box-sizing:border-box}
.ed-f textarea{min-height:80px;resize:vertical;line-height:1.5}
.ed-up{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.ed-up .fe-img-prev{width:130px;height:84px}
.ed-up em{font-size:12px;color:var(--ink-3);font-style:normal}
.ed-note{font-size:12px;color:var(--ink-3);margin:0 0 14px}
.ed-form .fe{margin-bottom:16px}

/* кнопки заметны и не похожи на поля */
.adm-main .btn{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:9px;
  padding:10px 18px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:.12s}
.adm-main .btn:hover{opacity:.86}
.adm-main .btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line-2);font-weight:600}
.adm-main .btn.ghost:hover{border-color:var(--ink);background:var(--wash)}
.adm-main .btn.ac-del,.adm-main .btn.ghost.ac-del{color:#e5484d;border-color:rgba(229,72,77,.35)}
.adm-main .btn.ac-del:hover{background:rgba(229,72,77,.07);border-color:#e5484d}
.ed-panel .btn{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:9px;
  padding:10px 18px;font-weight:600;cursor:pointer}
.ed-panel .btn.ghost{background:#fff;color:var(--ink);border-color:var(--line-2);font-weight:600}
/* нумерация карточек — понятнее */
.wf-n{background:var(--blue);width:22px;height:22px;font-size:12px}

.pl-h{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:16px;margin:24px 0 12px}
.pl-h:first-of-type{margin-top:8px}
.pl-h b{font-weight:600;color:var(--ink-3);font-size:14px}
.pl-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:0 0 auto}
.pl-dot.live{background:var(--green);box-shadow:0 0 0 3px rgba(0,174,132,.16)}
.pl-list{display:flex;flex-direction:column;gap:8px}
.pl-row{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:11px;padding:14px 16px;background:var(--paper)}
.pl-b{flex:1;min-width:0}
.pl-b b{display:block;font-size:14px;margin-bottom:3px}
.pl-b small{font-size:12px;color:var(--ink-3)}
.pl-a{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pl-ord{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;background:#fff}
.pl-mv{display:flex;align-items:center;justify-content:center;width:34px;height:34px;
  border:0;background:none;color:var(--ink-2);cursor:pointer;padding:0;transition:.14s}
.pl-mv+.pl-mv{border-left:1px solid var(--line-2)}
.pl-mv:hover{background:var(--wash);color:var(--ink)}
.pl-mv[disabled]{opacity:.25;pointer-events:none}
.pl-a .btn{padding:7px 12px;font-size:12px}

.ed-lg{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.ed-lg i{font-size:12px;font-weight:600;color:var(--ink-3);font-style:normal;letter-spacing:.04em}
.ed-lg textarea{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px;min-height:56px;resize:vertical;width:100%;box-sizing:border-box}

/* ===== РЕЖИМ «САЙТ»: во весь экран ===== */
body.live-mode .adm2{grid-template-columns:1fr}
body.live-mode .adm-main{padding:0;max-width:none}
body.live-mode .pg-h,
body.live-mode .adm-main>.adm-hint,
body.live-mode .sub-tabs{display:none}
/* боковик выезжает поверх */
body.live-mode .adm-nav{
  position:fixed;left:0;top:57px;bottom:0;width:220px;z-index:70;
  transform:translateX(-100%);transition:transform .18s ease;
  box-shadow:14px 0 40px -24px rgba(0,0,0,.35);border-right:1px solid var(--line)}
body.live-mode.nav-open .adm-nav{transform:none}
body.live-mode.nav-open::after{content:'';position:fixed;inset:57px 0 0 220px;background:rgba(0,0,0,.18);z-index:69}
/* панель редактора */
body.live-mode .lv-bar{
  position:sticky;top:57px;z-index:50;margin:0;padding:10px 16px;
  background:#fff;border-bottom:1px solid var(--line);border-top:0}
/* сайт — во всю ширину, без рамки */
body.live-mode .lv-wrap{border:0;border-radius:0;margin:0}
body.live-mode #siteFrame{height:calc(100vh - 113px);width:100%}
body.live-mode .lv-hint{left:18px;bottom:18px}
@media(max-width:1000px){
  body.live-mode #siteFrame{height:calc(100vh - 150px)}
}

.lv-cur{font-size:12px;color:var(--ink-3);background:var(--wash);padding:6px 11px;border-radius:7px;
  max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* шапка админки */
.adm-add{padding:8px 16px!important;font-size:12.5px!important;background:var(--blue)!important;border-color:var(--blue)!important}
/* панель редактора */
.lv-back{width:34px;height:34px;border:1px solid var(--line-2);background:#fff;border-radius:9px;
  font-size:16px;line-height:1;cursor:pointer;color:var(--ink);flex:0 0 auto}
.lv-back:hover{border-color:var(--ink)}
.lv-cur{flex:1;text-align:left}
/* выбор что добавить */
.add-grid{display:flex;flex-direction:column;gap:8px}
.add-t{display:block;width:100%;text-align:left;border:1px solid var(--line-2);background:#fff;
  border-radius:11px;padding:14px 16px;cursor:pointer;transition:.12s}
.add-t:hover{border-color:var(--blue);background:rgba(0,125,248,.04)}
.add-t b{display:block;font-size:14px;margin-bottom:3px;color:var(--ink)}
.add-t small{font-size:12px;color:var(--ink-3)}

/* блоки подборки */
.it-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.it{position:relative;display:grid;grid-template-columns:150px 1fr;gap:16px;
  border:1px solid var(--line-2);border-radius:12px;padding:14px 40px 14px 14px;background:var(--wash)}
.it-l{display:flex;flex-direction:column;gap:7px}
.it-l .fe-img-prev{width:100%;height:92px}
.it-l .btn{font-size:12px;padding:7px}
.it-l em{font-size:12px;color:var(--ink-3);font-style:normal;text-align:center}
.it-r{min-width:0}
.it-fl{margin-bottom:11px}
.it-fl:last-child{margin-bottom:0}
.it-fl>span{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.it-fl input{width:100%;box-sizing:border-box;font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px}
.it .tax-x{position:absolute;top:12px;right:12px}
.it-add{width:100%;font-size:12px;padding:10px}
/* теги */
.tp{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.tp-n{font-size:12px;color:var(--ink-3);margin:0}
@media(max-width:700px){.it{grid-template-columns:1fr}}

/* ===== ПАНЕЛЬ ПРАВКИ: широкая и читаемая ===== */
.ed-panel{width:min(760px,92vw)}
.ed-pb{padding:24px 26px}
.ed-form .fe{margin-bottom:22px}
.ed-form .fe:last-child{margin-bottom:0}

/* три языка — в ряд, но с нормальной шириной; на узком экране в столбик */
.ed-panel .txt-fields,
.ed-panel .fe-i18n{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ed-panel .txt-fields textarea,
.ed-panel .fe-i18n textarea,
.ed-panel .fe-i18n input{width:100%;box-sizing:border-box;min-height:80px;
  font-size:13.5px;line-height:1.5;padding:10px 12px;resize:vertical}
.ed-panel .fe-i18n input{min-height:42px}
.ed-panel .fe-i18n.big{grid-template-columns:1fr}
.ed-panel .fe-i18n.big textarea{min-height:200px}

/* блок места в подборке */
.ed-panel .it{grid-template-columns:1fr;gap:14px;padding:16px 44px 16px 16px}
.ed-panel .it-l{flex-direction:row;align-items:center;gap:12px}
.ed-panel .it-l .fe-img-prev{width:150px;height:96px;flex:0 0 auto}
.ed-panel .it-l .btn{flex:0 0 auto}
.ed-panel .it-l em{margin-left:auto}
.it-p{border:1px dashed var(--line-2)}

/* поля и подписи */
.ed-f>span,.it-fl>span{font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.ed-panel input[type=text],.ed-panel input:not([type]),.ed-panel input[type=number],.ed-panel input[type=url]{
  height:42px;font-size:14px}
.ed-panel .fe-l{font-size:13px;font-weight:600;margin-bottom:8px}

/* теги — в панели тоже просторно */
.ed-panel .tp{gap:8px}
.ed-panel .tp-i{padding:8px 14px;font-size:14px}

@media(max-width:900px){
  .ed-panel{width:100vw}
  .ed-panel .txt-fields,.ed-panel .fe-i18n{grid-template-columns:1fr}
  .ed-panel .it-l{flex-direction:column;align-items:stretch}
  .ed-panel .it-l em{margin-left:0;text-align:center}
}

/* большие текстовые поля: компактнее */
.ed-panel .fe-i18n.big{grid-template-columns:1fr;gap:8px}
.ed-panel .fe-i18n.big textarea{min-height:110px;max-height:260px}
.ed-panel .txt-fields textarea{min-height:64px;max-height:200px}
.ed-panel .fe-i18n textarea{min-height:64px}
/* язык подписывается компактно */
.ed-panel .fe-i18n>label>span,.ed-panel .txt-fields>label{font-size:10px;letter-spacing:.06em}
.fe-cnt{display:block;font-style:normal;font-size:11px;margin-top:4px;color:var(--ink-3)}
.fe-cnt.ok{color:#2c7a3f}
.fe-cnt.short{color:#9a7a1a}
.fe-cnt.over{color:#c0392b;font-weight:600}

/* ===== ДАШБОРД ===== */
.st-head{display:flex;align-items:center;gap:12px;margin:0 0 22px;flex-wrap:wrap}
/* Agent в окне раздела: во всю высоту под шапкой, без своей рамки. */
.ag-frame{display:block;width:100%;height:calc(100vh - 57px);height:calc(100dvh - 57px);min-height:480px;border:0;background:#fff}
@media(max-width:900px){.ag-frame{height:calc(100dvh - 120px)}}
.st-per{display:flex;gap:6px;flex-wrap:wrap}
.st-p{border:1px solid var(--line-2);background:#fff;border-radius:9px;padding:9px 16px;
  font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}
.st-p:hover{border-color:var(--ink-3)}
.st-p.on{background:var(--ink);border-color:var(--ink);color:#fff}
.st-head .btn{margin-left:auto}
.st-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.st-c{border:1px solid var(--line);border-radius:13px;padding:16px 18px;background:var(--paper)}
.st-c span{display:block;font-size:12px;color:var(--ink-3);margin-bottom:6px}
.st-c b{display:block;font-family:var(--display);font-size:28px;line-height:1.05;letter-spacing:-.02em}
.st-c i{font-size:11px;color:var(--ink-3);font-style:normal}
.st-box{border:1px solid var(--line);border-radius:13px;padding:18px 20px;margin-bottom:16px;background:var(--paper)}
.st-box h3{font-family:var(--display);font-size:14px;margin:0 0 14px}
.st-note{font-size:12px;color:var(--ink-3);margin:-8px 0 14px}
.st-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.st-2>.st-box{margin-bottom:16px}
.st-rows{display:flex;flex-direction:column;gap:9px}
.st-r{display:grid;grid-template-columns:minmax(0,1fr) 110px 52px;gap:12px;align-items:center}
.st-rn{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-rn small{display:block;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-bar{display:block;height:7px;background:var(--wash);border-radius:99px;overflow:hidden}
.st-bar i{display:block;height:100%;background:var(--blue);border-radius:99px}
.st-r b{font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.st-e{font-size:13px;color:var(--ink-3);margin:0}
.st-chart{display:flex;align-items:flex-end;gap:3px;height:170px;overflow-x:auto;padding-top:8px}
.st-col{flex:1;min-width:16px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:5px}
.st-col i{display:block;width:100%;background:var(--blue);border-radius:4px 4px 0 0;min-height:2px}
.st-col span{font-size:9px;color:var(--ink-3);white-space:nowrap}
.st-heat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.st-h{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink)}
.st-h b{font-variant-numeric:tabular-nums}
.st-hours{display:flex;align-items:flex-end;gap:4px;height:110px}
.st-hh{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px}
.st-hh i{display:block;width:100%;background:var(--green);border-radius:3px 3px 0 0;min-height:2px}
.st-hh span{font-size:9px;color:var(--ink-3)}
.st-warn{border:1px solid var(--line);border-radius:13px;padding:22px;background:var(--wash)}
.st-warn b{display:block;font-size:14px;margin-bottom:6px}
.st-warn span{font-size:13px;color:var(--ink-2);line-height:1.55}
.st-warn code{background:#fff;padding:2px 6px;border-radius:5px;font-size:12px}
@media(max-width:1000px){
  .st-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-2{grid-template-columns:1fr}
  .st-heat{grid-template-columns:1fr}
}

/* ===== ДАШБОРД: выравнивание и размеры ===== */
.st-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.st-c{padding:18px 20px;display:flex;flex-direction:column;justify-content:flex-start;min-height:112px}
.st-c span{font-size:12.5px;margin-bottom:8px;line-height:1.3}
.st-c b{font-size:32px;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums;margin-bottom:6px}
.st-c i{font-size:11.5px;margin-top:auto}

.st-box{padding:20px 22px;margin-bottom:18px}
.st-box h3{font-size:15px;margin:0 0 16px}
.st-2{gap:18px}

/* строки списков: число не переносится, колонка по содержимому */
.st-rows{gap:14px}
.st-r{grid-template-columns:minmax(0,1fr) 120px max-content;gap:16px;align-items:center;min-height:24px}
.st-rn{font-size:14px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.st-rn small{font-size:12px;margin-top:2px;line-height:1.3}
.st-bar{height:8px}
.st-r b{font-size:15px;font-weight:600;white-space:nowrap;text-align:right;
  font-variant-numeric:tabular-nums;min-width:64px;letter-spacing:-.01em}

/* тепловая карта */
.st-heat{gap:10px}
.st-h{padding:16px 18px;font-size:14px;min-height:54px;gap:14px;border-radius:11px}
.st-h span{line-height:1.3}
.st-h b{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}

/* график по дням */
.st-chart{height:190px;gap:4px;padding-top:10px}
.st-col{min-width:20px;gap:7px}
.st-col span{font-size:10px}
.st-hours{height:120px;gap:5px}
.st-hh span{font-size:10px}

@media(max-width:1200px){
  .st-r{grid-template-columns:minmax(0,1fr) 90px max-content;gap:12px}
}
@media(max-width:1000px){
  .st-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-c b{font-size:28px}
  .st-2{grid-template-columns:1fr}
  .st-heat{grid-template-columns:1fr}
}

/* поля контента (перебиваем сброс для admin-режима) */
body.adm-mode .adm-main{padding:28px 34px 80px!important;max-width:var(--maxw)!important;margin:0 auto!important;width:100%!important}
body.adm-mode.live-mode .adm-main{padding:0!important;max-width:none!important}
#stBody{max-width:1240px}
/* блоки не прилипают друг к другу */
#stBody>.st-2{margin-bottom:18px}
#stBody>.st-2>.st-box{margin-bottom:0}
#stBody>.st-box{margin-bottom:18px}
#stBody>*:last-child{margin-bottom:0}

/* ===== длинные названия — в одну строку с многоточием ===== */
.st-rn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-line-clamp:none}
.st-r{min-height:22px;align-items:center}
/* шкалы длиннее в полноширинных блоках */
#stBody>.st-box .st-r{grid-template-columns:minmax(0,1fr) 260px max-content}
#stBody>.st-2 .st-r{grid-template-columns:minmax(0,1fr) 130px max-content}
@media(max-width:1200px){
  #stBody>.st-box .st-r{grid-template-columns:minmax(0,1fr) 180px max-content}
  #stBody>.st-2 .st-r{grid-template-columns:minmax(0,1fr) 100px max-content}
}


/* ===== РАЗДЕЛЫ В СТИЛЕ ДАШБОРДА (по реальной разметке) ===== */
.setw{max-width:1240px}

/* Настройки: .setw > .set-g > .set-f */
.set-g{border:1px solid var(--line);border-radius:13px;padding:20px 22px;margin:0 0 18px;background:var(--paper)}
.set-f{margin:0 0 18px}
.set-f:last-child{margin-bottom:0}
.set-f>span{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin-bottom:7px;line-height:1.35}
.set-f>span .fe-hint{display:block;font-size:12.5px;font-weight:400;color:var(--ink-3);margin-top:4px;font-style:normal;line-height:1.4}
.set-f input,.set-f textarea,.set-f select{
  width:100%;box-sizing:border-box;font:inherit;font-size:14px;padding:11px 13px;
  border:1px solid var(--line-2);border-radius:9px;background:#fff}
.set-f input,.set-f select{height:44px}
.set-f textarea{min-height:92px;resize:vertical;line-height:1.5}
.set-cur{font-size:12px;color:var(--ink-3);margin-top:5px}

/* Баннеры: .bn-wrap > .bn-slot > (.bn-h, .bn-list > .bn-item, .bn-add) */
.bn-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.bn-h{margin:0 0 14px}
.bn-h b{display:block;font-family:var(--display);font-size:16px;margin-bottom:4px}
.bn-h span{display:block;font-size:12px;color:var(--ink-3);line-height:1.45}
.bn-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.bn-item{display:flex;align-items:center;gap:14px;border:1px solid var(--line);
  border-radius:11px;padding:12px 14px;background:var(--wash)}
.bn-item.off{opacity:.5}
.bn-prev{width:78px;height:48px;border-radius:7px;overflow:hidden;background:#fff;
  flex:0 0 auto;border:1px solid var(--line)}
.bn-prev img{width:100%;height:100%;object-fit:cover;display:block}
.bn-prev span{display:block;width:100%;height:100%}
.bn-i{flex:1;min-width:0}
.bn-i b{display:block;font-size:14px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bn-i small{display:block;font-size:12px;color:var(--ink-3);line-height:1.35}
.bn-a{display:flex;gap:6px;flex-wrap:wrap;flex:0 0 auto}
.bn-a .btn{padding:8px 13px;font-size:12px}
.bn-empty{font-size:14px;color:var(--ink-3);background:var(--wash);padding:16px;
  border-radius:10px;margin:0;text-align:center}
.bn-add{width:100%;font-size:14px;padding:11px}

/* Пользователи: .usr-adm > .adm-top + .usr-list > .usr-row + h3.log-h + .log-list > .log-row */
.usr-adm{margin-top:0}
/* ===== пользователи ===== */
.u-adm{display:flex;flex-direction:column}
.u-bar{display:flex;justify-content:flex-end;padding-bottom:14px}
.u-list{display:flex;flex-direction:column;gap:10px}
.u-row{border:1px solid var(--line-2);border-radius:12px;background:var(--paper);overflow:hidden}
.u-head{display:flex;align-items:center;gap:13px;padding:14px 16px}
.u-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--wash);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:600;color:var(--ink-2)}
.u-id{flex:1;min-width:0}
.u-id b{display:block;font-size:14px;font-weight:600;word-break:break-all;line-height:1.3}
.u-id i{display:block;font-style:normal;font-size:12px;color:var(--ink-3);margin-top:2px;min-height:14px}
.u-sel{flex:0 0 auto}
.u-sel select{-webkit-appearance:none;appearance:none;font:inherit;font-size:14px;
  padding:9px 34px 9px 13px;height:38px;min-width:168px;
  border:1px solid var(--line-2);border-radius:9px;background:var(--paper);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7' fill='none'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%236b7076' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center}
.u-sel select:hover{border-color:var(--ink-3)}
.u-act{flex:0 0 auto;display:flex;gap:3px}
.u-act .ls-b:disabled{opacity:.25;cursor:default}
.u-all{margin:0;font-size:12px;color:var(--ink-3);line-height:1.5}
.hc-ph .hc-tph{display:flex;align-items:center;justify-content:center;font-size:12px;
  text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);
  border:1px dashed var(--line-2);background:none}
.u-body{border-top:1px solid var(--line);padding:12px 16px;background:var(--wash)}
.u-all{margin:0;font-size:12px;color:var(--ink-3)}
.u-secs{display:flex;flex-wrap:wrap;gap:7px}
.u-lgh{font-family:var(--display);font-size:16px;margin:28px 0 12px;font-weight:600}
.lg-list{display:flex;flex-direction:column;max-height:400px;overflow:auto;
  border:1px solid var(--line-2);border-radius:12px;background:var(--paper)}
.lg-r{display:grid;grid-template-columns:minmax(90px,1fr) 104px minmax(140px,2fr) 118px;
  gap:12px;align-items:center;font-size:12px;padding:11px 16px;border-bottom:1px solid var(--line)}
.lg-r:last-child{border-bottom:0}
.lg-who{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-act{justify-self:start;padding:3px 10px;border-radius:20px;background:var(--wash);
  border:1px solid var(--line);font-size:12px;font-weight:600;white-space:nowrap}
.lg-what{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-t{color:var(--ink-3);text-align:right;white-space:nowrap}
@media(max-width:700px){
  .u-head{flex-wrap:wrap}
  .u-sel{flex:1 1 100%}
  .u-sel select{width:100%}
  .lg-r{grid-template-columns:1fr auto;grid-template-areas:'who act' 'what t';row-gap:4px}
  .lg-who{grid-area:who}.lg-act{grid-area:act;justify-self:end}
  .lg-what{grid-area:what}.lg-t{grid-area:t}
}
.pg-eh{display:flex;align-items:center;gap:12px;padding:0 0 14px;flex-wrap:wrap}
.pg-eh b{font-size:16px;font-weight:600}

/* ===== конструктор главной ===== */
.hc-m-box{border:1px solid var(--line-2);border-radius:12px;margin-bottom:14px;background:var(--paper);overflow:hidden}
.hc-h{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.hc-h>div:first-child{flex:1;min-width:180px}
.hc-h b{display:block;font-size:16px;font-weight:600}
.hc-h small{display:block;font-size:12px;color:var(--ink-3);margin-top:2px}
.hc-hb{display:flex;align-items:center;gap:8px}
.hc-auto{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);
  border:1px dashed var(--line-2);border-radius:20px;padding:4px 10px}
.hc-reset{font-size:12px!important;padding:6px 10px!important}
.hc-list{display:flex;flex-direction:column}
.hc-c{display:flex;align-items:center;gap:11px;padding:9px 15px;border-bottom:1px solid var(--line)}
.hc-c:last-child{border-bottom:0}
.hc-c .ac-th{width:52px;height:38px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--wash);flex:0 0 auto}
.hc-ct{flex:1;min-width:0}
.hc-ct b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-ct i{display:block;font-style:normal;font-size:12px;color:var(--ink-3);margin-top:2px}
.hc-off{opacity:.5}
.hc-miss{background:rgba(229,72,77,.05)}
.hc-a{display:flex;gap:2px}
.hc-m,.hc-x{border:1px solid transparent;background:none;width:28px;height:28px;border-radius:7px;cursor:pointer;color:var(--ink-2);font-size:14px}
.hc-m:hover,.hc-x:hover{background:var(--wash);border-color:var(--line-2);color:var(--ink)}
.hc-m:disabled{opacity:.25;cursor:default}
.hc-x:hover{color:#b5343a;border-color:rgba(229,72,77,.4)}
.hc-e{margin:0;padding:14px 15px;font-size:12px;color:var(--ink-3);line-height:1.5}
.hc-pick{display:flex;flex-direction:column;max-height:52vh;overflow:auto;margin-top:10px}
.hc-p{display:flex;align-items:center;gap:11px;padding:9px;border:0;border-bottom:1px solid var(--line);
  background:none;cursor:pointer;text-align:left;width:100%}
.hc-p:hover{background:var(--wash)}
.hc-p .ac-th{width:48px;height:36px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--wash);flex:0 0 auto}
.hc-p span{flex:1;min-width:0}
.hc-p b{display:block;font-size:14px;font-weight:600}
.hc-p i{display:block;font-style:normal;font-size:12px;color:var(--ink-3);margin-top:2px}

/* ===== локальный просмотр файла ===== */
.loc-box{margin-top:22px;padding:16px;border:1px dashed var(--line-2);border-radius:12px;
  background:var(--wash);text-align:left}
.loc-box b{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.loc-box p{margin:0 0 12px;font-size:12px;color:var(--ink-3);line-height:1.55}
.loc-badge{position:fixed;left:16px;bottom:16px;z-index:400;display:flex;gap:6px;
  padding:6px;border-radius:12px;background:rgba(16,18,20,.88);box-shadow:0 6px 20px rgba(0,0,0,.28)}
.loc-badge button{border:0;background:none;color:#fff;font:inherit;font-size:12px;font-weight:600;
  padding:7px 13px;border-radius:8px;cursor:pointer}
.loc-badge button:hover{background:rgba(255,255,255,.16)}

/* ===== попап формы ===== */
.ed-ov{position:fixed;inset:0;z-index:210;background:rgba(16,18,20,.42);
  display:flex;align-items:center;justify-content:center;padding:32px 24px;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
body.ed-open{overflow:hidden}
.ed-panel{position:relative!important;top:auto!important;right:auto!important;
  width:min(720px,100%)!important;max-width:100%;height:auto!important;max-height:calc(100vh - 64px);
  display:flex;flex-direction:column;background:#fff;border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.24);overflow:hidden}
.ed-ph{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 26px;border-bottom:1px solid var(--line);flex:0 0 auto}
.ed-ph b{font-size:16px;font-weight:600;line-height:1.3}
.ed-x{width:32px;height:32px;border-radius:9px;border:1px solid transparent;background:none;
  font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer;flex:0 0 auto}
.ed-x:hover{background:var(--wash);border-color:var(--line-2);color:var(--ink)}
.ed-pb{flex:1 1 auto;overflow-y:auto;padding:24px 26px}
.ed-pf{display:flex;align-items:center;gap:10px;padding:18px 26px;
  border-top:1px solid var(--line);flex:0 0 auto;background:var(--paper)}
.ed-form{display:flex;flex-direction:column;gap:18px}
.ed-form .fe{display:flex;flex-direction:column;gap:7px;margin:0}
.ed-panel .fe-l{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.ed-panel .fe-hint{font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-3)}
.ed-panel input,.ed-panel textarea,.ed-panel select{
  width:100%;border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;
  font:inherit;font-size:14px;background:#fff;color:var(--ink)}
.ed-panel textarea{min-height:86px;resize:vertical;line-height:1.55}
.ed-panel input:focus,.ed-panel textarea:focus,.ed-panel select:focus{outline:none;border-color:var(--ink)}
@media(max-width:760px){
  .ed-ov{padding:0;align-items:flex-end}
  .ed-panel{width:100%!important;max-height:94vh;border-radius:16px 16px 0 0}
  .ed-panel .txt-fields,.ed-panel .fe-i18n{grid-template-columns:1fr!important}
}
.lr-notitle{color:#b5343a;font-weight:600}


/* ===== выключение рекламного места ===== */
.bn-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bn-ht{flex:1;min-width:160px}
.bn-sw em{min-width:74px;text-align:right}
.bn-slot.bn-off{opacity:.55}
.bn-slot.bn-off .bn-list,.bn-slot.bn-off .bn-add{filter:grayscale(1)}
.bn-f{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:10px}
.bn-ph{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);cursor:pointer}
.bn-ph input{width:15px;height:15px;accent-color:#007DF8;cursor:pointer;margin:0}
.bn-ph input:disabled{opacity:.4;cursor:default}
.hc-hb .lr-home em{min-width:74px;text-align:right}

/* ===== ровные группы отметок ===== */
.chk-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.chk-scroll{max-height:230px;overflow-y:auto;padding-right:4px}
/* ===== цены заведения ===== */
.vp{display:flex;flex-direction:column;gap:8px}
.vp-r{display:grid;grid-template-columns:150px minmax(0,1fr) 22px;gap:12px;align-items:center}
.vp-k{font-size:14px;color:var(--ink-2)}
.vp-m{font-size:14px;color:var(--ink-3);text-align:center}
/* ===== инфо-доска заведения ===== */
.vi{display:flex;flex-direction:column;gap:8px}
.vi-r{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center;min-height:40px}
.vi-k{font-size:14px;color:var(--ink-2);line-height:1.3}
.vi-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vi-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  border:1px solid var(--line-2);border-radius:9px;overflow:hidden;height:38px}
.vi-s{display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--ink-3);
  cursor:pointer;border-right:1px solid var(--line-2);transition:.14s;user-select:none}
.vi-s:last-child{border-right:0}
.vi-s:hover{background:var(--wash)}
.vi-s.on{background:var(--ink);color:#fff}
.vi-s input{position:absolute;opacity:0;width:0;height:0}
@media(max-width:760px){
  .vp-r,.vi-r{grid-template-columns:1fr;gap:6px}
  .vp-r .vp-m{display:none}
  .vi-3{grid-template-columns:1fr}
  .chk-g{grid-template-columns:1fr}
}

/* ===== инфо-блок объявления ===== */
.db{display:flex;flex-direction:column;gap:8px}
.db-h{display:grid;grid-template-columns:150px repeat(3,minmax(0,1fr));gap:10px;align-items:center;
  padding:0 0 2px}
.db-h em{font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--ink-3)}
.db-r{display:grid;grid-template-columns:150px repeat(3,minmax(0,1fr));gap:10px;align-items:center}
.db-k{font-size:13px;color:var(--ink-2);line-height:1.3}
.db-g{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.db-g>b{display:block;font-size:12px;font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;color:var(--ink-3);margin-bottom:9px}
.db-l{display:flex;flex-direction:column;gap:7px;margin-bottom:9px}
.db-ln{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 30px;gap:8px;align-items:center}
.db-e{margin:0;padding:14px;border:1px dashed var(--line-2);border-radius:10px;
  font-size:12.5px;color:var(--ink-3);line-height:1.5}
@media(max-width:760px){
  .db-h{display:none}
  .db-r{grid-template-columns:1fr;gap:6px}
  .db-ln{grid-template-columns:1fr 1fr 1fr 30px}
}
.rs-go{background:#e5484d;border-color:#e5484d;color:#fff}
.rs-go:disabled{opacity:.6}
.adm-warn{margin:0 0 14px;padding:9px 13px;border-radius:9px;font-size:12.5px;
  background:rgba(255,202,0,.14);border:1px solid rgba(255,202,0,.5);color:#7a5f00}

/* ===== новые поля формы ===== */
.inf{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.inf-r{display:grid;grid-template-columns:1fr 1fr 30px;gap:10px;align-items:start;
  padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--wash)}
.inf-c{display:flex;flex-direction:column;gap:5px;min-width:0}
.inf-c>span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.inf-c input{border:1px solid var(--line-2);border-radius:7px;padding:7px 9px;font:inherit;font-size:13px;background:var(--paper);min-width:0}
.l3{display:flex;flex-direction:column;gap:7px;margin-bottom:8px}
.l3-r{display:grid;grid-template-columns:1fr 1fr 1fr 30px;gap:8px;align-items:center}
.l3-r input{border:1px solid var(--line-2);border-radius:7px;padding:8px 10px;font:inherit;font-size:14px;background:var(--paper);min-width:0}
/* ===== вывод на сайте ===== */
.ib{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:14px;background:#fff}
.ib-r{display:flex;justify-content:space-between;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:14px}
.ib-r:last-child{border-bottom:0}
.ib-k{color:var(--ink-3)}
.ib-v{font-weight:600;text-align:right}
.l3-out{margin:8px 0 0;padding-left:20px;line-height:1.65}
.l3-out li{margin-bottom:5px}
.art-sub{margin-top:26px}
.art-vid-e{position:relative;padding-top:56.25%;margin:20px 0;border-radius:12px;overflow:hidden;background:#000}
.art-vid-e iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.art-vid-l{margin:16px 0;word-break:break-all}
.art-src{margin:20px 0 0;font-size:14px}
.art-src a{color:var(--ink-3)}

/* ===== секции формы ===== */
.fe-sec{margin:22px 0 4px;padding-bottom:9px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:9px}
.fe-sec:first-child{margin-top:0}
.fe-sec span{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.ed-form .fe-sec+.fe{margin-top:12px}

/* ===== блок публикации в форме ===== */
.pub{border:1px solid var(--line-2);border-radius:12px;padding:14px;background:var(--wash);display:flex;flex-direction:column;gap:12px}
.pub-r{display:flex;gap:12px;flex-wrap:wrap}
.pub-f{flex:1;min-width:170px;display:flex;flex-direction:column;gap:5px}
.pub-f span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.pub-f select,.pub-f input{border:1px solid var(--line-2);border-radius:8px;padding:9px 10px;font:inherit;font-size:14px;background:var(--paper)}
.pub-w{border-top:1px solid var(--line);padding-top:12px}
.pub-wt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:8px}
.pub-wr{display:flex;align-items:center;gap:8px;font-size:14px;padding:5px 0}
.pub-wr b{color:#00AE84}
.pub-n{font-size:12px;color:var(--ink-3);margin:6px 0 0;line-height:1.45}
.pub-a{font-size:12px;color:var(--ink-3);margin:0;border-top:1px solid var(--line);padding-top:10px}

/* ===== список материалов ===== */
.ls{display:flex;flex-direction:column}
.ls-bar{display:flex;align-items:center;gap:9px;padding:0 0 14px;flex-wrap:wrap}
.ls-search{flex:1;min-width:210px;border:1px solid var(--line-2);border-radius:10px;padding:10px 13px;
  font:inherit;font-size:14px;background:var(--paper)}
.ls-search:focus{outline:none;border-color:var(--ink-3)}
.ls-f{border:1px solid var(--line-2);border-radius:10px;padding:10px 11px;font:inherit;font-size:14px;
  background:var(--paper);cursor:pointer}
.ls-head{display:flex;align-items:center;gap:10px;padding:0 4px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.ls-cnt{font-size:12px;color:var(--ink-3)}
.ls-bulk{display:none}
.ls-bulk.on{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 13px;margin-bottom:12px;
  background:rgba(0,125,248,.06);border:1px solid rgba(0,125,248,.25);border-radius:11px;font-size:14px}
.ls-rows{display:flex;flex-direction:column;gap:8px}

.lr{display:grid;grid-template-columns:22px 76px minmax(0,1fr) 232px;align-items:center;gap:14px;
  padding:12px 16px;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;
  transition:border-color .15s,box-shadow .15s}
.lr:hover{border-color:var(--ink-3);box-shadow:0 1px 3px rgba(0,0,0,.05)}
.lr-ck{display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
.lr-ck input{width:16px;height:16px;accent-color:#007DF8;cursor:pointer;margin:0}
.lr-ck em{display:none}
.lr-th{display:block}
.lr-th .ac-th{display:block;width:76px;height:54px;border-radius:8px;background-size:cover;
  background-position:center;background-color:var(--wash)}
.lr-main{min-width:0;display:flex;flex-direction:column;gap:6px}
.lr-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);line-height:1}
.lr-sep{opacity:.4}
.lr-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;opacity:.7}
.lr-dot{width:7px;height:7px;border-radius:50%;background:var(--line-2);flex:0 0 auto}
.lr-dot.lr-published{background:#00AE84}
.lr-dot.lr-draft{background:#FFCA00}
.lr-dot.lr-archived{background:var(--ink-3)}
.lr-stl{font-weight:600;color:var(--ink-2)}
.lr-tags{display:flex;flex-wrap:wrap;gap:4px;border:0;background:none;padding:0;cursor:pointer;text-align:left}
.lr-sub{font-size:12px;color:var(--ink-2);line-height:1.3}
.lr-tags i{font-style:normal;font-size:11px;padding:3px 9px;border-radius:20px;background:var(--wash);
  border:1px solid var(--line);color:var(--ink-2);line-height:1.35}
.lr-tags:hover i{border-color:var(--ink-3)}
.lr-tags i.ls-tg0,.lr-tags i.ls-more{background:none;border-style:dashed;color:var(--ink-3)}
.lr-side{display:grid;grid-template-columns:1fr;justify-items:end;gap:7px}
.lr-home{display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none;height:24px}
.lr-home em{font-style:normal;font-size:11.5px;color:var(--ink-3)}
.lr-home input{position:absolute;opacity:0;width:0;height:0}
.ls-sw-b{position:relative;display:inline-block;width:34px;height:19px;background:var(--line-2);
  border-radius:20px;transition:.18s;flex:0 0 auto}
.ls-sw-b:after{content:'';position:absolute;top:2px;left:2px;width:15px;height:15px;background:#fff;
  border-radius:50%;transition:.18s}
.lr-home input:checked+.ls-sw-b{background:#00AE84}
.lr-home input:checked+.ls-sw-b:after{transform:translateX(15px)}
.lr-home input:checked~em{color:#007a5c}
.lr-st{width:100%;-webkit-appearance:none;appearance:none;border:1px solid var(--line-2);border-radius:8px;
  padding:7px 30px 7px 11px;font:inherit;font-size:12px;background-color:var(--paper);cursor:pointer;height:32px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7076' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center}
.lr-act{display:flex;gap:3px}
.ls-b{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;
  background:none;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:14px;
  color:var(--ink-2);line-height:1;text-decoration:none}
.ls-b:hover{background:var(--wash);border-color:var(--line-2);color:var(--ink)}
.ls-b-d:hover{color:#b5343a;border-color:rgba(229,72,77,.4)}

@media(max-width:860px){
  .lr{grid-template-columns:22px 58px minmax(0,1fr);grid-template-areas:'ck th main' '. . side';row-gap:10px}
  .lr-ck{grid-area:ck;align-self:start;padding-top:4px}
  .lr-th{grid-area:th;align-self:start}
  .lr-th .ac-th{width:58px;height:44px}
  .lr-main{grid-area:main}
  .lr-side{grid-area:side;grid-template-columns:auto 1fr auto;align-items:center;justify-items:stretch;
    gap:10px;border-top:1px solid var(--line);padding-top:10px}
  .lr-side .lr-home{justify-self:start}
  .lr-side .lr-act{justify-self:end}
}
/* ===== экран «Добавить» / «Страницы» ===== */
.add-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.add-c{text-align:left;padding:16px;border:1px solid var(--line-2);border-radius:12px;background:var(--paper);
  cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:5px}
.add-c:hover{border-color:var(--ink);transform:translateY(-1px)}
.add-c b{font-size:16px;font-weight:600}
.add-c small{font-size:12px;color:var(--ink-3);line-height:1.4}

/* общее */
.adm-top{display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-wrap:wrap}
.adm-save{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.adm-empty{font-size:14px;color:var(--ink-3);padding:16px 0}
.sub-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px;padding:0;border:0}
.sub-tabs button{border:1px solid var(--line-2);background:#fff;border-radius:9px;
  padding:9px 16px;font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer}
.sub-tabs button:hover{border-color:var(--ink-3)}
.sub-tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}
@media(max-width:1100px){
  .bn-wrap{grid-template-columns:1fr}
}

@media(min-width:641px) and (max-width:980px){
  .hdr .topnav.hdr-r3{overflow-x:auto!important;overflow-y:visible!important}
  .hdr .topnav.hdr-r3 a{flex:0 0 auto}
}

/* админка на телефоне */
@media(max-width:760px){
  .adm-top-bar{flex-wrap:wrap;gap:9px;padding:10px 14px}
  .adm-who{display:none}
  .adm-sp{display:none}
  .adm-logo{font-size:14px}
  .adm-add{padding:8px 13px!important;font-size:12px!important}
  body.adm-mode .adm-main{padding:18px 14px 60px!important}
  .st-head{gap:10px}
  .st-per{width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
  .st-per::-webkit-scrollbar{display:none}
  .st-p{flex:0 0 auto}
  .st-head .btn{margin-left:0}
  .st-cards{grid-template-columns:1fr 1fr;gap:10px}
  .st-c{padding:14px 15px;min-height:96px}
  .st-c b{font-size:24px}
  .st-r{grid-template-columns:minmax(0,1fr) 70px max-content;gap:10px}
  .st-box{padding:16px 15px}
  .bn-wrap{grid-template-columns:1fr}
  .bn-item{flex-wrap:wrap}.set-g{padding:16px 15px}
}

@media(max-width:760px){
  .st-hours{overflow-x:auto;scrollbar-width:none;gap:4px}
  .st-hours::-webkit-scrollbar{display:none}
  .st-hh{flex:0 0 15px}
  .st-chart{overflow-x:auto}
  .st-col{flex:0 0 18px}
}
.inv-ck{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}
.inv-ck input{width:16px;height:16px;accent-color:#007DF8;cursor:pointer;margin:0}
.inv-n{margin:9px 0 0;font-size:12px;color:var(--ink-3);line-height:1.55}

/* ===== резервные копии ===== */
.bk{display:flex;flex-direction:column}
.bk-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:15px 17px;margin-bottom:14px;
  border:1px solid var(--line-2);border-radius:12px;background:var(--wash)}
.bk-tt{flex:1;min-width:220px}
.bk-tt b{display:block;font-size:14.5px;font-weight:600}
.bk-tt small{display:block;font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.bk-ta{display:flex;gap:8px;flex-wrap:wrap}
.bk-up{cursor:pointer;margin:0}
.bk-list{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:12px;
  background:var(--paper);overflow:hidden}
.bk-r{display:flex;align-items:center;gap:14px;padding:13px 17px;border-bottom:1px solid var(--line)}
.bk-r:last-child{border-bottom:0}
.bk-i{flex:1;min-width:0}
.bk-i b{display:block;font-size:14px;font-weight:600}
.bk-i i{display:block;font-style:normal;font-size:11.5px;color:var(--ink-3);margin-top:3px}
.bk-a{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bk-a .btn{font-size:12.5px;padding:7px 13px}
.bk-n{margin:16px 0 0;font-size:12px;color:var(--ink-3);line-height:1.6;max-width:680px}
.bk-err{margin:0 0 14px;padding:11px 14px;border-radius:10px;font-size:12.5px;
  background:rgba(229,72,77,.08);border:1px solid rgba(229,72,77,.35);color:#b5343a}
@media(max-width:700px){.bk-r{flex-wrap:wrap}.bk-a{width:100%}}

/* ===== ссылки, которые выглядят как кнопки ===== */
body.adm-mode .adm-top-bar a.btn{display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;line-height:1;white-space:nowrap;gap:5px}
/* иконочные кнопки: ссылка и кнопка должны выглядеть одинаково */
.hc-m,.hc-x,.ls-b,a.hc-m,a.ls-b{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;
  padding:0!important;margin:0!important;
  border:1px solid transparent!important;background:none!important;
  text-decoration:none!important;line-height:1!important;
  font-family:inherit!important;vertical-align:middle!important;
  -webkit-appearance:none!important;appearance:none!important;cursor:pointer!important}
.hc-m,.hc-x,a.hc-m{width:28px!important;height:28px!important;border-radius:7px!important;font-size:14px!important;color:var(--ink-2)!important}
.ls-b,a.ls-b{width:30px!important;height:30px!important;border-radius:8px!important;font-size:14px!important;color:var(--ink-2)!important}
.hc-m:hover,.hc-x:hover,.ls-b:hover,a.hc-m:hover,a.ls-b:hover{
  background:var(--wash)!important;border-color:var(--line-2)!important;color:var(--ink)!important}
.hc-x:hover,.ls-b-d:hover{color:#b5343a!important;border-color:rgba(229,72,77,.4)!important}
.hc-m:disabled{opacity:.25!important;cursor:default!important}
.hc-m:disabled:hover{background:none!important;border-color:transparent!important;color:var(--ink-2)!important}
/* фокус одинаковый и не разъезжается по размеру */
.hc-m:focus,.hc-x:focus,.ls-b:focus,a.hc-m:focus,a.ls-b:focus{outline:none!important}
.hc-m:focus-visible,.hc-x:focus-visible,.ls-b:focus-visible,a.hc-m:focus-visible,a.ls-b:focus-visible{
  outline:2px solid rgba(0,125,248,.55)!important;outline-offset:1px!important}
.hc-a,.lr-act{display:inline-flex!important;align-items:center!important;gap:3px!important}

/* ===== экран входа ===== */
.adm-login{max-width:360px;margin:0 auto;text-align:center;padding:8px 0}
.adm-login h2{font-family:var(--display);font-size:26px;font-weight:600;margin:0 0 22px}
.adm-login input[type=email],.adm-login input[type=password]{
  width:100%;height:46px;border:1px solid var(--line-2);border-radius:12px;
  padding:0 15px;font:inherit;font-size:15px;background:#fff;margin-bottom:10px}
.adm-login input:focus{outline:none;border-color:var(--ink)}
.adm-rem{display:flex;align-items:center;gap:9px;margin:4px 0 16px;
  font-size:13.5px;color:var(--ink-2);cursor:pointer;user-select:none}
.adm-rem input{width:17px;height:17px;accent-color:#007DF8;cursor:pointer;margin:0;flex:0 0 auto}
.adm-login .btn{width:100%;height:46px;font-size:15px}
.adm-forgot{display:block;width:100%;margin-top:14px;border:0;background:none;
  font:inherit;font-size:13.5px;color:var(--ink-3);cursor:pointer;text-decoration:underline;
  text-underline-offset:3px}
.adm-forgot:hover{color:var(--ink)}
.adm-login .adm-msg{margin:14px 0 0;font-size:13px;line-height:1.5;min-height:19px}
.adm-login .loc-box{text-align:left;margin-top:24px}

/* ===== согласование ===== */
.pg-b{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;
  margin-left:7px;padding:0 5px;border-radius:20px;background:#FFCA00;color:#4a3a00;
  font-style:normal;font-size:12px;font-weight:600;vertical-align:middle}
.lr-flag{grid-column:3/-1;display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin-top:2px;padding:7px 11px;border-radius:9px;font-size:12px}
.lr-flag button{border:1px solid currentColor;background:none;color:inherit;font:inherit;font-size:11.5px;
  font-weight:600;padding:4px 11px;border-radius:20px;cursor:pointer}
.lr-flag button:hover{background:rgba(0,0,0,.06)}
.lr-flag-rev{background:rgba(255,202,0,.16);border:1px solid rgba(255,202,0,.55);color:#7a5f00}
.lr-flag-del{background:rgba(229,72,77,.09);border:1px solid rgba(229,72,77,.4);color:#b5343a}
.lr-dot.lr-review{background:#FFCA00}
.pub-lim{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--ink-3)}

/* полоса над шапкой скрыта до получения настроек — чтобы не мелькала */
#topBanner{display:none}

/* ===== единый вид выпадающих списков в админке ===== */
body.adm-mode select,
.ed-panel select,
.ls-f,
.lr-st,
.u-sel select,
.hc-m-box select{
  -webkit-appearance:none!important;appearance:none!important;
  height:36px!important;min-height:36px!important;
  padding:0 36px 0 12px!important;
  border:1px solid var(--line-2)!important;border-radius:9px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7' fill='none'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%236b7076' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 13px center!important;
  font:inherit!important;font-size:13.5px!important;line-height:34px!important;
  color:var(--ink)!important;cursor:pointer!important;
  text-overflow:ellipsis;
}
body.adm-mode select:hover,.ed-panel select:hover{border-color:var(--ink-3)!important}
body.adm-mode select:focus,.ed-panel select:focus{outline:none!important;border-color:var(--ink)!important}
body.adm-mode select:disabled{opacity:.5!important;cursor:default!important}
.lr-st{width:100%!important}
.u-sel select{min-width:184px!important}
.ls-f{flex:0 0 auto}

/* nav: always scrollable horizontally, never clipped at any width */
.hdr .topnav.hdr-r3{overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap!important;padding-block:6px!important;margin-top:calc(var(--rowgap) - 6px)!important;margin-bottom:0!important;width:100%!important}
.hdr .topnav.hdr-r3::-webkit-scrollbar{display:none}
.hdr .topnav.hdr-r3 a{flex:1 0 auto!important}

/* heroes: spacing title -> subtitle */
.tile-sub{margin-top:10px!important}
/* heroes stacked (narrow): equal titles, subtitles and spacing for all three */
@media(max-width:760px){
  #feature .feat-main .tile-in h2,#feature .feat-s .tile-in h3{font-size:26px!important;line-height:1.15!important;letter-spacing:-.01em!important}
  #feature .tile-in{padding:20px!important}
  #feature .tile-sub{font-size:16px!important;line-height:1.35!important;margin-top:10px!important;opacity:.9}
}

/* listing card: tighter gap between title and description (-4px) */
.lcard-full .ldesc,.lcard-b .ldesc{margin-top:-6px!important}

/* trend rail: 10 in a row -> 5/5 -> 2 per row; square photos */
#venueRail.trend-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
#venueRail .vcard{width:auto!important;min-width:0}
#venueRail .vcard-img{aspect-ratio:1/1!important}
@media(max-width:1200px){#venueRail.trend-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:640px){#venueRail.trend-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* hero: одинаковый цвет и прозрачность описания во всех трёх плитках */
#feature .feat-main .tile-sub,#feature .feat-s .tile-sub{color:#fff!important;opacity:.9!important}
/* мобильная версия: пропорциональные размеры по общей шкале */
@media(max-width:640px){
  #venueRail .vcard-body h3{font-size:18px!important}
  #venueRail .vcard-body .vmeta{font-size:16px!important}
  #venueRail .vcard-body h3,#venueRail .vcard-body .vmeta{line-height:24px!important}
  .lcard-b .ldesc,.lcard-full .ldesc{font-size:14px!important}
  .lcard-b .lprice,.lcard-full .lprice{font-size:18px!important}
  .lcard-b .scat{font-size:12px!important}
}

/* единая шкала: заголовки карточек и цены — 18 */
#todayMod .trow h4,
#venueRail .vcard-body h3,
#topList .tl-info h4,
#homeRatings .poll h3,
#industryMod .lcard-b h4,
#catVenues .lcard-b h4,
.lcard-full .lcard-b h4,
.lcard .lcard-b h4,
.lcard-b h4,
#topList .tl-chk,
.lprice{font-size:18px!important;line-height:1.2!important}
/* цена в мероприятиях — 16 */
.epost-price,.eprice{font-size:16px!important;line-height:1.2!important}
/* подпись «Средний чек» под суммой остаётся мельче */
#topList .tl-chk span{font-size:14px!important}
/* заголовки блоков на главной — 22 */
#collRail .ctile h3,
#agenda .epost h4,
#dealsMod .jcard h3{font-size:22px!important;line-height:1.2!important}

/* объявления: всегда 4 в ряд, на мобильном 2 */
#catVenues.ind-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
#catVenues.ind-grid .lcard{width:auto!important;min-width:0}
@media(max-width:1000px){#catVenues.ind-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:760px){#catVenues.ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* формат · кухня в карточках заведений — как в «Избранных» */
#venueRail .vcard-body .vmeta,
#catVenues .vcard-body .vmeta,
.vcard-body .vmeta{font-size:14px!important;color:var(--ink-2)!important;line-height:1.3!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0}
#venueRail .vcard-body h3{line-height:1.2!important}
#venueRail .vcard-body{gap:4px}

/* заголовок карточки объявления: перебиваем правило с более высокой специфичностью */
#catVenues .lcard.lcard-full .lcard-b h4,
#industryMod .lcard.lcard-full .lcard-b h4,
#catVenues .lcard-full .lcard-b h4,
#industryMod .lcard-full .lcard-b h4,
.lcard.lcard-full .lcard-b h4{font-size:18px!important;line-height:1.2!important}

/* герои: заголовок 40, отступ до описания 20 */
#feature .feat-main .tile-in h2,#feature .feat-main h2{font-size:40px!important;line-height:1.12!important}
#feature .tile-sub,.tile-sub{margin-top:20px!important}
/* мобильный: все три плитки одинаковы — размер, стиль, отступы */
@media(max-width:760px){
  #feature .feat-main .tile-in h2,
  #feature .feat-s .tile-in h3,
  #feature .feat-main h2,
  #feature .feat-s h3{font-size:26px!important;line-height:1.15!important;letter-spacing:-.01em!important;font-weight:600!important}
  #feature .feat-main .tile-sub,
  #feature .feat-s .tile-sub{font-size:16px!important;line-height:1.35!important;margin-top:20px!important;
    color:#fff!important;opacity:.9!important;font-weight:500!important}
  #feature .feat-main .tile-in,#feature .feat-s .tile-in{padding:20px!important}
}

/* описание на карточках подборок — как текстовый блок в маленьких героях */
.ctile-in .ctile-sub{margin:20px 0 0;font-size:14px;line-height:1.25;color:#fff;opacity:.9;font-weight:500;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:760px){
  .ctile-in .ctile-sub{font-size:16px;line-height:1.35;margin-top:20px}
}

/* секретное место: текстовый блок как в главном герое */
#secretMod .tile-in h2{font-size:40px!important;line-height:1.12!important}
#secretMod .tile-sub{margin-top:20px!important;font-size:14px!important;line-height:1.25!important;
  color:#fff!important;opacity:.9!important;font-weight:500!important}
@media(max-width:760px){
  #secretMod .tile-in h2{font-size:26px!important;line-height:1.15!important;letter-spacing:-.01em!important;font-weight:600!important}
  #secretMod .tile-sub{font-size:16px!important;line-height:1.35!important;margin-top:20px!important}
  #secretMod .tile-in{padding:20px!important}
}
#secretMod .tile-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* мелкий текст поверх фото/иллюстрации — слегка прозрачный */
#feature .tile-sub,
#secretMod .tile-sub,
.ctile-in .ctile-sub,
.ctile-cnt,
.tile-lbl,
.epost-date,.epost-loc,.epost-price,
.ecard .epost-date,.ecard .eloc,.ecard .eprice,
.jcard .jdate,.jpromo,.jcard-foot,
.hb-txt p,.hb-arr,
.visa-slogan{opacity:.85!important}
/* баннеры: описание 14 */
.hb-txt p{font-size:14px!important;line-height:1.4!important;margin-top:12px!important}
.visa-slogan{font-size:14px!important;line-height:1.4!important}

/* описания и локация на медиа-карточках — заметная лёгкая прозрачность */
#feature .feat-main .tile-in .tile-sub,
#feature .feat-s .tile-in .tile-sub,
#feature .tile-in .tile-sub,
#secretMod .tile-in .tile-sub,
.ctile .ctile-in .ctile-sub,
.ecard .ecard-body .eloc,
#evGrid .ecard .eloc,
#agenda .epost .epost-loc{opacity:.75!important}



/* акции: 4 в ряд → 2×2 и на телефоне тоже по две; пропорция 16:10 */
#dealsMod.deals-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
#dealsMod .jdeal{aspect-ratio:16/10!important}
@media(max-width:1100px){#dealsMod.deals-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){#dealsMod.deals-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){
  /* карточка вдвое уже — заголовок и подпись мельче, чтобы не рвались */
  #dealsMod .jcard h3{font-size:16px!important;line-height:1.2!important}
  #dealsMod .jdate{font-size:12px!important}
  #dealsMod .jdeal{aspect-ratio:4/5!important}
  #dealsMod .jcard-b{padding:12px!important}
}

/* страница заведения: фото-герой как фото в статье (16:10) */
.dhero{aspect-ratio:16/10!important}
@media(max-width:680px){.dhero{aspect-ratio:16/10!important}}
/* раздел «Мероприятия»: сетка карточек как в афише на главной */
#evGrid.egrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))!important;gap:var(--gap)!important}
#evGrid .epost{width:auto!important;min-width:0}

/* страница заведения: фото в левой колонке, инфо-блок поднят наверх справа */
.dmain .dhero{aspect-ratio:12/5!important;margin-bottom:clamp(22px,3vw,32px)!important}
@media(max-width:860px){.dmain .dhero{aspect-ratio:16/9!important}}

/* приведение отступов к стандарту (--sec 32px) */
.dgrid{gap:var(--sec)!important}
.home-mid{margin:var(--sec) 0!important}

/* правая колонка прокручивается вместе со страницей */
.daside{position:static!important;top:auto!important;max-height:none!important;overflow:visible!important}
/* узкий экран: одна колонка, порядок задаётся перестановкой блоков в venLayout() */
@media(max-width:860px){
  .dgrid{display:block!important}
  .daside{display:none!important}
  .dmain>*{margin-bottom:var(--sec)}
  .dmain .dmap{aspect-ratio:16/9!important;margin-top:0!important}
  .dmain .dad{aspect-ratio:auto!important;margin-top:0!important;padding:22px!important}
  .vgal{grid-template-columns:1fr 1fr!important}
  .vgal-i{aspect-ratio:1/1!important}
}

/* overflow-x:hidden на body ломает sticky — clip даёт тот же эффект без этого побочного действия */
body{overflow-x:clip!important}
/* узкий экран: карта и рекламный блок не должны раздуваться на всю ширину */
@media(max-width:860px){
  .daside .dmap{aspect-ratio:16/9!important;margin-top:0!important}
  .daside .dad{aspect-ratio:auto!important;margin-top:0!important;padding:22px!important}
  .daside .dcard{margin-top:0!important}
}

/* тело статьи — 14 */
.art-body p,.art-body li{font-size:16px!important}

/* рекламный баннер сбоку: размер по блоку текста */
.daside .dad{aspect-ratio:auto!important;padding:22px!important;gap:10px!important;justify-content:flex-start!important}
.daside .dad p{max-width:none!important}/* описание заведения — как тело статьи */
/* текст тела на всех страницах одинаковый: заведение и объявление были чёрными */
.dmain .d-lead{font-size:16px!important;line-height:var(--t-body-lh,1.7)!important;
  font-weight:var(--t-body-w,400)!important;color:var(--t-body-c,var(--ink-2))!important}

/* описание главного героя — как у боковых (14) */
#feature .feat-main .tile-in .tile-sub,#feature .feat-main p.tile-sub{font-size:14px!important}

/* карточки подборок: текстовый блок как в карточке мероприятия */
.ctile-in{padding:16px!important}
.ctile-in h3{margin:0!important}
.ctile-in .ctile-sub{margin-top:8px!important;font-size:14px!important;line-height:1.55!important}
@media(max-width:760px){.ctile-in .ctile-sub{font-size:14px!important;line-height:1.55!important;margin-top:8px!important}}

/* карточки акций: текстовый блок как в карточке мероприятия */
#dealsMod .jcard-b{padding:16px!important}
#dealsMod .jcard h3{margin:0!important;font-size:22px!important;line-height:1.2!important}
#dealsMod .jdeal .jcard-b{row-gap:8px!important;column-gap:0!important}
#dealsMod .jcard-foot{margin-top:0!important;padding-top:0!important}
#dealsMod .jcard h3{margin:0 0 0 0!important}
#dealsMod .jdate{font-size:14px!important;line-height:1.55!important}
@media(max-width:640px){
  #dealsMod .jcard h3{font-size:22px!important}
  #dealsMod .jdate{font-size:14px!important}
}

/* «Другие мероприятия / читайте также» — крупнее и просторнее */
.art-aside .art-aside-card h3,.art-aside-card h3{font-size:20px!important;line-height:1.2!important;margin-bottom:14px!important}
.art-rel{gap:14px!important;padding:14px 0!important}
.art-rel .art-rel-th,.art-rel-th{width:96px!important;height:80px!important}
.art-rel .art-rel-b{gap:6px!important}
.art-rel .art-rel-t,.art-rel-t{font-size:18px!important;line-height:1.25!important}
.art-rel .nrubric{font-size:12px!important}

.art-rel{cursor:pointer}

/* сайдбар статьи: не следует за прокруткой */
.art-aside{position:static!important;top:auto!important}
/* один стиль заголовков в статье: лид как подзаголовок */
.art-lead{font-family:var(--display)!important;font-weight:var(--t-h2-w,600)!important;
  font-size:var(--t-h2-s,clamp(20px,2vw,24px))!important;line-height:var(--t-h2-lh,1.2)!important;
  letter-spacing:var(--t-h2-ls,-.01em)!important;color:var(--t-h2-c,var(--ink))!important;margin-bottom:24px!important}
/* рекламный блок в сайдбаре — по содержимому */
.art-aside .dad{aspect-ratio:auto!important;padding:22px!important;margin-top:16px!important;display:flex!important;flex-direction:column!important;gap:10px!important}

/* теги внизу статей не показываем */
.art-tags{display:none!important}
/* узкий экран: по две карточки в ряд */
@media(max-width:640px){
  #allNews.jgrid,#colGrid,#evGrid.egrid,#catVenues.vgrid,#catVenues.ind-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #allNews .jcard,#colGrid .ctile,#evGrid .epost,#catVenues .vcard,#catVenues .lcard{width:auto!important;min-width:0}
}
/* кнопка «Рядом со мной» доступна на всех экранах */
.cat-main-head{display:flex!important}
#nearBtn.on{background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}/* баннеры: текст белый,кнопки одинаковые */
.dad p{color:#fff!important;opacity:.9}.dad-tag{color:#fff!important;opacity:.8}.dad-cta,.vmb-btn{background:#fff!important;color:var(--blue)!important;font-weight:600!important;
  border-radius:30px!important;padding:13px 22px!important;font-size:14px!important;display:inline-flex!important;
  align-items:center!important;gap:7px!important;white-space:nowrap!important}

/* узкий экран: заголовки карточек в новостях и гиде — как в мероприятиях */
#allNews .jcard h3,#projectsGrid .jcard h3,
#colGrid .ctile h3,
#evGrid .epost h4,#evGrid .epost-in h4{font-size:20px!important;line-height:1.2!important}
@media(max-width:640px){
  #allNews .jcard h3,#projectsGrid .jcard h3,
  #colGrid .ctile h3,
  #evGrid .epost h4,#evGrid .epost-in h4{font-size:22px!important;line-height:1.2!important}
}/* пилюли и метки — без прозрачности */
.chip,.tdir,.scat,.nrubric,.ecat,.tile-lbl,.epost-date,.ctile-cnt,.jpromo,.jdate,.epost-price,.eprice,.dad-tag,.vmb-kicker{opacity:1!important}

/* пагинация: неактивное состояние */
.cat-pager.is-off .cpg{opacity:.45;cursor:default}
.cat-pager .cpg:disabled{opacity:.45;cursor:default}
.cat-pager.is-off .cpg.on{background:transparent!important;color:var(--ink-3)!important;border-color:var(--line)!important}
/* объявления: без кнопки «Рядом со мной» */
[data-view="catalog"].mode-ind #nearBtn{display:none!important}
/* «Рядом со мной» и WhatsApp — одна высота 38px на всех экранах.
   Кнопка фильтров сюда не входит: она круглая, только с иконкой, и её
   боковые поля должны оставаться нулевыми (иначе иконка сжимается). */
#nearBtn,.btn.wa{
  height:38px!important;padding:0 16px!important;font-size:14px!important;
  line-height:1!important;white-space:nowrap}
[data-view="catalog"] .filter-toggle{height:38px!important;line-height:1!important}
/* иконка внутри круглой кнопки фильтров не сжимается флексом */
.fbtn>svg,[data-view="catalog"] .filter-toggle>svg{flex:0 0 auto;width:16px!important;height:16px!important}
/* воздух под пилюлями и кнопками каталога — как под «Фильтрами» в других разделах */
[data-view="catalog"] .cat-main-head{margin-bottom:clamp(18px,2.2vw,26px)!important;
  /* В режиме объявлений кнопки скрыты, но высоту держим — иначе карточки
     подпрыгивают вверх при переключении с заведений */
  min-height:38px}
.catmode{align-items:center}
/* «Рядом» держится у правого края и не съезжает к табам при смене их ширины */
[data-view="catalog"] .cat-main-head #nearBtn{margin-left:auto}
/* Узкий экран: все четыре кнопки каталога в ОДИН ряд.
   Отступы вокруг ряда — как у табов в остальных разделах (16px сверху,
   18px до карточек): убираем лишний зазор пустого сайдбара в гриде. */
@media(max-width:820px){
  [data-view="catalog"] .cat{row-gap:0}
  [data-view="catalog"] .cat-main-head{margin-bottom:18px!important;min-height:0}
}
@media(max-width:560px){
  /* зазор 8px и прижим влево — ровно как у табов в остальных разделах.
     min-width:0 обязателен: grid/flex-элемент по умолчанию растягивается под
     содержимое, и ряд из четырёх кнопок распирал всю страницу вместе с сеткой
     карточек. С ним overflow-x реально ограничивает ряд шириной экрана. */
  [data-view="catalog"] .cat{min-width:0}
  [data-view="catalog"] .cat-main{min-width:0;max-width:100%}
  [data-view="catalog"] .cat-main-head{flex-wrap:nowrap;gap:8px;justify-content:flex-start;
    min-width:0;max-width:100%;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  [data-view="catalog"] .cat-main-head::-webkit-scrollbar{display:none}
  [data-view="catalog"] .cat-main-head .catmode{margin-right:0}
  /* Кнопки — ровно как во всех разделах: свой шрифт, высота, поля и иконки.
     Ничего не сжимаем. Если четыре штуки шире экрана, ряд свайпается вбок,
     но остаётся ОДНИМ рядом и полного размера. */
  [data-view="catalog"] .cat-main-head .cmtab,
  [data-view="catalog"] .cat-main-head .near-btn,
  [data-view="catalog"] .cat-main-head .filter-toggle{
    flex:0 0 auto;white-space:nowrap}
}

/* инфо-блок: подпись и значение не наезжают друг на друга */
.dcard .d-row{grid-template-columns:130px minmax(0,1fr)!important;align-items:start!important}
.dcard .d-k{white-space:normal;overflow-wrap:anywhere}
/* Одна таблица — один вид. Правило было привязано только к странице заведения,
   поэтому у объявления подписи оставались на два кегля крупнее. */
#venueDetail .dcard .d-k,#listingBody .dcard .d-k{font-size:12px;font-weight:600;letter-spacing:.06em}
#venueDetail .dcard .d-row,#listingBody .dcard .d-row{align-items:baseline!important}
.modq-set{margin-bottom:16px}
.modq-set .modq-master{display:block;margin:8px 0}
.modq-set .modq-kinds{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0}
.modq-set .modq-kinds label{display:flex;align-items:center;gap:6px}
.modq-set .modq-hint{font-size:12px;color:var(--ink-3);margin:8px 0 0}
/* очередь ИИ-модератора: карточки как на сайте + просмотр материала */
.mq{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:18px}
.mq-c{border:1px solid var(--line);border-radius:18px;background:var(--paper);overflow:hidden;
  display:flex;flex-direction:column;text-align:left;padding:8px;cursor:pointer;font:inherit;color:inherit;
  transition:transform .18s,box-shadow .18s,border-color .18s}
.mq-c:hover{transform:translateY(-2px);box-shadow:0 14px 32px -22px rgba(0,0,0,.45);border-color:var(--line-2)}
/* Вариант B (10.10.2026): фото в рамке со своими скруглёнными углами, на фото
   только галочка выбора. Тип раздела плашкой над заголовком. Фото есть всегда:
   KI сохраняет обложку у сайта, а если кадр не открылся, встаёт фото раздела. */
.mq-ph{aspect-ratio:4/3;position:relative;background:var(--wash);border-radius:12px;overflow:hidden;display:block}
.mq-cb{padding:12px 8px 6px;display:flex;flex-direction:column;gap:6px;flex:1}
.mq-kl{display:flex;align-items:center;gap:6px;min-width:0}
.mq-ty{font-style:normal;font-size:11px;font-weight:600;color:var(--ink);background:var(--wash);
  border-radius:6px;padding:3px 7px;flex:none;white-space:nowrap}
.mq-kl .mq-hb{background:var(--ink);color:var(--paper)}
.mq-kl .mq-dupb{font-style:normal;font-size:12px;font-weight:600;color:#b4541a;flex:none}
.mq-t{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.25;margin:0;min-height:2.5em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Карточка очереди должна отвечать «о чём это» без открытия: рубрика по-русски,
   заголовок целиком, лид, факты и источник (10.10.2026). */
/* .mq-k занят ещё и подписями в просмотре материала, поэтому строка карточки адресуется через .mq-kl */
.mq-kl .mq-k{font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;padding:0;color:var(--ink-3);display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mq-x{font-size:13px;line-height:1.4;color:var(--ink-2);margin:0;min-height:2.8em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mq-f{font-size:12px;line-height:1.35;color:var(--ink-3);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.mq-f b{font-weight:600;color:var(--ink-2)}
.mq-m{font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.mq-d{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;
  margin-top:auto;padding-top:2px}
.subs{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.sub-when{font-size:12px;color:var(--ink-3);margin-left:auto}
.sub-st{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.sub-ph{display:flex;gap:6px;padding:0 16px 12px}
.sub-ph span{width:46px;height:46px;border-radius:8px;background-size:cover;background-position:center;
  border:1px solid var(--line);flex:none}
.fe-unknown{border-color:var(--warn,#e6a700)!important}
.mq-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
/* выбор нескольких карточек и отклонение разом */
.mq-ck{position:absolute;top:8px;right:8px;z-index:3;width:30px;height:30px;border-radius:8px;
  background:rgba(255,255,255,.92);box-shadow:0 1px 3px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;cursor:pointer}
.mq-ck input{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--ink)}
.mq-c{position:relative}
/* Выделение рисуется поверх фото отдельным слоем: раньше внутренняя тень
   уходила под обложку, и рамка была видна только у текста, рвалась сверху. */
.mq-c.mq-on{border-color:var(--ink)}
.mq-c.mq-on::after{content:"";position:absolute;inset:0;border:2px solid var(--ink);border-radius:18px;
  pointer-events:none;z-index:5}
.mq-c.mq-on:hover{transform:none}
.mq-c.mq-on .mq-ck{background:var(--ink);border-color:var(--ink)}
.mq-c.mq-on .mq-ck input{accent-color:#fff}
.mq-c.mq-flash::after{content:"";position:absolute;inset:0;border:3px solid #e6a700;border-radius:18px;
  pointer-events:none;z-index:5;animation:mqFlash 1.6s ease-out forwards}
@keyframes mqFlash{0%,60%{opacity:1}100%{opacity:0}}
.mq-twin{font-size:12px;line-height:1.3;color:#7a5a0a;display:block;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.mq-flt{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.mq-flt button{font:inherit;font-size:13px;padding:7px 13px;border-radius:99px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink-2);cursor:pointer}
.mq-flt button i{font-style:normal;color:var(--ink-3);margin-left:5px}
.mq-flt button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.mq-flt button.on i{color:rgba(255,255,255,.7)}
.mq-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;
  border:1px solid var(--line);border-radius:12px;background:var(--paper);
  position:sticky;top:8px;z-index:20}
.mq-bar.has-sel{border-color:var(--ink);box-shadow:0 10px 26px -18px rgba(0,0,0,.5)}
.mq-bar .mq-clear{border-color:var(--ink)!important;color:var(--ink)!important;font-weight:600}
.mq-bar .mq-clear[hidden]{display:none!important}
.mq-bar b{font-size:13px}
.mq-bar .sp{flex:1}
.mq-bar .btn{padding:7px 12px;font-size:13px}

/* шапка недельного выпуска: сколько чего накопилось и чего не хватает */
.mqw{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:16px 18px;margin:0 0 16px}
.mqw-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.mqw-h h3{margin:0;font-size:17px}
.mqw-sub{font-size:13px;color:var(--ink-3)}
.mqw-g{display:flex;gap:10px;flex-wrap:wrap}
.mqw-c{display:flex;flex-direction:column;gap:2px;min-width:92px;padding:9px 12px;border-radius:11px;
  border:1px solid var(--line);background:var(--wash)}
.mqw-c b{font-family:var(--display);font-size:22px;line-height:1}
.mqw-c i{font-style:normal;font-size:12px;color:var(--ink-2)}
.mqw-c s{text-decoration:none;font-size:11px;color:var(--ink-3)}
.mqw-c.ok{border-color:#8bbf8b;background:#f2f9f2}
.mqw-c.low{border-color:#e6c98a;background:#fffaf0}
.mqw-c.none{border-color:#e0a3a3;background:#fdf4f4}
.mqw-f{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 0;font-size:13px;color:var(--ink-2)}
.mqw-f b{font-weight:700;color:var(--ink)}
.mqw-plan{margin:12px 0 0;font-size:13px}
/* «Модератор · только просмотр»: видно выпуск и карточки, решать нечем. */
body.mq-ro .modq-set,body.mq-ro .mqw-plan,body.mq-ro .mq-bar,body.mq-ro .mq-ck{display:none!important}
.mqw-plan>summary{cursor:pointer;color:var(--ink-2)}
.mqw-plan .mqw-pg{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:10px 0 0}
.mqw-plan label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}
.mqw-plan input{width:66px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit}
/* группы-полки внутри выпуска */
.mq-grp{margin:0 0 22px}
.mq-grp>h4{margin:0 0 10px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);
  display:flex;align-items:baseline;gap:8px}
.mq-grp>h4 i{font-style:normal;font-size:12px;color:var(--ink-3);letter-spacing:0;text-transform:none}
/* чего не хватает до публикации — прямо на обложке */
.mq-gaps{font-size:12px;line-height:1.25;color:#7a5a0a;background:#fffaf0;border:1px solid #e6c98a;
  border-radius:8px;padding:5px 8px;display:block;margin-top:6px}
.mq-gaps.mq-ok{color:#2c6b2c;background:#f2f9f2;border-color:#8bbf8b}
.mq-c.mq-held .mq-ph{opacity:.72}

/* просмотр: материал глазами читателя */
.mq-ov{position:fixed;inset:0;z-index:90;background:var(--wash-2);overflow:auto;display:none}
.mq-ov.on{display:block}
.mq-ovb{position:sticky;top:0;z-index:2;background:var(--paper);border-bottom:1px solid var(--line);padding:12px 0}
.mq-w{max-width:1080px;margin:0 auto;padding:0 24px}
.mq-ovb .mq-w{display:flex;align-items:center;gap:12px}
.mq-back{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px 0 14px;margin:0;border:1px solid var(--ink);
  border-radius:99px;background:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer;color:var(--paper);flex:none}
.mq-back:hover{opacity:.88}
.mq-ovt{font-size:14px;color:var(--ink-3)}
.mq-pv{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding:26px 24px 60px;align-items:start}
.mq-hero{aspect-ratio:16/9;border-radius:16px;background:var(--wash);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;margin-bottom:20px}
.mq-hero svg{width:34px;height:34px;stroke:var(--ink-3);stroke-width:1.5;fill:none}
.mq-hero span{font-size:12px;color:var(--ink-3);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.mq-h1{font-family:var(--display);font-size:clamp(24px,3vw,32px);font-weight:700;line-height:1.08;margin:0}
.mq-meta{margin-top:9px;color:var(--ink-2);font-size:14px}
.mq-sec{margin-top:26px}
.mq-sec h4{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 11px}
.mq-lead{font-size:17px;line-height:1.6;max-width:62ch;margin:0}
.mq-tabs{display:inline-flex;gap:6px;margin-bottom:12px}
.mq-tab{height:32px;padding:0 13px;border:1px solid var(--line);border-radius:99px;background:var(--paper);
  font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}
.mq-tab.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.mq-board{border:1px solid var(--line);border-radius:16px;background:var(--paper);overflow:hidden}
.mq-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:11px 16px;
  border-bottom:1px solid var(--wash)}
.mq-row:last-child{border-bottom:0}
.mq-k{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding-top:2px}
.mq-v{font-size:14px;min-width:0;word-break:break-word}
.mq-none{color:var(--ink-3);font-style:normal}
.mq-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:14px}
.mq-panel{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:16px}
.mq-panel h4{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 11px}
.mq-from{font-size:12px;color:var(--ink-3);margin-bottom:5px}
.mq-src{font-size:13px;color:var(--ink-2);word-break:break-all;text-decoration:none;
  border-bottom:1px solid var(--line-2)}
.mq-src:hover{color:var(--ink)}
.mq-warn{background:#fff8e1;border:1px solid #f0dfa8;border-radius:12px;padding:13px 15px}
.mq-warn h4{color:#6b5620}
.mq-warn ul{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:7px}
.mq-warn li{font-size:13px;line-height:1.45;color:#6b5620}
.mq-pick{font:inherit;font-size:14px;height:40px;padding:0 11px;border:1px solid var(--line-2);
  border-radius:10px;background:var(--paper);color:var(--ink);width:100%}
.mq-lbl{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.mq-need{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:6px}
.mq-need li{font-size:13px;line-height:1.4;color:var(--ink-2)}
.mq-acts{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.mq-acts .btn{width:100%;justify-content:center}
.mq-note{font-size:12px;color:var(--ink-3);line-height:1.45;margin:11px 0 0}
@media(max-width:900px){.mq-pv{grid-template-columns:1fr;gap:20px}.mq-side{position:static}}
@media(max-width:560px){.mq-row{grid-template-columns:1fr;gap:2px}}
@media(max-width:1100px){
  .dcard .d-row{grid-template-columns:1fr!important;gap:4px!important}
}

/* статьи, мероприятия, подборки: ширина и отступы как на странице заведения */
.art-grid{grid-template-columns:minmax(0,1fr) 340px!important;gap:var(--sec)!important}
.art-body{max-width:none!important}
.art-head{max-width:none!important;margin-bottom:var(--sec)!important}
.art-fig{margin:0 0 var(--sec)!important}
.art-lead{margin-bottom:var(--sec)!important}
@media(max-width:860px){
  .art-grid{grid-template-columns:1fr!important;gap:var(--sec)!important}
}
/* Заголовок не заходит над правой колонкой: шириной с текст, а не со страницу.
   Только там, где под шапкой сетка с колонкой справа; на телефоне колонка одна,
   и ограничивать нечего. */
@media(min-width:861px){
  .art-head:has(+ .art-grid){max-width:calc(100% - 340px - var(--sec))!important}
}

/* подзаголовок слева и заголовок бокового блока — на одном уровне */
.art-body > *:first-child{margin-top:0!important}
.art-aside > *:first-child{margin-top:0!important}
.art-aside-card h3{margin-top:0!important}
.art-body > h2:first-child{padding-top:0!important}
.art-lead-note{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 var(--sec)}

.search-res{display:none}
.search-res.show{display:block;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:70;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 12px 34px rgba(0,0,0,.10);max-height:64vh;overflow:auto;padding:6px 0}
.kbs-row{display:flex;align-items:baseline;gap:10px;padding:11px 16px;
  text-decoration:none;color:inherit;min-width:0}
.kbs-row:hover{background:var(--wash)}
.kbs-name{font-weight:600;font-size:15px;white-space:nowrap;flex:0 1 auto;
  overflow:hidden;text-overflow:ellipsis;max-width:55%}
.kbs-meta{color:var(--ink-2);font-size:13px;flex:1 1 auto;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  text-transform:none;letter-spacing:normal}
.kbs-kind{color:var(--ink-3);font-size:12px;white-space:nowrap;flex:0 0 auto}
.kbs-empty{padding:14px 16px;color:var(--ink-3);font-size:14px}
.hdr-search{position:relative}
@media(max-width:640px){
  .kbs-row{padding:10px 14px;gap:8px}
  .kbs-name{font-size:14px;max-width:52%}
  .kbs-meta{font-size:12px}
  .kbs-kind{display:none}
}

.nf-box{max-width:640px;margin:clamp(40px,8vw,90px) auto;text-align:center}
.nf-box h1{font-family:var(--display);font-weight:600;font-size:clamp(24px,3.2vw,34px);margin-bottom:14px}
.nf-box p{font-size:16px;line-height:1.6;color:var(--ink-2);margin-bottom:26px}
.nf-act{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ═══ правки ═══ */
/* 1. описание в героях и секретном месте — один размер везде */
#feature .feat-main .tile-in .tile-sub,
#feature .feat-s .tile-in .tile-sub,
#feature .tile-sub,
#secretMod .tile-sub,
#secretMod .tile-in .tile-sub{font-size:14px!important;line-height:1.25!important}
@media(max-width:760px){
  #feature .feat-main .tile-sub,#feature .feat-s .tile-sub,
  #secretMod .tile-sub{font-size:14px!important;line-height:1.25!important}
}
/* 2. категории в «Что нового» — как надзаголовки модулей */
#todayMod .tdir{color:var(--ink-3)!important}
/* 3. мелкие подписи — 12 */
#venueRail .vcard-body .vmeta,
#catVenues .vcard-body .vmeta,
.vcard-body .vmeta,
#topList .tl-meta,
#topList .tl-chk span,
#agenda .epost-date{font-size:14px!important}
/* 4. карточки акций — скруглённые, с тенью и плавностью */
#dealsMod .jcard,#dealsMod .jdeal{
  border-radius:var(--r-l)!important;overflow:hidden!important;
  box-shadow:0 1px 2px rgba(0,0,0,.05)!important;
  transition:transform .2s,box-shadow .2s!important}
#dealsMod .jcard:hover,#dealsMod .jdeal:hover{
  transform:translateY(var(--lift))!important;box-shadow:var(--card-sh)!important}

/* рейтинги на главной: только 3 в ряд или 1, промежуточных состояний нет */
#homeRatings .pollgrid,#homeRatings .pollgrid.rtgrid,
#homeRatings .rtgrid,#homeRatings>div{
  grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:860px){
  #homeRatings .pollgrid,#homeRatings .pollgrid.rtgrid,
  #homeRatings .rtgrid,#homeRatings>div{
    grid-template-columns:1fr!important}}
#homeRatings .poll{min-width:0}
/* длинный пункт голосования — в одну строку с многоточием */
.poll-opt,.poll-opt .po-t,.poll-o,.poll-o span{min-width:0}
.poll-opt .po-t,.poll-o>span:first-child,.poll-opt>span:first-child{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.poll h3{overflow-wrap:anywhere}

/* заголовок карточки рейтинга — на 2 меньше */
#homeRatings .poll h3,.poll h3{font-size:16px!important}

/* ускорение отрисовки */
.vcard,.jcard,.ecard,.ctile,.epost,.lcard,.coli,.poll,.trow{
  contain:layout style;will-change:auto}
.photo,.vcard-img,.jcard-img,.ecard-img,.ctile-img,.lcard-img,.coli-img{
  background-size:cover;background-position:center;contain:paint}
img{content-visibility:auto}
/* длинные списки: браузер рисует только видимое */
#catVenues,#allNews,#evGrid,#colGrid{content-visibility:auto;contain-intrinsic-size:1px 1200px}
@media(max-width:860px){
  .visabar,.hbanner{backdrop-filter:none!important}
}

/* «Что нового»: фото занимает ровно половину карточки на всех экранах */
#todayMod .trow{grid-template-columns:1fr 1fr!important}
#todayMod .trow .tthumb{width:100%!important;height:100%!important}
@media(max-width:640px){#todayMod .trow{grid-template-columns:1fr 1fr!important}}

/* готовые идеи и афиша: лента не вылезает за границы страницы */
#collRail .ctile,#agenda .epost{
  flex:0 0 auto!important;
  scroll-snap-align:start}   /* ширина — долей ленты, задана ниже */
/* убираем отрицательный сдвиг: первая карточка ровно по границе контента */
#collRail,#agenda{
  margin-inline:0!important;
  padding-left:0!important;
  /* Правый паддинг убран: он добавлялся к выступу, и пятая карточка
     вылезала на треть вместо 10%. Выступ теперь задаёт только ширина карточки. */
  padding-right:0!important}
@media(max-width:900px){
  /* ширина задаётся долей ленты ниже */
  #collRail,#agenda{padding-right:0!important;padding-top:8px!important;padding-bottom:28px!important}
}
@media(max-width:560px){
  /* ширина задаётся долей ленты ниже */
  #collRail,#agenda{padding-right:0!important;padding-top:8px!important;padding-bottom:28px!important}
}

/* кнопка WhatsApp: зелёная, форма-пилюля как у остальных кнопок */
.page-hero .btn.wa,.ad-hero .btn.wa,a.btn.wa{
  background:#25D366;border-color:#25D366;color:#fff;
  display:inline-flex;align-items:center;gap:8px;border-radius:30px;
  margin-top:clamp(16px,2.5vw,30px)}
.page-hero .btn.wa:hover,a.btn.wa:hover{background:#1eb457;border-color:#1eb457}
/* внутри карточки подборки отступ не нужен */
.coll-cta a.btn.wa{margin-top:0}

/* ════ футер: белый с мягким цветным сиянием ════ */
.ft{
  background:#fff!important;
  color:var(--ink)!important;
  border-top:0!important;
  margin-top:32px!important;                    /* отступ от нижних баннеров до линии */
  padding:0 0 32px!important;
  --ft-h:44px}
/* строка на цветной подложке: описание · иконки */
.ft-new{
  display:flex!important;align-items:center!important;
  gap:32px!important;flex-wrap:nowrap!important;
  margin:32px 0!important;
  padding:26px 28px!important;
  border:0!important;border-radius:18px!important;
  background:var(--wash)!important}
.ft-desc{flex:0 1 auto;min-width:0;
  width:min(58ch,100%);
  margin:0 auto 0 0!important;
  text-wrap:balance
  display:-webkit-box-webkit-box-orient:vertical;
  overflow:hidden;
  color:var(--ink-2)!importantline-height:18px!important;
  max-width:none!important;
  align-self:center}
.ft-soc{flex:0 0 auto;display:flex!important;align-items:center;
  gap:10px!important;flex-wrap:nowrap!important;height:var(--ft-h)}
.ft-ic{
  width:var(--ft-h)!important;height:var(--ft-h)!important;
  flex:0 0 var(--ft-h)!important;
  border:0!important;background:#fff!important;
  color:var(--ink)!important;border-radius:50%!important;
  box-shadow:0 2px 10px rgba(0,0,0,.07)!important;
  transition:background .18s,color .18s,box-shadow .18s!important}
.ft-ic svg{width:19px;height:19px}
.ft-ic:hover,.ft-ic:focus-visible{
  background:var(--ink)!important;color:#fff!important;
  box-shadow:0 4px 14px rgba(0,0,0,.22)!important}
.ft-ic:hover svg,.ft-ic:focus-visible svg,
.ft-ic:hover path,.ft-ic:hover circle,.ft-ic:hover rect{stroke:#fff!important}
.ft-ic:hover circle[fill],.ft-ic:hover path[fill]{fill:#fff!important}
/* строка 2: копирайт и соглашение */
.ft-bottom{display:flex!important;align-items:center!important;
  justify-content:space-between!important;
  gap:8px 22px!important;flex-wrap:wrap!important;
  color:var(--ink-2)!important
  margin-top:32px!important}
.ft-bottom a{color:var(--ink-2)!important}
.ft-bottom a:hover{color:var(--blue)!important}

/* ── узкие экраны: всё в столбик слева, отступы те же 32px ── */
@media(max-width:900px){
  .ft{--ft-h:40px}
  .ft-new{
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:20px!important;
    padding-top:32px!important;
    padding-bottom:32px!important}
  .ft-desc{order:2;width:100%!important
    display:block!important
    text-wrap:pretty;margin:0!important}
  .ft-soc{
    order:3;height:auto;margin-left:0!important;
    flex-wrap:wrap!important;gap:10px!important}
  .ft-bottom{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:8px!important;
    margin-top:32px!important}
  .ft-dot{display:none!important}
}
@media(max-width:900px){
  .ft{margin-top:16px!important;padding-bottom:16px!important}
  .ft-bottom{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important}
}
@media(max-width:640px){
  .ft{--ft-h:36px}
  .ft .wrap{padding-inline:20px}
  .ft-soc{gap:6px!important}
  .ft-bottom{gap:10px!important}
}

/* футер: отступ над строкой равен отступу под ней */
/* нижний шаг баннеров задан выше вместе с запасом под тень */

/* ═══ шапка: единый шаг отступов ═══ */
.hdr>.wrap{
  padding-top:32px!important;
  padding-bottom:32px!important}          /* шторка под меню при прокрутке */
.hdr .hdr-r1{padding:0!important;margin:0!important;align-items:center!important}
.hdr .hdr-r2{margin:0!important}
.hdr .hdr-r3,
.hdr .topnav.hdr-r3{
  margin:16px 0 0!important;
  padding-block:0!important}
[data-view="home"]>.wrap:first-child{padding-top:0!important;margin-top:0!important}
#feature,.feature{margin-top:0!important;padding-top:0!important}

@media(max-width:900px){
  .hdr>.wrap{padding-top:16px!important;padding-bottom:16px!important}
  /* ряд 1: логотип, поиск и язык — одной строкой */
  .hdr .hdr-r1{
    display:flex!important;flex-wrap:nowrap!important;
    align-items:center!important;gap:12px!important;
    padding:0!important;margin:0!important}
  .hdr .hdr-r1 .brand{
    width:auto!important;flex:0 0 auto!important;
    margin:0!important;line-height:0;display:flex;align-items:center}
  .hdr .hdr-r1 .brand img{height:32px;width:auto;display:block}
  .hdr .hdr-r2{flex:1 1 0!important;min-width:0;margin:0!important}
  .hdr .hdr-lang{flex:0 0 auto!important;margin:0!important}
  .hdr .hdr-r3,
  .hdr .topnav.hdr-r3{margin:16px 0 0!important}
}
/* футер: описание всегда сбоку от логотипа, даже на телефоне */
@media(max-width:900px){
  /* описание слева, иконки справа — в одну строку на любом экране */
  .ft-new{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:16px!important}
  .ft-desc{flex:1 1 0!important;width:auto!important;min-width:0display:block!importantmargin:0!important}
  .ft-soc{flex:0 0 auto!important;margin-left:auto!important;
    flex-wrap:nowrap!important;justify-content:flex-end!important}
}
@media(max-width:640px){
  .ft-new{gap:16px!important}
}

/* футер, вариант «плитка»: разделительная линия и ритм отступов */
.ft{padding-top:0!important}
.ft>.wrap{border-top:1px solid var(--line)}
.ft-new{margin:32px 0!important}
.ft-desc{margin:0 auto 0 0!important;align-self:center}
.ft-bottom{border-top:1px solid rgba(0,0,0,.08);padding-top:32px!important;margin-top:0!important}
@media(max-width:900px){
  .ft-new{margin:16px 0!important;padding:18px 18px!important;gap:16px!important}
  .ft-bottom{padding-top:16px!important;margin-top:0!important}
}

/* футер: описание слева, иконки справа; копирайт слева, соглашение справа */
.ft-new{justify-content:space-between!important}
.ft-desc{flex:1 1 auto!important;margin-right:0!important}
.ft-soc{margin-left:auto!important}
.ft-bottom{justify-content:space-between!important}
.ft-bottom .ft-dot{display:none!important}
.ft-bottom>span:first-child{margin-right:auto}
.ft-bottom>a{margin-left:auto}

/* описание в футере — всегда две строки */
.ft-desc{width:min(58ch,100%)!important;
  flex:0 1 auto!important;
  display:-webkit-box!important
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  text-wrap:balance}
@media(max-width:900px){
  .ft-desc{width:min(42ch,100%)!important}
}
@media(max-width:640px){
  .ft-desc{width:min(30ch,100%)!important}
}/* телефон: описание слева, иконки справа — как на остальных экранах */
@media(max-width:640px){
  .ft-new{flex-wrap:nowrap!important;gap:12px!important;padding:16px!important}
  
  .ft-soc{flex:0 0 auto!important;margin-left:auto!important;
    justify-content:flex-end!important;gap:6px!important}
  .ft{--ft-h:32px}
}

/* описание в футере: размер как у копирайта, всегда две строки */
.ft-desc{width:min(20ch,100%)!important;
  flex:0 1 auto!important                       /* 2 × 18px */
  display:-webkit-box!important
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  text-wrap:balance}/* ═══ ФУТЕР: текст ═══ */
/* копирайт и соглашение — читаемый цвет (фон белый), 12px */
.ft-bottom{color:var(--ink-2)!important;font-size:12px!important;line-height:18px!important}
.ft-bottom a,.ft-bottom span{color:var(--ink-2)!important;font-size:12px!important}
.ft-bottom a:hover{color:var(--blue)!important}
/* описание: 14px на широких, 12px на узких; текст переносится и не обрезается */
.ft-desc{
  font-size:14px!important;line-height:22px!important;
  height:auto!important;
  display:block!important;
  -webkit-line-clamp:none!important;
  overflow:visible!important;
  width:min(45ch,100%)!important;   /* две строки, перенос примерно пополам */
  text-wrap:balance}
@media(max-width:900px){
  .ft-desc{
    font-size:12px!important;line-height:18px!important;
    width:min(45ch,100%)!important;flex:0 1 auto!important}
}

/* телефон: сжимаем иконки, чтобы описание уместилось в две строки */
@media(max-width:640px){
  .ft{--ft-h:30px}
  .ft-ic{width:30px!important;height:30px!important;flex:0 0 30px!important}
  .ft-ic svg{width:15px;height:15px}
  .ft-soc{gap:5px!important}
  .ft-new{gap:10px!important;padding:14px!important}
  .ft-desc{font-size:12px!important;line-height:17px!important}
}

/* ═══ футер: цвета как у поисковой строки ═══ */
.ft-new{background:var(--wash)!important}
/* текст описания — тот же серый, что у лупы в поиске */
.ft-desc{color:var(--ink-2)!important}
/* иконки в кружках — того же серого */
.ft-ic{background:#fff!important;color:var(--ink-2)!important;box-shadow:none!important}
.ft-ic svg{stroke:var(--ink-2)!important}
/* при наведении — свой цвет у каждой соцсети */
.ft-ic:hover,.ft-ic:focus-visible{box-shadow:none!important;color:#fff!important}
.ft-ic:hover svg,.ft-ic:focus-visible svg{stroke:#fff!important}
.ft-ic[aria-label="Телефон"]:hover,.ft-ic[href^="tel:"]:hover{background:var(--green)!important}
.ft-ic[aria-label="Почта"]:hover,.ft-ic[href^="mailto:"]:hover{background:var(--yellow)!important;color:var(--ink)!important}
.ft-ic[aria-label="Почта"]:hover svg,.ft-ic[href^="mailto:"]:hover svg{stroke:var(--ink)!important}
.ft-ic[href*="instagram"]:hover{background:var(--pink)!important}
.ft-ic[href*="t.me"]:hover,.ft-ic[href*="telegram"]:hover{background:var(--blue)!important}

/* пилюли на героях: новость синий, заведение бирюзовый, подборка розовый, мероприятие жёлтый */
.tile-lbl.tl-blue{background:var(--blue)!important;color:#fff!important}
.tile-lbl.tl-green{background:var(--green)!important;color:#fff!important}
.tile-lbl.tl-pink{background:var(--pink)!important;color:#fff!important}
.tile-lbl.tl-yellow{background:var(--yellow)!important;color:#fff!important}

/* выбор заведений в подборке */
.vp{display:flex;flex-direction:column;gap:10px}
.vp-list{display:flex;flex-wrap:wrap;gap:8px;min-height:4px}
.vp-chip{display:inline-flex;align-items:center;gap:8px;background:var(--wash);
  border:1px solid var(--line);border-radius:30px;padding:7px 8px 7px 14px;font-size:14px}
.vp-chip button{border:0;background:var(--line);color:var(--ink-2);width:20px;height:20px;
  border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}
.vp-chip button:hover{background:var(--ink);color:#fff}
.vp-search{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:14px}
.vp-search:focus{outline:none;border-color:var(--blue)}
.vp-sug{display:flex;flex-direction:column;gap:2px}
.vp-s{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  text-align:left;padding:10px 14px;border:0;background:#fff;border-radius:10px;cursor:pointer;font:inherit;font-size:14px}
.vp-s:hover{background:var(--wash)}
.vp-s small{color:var(--ink-3);font-size:12px}
.vp-none{padding:10px 14px;color:var(--ink-3);font-size:13px}
.vp-cnt{font-size:12px;color:var(--ink-3)}

/* особенности и поводы: подписи не обрезаются */
.chk-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
/* теги: пилюли одной высоты */
.tp{display:flex;flex-wrap:wrap;gap:8px}
.tp-n{margin-top:12px;font-size:12px;color:var(--ink-3)}

/* ═══ админка: аккуратность ═══ */
/* карточка пользователя */
.u-adm{gap:10px}
.u-row{border:1px solid var(--line)!important;border-radius:14px!important;background:#fff!important}
.u-row .u-h{display:flex;align-items:center;gap:14px;padding:14px 16px;flex-wrap:wrap}
.u-row .u-av{width:38px;height:38px;border-radius:50%;background:var(--wash);
  display:grid;place-items:center;font-weight:600;color:var(--ink-2);flex:0 0 auto}
.u-row .u-mail{font-weight:600;font-size:14px;line-height:1.3}
.u-row .u-st{font-size:12px;color:var(--ink-3)}
.u-row select{padding:9px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13px;background:#fff}
.u-row .u-acts{display:flex;gap:6px;margin-left:auto;align-items:center}
.u-row .u-acts button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);
  background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--ink-2)}
.u-row .u-acts button:hover{border-color:var(--ink);color:var(--ink)}
/* права доступа — пилюлями, а не сплошной строкой */
.u-row .u-perms{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;
  border-top:1px solid var(--line);background:var(--wash)}
.u-row .u-perms label{display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:30px;border:1px solid var(--line);background:#fff;
  font-size:13px;cursor:pointer;white-space:nowrap}
.u-row .u-perms label:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.u-row .u-perms input{width:15px;height:15px;margin:0;accent-color:var(--blue)}

/* переводы разделов: воздух между строками */
.txt-list .txt-row,.txt-r{padding:16px!important;border-radius:14px!important;
  border:1px solid var(--line)!important;background:#fff!important;margin-bottom:12px!important}
.txt-fields{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
  gap:14px!important;align-items:start}
.txt-fields label{display:flex!important;flex-direction:column;gap:6px;font-size:11px;
  letter-spacing:.05em;color:var(--ink-3)}
.txt-fields textarea,.txt-fields input{padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;font:inherit;font-size:14px;color:var(--ink);min-height:44px;resize:vertical}
.txt-fields textarea:focus,.txt-fields input:focus{outline:none;border-color:var(--blue)}

/* теги в отдельном окне — как в форме */
.ed-panel .tp,.ed-pb .tp{display:flex;flex-wrap:wrap;gap:8px}
.ed-panel .tp-i,.ed-pb .tp-i{padding:9px 16px;border-radius:30px;border:1px solid var(--line);
  background:#fff;font-size:14px;line-height:1;white-space:nowrap}
.ed-panel .tp-i.on,.ed-pb .tp-i.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* редактирование страниц: обычная форма */
.pg-form{display:flex;flex-direction:column;gap:14px;margin:0 0 22px}
.pg-f{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px}
.pg-fl{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--ink-3);margin-bottom:10px}
.pg-note{font-size:12px;color:var(--ink-3);margin:0}

/* пометка главного блока в админке */
.hc-main{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:20px;
  background:var(--ink);color:#fff;font-size:11px;letter-spacing:.03em;vertical-align:middle}

.hc-t{padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;
  font-size:12px;cursor:pointer;color:var(--ink-2)}
.hc-t:hover{border-color:var(--ink);color:var(--ink)}
.hc-a{display:flex;gap:6px;align-items:center}

/* выбор цвета пилюли в панели текстов */
.pill-pick{display:flex;flex-wrap:wrap;gap:8px}
.pill-o{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:30px;
  border:1px solid var(--line);background:#fff;font-size:13px;cursor:pointer}
.pill-o input{margin:0;accent-color:var(--blue)}
.pill-o.on{border-color:var(--ink)}

/* аккуратные галочки и размеры в админке */
.u-row .u-perms{gap:6px!important;padding:10px 14px!important}
.u-row .u-perms label{font-size:12px!important;padding:6px 12px!important;gap:7px!important}
.u-row .u-perms input{width:14px!important;height:14px!important}
.chk-g{gap:6px!important}
.set-g h4{font-size:12px!important;letter-spacing:.05em}
.fe-l,.fe-sec span{font-size:11px!important;letter-spacing:.05em}
.txt-fields label{font-size:11px!important}
.pg-fl{font-size:11px!important}
/* следы режима правки на странице не показываем */
.lv-hi,.ed-outline,[data-ed-outline]{display:none!important}
.pg-eh{display:flex;align-items:center;gap:14px;padding:14px 0 20px}
.pg-form{gap:18px!important;margin-top:6px!important}
.pg-f{padding:18px 20px!important}
.pg-f .txt-fields{gap:16px!important;margin-top:4px}
.pg-f textarea{min-height:76px}
.pg-note{margin-top:6px!important}

/* полоса сохранения */
.save-bar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:none;
  align-items:center;gap:14px;padding:14px 24px;background:#fff;
  border-top:1px solid var(--line);box-shadow:0 -6px 22px rgba(0,0,0,.08)}
.save-bar.show{display:flex}
.save-t{font-size:13px;color:var(--ink-2);margin-right:auto}
textarea.dirty,input.dirty{border-color:var(--blue)!important;background:rgba(0,125,248,.04)}

/* раздел «Страницы»: как остальные разделы */
.pg-form{max-width:900px}
.pg-f .txt-fields{grid-template-columns:1fr!important;gap:12px!important}
.pg-f .txt-fields label{max-width:640px}
.pg-eh{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.pg-eh b{font-size:15px}

.pg-sec{font-family:var(--display);font-size:14px;font-weight:600;margin:22px 0 2px;color:var(--ink)}
.pg-sec:first-child{margin-top:0}

/* незаполненное обязательное поле */
.fm-err{border-color:#e5484d!important;background:rgba(229,72,77,.05)!important}

/* отложенная отрисовка тяжёлых блоков */
img{content-visibility:auto}
.photo,.vcard-img,.jcard-img,.ecard-img,.ctile-img,.lcard-img,.coli-img,.tthumb{
  content-visibility:auto;contain-intrinsic-size:1px 220px}

.add-c-own{border-style:dashed!important}
.fe-img{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fe-img input[type=text],.fe-img input:not([type]){flex:1 1 240px;padding:10px 12px;
  border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13px}

/* ── выбор подписи и цвета пилюли: компактно, без кружков ── */
.pill-pick{display:flex;flex-wrap:wrap;gap:6px}
.pill-o{display:inline-flex;align-items:center;justify-content:center;
  padding:7px 14px;border-radius:20px;border:1px solid var(--line);background:#fff;
  font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap;transition:.15s}
.pill-o input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.pill-o:hover{border-color:var(--ink-3)}
.pill-o.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pill-blue.on{background:var(--blue);border-color:var(--blue)}
.pill-green.on{background:var(--green);border-color:var(--green)}
.pill-pink.on{background:var(--pink);border-color:var(--pink)}
.pill-yellow.on{background:var(--yellow);border-color:var(--yellow)}

/* ── чекбоксы: мельче и ровнее ── */
.chk-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:5px}
.chk-i{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;
  line-height:1.3;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}
.chk-i input{width:14px;height:14px;margin:0;flex:0 0 auto;accent-color:var(--blue)}
.chk-i span{flex:1;min-width:0;overflow-wrap:anywhere}
.chk-i.on{border-color:var(--blue);background:rgba(0,125,248,.05)}
.u-row .u-perms label{font-size:12px!important;padding:5px 11px!important;gap:6px!important}
.u-row .u-perms input{width:13px!important;height:13px!important}

/* ── окно тегов: без горизонтальной прокрутки ── */
.ed-panel .tp,.ed-pb .tp,.tp{display:flex!important;flex-wrap:wrap!important;gap:6px!important;
  max-width:100%;overflow:visible!important}
.tp-i{display:inline-flex!important;align-items:center;gap:7px;
  padding:7px 13px!important;border-radius:20px;border:1px solid var(--line);
  background:#fff;font-size:12px!important;line-height:1.2;white-space:nowrap;cursor:pointer}
.tp-i input{position:absolute;opacity:0;width:0;height:0}
.tp-i.on{background:var(--ink);border-color:var(--ink);color:#fff}
.ed-pb,.ed-panel .ed-pb{overflow-x:hidden}

/* корзина */
.tr-list{display:flex;flex-direction:column;gap:8px;max-width:900px}
.tr-i{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);
  border-radius:12px;background:#fff}
.tr-t{flex:1;min-width:0}
.tr-t b{display:block;font-size:14px}
.tr-t i{font-style:normal;font-size:12px;color:var(--ink-3)}
.tr-a{display:flex;gap:8px;align-items:center;flex:0 0 auto}

/* полоса публикации */
.pub-bar{position:fixed;left:0;right:0;bottom:0;z-index:210;display:none;
  align-items:center;gap:14px;padding:14px 24px;background:#fff;
  border-top:2px solid var(--blue);box-shadow:0 -6px 22px rgba(0,0,0,.10)}
.pub-bar.show{display:flex}
.save-bar.show~.pub-bar.show{bottom:64px}

/* заголовок блока и метка на одной линии */
.hc-h>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.hc-h b{font-size:15px;line-height:1.2}
.hc-main{margin-left:0!important;padding:4px 11px!important;font-size:11px!important;
  line-height:1.2!important;border-radius:20px!important;display:inline-flex!important;
  align-items:center;vertical-align:baseline!important}
.hc-h small{flex:1 1 100%;font-size:12px;color:var(--ink-3)}
.hc-top{margin-bottom:14px}
.hc-sync{line-height:1.5}.hc-sync .hc-sync-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.hc-sync .btn{padding:7px 12px;font-size:12.5px}


/* ── чекбоксы: аккуратно и в одну линию с текстом ── */
.u-row .u-perms{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px}
.u-row .u-perms label{display:inline-flex;align-items:center;gap:7px;
  padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;
  font-size:12px;line-height:1;white-space:nowrap;cursor:pointer;margin:0}
.u-row .u-perms label:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.u-row .u-perms input{width:14px;height:14px;margin:0;flex:0 0 auto;accent-color:var(--blue)}
.chk-i,.tp-i{align-items:center}
.chk-i span,.tp-i span{line-height:1.25}

/* ── футер прижат к низу на коротких страницах ── */
html,body{height:auto}
body{min-height:100vh;display:flex;flex-direction:column}
body>.ft{margin-top:auto}
#app{flex:1 0 auto}

/* ═══ размеры полей по смыслу ═══ */
/* ссылка и короткая строка — одна строка на всю ширину */
.set-f>input,
.fe-img-ctl input,
.set-f .fe-img input{
  width:100%;height:44px;min-height:44px;max-height:44px;
  padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:14px;background:#fff}
.set-f>input:focus,.fe-img-ctl input:focus{outline:none;border-color:var(--blue)}

/* картинка: превью слева, ссылка и кнопка справа в столбик */
.fe-img{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start}
.fe-img-prev{width:120px;height:84px;border:1px dashed var(--line);border-radius:10px;
  display:grid;place-items:center;overflow:hidden;background:var(--wash);
  font-size:11px;color:var(--ink-3)}
.fe-img-prev img{width:100%;height:100%;object-fit:contain}
.fe-img-ctl{display:flex;flex-direction:column;gap:8px;min-width:0}
.fe-img-ctl .btn{align-self:flex-start}

/* многострочный текст — высокое поле, текст виден целиком */
.set-f>textarea{width:100%;min-height:96px;height:auto;padding:12px 14px;
  border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14px;
  line-height:1.5;resize:vertical}
.set-f .txt-fields textarea{
  min-height:96px!important;height:auto!important;max-height:none!important;
  padding:10px 12px;line-height:1.5;resize:vertical;overflow:auto}
.set-f .txt-fields input{height:44px;min-height:44px}
/* три языка: на узком экране — в столбик */
.set-f .txt-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.set-f>span{display:block;margin-bottom:8px;font-size:13px;font-weight:600}
.set-f{display:block;margin-bottom:20px}

/* страницы: те же размеры, что в остальных формах */
.pg-f .txt-fields input{width:100%;height:44px;padding:0 14px;
  border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14px}
.pg-f .txt-fields textarea{width:100%;min-height:96px;padding:10px 14px;
  border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14px;
  line-height:1.5;resize:vertical}
.pg-f .txt-fields input:focus,.pg-f .txt-fields textarea:focus{outline:none;border-color:var(--blue)}
.pg-f .txt-fields{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important}

/* галерея: кнопки перестановки и удаления */
.gi{position:relative}
.gi-m{position:absolute;top:50%;transform:translateY(-50%);width:24px;height:24px;
  border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;
  font-size:15px;line-height:1;display:grid;place-items:center;opacity:0;transition:.15s}
.gi-l{left:5px}.gi-r{right:5px}
.gi:hover .gi-m{opacity:1}
.gi-m:hover{background:var(--ink)}
.gi-x{opacity:0;transition:.15s}
.gi:hover .gi-x{opacity:1}

/* длинные заголовки новостей не ломают карточку */
#allNews .jcard h3,#projectsGrid .jcard h3,.jcard-b h3{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;overflow-wrap:anywhere}

/* телефон: карточки гида и афиши крупнее, следующая выглядывает на 20% */
@media(max-width:560px){
  /* ширина задаётся долей ленты ниже */
  #collRail,#agenda{
    gap:var(--gap)!important;
    padding-right:0!important;
    scroll-padding-left:0}
  /* заголовок как на плитках витрины — 26 */
  #collRail .ctile h3{font-size:26px!important;line-height:1.15!important}
  #collRail .ctile-sub{font-size:14px!important;line-height:1.55!important}
  #agenda .epost h4,#agenda .epost-in h4{font-size:26px!important;line-height:1.15!important}
  #agenda .epost-loc,#agenda .epost-date,#agenda .epost-price{font-size:14px!important;line-height:1.55!important}
}

/* карточки проектов: цифра, название, пилюля и стрелка на одной линии */
.accard-head{align-items:center!important}
.accard-tt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.accard-tt h3{
  margin:0!important;
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  line-height:1.15!important}
.accard-chev{align-self:center}
.prsoon-inline{
  display:inline-flex;align-items:center;
  line-height:1!important;
  position:relative;top:0;
  vertical-align:middle}

/* пометка карточек, которые видны на главной */
.hc-c{position:relative}
.hc-live{background:rgba(0,174,132,.05)}
.hc-live-b{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);
  font-size:0;border-radius:3px 0 0 3px}
.hc-m-box .hc-note{font-size:12px;color:var(--ink-3);padding:0 16px 10px}

/* голосования: миниатюра без картинки */
.ac-th-none{background:var(--wash)!important;background-image:none!important;
  border:1px dashed var(--line)}

/* ═══ КОНТАКТЫ ═══ */
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-bottom:var(--gap)}
.ct-grid .ctcard{border:1px solid var(--line);border-radius:var(--r);padding:20px;
  display:flex;flex-direction:column;gap:6px}
.ct-grid .ctk{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-weight:600}
.ct-grid .ctv{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.01em}
.ct-grid .ctp{color:var(--ink-2);font-size:14px}
.map-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative}
.ct-map{width:100%;border:0;display:block;filter:grayscale(1) contrast(1.05)}
.map-badge{position:absolute;left:14px;bottom:14px;background:#fff;border-radius:30px;
  padding:9px 16px;font-size:13px;font-weight:600;box-shadow:0 3px 14px rgba(0,0,0,.14);
  display:flex;align-items:center;gap:8px}
.map-badge i{width:8px;height:8px;border-radius:50%;background:var(--green);display:block;flex:0 0 auto}
.ct-addr{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  margin-top:16px;flex-wrap:wrap}
.ct-addr p{font-size:14px;color:var(--ink-2);line-height:1.5}
.ct-addr b{display:block;color:var(--ink);font-family:var(--display);font-size:16px;margin-bottom:3px}
.ct-wa{display:inline-flex;align-items:center;gap:9px;background:#25D366;color:#fff;
  border-radius:30px;padding:12px 20px;font-weight:600;font-size:14px;transition:.16s}
.ct-wa:hover{background:#1eb757}
@media(max-width:760px){
  .ct-grid{grid-template-columns:1fr}
  .ct-addr{flex-direction:column;align-items:flex-start;gap:var(--gap)}
  .ct-wa{width:100%;justify-content:center}
  .map-badge{left:10px;bottom:10px;font-size:12px;padding:8px 13px}
}

/* права доступа: пилюли вместо голых галочек */
.u-row .u-secs,.u-secs{display:flex!important;flex-wrap:wrap!important;gap:6px!important;
  padding:12px 16px!important;border-top:1px solid var(--line);background:var(--wash)}
.u-sec{display:inline-flex!important;align-items:center;gap:7px;
  padding:6px 12px!important;border-radius:30px;border:1px solid var(--line);
  background:#fff;cursor:pointer;white-space:nowrap;
  font-size:12px!important;line-height:1.2!important;color:var(--ink-2);transition:.15s}
.u-sec span{font-size:12px!important;line-height:1.2!important}
.u-sec input{width:14px!important;height:14px!important;margin:0!important;
  accent-color:var(--blue);flex:0 0 auto}
.u-sec:hover{border-color:var(--ink-3)}
.u-sec.on{background:var(--ink);border-color:var(--ink);color:#fff}
.u-sec.on span{color:#fff}

/* контакты: три карточки и высокая карта */
.ct-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.map-wrap{margin-top:var(--gap)}
.ct-map{width:100%;height:clamp(360px,58vh,620px);border:0;display:block;filter:grayscale(1) contrast(1.05)}
[data-view="contacts"] .sec{padding-bottom:clamp(24px,4vw,40px)}
@media(max-width:900px){ .ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important} }
@media(max-width:640px){
  .ct-grid{grid-template-columns:1fr!important}
  .ct-map{height:clamp(280px,46vh,420px)}
}

/* проекты: раскрыты, стрелка вниз не нужна */
.pr-open .accard-chev{display:none!important}
.pr-open .accard-head{cursor:default!important}
.accard-cta:empty{display:none}

/* текст проектов и рекламы — как описание под заголовком страницы */
.accard-desc,.accard-desc p{
  font-size:clamp(14px,1vw,18px)!important;
  line-height:1.55!important}
/* проекты: описание 14px на любых экранах */
[data-view="projects"] .accard-desc,
[data-view="projects"] .accard-desc p{font-size:14px!important;line-height:1.6!important}
/* контакты и проекты: от низа последнего блока до линии подвала ровно 32 / 16.
   Сам отступ даёт .ft{margin-top}, поэтому у секции обнуляем нижний паддинг */
[data-view="contacts"] .sec,
[data-view="contacts"] .sec.tight{padding-bottom:0!important}
[data-view="contacts"] .map-wrap{margin-bottom:0!important}
body[data-view="contacts"] > .ft{margin-top:32px!important}
@media(max-width:900px){
  body[data-view="contacts"] > .ft{margin-top:16px!important}
}
/* Проекты и реклама — тот же отступ до подвала, что в остальных разделах.
   Там его дают 44px поля сетки (запас под тень), здесь — нижний паддинг секции. */
/* Отступ до подвала везде один: 32 на широких экранах, 16 на узких.
   Его даёт .ft{margin-top:var(--sec)}, секции снизу не добавляют ничего. */
[data-view="projects"] .sec,[data-view="advertise"] .sec{padding-bottom:0}
/* реклама: модули всегда раскрыты, шапка не кликабельна */
[data-view="advertise"] .accard-head{cursor:default}
[data-view="advertise"] .accard-chev{display:none}

/* кнопки в шапке админки одного размера */
.adm-top-bar .btn,.adm-top-bar .adm-site{
  height:36px;padding:0 16px!important;display:inline-flex;align-items:center;
  font-size:14px;line-height:1;border-radius:30px}
.adm-site{gap:6px}
/* строка материала в админке кликабельна */
.hc-ct b,.ls-t b,.ls-name{cursor:pointer}
.hc-ct b:hover,.ls-t b:hover,.ls-name:hover{text-decoration:underline}

/* теги: ни один чип не выходит за пределы контейнера */
.chips,.pp-tabs,.sub-chips{max-width:100%;min-width:0}
.chip{max-width:100%;overflow-wrap:anywhere;word-break:normal;text-wrap:balance}

/* Люди индустрии */
.pp-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.pp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}

/* Тень при наведении уходит на 36px вниз и по 6px в стороны.
   Даём сеткам поле под неё и компенсируем отрицательным отступом,
   чтобы колонки и вертикальный ритм не сдвинулись. */
/* Запас под эффект наведения: карточка поднимается на 2–3px и роняет тень вниз.
   По горизонтали запаса не даём — там хватает бокового отступа страницы,
   а отрицательное поле съедало бы его и резало тень по краям. */
/* Запас под единый эффект наведения: карточка поднимается на 3px
   и роняет тень на 25px вниз и 12 вбок. Поле компенсируется
   отрицательным, поэтому в раскладку и в шаг блоков не входит. */
/* Запас под тень внутри блоков. display:flow-root не даёт отрицательным
   полям просочиться наружу и съесть шаг между блоками — из-за этого
   в прошлый раз карточки слипались. */
/* .cat и .vd — сетки в две колонки, flow-root ломает им раскладку */
.wrap.mod,.wrap.sec,.wrap.home-tail{display:flow-root}
/* Ленты гида и афиши: следующая карточка выглядывает ровно на 10%.
   Ширина считается от видимой части ленты, поэтому доля одинакова
   и на широком экране, и на телефоне. N — сколько карточек влезает целиком. */
#collRail .ctile,#agenda .epost{
  width:calc((100% - 4*var(--gap))/4.1)!important;   /* 4 целых + 10% пятой */
  aspect-ratio:3/4}
@media(max-width:1000px){
  #collRail .ctile,#agenda .epost{width:calc((100% - 3*var(--gap))/3.1)!important}
}
@media(max-width:760px){
  #collRail .ctile,#agenda .epost{width:calc((100% - 2*var(--gap))/2.1)!important}
}
@media(max-width:640px){
  #collRail .ctile,#agenda .epost{width:calc((100% - 1*var(--gap))/1.1)!important}
}

/* Карточки в ряду одной высоты. Иначе короткая оставляет пустоту снизу,
   и зазор между рядами читается больше, хотя сам gap везде 16. */
#allNews,#colGrid,#evGrid,#ppGrid,#catVenues,#indList,
/* Внутренние страницы прижаты к меню так же, как витрина на главной:
   там до контента 5 px, здесь было 37 на списках и до 77 на карточках. */
.page-hero,.vd,.art,.ed{padding-top:6px!important}
#projectsGrid,.pollgrid,.ct-grid,#industryMod{grid-auto-rows:1fr!important}
#allNews>*,#colGrid>*,#evGrid>*,#ppGrid>*,#catVenues>*,#indList>*,
#projectsGrid>*,.pollgrid>*,.ct-grid>*,#industryMod>*{height:100%!important}

/* ═══ ТРИ ЯРУСА КАРТОЧЕК ═══════════════════════════════════
   Внутри яруса — одна ширина и одна высота. Зазор везде 16.
   Правила стоят последними, поэтому перебивают всё, что выше. */

/* Ярус 1 — Новости, Гид, Мероприятия: крупные карточки 4 в ряд */
#allNews,#colGrid,#evGrid{
  display:grid!important;gap:var(--gap)!important;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))!important}
#allNews>.jcard,#colGrid>.ctile,#evGrid>.epost{
  aspect-ratio:3/4!important;
  display:flex!important;flex-direction:column!important;overflow:hidden}
#allNews>.jcard>.photo,#allNews>.jcard>.jcard-img{
  flex:1 1 auto!important;aspect-ratio:auto!important;min-height:0}
/* Фото занимает то, что осталось от карточки после текста, — значит, текст
   обязан быть одной высоты у всех, иначе фото прыгает (владелец, 28.09.2026:
   заголовок в 65 знаков встал в три строки и укоротил фото). Заголовок —
   ровно две строки, подзаголовок — ровно две: длиннее — многоточие, короче —
   место всё равно зарезервировано. Правило для заголовка — 50–60 знаков, его
   считает анкета. */
#allNews>.jcard h3{display:-webkit-box!important;-webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;overflow:hidden!important;height:2.3em!important}
#allNews>.jcard .jcard-b>p{display:-webkit-box!important;-webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;overflow:hidden!important;height:2.9em!important}

/* Ярус 2 — Люди, Каталог, Объявления: компактные карточки 5 в ряд */
#ppGrid,#catVenues,#indList{
  display:grid!important;gap:var(--gap)!important;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,224px),1fr))!important}
#ppGrid>.ppcard,#catVenues>.vcard,#catVenues>.lcard,#indList>.lcard{
  aspect-ratio:4/5!important;
  display:flex!important;flex-direction:column!important;overflow:hidden}
#ppGrid>.ppcard>.photo,#catVenues>.vcard>.photo,#catVenues>.lcard>.photo,
#indList>.lcard>.photo,#catVenues>.lcard>.lcard-img{
  flex:1 1 auto!important;aspect-ratio:auto!important;min-height:0}

/* Ярус 3 — Рейтинги, Проекты, Реклама, Контакты: три столбца */
.pollgrid,#projectsGrid,.ct-grid{
  display:grid!important;gap:var(--gap)!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:start!important}   /* высота блока — по его содержимому */
/* Реклама: три колонки, но блоки не выравниваются по рядам —
   следующий подтягивается сразу под предыдущий в своей колонке. */
#adGrid{display:block!important;column-count:3;column-gap:var(--gap)}
#adGrid .accard{break-inside:avoid;-webkit-column-break-inside:avoid;
  margin:0 0 var(--gap)!important;display:inline-block;width:100%}
/* в колонках зазор по вертикали задаёт нижнее поле блока */
#adGrid .accard{break-inside:avoid;-webkit-column-break-inside:avoid;
  display:block;width:100%;   /* не inline-block: он добавлял межстрочный интервал к зазору */
  margin-top:0!important;margin-left:0!important;margin-right:0!important;
  margin-bottom:var(--gap)!important}
#adGrid .accard,#adGrid .accard:hover{box-shadow:none!important;transform:none!important}
/* Вводка перед списком: полоса во всю ширину блока, но текст внутри
   стоит по той же линии, что заголовок и пункты списка. */
.accard-note{background:var(--wash);border-radius:0;
  padding:12px clamp(20px,2.3vw,26px);
  color:var(--ink-2);font-size:12px;line-height:1.55;margin:0 0 2px}
@media(max-width:900px){#adGrid{column-count:2}}
@media(max-width:620px){#adGrid{column-count:1}}
@media(max-width:900px){
  .pollgrid,#projectsGrid,.ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .pollgrid,#projectsGrid,.ct-grid{grid-template-columns:1fr!important}
}

/* Запас нужен там, где карточки поднимаются. Витрина теперь статична,
   а «Избранные» — карточка со своим паддингом: правило по id перебивало его
   и оставляло пустоту внизу. */
#homeRatings,.home-banners{
  padding-block:6px 28px;margin-block:-6px -28px}
/* ленты прокручиваются по горизонтали — им нужен ещё и боковой запас */
/* боковой запас лентам не нужен: он добавлялся к выступу пятой карточки */

.jgrid,.ngrid,.cgrid,.egrid,.vgrid,.ind-grid,.pp-grid,.prgrid{
  padding-block:6px 28px;margin-block:-6px -28px;
  padding-inline:12px;margin-inline:-12px}
/* ленты с тенью вверх — им нужно больше */
/* поле под тень само себя компенсирует, иначе оно раздвигает блоки */
#todayMod,#dealsMod{padding-block:6px 28px;margin-block:-6px -28px;
  padding-inline:12px;margin-inline:-12px}

/* Поле сеток под тень гасится отрицательным полем и в раскладку не входит,
   поэтому воздух над номерами страниц задаём здесь. */
.jgrid+.cat-pager,.ngrid+.cat-pager,.cgrid+.cat-pager,.egrid+.cat-pager,
.vgrid+.cat-pager,.ind-grid+.cat-pager,.pp-grid+.cat-pager{margin-top:clamp(18px,2.2vw,26px)}
#catPager{margin-top:clamp(18px,2.2vw,26px)}
.ppcard{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;
  cursor:default;transition:.18s;min-width:0;display:flex;flex-direction:column}

.ppcard-img{aspect-ratio:1/1;background-size:cover;background-position:center}
.ppcard-body{padding:16px;min-width:0}
.ppcard-body h3{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:-.01em;
  line-height:1.2;margin:0 0 3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ppmeta{font-size:14px;color:var(--ink-2);line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1180px){ .pp-grid{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media(max-width:700px){ .pp-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* страница человека */
.pp-search{margin-bottom:14px;max-width:420px}
/* фото человека — квадрат в колонке справа, на узких уходит наверх */
.pp-photo{margin:0 0 20px;padding:0}
.pp-photo-i{aspect-ratio:1/1;width:100%;border-radius:var(--r);overflow:hidden;
  background-size:cover;background-position:center;border:1px solid var(--line)}
@media(max-width:920px){.pp-photo{max-width:260px;margin-bottom:24px}}
/* узкие экраны: на странице человека сначала главное фото, потом биография;
   «Ещё люди» уходит вниз. aside растворяется (display:contents),
   его дети становятся элементами общей колонки и получают порядок */
@media(max-width:860px){
  body[data-view="person"] .art-grid .art-aside{display:contents}
  body[data-view="person"] .art-grid .pp-photo{order:-1;margin:0 0 18px}
  body[data-view="person"] .art-grid .art-body{order:0}
  body[data-view="person"] .art-grid .art-aside-card{order:1;margin-top:var(--sec)}
}
.pp-links{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
/* портфолио человека */
.pp-gal-w{margin-top:30px}
.pp-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.pp-gi{display:block;aspect-ratio:1/1;border-radius:var(--r);background:var(--wash) center/cover no-repeat;
  transition:transform .18s,box-shadow .18s}
.pp-gi:hover{transform:translateY(-2px);box-shadow:0 14px 32px -22px rgba(0,0,0,.45)}
@media(max-width:560px){.pp-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}

.pp-links-t{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin-bottom:10px}
.pp-links-row{display:flex;flex-wrap:wrap;gap:8px}
.pp-link{display:inline-flex;align-items:center;padding:9px 16px;border-radius:30px;
  border:1px solid var(--line);font-size:13px;background:#fff;transition:.15s}
.pp-link:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.ppcard{cursor:pointer}
/* ── Каталог: карточки не подгоняются друг под друга ──────────
   Заведения и объявления живут своей высотой, фото строго квадратное.
   На главной это не действует — правило привязано к #catVenues. */
/* Ряды равной высоты — иначе под короткими карточками остаётся пустота
   и последний ряд отходит от пагинации. Фото при этом строго квадратное,
   тянется только текстовая часть. */
#catVenues{grid-auto-rows:1fr!important}
#catVenues>*{height:100%!important}
#catVenues>.vcard,#catVenues>.lcard{aspect-ratio:auto!important}
#catVenues>.vcard>.photo,#catVenues>.vcard>.vcard-img,
#catVenues>.lcard>.photo,#catVenues>.lcard>.lcard-img{
  aspect-ratio:1/1!important;flex:0 0 auto!important;height:auto!important}


/* ── Телефон: два столбца во всех разделах ────────────────────
   Стоит последним, иначе правила ярусов выше перебивают. */
@media(max-width:640px){
  #allNews,#colGrid,#evGrid,#ppGrid,#catVenues,#indList,#projectsGrid,#industryMod{
    grid-template-columns:repeat(2,minmax(0,1fr))!important}
  /* карточка живёт по содержимому, пропорцию задаёт фото */
  #allNews>.jcard,#ppGrid>.ppcard,#indList>.lcard,
  #projectsGrid>.jcard,#industryMod>.lcard,#catVenues>*{aspect-ratio:auto!important}
  /* фото горизонтальное, как на широком экране */
  #allNews>.jcard>.photo,#projectsGrid>.jcard>.photo,
  #indList>.lcard>.photo,#industryMod>.lcard>.photo{
    aspect-ratio:16/10!important;flex:0 0 auto!important;height:auto!important}
  /* портреты и заведения — квадрат */
  #ppGrid>.ppcard>.photo,#catVenues>.vcard>.photo,#catVenues>.lcard>.photo,
  #catVenues>.vcard>.vcard-img,#catVenues>.lcard>.lcard-img{
    aspect-ratio:1/1!important;flex:0 0 auto!important;height:auto!important}
  /* плитки гида и афиши — фото на всю карточку */
  #colGrid>.ctile,#evGrid>.epost{aspect-ratio:3/4!important}
  /* блоки рекламы: один столбец, зазор тот же 16 */
  #adGrid{column-count:1}
  #adGrid .accard{margin-bottom:var(--gap)!important}
  #adGrid .accard:last-child{margin-bottom:0!important}
}

.stu-table{overflow-x:auto}
.stu-table table{width:100%;border-collapse:collapse;font-size:13.5px}
.stu-table th{text-align:left;font-size:11px;font-weight:600;color:var(--ink-3);
  padding:0 12px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}
.stu-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
.stu-table tr:last-child td{border-bottom:none}
.stu-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.stu-table td b{display:block;font-weight:600}
.stu-table td em{display:block;font-style:normal;font-size:12px;color:var(--ink-3)}
.stu-tag{font-style:normal;font-size:10.5px;color:var(--ink-3);border:1px solid var(--line-2);
  border-radius:20px;padding:1px 8px}
.stu-dim td{color:var(--ink-3)}
/* Кадры клиентов: пара «до/после» и подпись под ней */
.stu-kinds{margin:0 0 16px}
.stu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.stu-shot{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;min-width:0}
.stu-pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--wash)}
.stu-pair a,.stu-pair .gone{display:block;aspect-ratio:1;background:var(--wash)}
.stu-pair img{display:block;width:100%;height:100%;object-fit:cover}
.stu-pair .gone{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-3)}
.stu-pair .gone img{display:none}
.stu-pair .stu-wide{grid-column:1/-1;aspect-ratio:2}
.stu-meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.stu-meta b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu-meta em{font-style:normal;font-size:11.5px;color:var(--ink-3);line-height:1.4}
.stu-badge{align-self:flex-start;font-size:11px;font-weight:600;border-radius:99px;padding:2px 9px;margin-bottom:4px;
  border:1px solid var(--line-2);color:var(--ink-2)}
.stu-badge.money{background:var(--ink);border-color:var(--ink);color:#fff}
.stu-badge.free{border-color:#00AE84;color:#00805f}
.stu-sw{display:inline-block;width:9px;height:9px;border-radius:2px;border:1px solid var(--line-2);margin-right:5px;vertical-align:-1px}
.stu-more{margin-top:14px}
