/* ============================================================================
   v3 · ДЕСКТОП (от 1024px). Всё, что ниже 1024, этот файл не трогает.
   ============================================================================
   Слой поверх desktop.css (v2) и экранных файлов v3: грузится последним из v3.
   Идея: контент в контейнере до 1248px по центру, верхняя полоса меню липкая,
   тёмные шапки экранов — НЕ липкие (карточка во всю ширину контейнера, скругление 20),
   сайдбары/итоги — липкие под полосой меню (53px + 16).
   ========================================================================== */
@media (min-width:1024px){
  html.dv3{ --dt-w:1248px; --dt-top:69px; /* 53 полоса меню + 16 воздуха */ }

  /* ── Каркас ───────────────────────────────────────────────────────────── */
  /* storefront-v2 держал body в 1040px — отсюда узкая колонка и пустые поля */
  html.dv3 body{ max-width:none; padding-top:53px; }
  /* Товар — под верхним меню (product.js добавляет его на десктопе), вход — без меню */
  html.dv3 body:has([data-view="auth"]){ padding-top:0; }

  html.dv3 #app > .view{ width:min(var(--dt-w), calc(100% - 48px)); margin:0 auto; padding:24px 0 48px; }
  html.dv3 #app > :is([data-view="cart"], [data-view="checkout"]){ width:min(1080px, calc(100% - 48px)); }
  html.dv3 #app > :is([data-view="profile"], [data-view="order"]){ width:min(720px, calc(100% - 48px)); }
  html.dv3 #app > [data-view="auth"]{ width:min(480px, calc(100% - 48px)); }

  /* Верхнее меню: полоса во всю ширину, пункты по центру, активный — зелёная плашка */
  html.dv3 .nav.v3-nav{ height:53px; align-items:center; gap:4px; z-index:40; border-radius:0; box-shadow:0 1px 0 var(--line); border-bottom:0; }
  html.dv3 .nav.v3-nav button{ height:40px; padding:0 16px; border-radius:12px; gap:8px; font-size:14px; font-weight:500; color:var(--muted); }
  html.dv3 .nav.v3-nav button:hover{ background:var(--bg); color:var(--ink); }
  html.dv3 .nav.v3-nav button.active{ background:var(--green-soft); color:var(--green); font-weight:600; }
  html.dv3 .nav.v3-nav button .v3-i{ width:20px; height:20px; vertical-align:0; }
  html.dv3 .nav.v3-nav button:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
  html.dv3 .nav.v3-nav .ndot{ position:static; margin:0 -4px 0 0; order:3; min-width:18px; height:18px; padding:0 5px;
    font-size:11px; font-weight:700; background:var(--green); color:#fff; box-shadow:none; }

  /* Тёмные шапки вкладок: не липнут (под полосой меню они наезжали на контент),
     живут карточкой во всю ширину контейнера. Сжатие при прокрутке тоже не нужно. */
  html.dv3 #app > .view > .head,
  html.dv3 :is(.v3c-head, .v3p-head, .v3co-head){
    position:relative; top:auto; margin:0; border-radius:var(--v3-r-card); overflow:hidden;
  }
  html.dv3 #app > .view > .head{ padding-left:8px; padding-right:8px; }
  html.dv3 #app > .view > .head.v3-shead{ padding-bottom:12px; }
  html.dv3.is-scrolled .head .srch{ display:flex; }
  html.dv3.is-scrolled .head .tick{ display:block; }

  /* ── 01 Главная ───────────────────────────────────────────────────────── */
  html.dv3 .v3-home{ gap:16px; }
  html.dv3 .v3-home > :empty, html.dv3 .v3-home .js-content > :empty{ display:none; }
  html.dv3 .v3-home .js-content{ display:grid; gap:16px; }
  html.dv3 .v3-home :is(.v3-ents, .v3-dstrip, .v3-addr, .promo-slider, .order-banner,
    .v3-sec, .js-content > .coll, .js-content > .home-values){ margin-top:0; }
  html.dv3 .v3-home .v3-head{ padding-top:20px; padding-bottom:20px; }
  html.dv3 .v3-home .v3-head .srch{ min-height:48px; font-size:15px; }
  /* Строка фактов приходит позже шапки — держим под неё место, чтобы всё ниже не прыгало */
  html.dv3 .v3-home .v3-head .tick{ min-height:16px; }
  html.dv3 .v3-home .v3-head .tick[hidden]{ display:block; visibility:hidden; }
  /* Баннер «установить приложение» — телефонный; на десктопе он ещё и снимался скриптом
     посреди прокрутки (сдвиг 0.35 CLS) */
  html.dv3 .v3-home > .js-pwa-install{ display:none; }
  /* «Магазины у вашего дома» приходят последними (до 6 с на медленной сети) и сталкивали
     всё ниже, если человек уже листал. Пока пусто — белая карточка их высоты (8 магазинов);
     если так и не пришли (город без магазинов) — через 10 с место отпускается. */
  html.dv3 .v3-home > .js-shops:empty{
    display:block; min-height:346px; border-radius:var(--v3-r-card); background:var(--paper);
    animation:dt-unreserve 0s 10s forwards;
  }

  /* Серверный первый экран (ssr.php, #ssr-first) — та же геометрия, что у SPA-главной:
     контейнер, шапка-карточка, место под сетку входов (142) и строку фактов (28). */
  html.dv3 #ssr-first{ width:min(var(--dt-w), calc(100% - 48px)); margin:0 auto; padding-top:24px; }
  html.dv3 #ssr-first > .head{ position:relative; top:auto; border-radius:var(--v3-r-card); padding:20px 8px 48px; margin:0 0 174px; }
  html.dv3 #ssr-first > .head .srch{ min-height:48px; }
  html.dv3 #ssr-first .h1w{ display:none; }
  html.dv3 #ssr-first .promo-slider{ margin-top:0; }

  /* Сетка входов: 10 в ряд, плитка 68, подпись 13 */
  html.dv3 .v3-ents{ grid-template-columns:repeat(10, minmax(0, 1fr)); gap:8px; padding:20px 16px; }
  html.dv3 .v3-ent{ gap:8px; padding:4px 0; border-radius:16px; }
  html.dv3 .v3-ent-ic{ width:68px; height:68px; border-radius:20px; transition:transform .15s ease; }
  html.dv3 .v3-ent-ic .v3-i{ width:28px; height:28px; }
  html.dv3 .v3-ent-l{ font-size:13px; }
  html.dv3 .v3-ent:hover .v3-ent-ic{ transform:translateY(-2px); }

  /* Баннеры: сетка без прокрутки — 2 в ряд, 3 если их ровно 3, один — во всю ширину */
  html.dv3 :is(.v3-home, #ssr-first) .promo-track{
    display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px;
    padding:0; overflow:visible; scroll-snap-type:none;
  }
  html.dv3 :is(.v3-home, #ssr-first) .promo-track:has(> .promo-slide:nth-child(3):last-child){ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  html.dv3 :is(.v3-home, #ssr-first) .promo-track:has(> .promo-slide:only-child){ grid-template-columns:1fr; }
  html.dv3 :is(.v3-home, #ssr-first) .promo-track > .promo-slide{ flex:none; width:auto; min-width:0; }
  html.dv3 :is(.v3-home, #ssr-first) .promo-track > .promo-slide:last-child:nth-child(odd):not(:nth-child(3)){ grid-column:1 / -1; }
  html.dv3 :is(.v3-home, #ssr-first) .promo-banner{ border-radius:var(--v3-r-card); }
  html.dv3 :is(.v3-home, #ssr-first) .promo-banner img{ transition:transform .3s ease; }
  html.dv3 :is(.v3-home, #ssr-first) .promo-banner:hover img{ transform:scale(1.015); }

  /* Секции: поля 20 */
  html.dv3 .v3-home .coll-hdr{ padding:0 20px; }
  html.dv3 .v3-home :is(.v3-sec, .js-content > .coll, .js-content > .home-values){ padding:20px 0; }
  html.dv3 .v3-home .coll .muted[style]{ margin:8px 20px 0 !important; }

  /* Магазины у вашего дома: карточки 3 в ряд (2 на 1024–1279) */
  html.dv3 .v3-hshop-list{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; padding:14px 20px 0; }
  html.dv3 .v3-hshop{ padding:12px; border-radius:16px; background:var(--bg); min-height:76px; }
  html.dv3 .v3-hshop:hover{ background:var(--green-soft); }

  /* «Рядом с вами» и полки: карточки сеткой, 8 в ряд (6 на 1024–1279) — лишние прячем,
     чтобы полка не рвалась на неполный второй ряд; «Все» ведёт в полный список. */
  html.dv3 .v3-home .coll-row{
    display:grid; grid-template-columns:repeat(8, minmax(0, 1fr)); gap:20px 14px;
    padding:14px 20px 0; overflow:visible;
  }
  html.dv3 .v3-home .coll-row > .card:nth-child(n+9){ display:none; }
  html.dv3 .v3-home .coll-row .card{ flex:none; width:auto; min-width:0; }
  html.dv3 .v3-home .coll-row .card .img{ height:auto; aspect-ratio:1 / 1; border-radius:var(--v3-r-photo); }
  html.dv3 .v3-home .coll-row .card.v3-pcard .img img{ padding:10%; }
  html.dv3 .v3-home .coll-row .card.v3-pcard .buy{ right:8px; bottom:8px; }
  html.dv3 .v3-home .coll-row .card.v3-pcard .pr .now{ font-size:16px; }
  html.dv3 .v3-home .coll-row .card.v3-pcard .nm{ font-size:13px; }

  html.dv3 .v3-home > .js-stories-strip .story-strip{ padding:4px 0; }
  html.dv3 .v3-home .home-posts .posts{ grid-template-columns:repeat(4, minmax(0, 1fr)); padding:14px 20px 0; }
  html.dv3 .v3-home .home-posts .posts-all{ margin:14px 20px 0; }
  html.dv3 .v3-home .home-values .values{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(0, 1fr); padding:14px 20px 0; }
  html.dv3 .v3-home .home-values .val-card:last-child:nth-child(odd){ grid-column:auto; }

  /* Товарная карточка: мягкий ховер */
  html.dv3 .card.v3-pcard{ cursor:pointer; }
  html.dv3 .card.v3-pcard:hover{ transform:none; box-shadow:none; }
  html.dv3 .card.v3-pcard .img img{ transition:transform .2s ease; }
  html.dv3 .card.v3-pcard:hover .img img{ transform:scale(1.04); }
  html.dv3 .card.v3-pcard .add:hover{ background:var(--green); color:#fff; }
  html.dv3 .card.v3-pcard .add:hover svg{ color:#fff; }

  /* ── 08 Каталог: товары слева, рубрики-сайдбар справа ────────────────── */
  html.dv3 [data-view="catalog"]{ grid-template-columns:minmax(0, 1fr) 280px; gap:16px 24px; padding-top:24px; }
  html.dv3 #app > [data-view="catalog"]{ background:transparent; min-height:0; }
  html.dv3 [data-view="catalog"] > .head{ margin-bottom:8px; }
  html.dv3 [data-view="catalog"].v3-cat > :is(.js-v3tiles, .js-grid){ background:var(--paper); border-radius:var(--v3-r-card); padding:20px; }
  html.dv3 [data-view="catalog"].v3-cat > :is(.js-v3tiles, .js-grid):empty{ display:none; }
  html.dv3 [data-view="catalog"].v3-cat .js-v3tiles .v3-sech{ padding-top:24px; }
  /* Вход в каталог: плитки рубрик приходят через ~2–3 с после скелетона товаров и
     сталкивали его вниз (CLS 0.2). Пока плиток нет — держим под них место, а скелетон
     «Все товары» не показываем. Страховка: через 5 с всё показывается как есть. */
  html.dv3 [data-view="catalog"].v3-cat:not(.v3-shop):has(> .chips .v3-chip.is-on[data-cat="all"]):has(> .head .search input:placeholder-shown) > .js-v3tiles[hidden]{
    display:block; min-height:560px; animation:dt-unreserve 0s 5s forwards;
  }
  html.dv3 [data-view="catalog"].v3-cat:not(.v3-shop):has(> .chips .v3-chip.is-on[data-cat="all"]):has(> .head .search input:placeholder-shown):has(> .js-v3tiles[hidden]) > .js-grid{
    visibility:hidden; animation:dt-reveal 0s 5s forwards;
  }
  html.dv3 [data-view="catalog"] > .chips.v3-chips{
    top:var(--dt-top); max-height:calc(100vh - var(--dt-top) - 16px); overflow-y:auto; scrollbar-width:thin;
    margin:0; padding:16px; gap:4px; border:0; border-radius:var(--v3-r-card); box-shadow:none; background:var(--paper);
  }
  html.dv3 [data-view="catalog"] > .chips.v3-chips::before{ font-size:11px; letter-spacing:.06em; padding:0 8px 8px; color:var(--v3-sub); }
  html.dv3 [data-view="catalog"] > .chips .v3-chip{ border:0; border-radius:12px; padding:10px 12px; font-size:14px; background:transparent; }
  html.dv3 [data-view="catalog"] > .chips .v3-chip:hover{ background:var(--bg); }
  html.dv3 [data-view="catalog"] > .chips .v3-chip.is-on{ background:var(--head); color:var(--on-head); }
  html.dv3 .v3-tiles{ grid-template-columns:repeat(6, minmax(0, 1fr)); gap:12px; grid-auto-flow:dense; }
  html.dv3 .v3-tile, html.dv3 .v3-tile.is-w, html.dv3 .v3-tile.is-f{ grid-column:span 1; min-height:150px; }
  html.dv3 .v3-tile .v3-tile-t{ font-size:14px; }
  html.dv3 .v3-tile .v3-tile-ph{ width:86%; height:62%; }
  html.dv3 .v3-tile{ transition:transform .15s ease; }
  html.dv3 .v3-tile:hover{ transform:translateY(-2px); }
  html.dv3 [data-view="catalog"].v3-cat .grid{ grid-template-columns:repeat(5, minmax(0, 1fr)); gap:24px 16px; padding:0; }

  /* ── 02 Магазин: рельс рубрик слева (липкий), товары сеткой, карточка магазина справа ── */
  html.dv3 [data-view="catalog"].v3-shop > .js-shopcard{ top:var(--dt-top); background:transparent; padding:0; }
  html.dv3 .v3-shop .v3-shopbody{ grid-template-columns:200px minmax(0, 1fr); gap:16px; background:transparent; min-height:0; }
  html.dv3 .v3-shop .v3-rail{
    top:var(--dt-top); max-height:calc(100vh - var(--dt-top) - 16px); min-height:0; padding:8px;
    background:var(--paper); border-radius:var(--v3-r-card);
  }
  html.dv3 .v3-shop .v3-rail-i{ min-height:40px; padding:10px 12px; border-radius:12px; font-size:14px; }
  html.dv3 .v3-shop .v3-rail-i:hover{ background:var(--bg); color:var(--ink); }
  html.dv3 .v3-shop .v3-rail-i.is-on{ background:var(--green-soft); color:var(--green); }
  html.dv3 .v3-shop .v3-rail-i.is-on::before{ display:none; }
  html.dv3 .v3-shop .v3-rail-i.is-promo.is-on{ background:var(--red-soft); color:var(--red); }
  html.dv3 .v3-shop .v3-shopmain{ background:var(--paper); border-radius:var(--v3-r-card); padding:4px 8px 8px; align-self:start; }
  html.dv3 .v3-shop .v3-railh{ padding:16px 12px 4px; font-size:20px; }
  html.dv3 [data-view="catalog"].v3-shop .grid{
    display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:24px 16px; padding:12px 12px 16px;
  }

  /* ── 09 Магазины: карточки 3 в ряд (2 на 1024–1279) ────────────────────── */
  html.dv3 [data-view="shops"].v3-shops{ min-height:0; padding-bottom:48px; }
  html.dv3 .v3-shops > .head{ margin-bottom:16px; }
  html.dv3 .v3-shops .js-chips{ padding:16px 0 2px; }
  html.dv3 .v3-shops-cnt{ padding:12px 0 10px; }
  html.dv3 .v3-shops-list{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; max-width:none; padding:0; }
  html.dv3 .v3-shopc{ transition:transform .15s ease; }
  html.dv3 .v3-shopc:hover{ transform:translateY(-2px); }
  html.dv3 .v3-shopc-strip, html.dv3 .v3-shopc-strip .v3-photo{ height:140px; }

  /* ── 03 Товар: фото слева (липкое), инфо справа, «Добавить» — в правой колонке ── */
  html.dv3 body [data-view="product"]{
    grid-template-columns:minmax(0, 1.15fr) minmax(360px, 1fr); grid-template-rows:auto;
    gap:0 32px; padding:24px 0 48px; min-height:0;
  }
  html.dv3 body [data-view="product"] .pd-hero.v3-pd-hero{
    grid-column:1; grid-row:1 / span 3; position:sticky; top:var(--dt-top); align-self:start;
    height:auto; padding:16px; border-radius:var(--v3-r-card); box-shadow:none;
  }
  html.dv3 .v3-pd-photo{ width:100%; height:auto; aspect-ratio:1 / 1; max-height:calc(100vh - 140px); margin:12px auto 0; padding:0; font-size:180px; }
  html.dv3 .v3-pd-ib:hover{ background:var(--line); }
  html.dv3 body [data-view="product"] .pd-sheet.v3-pd-sheet{
    grid-column:2; grid-row:1; padding:0 0 96px; border-radius:0; background:transparent; box-shadow:none;
  }
  html.dv3 .v3-pd-sec{ border-radius:var(--v3-r-card); padding:16px 20px; }
  html.dv3 .v3-pd-nm{ font-size:24px; font-weight:700; line-height:1.2; }
  /* Плашка лежит в конце правой колонки (на месте нижнего поля листа) и липнет к низу окна */
  html.dv3 body [data-view="product"] .sticky-bar.v3-pd-bar{
    grid-column:2; grid-row:1; align-self:end; position:sticky; bottom:16px; top:auto; left:auto; right:auto;
    width:auto; max-width:none; margin:0; padding:0; transform:none; background:none; z-index:6;
  }
  html.dv3 body [data-view="product"] .v3-pd-bar .inner.v3-bar{
    max-width:none; margin:0; border:0; border-radius:var(--v3-r-card); padding:10px 12px; box-shadow:0 8px 28px rgba(0,20,10,.12);
  }
  html.dv3 body [data-view="product"] .rrow{ grid-template-columns:repeat(3, minmax(0, 1fr)); }

  /* ── 04 Корзина: список слева, кнопка + итоги справа (липкие) ─────────── */
  html.dv3 [data-view="cart"] .v3c-head{ margin-bottom:16px; padding:20px 24px; }
  html.dv3 [data-view="cart"] .js-body > div{
    grid-template-columns:minmax(0, 1fr) 340px; grid-template-rows:auto auto auto 1fr; gap:16px 24px;
  }
  html.dv3 [data-view="cart"] .js-body > div > :not(.v3c-tot):not(.v3c-bar){ grid-column:1; }
  html.dv3 [data-view="cart"] .cart-list{ grid-row:auto; background:transparent; border:0; border-radius:0; overflow:visible; gap:16px; }
  html.dv3.dk [data-view="cart"] .cart-list{ background:transparent; border:0; }
  html.dv3 [data-view="cart"] .cart-list > .v3c-shop{ margin:0; }
  html.dv3 [data-view="cart"] .v3c-upsell{ margin:0; padding:16px 20px; background:var(--paper); border-radius:var(--v3-r-card); }
  html.dv3 [data-view="cart"] :is(.v3c-up-title, .v3c-up-row){ padding-left:0; padding-right:0; }
  html.dv3 [data-view="checkout"] .js-body > .empty{ grid-column:1 / -1; }
  /* Кнопка и итоги делят одну клетку во всю высоту: так обе липнут, пока листается список */
  html.dv3 [data-view="cart"] :is(.v3c-bar, .v3c-tot){ grid-column:2; grid-row:1 / -1; align-self:start; position:sticky; }
  html.dv3 [data-view="cart"] .v3c-bar{ top:var(--dt-top); bottom:auto; margin:0; padding:0; background:none; box-shadow:none; z-index:2; }
  html.dv2.dv3 [data-view="cart"] .order-totals.v3c-tot{ top:calc(var(--dt-top) + 62px); margin:62px 0 0 !important; border:0; border-radius:var(--v3-r-card); }

  /* ── 05 Оформление: секции слева, итоги + кнопка справа (липкий блок) ── */
  html.dv3 [data-view="checkout"] .v3co-head{ margin-bottom:16px; }
  html.dv3 [data-view="checkout"] .js-body{
    display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:0 24px; align-items:start;
  }
  html.dv3 [data-view="checkout"] .js-body > *{ grid-column:1; min-width:0; }
  html.dv3 [data-view="checkout"] .js-body > .v3co-end{
    grid-column:2; grid-row:1 / span 30; position:sticky; top:var(--dt-top); align-self:start;
    display:flex; flex-direction:column; gap:10px;
  }
  html.dv3 [data-view="checkout"] .co-sec{ border:0; border-radius:var(--v3-r-card); }
  html.dv3 [data-view="checkout"] .v3co-end .order-totals{ margin:0 !important; border:0; border-radius:var(--v3-r-card); }
  html.dv3 [data-view="checkout"] .v3co-bar{ position:static; margin:0; padding:0; background:none; box-shadow:none; }
  html.dv3 [data-view="checkout"] .v3co-slots{ flex-wrap:wrap; overflow:visible; }

  /* ── 07 Профиль / 06 Заказ: колонка 720 по центру ──────────────────────── */
  html.dv3 [data-view="profile"] :is(.v3p-live, .v3p-orders, .v3p-menu){ width:auto; margin:12px 0 0; }
  html.dv3 [data-view="profile"] .v3p-head{ padding:24px; }
  html.dv3 [data-view="profile"] .v3p-theme{ top:16px; right:16px; }

  /* ── Поиск: модалка 720 по центру с затемнением ─────────────────────────
     Затемнение — тень самой модалки (подложки в разметке нет); клик мимо не закрывает,
     закрывает «Отмена» / Esc, как и раньше. */
  html.dv3 .v3s{
    inset:72px 0 auto 0; margin:0 auto; width:min(720px, calc(100% - 48px));
    height:auto; max-height:min(760px, calc(100vh - 120px)); border-radius:var(--v3-r-card); overflow:hidden;
    /* затемнение — тень без размытия (заливка, не блюр) + короткая мягкая тень самой модалки */
    box-shadow:0 0 0 100vmax rgba(0,10,5,.5), 0 16px 40px rgba(0,0,0,.25);
  }
  html.dv3 .v3s-head{ padding:14px 20px; }
  html.dv3 .v3s-body{ padding:0 20px 24px; }
  /* Ленты «в край» рассчитаны на поле 16 — у модалки поле 20 */
  html.dv3 .v3s :is(.v3s-tabs, .v3s-prev, .v3-chips.v3s-flt){ margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; }
  html.dv3 .v3s .grid{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
  /* Мышью горизонтальную ленту без полосы не пролистать — на десктопе разделы и магазины
     переносятся строками. */
  html.dv3 .v3s-rubs{ flex-flow:row wrap; margin:0; padding:0; overflow:visible; }
  html.dv3 .v3s-rubs > div{ display:contents; }
  html.dv3 .v3s-rubs > div::after{ display:none; }
  html.dv3 .v3s-in{ flex-wrap:wrap; row-gap:6px; margin:6px 0 0; padding:6px 0; overflow:visible; }
  html.dv3 .v3s-shoprow{ flex-wrap:wrap; row-gap:12px; margin:0; padding:0; overflow:visible; }
  html.dv3 :is(.v3s-rubs .v3-chip, .v3s-recent .v3-chip, .v3s-all, .v3s-sim, .v3s-inchip:not(.is-on)):hover{ background:var(--line) !important; }
  html.dv3 :is(.v3s-row, .v3s-popen):hover :is(.v3s-t, .v3s-pt){ color:var(--green); }
  html.dv3 .v3s-shopb:hover .v3s-shopn{ color:var(--green); }
}

@keyframes dt-unreserve{ to{ min-height:0; padding:0; background:transparent; } }
@keyframes dt-reveal{ to{ visibility:visible; } }

/* Движение — только transform, и только если человек его не выключил */
@media (min-width:1024px) and (prefers-reduced-motion:reduce){
  html.dv3 :is(.v3-ent-ic, .promo-banner img, .card.v3-pcard .img img, .v3-tile, .v3-shopc){ transition:none !important; }
  html.dv3 :is(.v3-ent, .v3-tile, .v3-shopc, .card.v3-pcard):hover :is(.v3-ent-ic, img),
  html.dv3 :is(.v3-tile, .v3-shopc):hover{ transform:none !important; }
}

/* 1024–1279: те же раскладки, но уже */
@media (min-width:1024px) and (max-width:1279px){
  html.dv3 .v3-hshop-list, html.dv3 .v3-shops-list{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  html.dv3 .v3-home > .js-shops:empty{ min-height:432px; }
  html.dv3 .v3-home .coll-row{ grid-template-columns:repeat(6, minmax(0, 1fr)); }
  html.dv3 .v3-home .coll-row > .card:nth-child(n+7){ display:none; }
  html.dv3 [data-view="catalog"]{ grid-template-columns:minmax(0, 1fr) 240px; }
  html.dv3 [data-view="catalog"].v3-cat .grid{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
  html.dv3 .v3-tiles{ grid-template-columns:repeat(5, minmax(0, 1fr)); }
  html.dv3 .v3-shop .v3-shopbody{ grid-template-columns:168px minmax(0, 1fr); }
  html.dv3 [data-view="catalog"].v3-shop .grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  html.dv3 [data-view="cart"] .js-body > div, html.dv3 [data-view="checkout"] .js-body{ grid-template-columns:minmax(0, 1fr) 300px; }
  html.dv3 .v3-home .home-posts .posts{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
