/* ============================================================================
   ДОВЕРЯЙ DESIGN SYSTEM — trust-first storefront
   Canonical source. Loaded LAST so its :root + component rules win the cascade.
   Palette: brand blue = action (#064CEA), teal = trust/verified (#0FB5A6).
   Type: Manrope (self-hosted woff2). Motion: soft, premium, drinkit-grade.
   ============================================================================ */

/* ---- Manrope (variable, self-hosted) ---- */
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("/static/assets/fonts/manrope-cyrillic.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("/static/assets/fonts/manrope-cyrillic-ext.woff2") format("woff2");
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("/static/assets/fonts/manrope-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("/static/assets/fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ---- Onest (логотип «доверяй», self-hosted subset — единый бренд-шрифт с сервисным центром) ---- */
@font-face{font-family:"Onest";font-style:normal;font-weight:900;font-display:swap;
  src:url("/static/assets/fonts/onest-black.woff2") format("woff2");}

/* ---- Tokens (override prior :root values; this block loads last) ---- */
:root{
  --dv-bg:#ffffff;
  --dv-ink:#0e1726;
  --dv-ink-soft:#41506a;
  --dv-muted:#6b7689;
  --dv-muted-2:#94a1b5;
  --dv-line:#e8ebf2;
  --dv-line-strong:#d7dce8;
  --dv-surface:#f5f7fb;
  --dv-surface-2:#eef2fb;
  --dv-accent:#064cea;
  --dv-accent-press:#0540c0;
  --dv-accent-tint:#e7ecff;
  /* Trust marks share the brand blue (owner: «Проверено Доверяй» must be on-brand #064CEA, not teal). */
  --dv-trust:#064cea;
  --dv-trust-ink:#0540c0;
  --dv-trust-tint:#e7ecff;
  --dv-good:#119e72;   --dv-good-tint:#e4f6ee;
  --dv-warn:#b8791b;   --dv-warn-tint:#fbf0dd;
  --dv-bad:#c0392b;    --dv-bad-tint:#fbe9e7;
  /* S2 редизайна 2026-07-04: радиусы компактнее (re-store/rebro-язык — не «пузыри») */
  --dv-radius-xs:8px;  --dv-radius-sm:10px; --dv-radius:12px;
  --dv-radius-lg:16px; --dv-radius-xl:22px; --dv-pill:999px;
  --dv-shadow-1:0 1px 2px rgba(14,23,38,.04), 0 6px 18px rgba(14,30,80,.05);
  --dv-shadow-2:0 8px 22px rgba(14,30,80,.10), 0 18px 50px rgba(14,30,80,.12);
  --dv-shadow-accent:0 6px 16px rgba(6,76,234,.20);
  --dv-ease:cubic-bezier(.22,.61,.36,1);
  --dv-dur:.24s;
  --dv-font:"Manrope","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  /* Re-point the existing app aliases onto the trust palette so legacy classes adopt it */
  --color-bg:#ffffff; --color-card:#ffffff; --color-surface:var(--dv-surface); --color-surface-2:var(--dv-surface-2);
  --color-text:var(--dv-ink); --color-text-strong:var(--dv-ink); --color-muted:var(--dv-muted); --color-muted-2:var(--dv-muted-2);
  --color-border:var(--dv-line); --color-accent-red:var(--dv-bad); --color-accent-blue:var(--dv-accent);
  --ink:var(--dv-ink); --ink-soft:var(--dv-ink-soft); --muted:var(--dv-muted);
  --line:var(--dv-line); --line-strong:var(--dv-line-strong);
  --panel:#ffffff; --surface:#ffffff; --surface-soft:var(--dv-surface); --surface-strong:#ffffff;
  --accent:var(--dv-accent); --accent-dark:var(--dv-accent-press); --accent-soft:var(--dv-accent-tint); --accent-line:#d4e0fb;
  --good:var(--dv-good); --warn:var(--dv-warn); --bad:var(--dv-bad);
  --radius:var(--dv-radius); --radius-sm:var(--dv-radius-sm); --radius-card:var(--dv-radius); --radius-btn:var(--dv-radius-sm); --radius-pill:var(--dv-pill);
  --shadow-sm:var(--dv-shadow-1); --shadow-md:var(--dv-shadow-2); --shadow-card:var(--dv-shadow-2); --shadow-hover:var(--dv-shadow-2);
  --border:var(--dv-line);
  --font:var(--dv-font);
}

/* ---- Base polish ---- */
body{font-family:var(--dv-font);color:var(--dv-ink);background:var(--dv-bg);-webkit-font-smoothing:antialiased;}
/* width:100% so .page always fills to its max-width and centers — without it the
   `margin:0 auto` inside the flex-column body disables stretch and the page shrinks
   to its content width (e.g. the narrow «Мои заявки» panel hugged the left). */
.page{max-width:1280px;width:100%;}
h1,h2,h3{letter-spacing:-.022em;color:var(--dv-ink);}
::selection{background:rgba(6,76,234,.16);}
a{color:var(--dv-accent);}
*:focus-visible{outline:2.5px solid var(--dv-accent);outline-offset:2px;border-radius:4px;}

/* ============================ MOTION ============================ */
@keyframes dv-rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@keyframes dv-pop{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:none;}}
@keyframes dv-shimmer{from{background-position:-460px 0;}to{background-position:460px 0;}}
@keyframes dv-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes dv-float-2{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-14px) rotate(2deg);}}
@keyframes dv-spin{to{transform:rotate(360deg);}}
@keyframes dv-blink{0%,38%,44%,82%,88%,100%{transform:scaleY(1);}41%,85%{transform:scaleY(.08);}}
.dv-rise{animation:dv-rise .5s var(--dv-ease) both;}
.dv-rise-1{animation-delay:.04s;} .dv-rise-2{animation-delay:.10s;} .dv-rise-3{animation-delay:.16s;}
.dv-rise-4{animation-delay:.22s;} .dv-rise-5{animation-delay:.28s;} .dv-rise-6{animation-delay:.34s;}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}

/* ============================ HEADER ============================ */
.store-header{backdrop-filter:saturate(1.4) blur(8px);background:rgba(var(--dv-panel-rgb), .86);border-bottom:1px solid var(--dv-line);}
.store-brand-mark{display:none;}
.store-brand{gap:10px;}
.store-search input{border-radius:var(--dv-pill);background:var(--dv-surface);border-color:transparent;height:46px;padding:0 18px;}
.store-search input:focus-visible{background:var(--dv-panel);border-color:var(--dv-accent);outline:none;box-shadow:0 0 0 4px var(--dv-accent-tint);}
/* Автокомплит поиска (Волна 2): выпадающий список подсказок под полем */
.dv-search-suggest{position:relative;}
.dv-suggest-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;margin:0;padding:6px;list-style:none;
  background:var(--dv-panel);border:1px solid var(--dv-line);border-radius:14px;box-shadow:0 18px 44px rgba(15,23,42,.16);max-height:340px;overflow:auto;}
.dv-suggest-list li{margin:0;}
.dv-suggest-item{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-radius:9px;background:none;
  font:inherit;font-size:14px;font-weight:600;color:var(--dv-ink);cursor:pointer;}
.dv-suggest-item:hover,.dv-suggest-item.is-active{background:var(--dv-accent-tint);color:var(--dv-accent);}
.store-icon-btn{border-radius:var(--dv-pill);border-color:var(--dv-line);transition:border-color var(--dv-dur),background var(--dv-dur),transform var(--dv-dur);}
.store-icon-btn:hover{border-color:var(--dv-accent);background:var(--dv-accent-tint);transform:translateY(-1px);}
.store-fav-badge{background:var(--dv-accent);}
.store-region{color:var(--dv-muted);}

/* ---- Brand mascot "Дов" (friendly trust spark with eyes) ---- */
.dv-mascot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.dv-mascot svg{display:block;}
.dv-mascot .dv-eye{transform-box:fill-box;transform-origin:center;animation:dv-blink 3.5s var(--dv-ease) infinite;}
.dv-mascot .dv-eye.b{animation-delay:.08s;}

/* ============================ BUTTONS ============================ */
.cta-button,.dv-btn{background:var(--dv-accent);color:#fff;border:0;border-radius:10px;
  padding:13px 22px;font-weight:700;letter-spacing:.005em;box-shadow:var(--dv-shadow-accent);
  transition:transform var(--dv-dur) var(--dv-ease),box-shadow var(--dv-dur),background var(--dv-dur);cursor:pointer;}
.cta-button:hover,.dv-btn:hover{background:var(--dv-accent);transform:translateY(-1px);box-shadow:0 10px 22px rgba(6,76,234,.28);}
.cta-button:active,.dv-btn:active{transform:translateY(0);}
.cta-button:disabled{background:var(--dv-line-strong);color:#fff;box-shadow:none;transform:none;cursor:not-allowed;}
.secondary-link,.dv-btn--ghost{border-radius:10px;border:1.5px solid var(--dv-line-strong);background:var(--dv-panel);color:var(--dv-ink);font-weight:700;transition:border-color var(--dv-dur),background var(--dv-dur),color var(--dv-dur),transform var(--dv-dur);}
/* Ghost buttons also match .dv-btn, whose :hover sets background:accent — must reset
   the background here, otherwise accent text lands on an accent fill and disappears
   (the «Все товары магазина» / «Отзывы» hover bug). Light tint keeps text readable. */
.secondary-link:hover,.dv-btn--ghost:hover{border-color:var(--dv-accent);background:var(--dv-accent-tint);color:var(--dv-accent);transform:translateY(-1px);}
.catalog-link,.back-link{color:var(--dv-accent);font-weight:700;}

/* ============================ CHIPS / BADGES ============================ */
.commerce-chip,.badge,.status-chip,.dv-chip{border-radius:var(--dv-pill);font-weight:700;letter-spacing:.005em;}
.commerce-chip{border:1px solid var(--dv-line);background:var(--dv-panel);color:var(--dv-ink);}
.commerce-chip.tone-good,.dv-chip.tone-good{background:var(--dv-good-tint);color:var(--dv-good);border-color:transparent;}
.commerce-chip.tone-info,.dv-chip.tone-info{background:var(--dv-accent-tint);color:var(--dv-accent);border-color:transparent;}
.commerce-chip.tone-warn,.dv-chip.tone-warn{background:var(--dv-warn-tint);color:var(--dv-warn);border-color:transparent;}
.commerce-chip.tone-bad,.dv-chip.tone-bad{background:var(--dv-bad-tint);color:var(--dv-bad);border-color:transparent;}
.commerce-chip.tone-trust,.dv-chip.tone-trust{background:var(--dv-trust-tint);color:var(--dv-trust-ink);border-color:transparent;}
.commerce-chip.tone-muted,.dv-chip.tone-muted{background:var(--dv-surface);color:var(--dv-muted);border-color:transparent;}
.badge{background:var(--dv-accent-tint);color:var(--dv-accent);border:1px solid #d4e0fb;}

/* Происхождение товара: «В наличии у магазина» / «Под заказ — магазин привезёт от поставщика».
   Отдельного визуального языка не заводим — это тот же .commerce-chip с теми же тонами (зелёный
   = полка, бренд-синий = под заказ; тревожных тонов здесь нет, под заказ это законный выбор
   «дешевле вместо быстрее», а не проблема). Плотнее и с переносом строки: фраза владельца дословна
   и длиннее одной строки плитки каталога, а обрезать её многоточием значило бы потерять смысл. */
.dv-supply-chip{min-height:0;padding:4px 10px;font-size:11.5px;line-height:1.25;white-space:normal;text-align:left;}
.rebro-supply{margin:6px 0 12px;}
.dv-card-supply{margin-top:6px;}
.dv-cart-line-supply{margin-top:4px;}
/* Подпись происхождения занимает одну строку («В наличии у магазина») или две-три на узком
   экране («Под заказ — магазин привезёт от поставщика»), и соседние плитки одной строки каталога
   переставали совпадать: кнопка «Выбрать» вставала на разной высоте — та самая «сломанная сетка»,
   которую отвергает FRONTEND_VISUAL_QA. Прижимаем кнопку к низу плитки (как на Avito/Ozon): текст
   любой длины больше не двигает управление, а нижний отступ остаётся тем же. */
.rebro-card{display:flex;flex-direction:column;}
.rebro-card-availability{margin-bottom:12px;}
.rebro-card .rebro-cta{margin-top:auto;}

/* ============================ CARDS / SURFACES ============================ */
.panel,.card,.detail-fact-card,.detail-thumb-card,.detail-note-card,.item-state-card,.detail-rail-card,.story-card{
  border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-panel);box-shadow:var(--dv-shadow-1);}
.note{border-radius:var(--dv-radius-sm);border:1px solid var(--dv-line);background:var(--dv-surface);}
.note.tone-info{background:var(--dv-accent-tint);border-color:#d4e0fb;}
.note.tone-good{background:var(--dv-good-tint);border-color:transparent;}
.note.tone-warn{background:var(--dv-warn-tint);border-color:transparent;}
.note.tone-bad{background:var(--dv-bad-tint);border-color:transparent;}
.empty-box{border:1.5px dashed var(--dv-line-strong);border-radius:var(--dv-radius);background:var(--dv-surface);}

/* ============================ PRODUCT CARD ============================ */
.rebro-grid{gap:20px;}
.rebro-card{border:1px solid var(--dv-line);border-radius:var(--dv-radius-lg);padding:16px 16px 20px;background:var(--dv-panel);
  box-shadow:var(--dv-shadow-1);transition:transform var(--dv-dur) var(--dv-ease),box-shadow var(--dv-dur) var(--dv-ease),border-color var(--dv-dur);}
.rebro-card:hover{transform:translateY(-3px);box-shadow:var(--dv-shadow-2);border-color:#d4e0fb;}
.rebro-photo{background:#fff;border-radius:var(--dv-radius);max-height:none;aspect-ratio:1/1;margin-bottom:14px;padding:0;overflow:hidden;}
.rebro-photo img{mix-blend-mode:normal;width:100%;height:100%;object-fit:contain;background:#fff;}

/* ===== «Фото пока нет» =====================================================
   Единый знак пустого места на витрине — тот же компонент, что уже стоит в кабинете партнёра
   (dv-nophoto: «камера выключена» + подпись), чтобы не заводить второй визуальный язык.
   Подложка светлая в ОБЕИХ темах намеренно: фотоколодцы витрины остаются белыми и в тёмной
   теме (--dv-media-bg), поэтому тёмный прямоугольник рядом с ними читался бы как дыра в сетке. */
.dv-nophoto{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  width:100%;height:100%;padding:10px;text-align:center;color:#8a97ab;text-decoration:none;
  background:linear-gradient(180deg,var(--dv-panel-2) 0%,var(--dv-neutral-tint) 100%);}
.dv-nophoto-ico{width:40px;height:40px;flex:0 0 auto;opacity:.9;}
.dv-nophoto-cap{font-size:12.5px;font-weight:600;line-height:1.25;color:var(--dv-muted);max-width:92%;overflow-wrap:anywhere;}
/* Подпись плейсхолдера живёт внутри ссылки-обложки: подчёркивание ссылки протекает в потомков,
   и «Фото пока нет» читалось как кликабельный текст. Снимаем на самой ссылке — у потомка снять
   уже нельзя (CSS Text Decoration). */
.rebro-photo-link,.dv-xsell-photo-link,.dv-cart-line-photo-link{text-decoration:none;}
.dv-nophoto-hint{font-size:12px;line-height:1.35;color:#8a97ab;max-width:80%;}
.dv-nophoto--hero{gap:12px;padding:24px;}
.dv-nophoto--hero .dv-nophoto-ico{width:60px;height:60px;}
.dv-nophoto--hero .dv-nophoto-cap{font-size:16px;font-weight:700;color:var(--dv-muted);}
.dv-nophoto--hero .dv-nophoto-hint{font-size:13px;}
.dv-nophoto--thumb{gap:0;padding:4px;}
.dv-nophoto--thumb .dv-nophoto-ico{width:22px;height:22px;}
/* Пустое место не имеет права занимать первый экран целиком: квадрат 1:1 под фото на десктопе
   разворачивался в ~820 px пустоты. Без снимка колодец ужимается, и покупатель сразу видит
   характеристики и выбор варианта, а не разреженный макет. */
.dv-gal-main.is-nophoto{cursor:default;aspect-ratio:auto;min-height:300px;max-height:340px;}
.dv-xsell-photo.is-nophoto,.dv-cart-line-photo.is-nophoto,.dv-order-line-photo.is-nophoto{display:block;overflow:hidden;padding:0;}
@media (max-width:520px){
  .dv-nophoto--hero{gap:9px;padding:16px;}
  .dv-nophoto--hero .dv-nophoto-ico{width:44px;height:44px;}
  .dv-nophoto--hero .dv-nophoto-cap{font-size:14.5px;}
  .dv-nophoto--hero .dv-nophoto-hint{font-size:12px;max-width:92%;}
}

/* ===== Product image galleries (catalog card hover crossfade + detail gallery) ===== */
.rebro-photo.dv-card-gallery{position:relative;}
.dv-card-gallery .dv-gallery-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0;transition:opacity .55s var(--dv-ease,ease);}
.dv-card-gallery .dv-gallery-img.is-active{opacity:1;}
.dv-gallery-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px;z-index:2;pointer-events:none;}
.dv-gallery-dot{width:6px;height:6px;border-radius:50%;background:rgba(0,0,0,.22);transition:background .3s,transform .3s;}
.dv-gallery-dot.is-active{background:var(--dv-panel);box-shadow:0 0 0 1.5px rgba(0,0,0,.3);transform:scale(1.3);}

.dv-detail-img{animation:dv-pop .42s var(--dv-ease,ease);}
.dv-thumb-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.dv-thumb{width:72px;height:72px;flex:0 0 auto;padding:5px;border-radius:10px;border:2px solid var(--dv-line,#e6eaf2);background:var(--dv-panel);cursor:pointer;overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s;}
.dv-thumb img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:5px;display:block;}
.dv-thumb:hover{border-color:var(--dv-accent,#064CEA);transform:translateY(-1px);}
.dv-thumb.is-active{border-color:var(--dv-accent,#064CEA);box-shadow:0 0 0 3px var(--dv-accent-tint,#e6f0ff);}
@media (prefers-reduced-motion:reduce){.dv-card-gallery .dv-gallery-img,.dv-detail-img{transition:none;animation:none;}}

/* detail main image: prev/next arrows, zoom, counter */
.dv-detail-gallery .dv-detail-img{cursor:zoom-in;}
.dv-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(var(--dv-panel-rgb), .92);box-shadow:0 4px 14px rgba(0,0,0,.16);color:var(--dv-ink,var(--dv-ink));display:grid;place-items:center;cursor:pointer;z-index:3;transition:background .15s,transform .15s;}
.dv-gallery-nav:hover{background:var(--dv-panel);transform:translateY(-50%) scale(1.06);}
.dv-gallery-nav svg{width:20px;height:20px;}
.dv-gallery-prev{left:12px;}
.dv-gallery-next{right:12px;}
.dv-gallery-zoom{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:10px;border:0;background:rgba(var(--dv-panel-rgb), .92);box-shadow:0 4px 14px rgba(0,0,0,.14);color:var(--dv-ink,var(--dv-ink));display:grid;place-items:center;cursor:pointer;z-index:3;transition:background .15s;}
.dv-gallery-zoom:hover{background:var(--dv-panel);}
.dv-gallery-zoom svg{width:18px;height:18px;}
.dv-gallery-counter{position:absolute;left:12px;bottom:12px;background:rgba(14,23,38,.7);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;z-index:3;}

/* fullscreen lightbox */
.dv-lightbox{position:fixed;inset:0;z-index:300;background:rgba(8,12,20,.93);display:flex;align-items:center;justify-content:center;padding:24px;animation:dv-pop .2s var(--dv-ease,ease);}
.dv-lightbox-stage{position:relative;margin:0;max-width:min(92vw,1100px);max-height:84vh;display:flex;align-items:center;justify-content:center;}
.dv-lightbox-img{max-width:100%;max-height:84vh;object-fit:contain;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.5);animation:dv-pop .25s var(--dv-ease,ease);}
.dv-lightbox-counter{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);color:rgba(255,255,255,.85);font-size:13px;font-weight:600;}
.dv-lightbox-close{position:fixed;top:18px;right:20px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s;}
.dv-lightbox-close:hover{background:rgba(255,255,255,.28);}
.dv-lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s;}
.dv-lightbox-nav:hover{background:rgba(255,255,255,.28);}
.dv-lightbox-prev{left:18px;}
.dv-lightbox-next{right:18px;}
.dv-lightbox-thumbs{position:fixed;left:0;right:0;bottom:16px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:0 16px;}
.dv-lightbox-thumb{width:54px;height:54px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:none;cursor:pointer;padding:0;opacity:.55;transition:opacity .15s,border-color .15s;}
.dv-lightbox-thumb img{width:100%;height:100%;object-fit:contain;background:#fff;display:block;}
.dv-lightbox-thumb.is-active,.dv-lightbox-thumb:hover{opacity:1;border-color:#fff;}
@media (max-width:640px){.dv-lightbox-nav{width:42px;height:42px;font-size:24px;}.dv-lightbox-prev{left:6px;}.dv-lightbox-next{right:6px;}.dv-lightbox-thumbs{display:none;}}
.rebro-badge{border-radius:var(--dv-pill);height:24px;padding:0 11px;font-weight:700;background:var(--dv-surface);color:var(--dv-ink);}
.rebro-badge-dark{background:var(--dv-ink);color:#fff;}
/* Бейдж доверия (Волна 2). tone=verified — teal-пломба (проверено Доверяй),
   tone=partner — мягкий бренд-синий (у магазина-партнёра). Не кричащий, уголок карточки. */
.dv-trust-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:var(--dv-pill);font-size:11px;font-weight:700;line-height:1;letter-spacing:.005em;white-space:nowrap;}
.dv-trust-badge svg{width:12px;height:12px;flex:0 0 auto;}
.dv-trust-badge--verified{background:rgba(15,181,166,.12);color:var(--dv-good);}
.dv-trust-badge--partner{background:var(--dv-accent-tint);color:var(--dv-accent);}
.dv-trust-badge--unknown{background:var(--dv-surface);color:var(--dv-muted);}
/* Уголок карточки каталога: поверх фото, снизу-справа (слева уже живёт «Фото: другой цвет»),
   чтобы не спорить с бейджами состояния сверху. */
.rebro-trust-corner{position:absolute;right:8px;bottom:8px;z-index:2;box-shadow:0 2px 8px rgba(15,23,42,.12);}
/* PDP: строка-нота под бейджем доверия (мягко, без негатива). */
.dv-pdp-trust{display:grid;gap:4px;margin-top:2px;}
.dv-pdp-trust-note{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--dv-muted);line-height:1.35;}
.dv-pdp-trust-note svg{width:13px;height:13px;flex:0 0 auto;color:var(--dv-good);}
.rebro-fav{border-radius:var(--dv-pill);border-color:var(--dv-line);color:var(--dv-muted-2);}
.rebro-fav:hover,.rebro-fav.is-active{color:var(--dv-bad);border-color:var(--dv-bad);background:var(--dv-bad-tint);}
/* Мелкое имя + крупная жирная цена — сигнатура rebro/re-store */
.rebro-name{font-size:14px;font-weight:600;color:var(--dv-ink);line-height:1.3;}
.rebro-name-link:hover .rebro-name{color:var(--dv-accent);}
.rebro-price{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--dv-ink);}
.rebro-card-availability{color:var(--dv-muted);font-weight:600;}
/* CTA: visible by default (no hover-only hiding), lifts on hover */
/* Первичная CTA плитки — бренд-синяя по умолчанию (раньше была navy в покое и синела
   только на hover, которого нет на тач/мобиле → кнопка выглядела не как первичная). */
.rebro-cta{opacity:1;transform:none;pointer-events:auto;position:static;margin-top:12px;background:var(--dv-panel);color:var(--dv-accent);border:1.5px solid var(--dv-line-strong,#d8dde8);
  border-radius:10px;font-weight:700;font-size:13.5px;padding:10px 14px;transition:background var(--dv-dur),transform var(--dv-dur);}
.rebro-card:hover .rebro-cta{background:var(--dv-accent);color:#fff;border-color:var(--dv-accent);transform:none;}
.rebro-cta:hover{background:var(--dv-accent);color:#fff;border-color:var(--dv-accent);}

/* category pills */
.rebro-cat{border-radius:var(--dv-pill);background:var(--dv-surface);font-weight:700;border:1px solid transparent;}
.rebro-cat:hover{background:var(--dv-accent-tint);color:var(--dv-accent);}
/* Тугая мягкая тень вместо тяжёлой --dv-shadow-accent (0 10px 24px): крупная тень
   собиралась под пилюлями фильтра в тёмное пятно. Подровнено. */
.rebro-cat.is-active{background:var(--dv-accent);color:#fff;box-shadow:0 2px 6px rgba(6,76,234,.20);}

/* ============================ HERO ============================ */
.dv-hero{position:relative;overflow:hidden;border-radius:var(--dv-radius-xl);
  background:radial-gradient(120% 120% at 88% -10%, rgba(15,181,166,.18), transparent 46%),
    radial-gradient(120% 120% at -8% 110%, rgba(6,76,234,.20), transparent 44%),
    linear-gradient(180deg,#0e1726,#13213d);
  color:#fff;padding:clamp(28px,4vw,52px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:28px;align-items:center;}
.dv-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 0%,rgba(255,255,255,.06),transparent 70%);pointer-events:none;}
.dv-hero-copy{position:relative;display:grid;gap:18px;align-content:center;z-index:2;}
.dv-hero-kicker{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:7px 14px;border-radius:var(--dv-pill);
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#cfe0ff;}
.dv-hero h1{color:#fff;font-size:clamp(30px,4.4vw,52px);line-height:1.04;font-weight:800;letter-spacing:-.03em;margin:0;}
.dv-hero h1 .dv-accent{background:linear-gradient(90deg,#7ad9cf,#9cc0ff);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dv-hero p{color:rgba(233,238,250,.82);font-size:clamp(15px,1.4vw,18px);max-width:46ch;line-height:1.55;margin:0;}
.dv-hero-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px;}
.dv-hero-cta .dv-btn--on-dark{background:#fff;color:var(--dv-ink);box-shadow:0 10px 30px rgba(0,0,0,.25);}
.dv-hero-cta .dv-btn--on-dark:hover{background:#eef2fb;}
.dv-hero-stats{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:6px;}
.dv-hero-stat{display:grid;gap:1px;}
.dv-hero-stat b{font-size:22px;font-weight:800;letter-spacing:-.02em;color:#fff;}
.dv-hero-stat span{font-size:12.5px;color:rgba(233,238,250,.66);}
.dv-hero-visual{position:relative;z-index:2;min-height:230px;display:grid;place-items:center;}
.dv-hero-blob{position:absolute;width:300px;height:300px;border-radius:50%;filter:blur(8px);opacity:.5;
  background:radial-gradient(circle at 30% 30%,rgba(122,217,207,.7),rgba(6,76,234,.2) 70%);animation:dv-float 7s var(--dv-ease) infinite;}
.dv-hero-device{position:relative;z-index:3;width:min(220px,60%);filter:drop-shadow(0 30px 50px rgba(0,0,0,.45));animation:dv-float-2 8s var(--dv-ease) infinite;}
.dv-hero-device img{width:100%;height:auto;display:block;}
.dv-hero-seal{position:absolute;right:2px;bottom:2px;z-index:6;}
@media (max-width:840px){.dv-hero{grid-template-columns:1fr;}.dv-hero-visual{order:-1;min-height:300px;overflow:hidden;}.dv-hero-device{width:150px;}.dv-hero-seal{display:none;}}

/* ===== Ротационный hero-баннер (кроссфейд слайдов в одной тёмной рамке) ===== */
.dv-hero-carousel{position:relative;overflow:hidden;border-radius:var(--dv-radius-xl);isolation:isolate;
  display:flex;flex-direction:column;
  background:radial-gradient(120% 120% at 88% -10%, rgba(15,181,166,.16), transparent 46%),
    radial-gradient(120% 120% at -8% 110%, rgba(6,76,234,.20), transparent 44%),
    linear-gradient(180deg,#0e1726,#13213d);
  box-shadow:0 30px 60px -34px rgba(9,18,40,.7);}
.dv-hero-track{position:relative;z-index:1;display:grid;flex:1 1 auto;}
/* каждый слайд — та же двухколоночная сетка .dv-hero, но прозрачный фон (навигационную
   рамку держит контейнер) и переключение через opacity/visibility (кроссфейд) */
.dv-hero-carousel .dv-hero--slide{grid-area:1 / 1;background:transparent;box-shadow:none;
  padding-bottom:clamp(14px,2vw,22px);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .7s var(--dv-ease),visibility 0s linear .7s;}
.dv-hero-carousel .dv-hero--slide[data-active="true"]{opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity .7s var(--dv-ease);}
/* лёгкий «подъезд» копии активного слайда снизу */
.dv-hero-carousel .dv-hero--slide .dv-hero-copy{transform:translateY(10px);opacity:0;
  transition:transform .7s var(--dv-ease),opacity .7s var(--dv-ease);}
.dv-hero-carousel .dv-hero--slide[data-active="true"] .dv-hero-copy{transform:none;opacity:1;}
/* тематическая подсветка «капли» под визуалом (мягкая смена настроения по слайдам) */
.dv-hero--slide[data-slide-theme="service"] .dv-hero-blob{background:radial-gradient(circle at 30% 30%,rgba(124,170,255,.72),rgba(6,76,234,.24) 70%);}
.dv-hero--slide[data-slide-theme="sell"] .dv-hero-blob{background:radial-gradient(circle at 30% 30%,rgba(122,217,207,.68),rgba(15,181,166,.24) 70%);}
/* фичи-чипы (сервис/трейд-ин) */
.dv-hero-feats{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px;}
.dv-hero-feat{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--dv-pill);
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);font-size:13px;font-weight:700;color:#e9eefa;}
.dv-hero-feat svg{width:15px;height:15px;color:#7ad9cf;flex:0 0 auto;}
/* кнопки на тёмном: ссылки без подчёркивания + вторичная «призрачная» кнопка */
.dv-hero-cta a.dv-btn{text-decoration:none;}
.dv-hero-cta .dv-btn--on-dark{display:inline-flex;align-items:center;gap:8px;}
.dv-hero-cta .dv-btn--on-dark svg{width:14px;height:14px;}
.dv-hero-cta .dv-btn--on-dark-ghost{background:rgba(255,255,255,.10);color:#fff;border:1.5px solid rgba(255,255,255,.5);
  box-shadow:none;display:inline-flex;align-items:center;gap:8px;}
.dv-hero-cta .dv-btn--on-dark-ghost:hover{background:rgba(255,255,255,.18);border-color:#fff;transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.28);}
.dv-hero-cta .dv-btn--on-dark-ghost svg{width:14px;height:14px;}
/* иконка вместо фото в карточке телефона (ремонт/трейд-ин) */
.dv-phone3d-thumb--icon{display:grid;place-items:center;background:var(--dv-accent-tint);color:var(--dv-accent);}
.dv-phone3d-thumb--icon svg{width:26px;height:26px;}
/* ── Слайд «Сервис-центр»: своя бирюзовая айдентика + визуал «студии ремонта» ── */
.dv-hero--slide[data-slide-theme="service"] .dv-accent{background:linear-gradient(90deg,#7ad9cf,#48e2c9);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dv-hero--slide[data-slide-theme="service"] .dv-hero-kicker{color:#a9f0e5;}
.dv-hero-visual--repair{overflow:visible;}
.dv-repair{position:relative;z-index:3;width:min(340px,94%);animation:dv-float-2 8s var(--dv-ease) infinite;filter:drop-shadow(0 34px 54px rgba(0,0,0,.45));}
.dv-repair-card{position:relative;display:grid;gap:13px;padding:16px;border-radius:22px;
  background:linear-gradient(158deg,rgba(255,255,255,.12),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 20px 50px rgba(6,20,40,.35);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.dv-repair-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dv-repair-title{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;color:#fff;letter-spacing:-.01em;}
.dv-repair-chip{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;background:rgba(122,217,207,.18);color:#8ff0e0;border:1px solid rgba(122,217,207,.35);white-space:nowrap;}
.dv-repair-video{position:relative;aspect-ratio:16 / 10;border-radius:15px;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(120% 120% at 28% 0%,rgba(15,181,166,.30),transparent 55%),linear-gradient(160deg,#13233f,#0a1526);border:1px solid rgba(255,255,255,.10);}
.dv-repair-video::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(var(--dv-panel-rgb), .035) 0 1px,transparent 1px 3px);pointer-events:none;}
.dv-repair-play{position:relative;z-index:2;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--dv-panel);color:var(--dv-good);box-shadow:0 10px 30px rgba(122,217,207,.5),0 0 0 8px rgba(255,255,255,.09);animation:dv-pulse 2.6s var(--dv-ease) infinite;}
.dv-repair-play svg{margin-left:3px;}
.dv-repair-rec{position:absolute;top:9px;left:9px;z-index:2;display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.4);padding:4px 9px;border-radius:999px;}
.dv-repair-rec i{width:7px;height:7px;border-radius:50%;background:#ff5a5a;animation:dv-rec-blink 1.3s ease-in-out infinite;}
.dv-repair-dur{position:absolute;bottom:9px;right:9px;z-index:2;font-size:11px;font-weight:700;color:#e9eefa;background:rgba(0,0,0,.4);padding:3px 8px;border-radius:8px;}
.dv-repair-bar{position:absolute;left:9px;right:9px;bottom:9px;z-index:1;height:3px;border-radius:999px;background:rgba(var(--dv-panel-rgb), .18);overflow:hidden;}
.dv-repair-bar i{display:block;height:100%;width:62%;border-radius:999px;background:linear-gradient(90deg,#7ad9cf,#9cc0ff);}
.dv-repair-track{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.dv-repair-step{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:rgba(233,238,250,.6);padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);white-space:nowrap;}
.dv-repair-step svg{width:12px;height:12px;}
.dv-repair-step.done{color:#8ff0e0;border-color:rgba(122,217,207,.32);background:rgba(122,217,207,.12);}
.dv-repair-step.now{color:#fff;border-color:rgba(156,192,255,.42);background:rgba(156,192,255,.16);}
/* печать гарантии — в потоке ряда трекера (последний элемент, прижата вправо):
   absolute-версия с отрицательными отступами наезжала на чип «Выдача» */
.dv-repair-seal{display:inline-flex;align-items:center;gap:7px;margin-left:auto;padding:5px 10px;border-radius:12px;background:linear-gradient(150deg,#12c2b1,#0a8f84);color:#fff;box-shadow:0 10px 22px rgba(15,181,166,.38);border:1px solid rgba(255,255,255,.22);}
.dv-repair-seal-check{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:rgba(var(--dv-panel-rgb), .22);flex:0 0 auto;}
.dv-repair-seal-check svg{width:11px;height:11px;color:#fff;}
.dv-repair-seal-text{font-size:9.5px;font-weight:800;line-height:1.1;white-space:nowrap;}
/* заголовок сервисного слайда длинный («…с видеоотчётом и гарантией») — кегль меньше,
   чем у маркетного, иначе 4 строки раздували высоту всей карусели (пустота на слайде 1) */
.dv-hero--slide[data-slide-theme="service"] h1{font-size:clamp(25px,2.9vw,36px);}
@keyframes dv-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}
@keyframes dv-rec-blink{0%,100%{opacity:1;}50%{opacity:.2;}}
@media (max-width:840px){.dv-repair{width:min(330px,84%);}}
@media (prefers-reduced-motion:reduce){.dv-repair,.dv-repair-play,.dv-repair-rec i{animation:none;}}
/* точки-переключатели с таймером до смены слайда */
.dv-hero-dots{position:relative;z-index:3;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:9px;
  padding:0 0 clamp(16px,2.4vw,22px);}
.dv-hero-dot{appearance:none;border:0;background:transparent;padding:6px 4px;cursor:pointer;display:inline-flex;align-items:center;}
.dv-hero-dot-track{display:block;height:6px;width:6px;border-radius:999px;background:rgba(255,255,255,.28);
  overflow:hidden;transition:width .35s var(--dv-ease),background .3s;}
.dv-hero-dot[data-active="true"] .dv-hero-dot-track{width:34px;background:rgba(255,255,255,.24);}
.dv-hero-dot:hover .dv-hero-dot-track{background:rgba(255,255,255,.5);}
.dv-hero-dot:focus-visible{outline:none;}
.dv-hero-dot:focus-visible .dv-hero-dot-track{box-shadow:0 0 0 3px rgba(124,191,255,.55);}
.dv-hero-dot-fill{display:block;height:100%;width:100%;border-radius:999px;transform-origin:left center;transform:scaleX(0);
  background:linear-gradient(90deg,#7ad9cf,#9cc0ff);animation:dv-dot-timer linear forwards;}
.dv-hero-dot-fill.is-paused{animation-play-state:paused;}
.dv-hero-dot-fill.is-static{animation:none;transform:scaleX(1);}
@keyframes dv-dot-timer{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@media (prefers-reduced-motion:reduce){.dv-hero-carousel .dv-hero--slide,.dv-hero-carousel .dv-hero--slide .dv-hero-copy{transition:none;}.dv-hero-dot-fill{animation:none;transform:scaleX(1);}}

/* ============================ TRUST LADDER (signature) ============================ */
.dv-ladder{display:grid;gap:14px;}
.dv-ladder-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.dv-ladder-title{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;color:var(--dv-ink);}
.dv-ladder-track{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.dv-ladder-seg{height:8px;border-radius:var(--dv-pill);background:var(--dv-line);overflow:hidden;position:relative;}
.dv-ladder-seg.on{background:linear-gradient(90deg,var(--dv-accent),var(--dv-trust));}
.dv-ladder-seg.on::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  animation:dv-shimmer 2.4s linear infinite;background-size:460px 100%;}
.dv-ladder-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.dv-ladder-step{display:grid;gap:4px;justify-items:center;text-align:center;padding-top:2px;}
.dv-ladder-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--dv-surface);
  border:2px solid var(--dv-line-strong);color:var(--dv-muted-2);font-size:13px;font-weight:800;transition:all var(--dv-dur);}
.dv-ladder-step.done .dv-ladder-dot{background:var(--dv-trust);border-color:var(--dv-trust);color:#fff;}
.dv-ladder-step.current .dv-ladder-dot{background:var(--dv-accent);border-color:var(--dv-accent);color:#fff;
  box-shadow:0 0 0 6px var(--dv-accent-tint);}
.dv-ladder-step.blocked .dv-ladder-dot{background:var(--dv-bad);border-color:var(--dv-bad);color:#fff;box-shadow:0 0 0 6px var(--dv-bad-tint);}
.dv-ladder-step small{font-size:11px;font-weight:700;line-height:1.2;color:var(--dv-muted);}
.dv-ladder-step.current small,.dv-ladder-step.done small{color:var(--dv-ink);}
.dv-ladder-note{font-size:13px;color:var(--dv-muted);line-height:1.5;}

/* ============================ 3D "ПРОВЕРЕНО" SEAL ============================ */
/* «Проверено Доверяй» — premium brand-blue verified medallion: blue ring, white face
   with the brand mascot, and a checkmark badge. Replaces the old spinning teal disc. */
.dv-seal{--sz:104px;width:var(--sz);height:var(--sz);position:relative;flex:0 0 auto;}
.dv-seal-ring{position:relative;width:var(--sz);height:var(--sz);border-radius:50%;padding:7px;box-sizing:border-box;
  background:linear-gradient(150deg,#3b74ff 0%,#064cea 55%,#0540c0 100%);
  box-shadow:0 12px 28px rgba(6,76,234,.28);display:grid;place-items:center;}
.dv-seal-face{width:100%;height:100%;border-radius:50%;background:#fff;display:grid;place-items:center;
  box-shadow:inset 0 0 0 1px rgba(6,76,234,.12);}
.dv-seal-face .dv-mascot{display:grid;place-items:center;}
.dv-seal-check{position:absolute;right:0;bottom:0;width:34px;height:34px;border-radius:50%;background:var(--dv-accent);
  color:#fff;display:grid;place-items:center;border:3px solid #fff;box-shadow:0 4px 10px rgba(6,76,234,.35);}
.dv-seal-check svg{width:17px;height:17px;}

/* ============================ SKELETON ============================ */
.dv-sk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.dv-sk-card{border:1px solid var(--dv-line);border-radius:var(--dv-radius-lg);padding:16px;display:grid;gap:12px;}
.dv-skel{background:linear-gradient(90deg,var(--dv-surface) 25%,var(--dv-neutral-tint) 37%,var(--dv-surface) 63%);
  background-size:460px 100%;animation:dv-shimmer 1.3s linear infinite;border-radius:var(--dv-radius-sm);}
.dv-sk-ph{aspect-ratio:1/1;border-radius:var(--dv-radius);}
.dv-sk-line{height:13px;} .dv-sk-line.w60{width:60%;} .dv-sk-line.w40{width:40%;} .dv-sk-line.w80{width:80%;}
@media (max-width:1100px){.dv-sk-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.dv-sk-grid{grid-template-columns:repeat(2,1fr);}}

/* ============================ DETAIL POLISH ============================ */
.detail-rail-price,.trust-rail-price,.item-hero-price,.detail-rail .detail-rail-price{font-weight:800;color:var(--dv-ink);}
.detail-rail-card.detail-rail-primary{background:linear-gradient(180deg,var(--dv-panel),var(--dv-accent-tint));border-color:#d4e0fb;}
.commerce-media,.commerce-media-detail,.commerce-media-card,.commerce-media-thumb{border-radius:var(--dv-radius);background:var(--dv-panel);}
.commerce-media .commerce-photo{background:#fff;object-fit:contain;}
.detail-gallery-column .commerce-media-detail{padding:18px;}
.status-step-active{border-color:#d4e0fb;background:var(--dv-accent-tint);}
.status-step-active .status-step-number{background:var(--dv-accent);}
/* Подсвеченный/выполненный шаг — описание не блёкло-серое, а насыщенное (кульминация
   «состоялась»), чтобы текст совпадал по акценту с подсветкой карточки. */
.status-step-active p,.status-step-complete p{color:var(--dv-ink);}
.status-step-complete{border-color:var(--dv-trust);} .status-step-complete .status-step-number{background:var(--dv-trust);color:#fff;}

/* ============================ DECORATIVE 3D SHAPES ============================ */
.dv-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.dv-deco > *{position:absolute;}
@keyframes dv-spin3d{0%{transform:rotateX(-22deg) rotateY(0deg);}100%{transform:rotateX(-22deg) rotateY(360deg);}}
@keyframes dv-floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-22px);}}
@keyframes dv-floaty-rot{0%,100%{transform:rotateX(60deg) translateY(0) rotate(0deg);}50%{transform:rotateX(60deg) translateY(-16px) rotate(10deg);}}
.dv-cube-wrap{perspective:620px;animation:dv-floaty 9s var(--dv-ease) infinite;}
.dv-cube{position:relative;width:var(--c,90px);height:var(--c,90px);transform-style:preserve-3d;animation:dv-spin3d 20s linear infinite;}
.dv-cube i{position:absolute;inset:0;border-radius:16px;background:linear-gradient(135deg,rgba(94,116,246,.55),rgba(15,181,166,.5));box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);}
.dv-cube i:nth-child(1){transform:translateZ(calc(var(--c,90px)/2));}
.dv-cube i:nth-child(2){transform:rotateY(180deg) translateZ(calc(var(--c,90px)/2));}
.dv-cube i:nth-child(3){transform:rotateY(90deg) translateZ(calc(var(--c,90px)/2));}
.dv-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(calc(var(--c,90px)/2));}
.dv-cube i:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--c,90px)/2));}
.dv-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--c,90px)/2));}
.dv-orb{border-radius:50%;background:radial-gradient(circle at 32% 28%,#9cc0ff,#064CEA 72%);box-shadow:0 34px 64px rgba(6,76,234,.4),inset -6px -9px 18px rgba(0,0,0,.28),inset 6px 9px 18px rgba(255,255,255,.35);animation:dv-floaty 8s var(--dv-ease) infinite;}
.dv-orb.teal{background:radial-gradient(circle at 32% 28%,#a9f0e7,#0fb5a6 72%);box-shadow:0 34px 64px rgba(15,181,166,.4),inset -6px -9px 18px rgba(0,0,0,.22),inset 6px 9px 18px rgba(255,255,255,.4);}
.dv-ring{border-radius:50%;border:13px solid #064CEA;border-right-color:#0fb5a6;border-bottom-color:#5e74f6;animation:dv-floaty-rot 12s var(--dv-ease) infinite;opacity:.8;}
@media (prefers-reduced-motion:reduce){.dv-cube,.dv-cube-wrap,.dv-orb,.dv-ring{animation:none;}}

/* ===== Storefront auth screen (login + registration) — shared look with B2B/Admin ===== */
.dv-auth{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:minmax(0, 1fr) minmax(360px, 520px);overflow-x:hidden;overflow-y:auto;isolation:isolate;background:#0b1424;}
.dv-auth-pane{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;min-height:100vh;padding:clamp(34px,5vw,84px);color:#fff;
  background:radial-gradient(120% 90% at 82% -12%,rgba(15,181,166,.28),transparent 48%),radial-gradient(130% 110% at -12% 118%,rgba(6,76,234,.42),transparent 52%),linear-gradient(158deg,#0b1424,#13213d);}
.dv-auth-pane .dv-deco{position:absolute;inset:0;z-index:0;pointer-events:none;}
.dv-auth-showcase{position:relative;z-index:3;max-width:540px;display:grid;gap:22px;animation:dv-rise .5s var(--dv-ease) both;}
.dv-auth-brandrow{display:flex;align-items:center;gap:11px;font-weight:800;font-size:19px;letter-spacing:-.01em;color:#fff;}
.dv-auth-showcase h1{color:#fff;font-size:clamp(30px,3.4vw,46px);line-height:1.04;margin:0;font-weight:800;letter-spacing:-.025em;}
.dv-auth-showcase h1 .hl{background:linear-gradient(100deg,#7fe9dd,#9dc0ff);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dv-auth-showcase>p{color:rgba(233,238,250,.82);font-size:clamp(15px,1.3vw,17px);line-height:1.55;margin:0;max-width:46ch;}
.dv-auth-props{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:16px;}
.dv-auth-props li{display:flex;gap:13px;align-items:flex-start;}
.dv-auth-props .ap-ico{flex:0 0 auto;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(6,76,234,.6),rgba(15,181,166,.55));border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 24px rgba(0,0,0,.32);}
.dv-auth-props .ap-ico svg{width:21px;height:21px;color:#fff;}
.dv-auth-props .ap-txt b{display:block;color:#fff;font-size:15px;font-weight:700;letter-spacing:-.01em;}
.dv-auth-props .ap-txt span{color:rgba(233,238,250,.72);font-size:13.5px;line-height:1.45;}
.dv-auth-form{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:100vh;padding:clamp(24px,3vw,48px);background:linear-gradient(180deg,var(--dv-panel-2),var(--dv-neutral-tint));}
.dv-auth-card{position:relative;z-index:3;box-sizing:border-box;width:100%;max-width:min(412px,100%);display:grid;gap:12px;padding:clamp(24px,3vw,34px);border-radius:24px;
  background:var(--dv-panel);border:1px solid var(--dv-line,#e6eaf2);box-shadow:0 26px 64px rgba(15,38,92,.14);animation:dv-rise .55s var(--dv-ease) both;}
.dv-auth-card .dv-login-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:var(--dv-ink,#0E1726);}
.dv-auth-card h2{color:var(--dv-ink,var(--dv-ink));font-size:clamp(22px,2.4vw,27px);margin:2px 0 0;font-weight:800;letter-spacing:-.02em;}
.dv-auth-card>p{color:var(--dv-muted,#64708a);margin:0 0 4px;font-size:14px;line-height:1.5;}
.dv-auth-email-form{display:grid;gap:12px;margin-top:2px;}
.dv-auth-email-panel{padding:14px;border:1px solid var(--dv-line,#e6eaf2);border-radius:16px;background:linear-gradient(180deg,var(--dv-panel-2),var(--dv-panel-2));box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.dv-auth-email-form .dv-field{display:grid;gap:6px;color:var(--dv-ink,var(--dv-ink));font-size:13px;font-weight:700;}
.dv-auth-email-form .dv-field span{line-height:1.25;}
.dv-auth-email-form .dv-field input{width:100%;min-height:46px;box-sizing:border-box;border:1.5px solid var(--dv-line,#dfe5f0);border-radius:12px;padding:10px 13px;background:var(--dv-panel);color:var(--dv-ink,var(--dv-ink));font:inherit;font-size:15px;font-weight:500;transition:border-color .18s,box-shadow .18s,background .18s;}
.dv-auth-email-form .dv-field input::placeholder{color:#9aa6ba;}
.dv-auth-email-form .dv-field input:hover{border-color:#c9d2e2;background:var(--dv-panel-2);}
.dv-auth-email-form .dv-field input:focus{outline:none;border-color:var(--dv-accent,#064CEA);box-shadow:0 0 0 3px rgba(6,76,234,.14);}
.dv-auth-email-form .cta-button{width:100%;min-height:46px;justify-content:center;border-radius:12px;}
.dv-auth-switch{margin:0;color:var(--dv-muted,#64708a);font-size:13.5px;line-height:1.45;text-align:center;}
.dv-auth-switch button{border:0;background:transparent;color:var(--dv-accent,var(--dv-accent));font:inherit;font-weight:800;cursor:pointer;padding:0;text-decoration:none;}
.dv-auth-switch button:hover{text-decoration:underline;}
.dv-auth-or{display:flex;align-items:center;gap:12px;color:var(--dv-muted,#8a93a6);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.dv-auth-or::before,.dv-auth-or::after{content:"";height:1px;flex:1;background:var(--dv-line,#e6eaf2);}
.dv-auth-actions{display:grid;gap:11px;}
.dv-oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;font-size:15px;font-weight:700;border-radius:13px;
  background:var(--dv-panel);color:var(--dv-ink,var(--dv-ink));border:1.5px solid var(--dv-line,#dfe5f0);cursor:pointer;text-decoration:none;transition:transform .18s var(--dv-ease),border-color .18s,background .18s;}
.dv-oauth-btn:hover{background:var(--dv-panel-2);border-color:var(--dv-accent,#064CEA);transform:translateY(-1px);}
.dv-oauth-btn:focus-visible{outline:none;border-color:var(--dv-accent,#064CEA);box-shadow:0 0 0 3px rgba(6,76,234,.14);}
.dv-email-auth-btn{font-family:inherit;}
.dv-email-auth-btn svg{flex:0 0 auto;color:var(--dv-accent,var(--dv-accent));}
.dv-email-auth-btn.is-open{background:var(--dv-info-tint);border-color:rgba(6,76,234,.42);box-shadow:0 8px 18px rgba(6,76,234,.08);}
.dv-auth-actions .oauth-badge{flex:0 0 auto;}
.dv-auth-forgot-row{display:flex;justify-content:flex-end;margin-top:-2px;}
.dv-auth-forgot{border:0;background:transparent;color:var(--dv-accent,var(--dv-accent));font:inherit;font-size:13px;font-weight:750;cursor:pointer;padding:0;text-decoration:none;}
.dv-auth-forgot:hover{text-decoration:underline;}
.dv-auth-back{display:inline-flex;align-items:center;gap:6px;justify-content:center;width:100%;padding:11px;border-radius:13px;border:1px solid transparent;background:transparent;color:var(--dv-muted,#64708a);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;transition:background .18s,color .18s;}
.dv-auth-back:hover{color:var(--dv-ink,var(--dv-ink));background:var(--dv-surface-soft,#f6f6f6);}
.dv-auth-staff{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:9px 10px;border-radius:12px;color:var(--dv-accent,var(--dv-accent));font-size:13px;font-weight:750;text-decoration:none;}
.dv-auth-staff:hover{background:rgba(6,76,234,.08);}
.dv-auth-fine{color:var(--dv-muted,#8a93a6);font-size:12px;line-height:1.5;margin:6px 0 0;}
.dv-auth-close{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:5;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(var(--dv-panel-rgb), .92);border:1px solid var(--dv-line,#e6eaf2);color:var(--dv-ink,var(--dv-ink));cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.14);transition:transform .15s;}
.dv-auth-close:hover{transform:scale(1.06);}
@media (max-width:900px){
  .dv-auth{grid-template-columns:1fr;grid-template-rows:max-content max-content;align-content:start;}
  .dv-auth-pane{padding:60px 22px 30px;min-height:auto;}
  .dv-auth-form{min-height:auto;padding:26px 18px 48px;}
  .dv-auth-showcase{max-width:560px;margin:0 auto;gap:16px;}
  .dv-auth-showcase h1{font-size:clamp(26px,7vw,34px);}
  .dv-auth-props li:nth-child(n+3){display:none;}
  .dv-auth-card{max-width:560px;margin:0 auto;}
}

/* ============================ MARKET STORE SHELL ============================ */
.market-shell{padding:0;}
.catalog-shell{gap:24px;padding-top:24px;}
.dv-hero{isolation:isolate;}
.dv-hero-copy,.dv-hero-visual{position:relative;z-index:2;}

/* Filter controls read as obvious interactive pills with a chevron */
.catalog-filter-bar,.catalog-toolbar.catalog-filter-bar{border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-panel);box-shadow:var(--dv-shadow-1);gap:10px !important;}
.catalog-filter-bar select,.rebro-sort select{appearance:none;-webkit-appearance:none;padding:0 36px 0 14px;min-height:42px;
  border:1.5px solid var(--dv-line-strong);border-radius:var(--dv-pill);background-color:var(--dv-panel);color:var(--dv-ink);font-weight:700;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7689' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:15px;transition:border-color .18s,color .18s,box-shadow .18s;}
.catalog-filter-bar select:hover,.rebro-sort select:hover{border-color:var(--dv-accent);color:var(--dv-accent);}
.catalog-filter-bar select:focus-visible,.rebro-sort select:focus-visible{outline:none;border-color:var(--dv-accent);box-shadow:0 0 0 4px var(--dv-accent-tint);}
.catalog-filter-inline{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--dv-muted);font-weight:700;}

/* ============================ 3D DEVICE (hero) ============================ */
.dv-phone3d{position:relative;width:208px;height:420px;transform-style:preserve-3d;
  transform:rotateY(-20deg) rotateX(7deg) rotateZ(1.5deg);animation:dv-float-2 9s var(--dv-ease) infinite;will-change:transform;}
.dv-phone3d-body{position:absolute;inset:0;border-radius:46px;padding:9px;
  background:linear-gradient(135deg,#566488 0%,#2a3550 40%,#0e1726 100%);
  box-shadow:0 44px 80px rgba(6,12,30,.55),0 10px 24px rgba(6,12,30,.4),inset 0 2px 3px rgba(255,255,255,.28),inset 0 -4px 8px rgba(0,0,0,.45);}
.dv-phone3d-body::before{content:"";position:absolute;right:-3px;top:88px;width:3px;height:64px;border-radius:2px;background:linear-gradient(180deg,#7d8aa8,#384a6e);}
.dv-phone3d-body::after{content:"";position:absolute;left:-3px;top:120px;width:3px;height:40px;border-radius:2px;background:linear-gradient(180deg,#7d8aa8,#384a6e);}
.dv-phone3d-screen{position:absolute;inset:9px;border-radius:38px;overflow:hidden;
  background:radial-gradient(120% 80% at 50% -10%,rgba(255,255,255,.18),transparent 50%),linear-gradient(165deg,#064CEA 0%,#2a7be0 45%,#0fb5a6 100%);
  display:flex;flex-direction:column;gap:12px;padding:34px 16px 18px;color:#fff;}
.dv-phone3d-notch{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:84px;height:22px;border-radius:999px;background:#0a1120;z-index:3;}
.dv-phone3d-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;}
.dv-phone3d-brand .dv-mascot svg{filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));}
.dv-phone3d-h{font-size:23px;font-weight:800;line-height:1.05;letter-spacing:-.02em;}
.dv-phone3d-card{margin-top:auto;display:grid;grid-template-columns:52px 1fr;gap:11px;align-items:center;
  background:rgba(var(--dv-panel-rgb), .96);border-radius:16px;padding:11px;color:var(--dv-ink);box-shadow:0 12px 26px rgba(6,12,30,.3);}
.dv-phone3d-thumb{width:52px;height:52px;border-radius:11px;background:var(--dv-panel) center/cover no-repeat;box-shadow:inset 0 0 0 1px var(--dv-line);}
.dv-phone3d-card i{display:block;font-style:normal;font-size:11px;color:var(--dv-muted);font-weight:600;}
.dv-phone3d-card b{display:block;font-size:17px;font-weight:800;letter-spacing:-.02em;}
.dv-phone3d-card em{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:10.5px;font-weight:700;color:var(--dv-trust-ink);}
.dv-phone3d-cta{text-align:center;background:var(--dv-panel);color:var(--dv-accent);font-weight:800;font-size:14px;border-radius:999px;padding:11px;box-shadow:0 8px 20px rgba(6,12,30,.25);}
.dv-phone3d-gloss{position:absolute;inset:0;pointer-events:none;border-radius:38px;
  background:linear-gradient(125deg,rgba(var(--dv-panel-rgb), .35) 0%,rgba(var(--dv-panel-rgb), 0) 32%);}
@media (max-width:840px){.dv-phone3d{width:170px;height:344px;transform:rotateY(-14deg) rotateX(5deg);}
  /* Узкий экран телефона-макета — уменьшаем текст, чтобы «Проверенная техника» и цена
     не упирались в бортик рамки и не обрезались (фикс clip на 375px). */
  .dv-phone3d-h{font-size:18px;}.dv-phone3d-brand{font-size:14px;}.dv-phone3d-card b{font-size:15px;}}
@media (prefers-reduced-motion:reduce){.dv-phone3d{animation:none;}}

/* ============================ PURCHASE RAIL (tidy & aligned) ============================ */
.dv-rail{display:grid;gap:16px;}
.dv-rail-trust{display:flex;align-items:center;gap:12px;}
.dv-rail-trust-status{width:104px;height:104px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--dv-line);
  border-radius:26px;background:linear-gradient(145deg,var(--dv-accent-tint),var(--dv-surface));box-shadow:var(--dv-shadow-sm);}
.dv-rail-trust .c{display:grid;gap:1px;min-width:0;}
.dv-rail-trust .c b{font-size:15px;font-weight:800;color:var(--dv-ink);}
.dv-rail-trust .c span{font-size:13px;color:var(--dv-muted);}
.dv-rail-chips{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;}
/* Condition/availability read as highlighted text, not buttons */
.dv-rail-chips .commerce-chip{border:0;border-radius:6px;min-height:0;padding:2px 7px;font-weight:600;font-size:13px;letter-spacing:0;}
.dv-rail-price-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.dv-rail-price{font-size:34px;font-weight:800;letter-spacing:-.03em;color:var(--dv-ink);line-height:1;}
.dv-rail-meta{display:grid;gap:8px;margin:0;padding:0;list-style:none;}
.dv-rail-meta li{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:center;
  padding:11px 13px;background:var(--dv-surface);border-radius:13px;}
.dv-rail-meta .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--dv-panel);color:var(--dv-accent);box-shadow:inset 0 0 0 1px var(--dv-line);}
.dv-rail-meta .ico svg{width:18px;height:18px;}
.dv-rail-meta .t{display:grid;gap:1px;min-width:0;}
.dv-rail-meta .t b{font-size:13.5px;font-weight:800;color:var(--dv-ink);}
.dv-rail-meta .t span{font-size:12.5px;color:var(--dv-muted);line-height:1.4;}
.dv-rail .cta-button{width:100%;justify-content:center;}
.dv-rail-actions{display:grid;gap:10px;}
.dv-rail-actions .cta-button{width:100%;justify-content:center;}
.cta-secondary{background:var(--dv-panel) !important;color:var(--dv-accent) !important;border:1.5px solid var(--dv-accent) !important;box-shadow:none !important;}
.cta-secondary:hover{background:var(--dv-accent-tint) !important;transform:translateY(-1px);box-shadow:0 8px 20px rgba(6,76,234,.18) !important;}
.dv-request-form{display:grid;gap:12px;margin-top:4px;padding:14px;border-radius:14px;background:var(--dv-panel);border:1px solid var(--dv-line);}
.dv-request-form label strong{font-size:13px;color:var(--dv-ink);}
.dv-request-form input,.dv-request-form textarea{width:100%;}
.dv-rail-note{display:grid;gap:5px;padding:14px 16px;border-radius:14px;background:var(--dv-accent-tint);border:1px solid #d4e0fb;}
.dv-rail-note strong{font-size:14.5px;font-weight:800;color:var(--dv-ink);}
.dv-rail-note p{margin:0;font-size:13px;color:var(--dv-ink-soft);line-height:1.5;}
.dv-rail-link{display:inline-flex;justify-content:center;font-weight:700;color:var(--dv-accent);}

/* ============================ PAYMENT STEP ============================ */
.dv-pay{max-width:720px;margin:0 auto;display:grid;gap:18px;}
.dv-pay-hero{display:grid;gap:14px;justify-items:center;text-align:center;padding:26px;border-radius:var(--dv-radius-lg);
  background:linear-gradient(180deg,var(--dv-panel),var(--dv-accent-tint));border:1px solid #d4e0fb;}
.dv-pay-hero h2{margin:0;font-size:clamp(24px,3vw,32px);font-weight:800;}
.dv-pay-hero p{margin:0;color:var(--dv-muted);max-width:48ch;}
.dv-pay-amount{font-size:40px;font-weight:800;letter-spacing:-.03em;color:var(--dv-ink);}
.dv-pay-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.dv-pay-fact{display:grid;gap:4px;padding:16px;border:1px solid var(--dv-line);border-radius:14px;background:var(--dv-panel);}
.dv-pay-fact span{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dv-muted);}
.dv-pay-fact strong{font-size:17px;font-weight:800;color:var(--dv-ink);}
@media (max-width:560px){.dv-pay-facts{grid-template-columns:1fr;}}
.dv-status-block{display:grid;gap:8px;padding:18px;border:1px solid var(--dv-line);border-radius:14px;background:var(--dv-panel);}
.dv-status-block strong{font-size:16px;font-weight:800;color:var(--dv-ink);}
.dv-status-block p{margin:0;color:var(--dv-ink-soft);font-size:14px;line-height:1.5;}
.dv-status-block .small-copy{color:var(--dv-muted);font-size:12.5px;}
.dv-status-cancel-row{display:flex;gap:10px;flex-wrap:wrap;}
.dv-status-cancel-row input{flex:1 1 200px;min-width:0;padding:11px 13px;border-radius:10px;border:1px solid var(--dv-line);}
.dv-status-cancel-row .cta-button{flex:0 0 auto;}
/* Курьерская доставка: ровные шаги в едином синем (#064CEA) */
.dv-delivery-steps{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;}
.dv-delivery-steps li{flex:1 1 84px;min-width:72px;text-align:center;font-size:11.5px;font-weight:700;color:var(--dv-muted);padding:9px 6px;border:1px solid var(--dv-line);border-radius:10px;background:var(--dv-panel);line-height:1.25;}
.dv-delivery-steps li.done{color:var(--dv-accent);border-color:rgba(6,76,234,.35);background:rgba(6,76,234,.06);}
.dv-delivery-steps li.current{color:#fff;background:var(--dv-accent);border-color:var(--dv-accent);}
/* обязательные поля формы заявки */
.dv-request-form-lead{margin:0 0 4px;font-size:13.5px;color:var(--dv-ink-soft);line-height:1.5;}
.dv-request-form-note{margin:6px 0 0;font-size:12px;color:var(--dv-muted);line-height:1.45;}
.dv-request-field{display:grid;gap:6px;}
.dv-request-field>span{font-size:13px;font-weight:700;color:var(--dv-ink);}
.dv-request-field .req{color:var(--dv-bad);font-style:normal;}
.dv-request-field input,.dv-request-field textarea{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--dv-line);font:inherit;}
.dv-request-field input:focus,.dv-request-field textarea:focus{outline:none;border-color:var(--dv-accent);}

/* ===== Доверяй Market footer: buyer identity + truthful trust contract ===== */
/* sticky footer: page fills the viewport, footer pinned to the very bottom on short pages */
body{min-height:100vh;display:flex;flex-direction:column;}
body>.page{flex:1 0 auto;}
.dv-footer{position:relative;isolation:isolate;width:100%;margin:0;flex-shrink:0;overflow:hidden;
  background:radial-gradient(900px 420px at 78% -20%,rgba(34,105,255,.24),transparent 66%),
    radial-gradient(620px 340px at 8% 108%,rgba(15,181,166,.10),transparent 68%),#071326;color:#fff;}
.dv-footer-accent{height:3px;background:linear-gradient(90deg,#064cea 0%,#3f7dff 58%,#33c6b5 100%);}
.dv-footer-inner{max-width:1280px;margin:0 auto;padding:clamp(36px,5vw,56px) 24px 34px;display:grid;
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.7fr);gap:clamp(34px,5vw,72px);}
.dv-footer-brand{min-width:0;display:grid;gap:18px;align-content:start;}
.dv-footer-identity{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.dv-footer-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.01em;}
.dv-footer-market-label{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border:1px solid rgba(139,174,255,.46);
  border-radius:8px;background:rgba(6,76,234,.25);color:#dce7ff;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;}
.dv-footer-tagline{margin:0;font-size:15px;line-height:1.6;color:#c3cde0;max-width:340px;}
.dv-footer-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.dv-footer-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 14px;border:1px solid rgba(210,222,245,.24);
  border-radius:10px;background:rgba(255,255,255,.07);color:#f1f5ff;text-decoration:none;font-size:13px;font-weight:800;
  transition:background .18s,border-color .18s,transform .18s;}
.dv-footer-action--primary{border-color:#2f6fff;background:#1457e8;color:#fff;box-shadow:0 8px 24px rgba(6,76,234,.24);}
.dv-footer-action:hover{border-color:rgba(210,222,245,.5);background:rgba(255,255,255,.13);color:#fff;transform:translateY(-1px);}
.dv-footer-action--primary:hover{border-color:#5d8cff;background:#245fe1;}
.dv-footer-support{font-size:13px;color:#9eabc1;}
.dv-footer-content{min-width:0;display:grid;gap:32px;}
.dv-footer-trust{display:grid;gap:15px;}
.dv-footer-trust-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.dv-footer-trust-heading>span{color:#91b1ff;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;}
.dv-footer-trust-heading h2{margin:0;color:#f7f9ff;font-size:clamp(19px,2vw,24px);line-height:1.2;letter-spacing:-.02em;}
.dv-footer-trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.dv-footer-trust-card{min-width:0;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-content:start;padding:16px;
  border:1px solid rgba(170,192,233,.17);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));}
.dv-footer-trust-num{grid-row:span 2;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:rgba(48,105,242,.22);color:#a9c1ff;font-size:10px;font-weight:800;letter-spacing:.06em;}
.dv-footer-trust-card strong{color:#f6f8ff;font-size:13px;line-height:1.35;}
.dv-footer-trust-card p{margin:0;color:#aebbd0;font-size:12px;line-height:1.55;overflow-wrap:anywhere;}
.dv-footer-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,34px);}
.dv-footer-col{min-width:0;display:grid;gap:10px;align-content:start;}
.dv-footer-col h3{margin:0 0 5px;font-size:14px;font-weight:800;color:#f7f9ff;letter-spacing:-.01em;}
.dv-footer-col a{width:fit-content;max-width:100%;color:#afbbcf;text-decoration:none;font-size:13px;line-height:1.45;
  overflow-wrap:anywhere;transition:color .15s,transform .15s;}
.dv-footer-col a:hover{color:#fff;transform:translateX(2px);}
.dv-footer-bar{border-top:1px solid rgba(255,255,255,.1);}
.dv-footer-barwrap{max-width:1280px;margin:0 auto;padding:18px 24px 22px;display:grid;gap:9px;font-size:12px;color:#8e9cb3;}
.dv-footer-barline{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.dv-footer-note{margin:0;color:#9caac0;line-height:1.5;}
.dv-footer-legal{display:flex;gap:18px;flex-wrap:wrap;}
.dv-footer-legal a{color:#9eacc1;text-decoration:none;}
.dv-footer-legal a:hover{color:#fff;}
/* контакты в футере: телефон + брендовые соц-чипы */
.dv-footer-contacts{display:grid;gap:14px;margin-top:2px;}
.dv-footer-phone{display:inline-flex;align-items:center;gap:9px;width:fit-content;color:#fff;text-decoration:none;
  font-size:19px;font-weight:800;letter-spacing:-.01em;}
.dv-footer-phone svg{width:18px;height:18px;color:#7ad9cf;flex:0 0 auto;}
.dv-footer-phone:hover{color:#cfe0ff;}
.dv-footer-social{display:flex;flex-wrap:wrap;gap:9px;}
.dv-social-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--dv-pill);
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:rgba(233,238,250,.82);
  text-decoration:none;font-size:13px;font-weight:700;transition:background .18s,border-color .18s,color .18s,transform .18s;}
.dv-social-chip svg{width:17px;height:17px;color:#9cc0ff;flex:0 0 auto;}
.dv-social-chip:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28);color:#fff;transform:translateY(-1px);}
@media (max-width:980px){
  .dv-footer-inner{grid-template-columns:1fr;gap:34px;padding:34px 20px 28px;}
  .dv-footer-brand{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:24px;}
  .dv-footer-identity,.dv-footer-tagline,.dv-footer-actions{grid-column:1;}
  .dv-footer-support,.dv-footer-contacts{grid-column:2;}
  .dv-footer-support{grid-row:1;align-self:end;}
}
@media (max-width:700px){
  .dv-footer-brand{grid-template-columns:1fr;}
  .dv-footer-identity,.dv-footer-tagline,.dv-footer-actions,.dv-footer-support,.dv-footer-contacts{grid-column:1;grid-row:auto;}
  .dv-footer-cols{grid-template-columns:1fr 1fr;gap:22px;}
  .dv-footer-trust-grid{grid-template-columns:1fr;}
  .dv-footer-barwrap{padding:16px 20px 20px;}
}
@media (max-width:420px){
  .dv-footer-inner{padding-inline:16px;}
  .dv-footer-cols{gap:24px 14px;}
  .dv-footer-action{flex:1 1 132px;}
  .dv-footer-phone{font-size:17px;}
  .dv-social-chip{padding:7px 10px;font-size:12px;}
  .dv-footer-barwrap{padding-inline:16px;}
}

/* ---- Соцбаннер-«пузырёк» — ненавязчивый плавающий виджет соцсетей ----
   Угловой FAB с маскотом раскрывается в тёмную карточку (палитра футера #0b1424,
   чтобы переиспользовать .dv-social-chip как есть). Не блокирует покупки; на мобиле
   поднят над нижними бар-кнопками покупки (.dv-buybar z90 / .dv-pdp-mbar z40), а
   z-index держим ниже модалок/логина (.dv-auth z200, лайтбоксов z300+). */
.dv-socialbubble{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.dv-socialbubble-fab{position:relative;width:56px;height:56px;border-radius:50%;border:1px solid var(--dv-line,#e6eaf2);
  background:var(--dv-panel);box-shadow:0 10px 30px rgba(6,76,234,.22);display:grid;place-items:center;cursor:pointer;padding:0;
  transition:transform .16s var(--dv-ease,ease),box-shadow .16s;}
.dv-socialbubble-fab:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 36px rgba(6,76,234,.30);}
.dv-socialbubble-fab:focus-visible{outline:2px solid #064CEA;outline-offset:3px;}
.dv-socialbubble-fab .dv-mascot{display:grid;place-items:center;}
.dv-socialbubble-ping{position:absolute;top:5px;right:5px;width:12px;height:12px;border-radius:50%;background:#064CEA;
  border:2px solid #fff;animation:dv-sb-ping 2.2s var(--dv-ease,ease) infinite;}
.dv-socialbubble-card{width:272px;max-width:calc(100vw - 36px);background:#0b1424;color:#fff;
  border:1px solid rgba(255,255,255,.10);border-radius:18px;box-shadow:0 24px 60px rgba(8,12,20,.34);
  padding:16px 16px 15px;position:relative;animation:dv-sb-rise .22s var(--dv-ease,ease) both;}
.dv-socialbubble-close{position:absolute;top:9px;right:9px;width:30px;height:30px;border-radius:50%;border:0;
  background:rgba(255,255,255,.08);color:rgba(233,238,250,.78);font-size:19px;line-height:1;cursor:pointer;
  display:grid;place-items:center;transition:background .15s,color .15s;}
.dv-socialbubble-close:hover{background:rgba(255,255,255,.16);color:#fff;}
.dv-socialbubble-close:focus-visible{outline:2px solid #9cc0ff;outline-offset:2px;}
.dv-socialbubble-head{display:flex;align-items:center;gap:11px;padding-right:28px;margin-bottom:13px;}
.dv-socialbubble-head .dv-mascot{flex:0 0 auto;}
.dv-socialbubble-head strong{display:block;font-size:15px;font-weight:800;letter-spacing:-.01em;line-height:1.2;}
.dv-socialbubble-head span{display:block;font-size:12.5px;color:rgba(233,238,250,.62);margin-top:3px;line-height:1.35;}
.dv-socialbubble-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.dv-socialbubble-links .dv-social-chip{justify-content:center;}
@keyframes dv-sb-ping{0%{box-shadow:0 0 0 0 rgba(6,76,234,.5);}70%{box-shadow:0 0 0 9px rgba(6,76,234,0);}100%{box-shadow:0 0 0 0 rgba(6,76,234,0);}}
@keyframes dv-sb-rise{from{opacity:0;transform:translateY(10px) scale(.97);}to{opacity:1;transform:none;}}
@media (max-width:640px){.dv-socialbubble{right:14px;bottom:calc(88px + env(safe-area-inset-bottom,0px));}.dv-socialbubble-card{width:252px;}}
@media (prefers-reduced-motion:reduce){.dv-socialbubble-fab,.dv-socialbubble-card{transition:none;animation:none;}.dv-socialbubble-ping{animation:none;}}

/* ---- Marketplace 2026-06-17: condition/battery badges, Новые|Бу tabs, results page ---- */
.rebro-badge-muted{background:var(--dv-surface-2);color:var(--dv-ink-soft);}
.rebro-badge-good{background:var(--dv-good-tint);color:var(--dv-good);}
.rebro-badge-warn{background:var(--dv-warn-tint);color:var(--dv-warn);}
.rebro-badge-bad{background:var(--dv-bad-tint);color:var(--dv-bad);}

.dv-kind-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--dv-surface);border:1px solid var(--dv-line);border-radius:var(--dv-pill);width:max-content;}
.dv-kind-tab{appearance:none;border:0;background:transparent;color:var(--dv-ink-soft);font:inherit;font-weight:700;font-size:14px;padding:7px 18px;border-radius:var(--dv-pill);cursor:pointer;text-decoration:none;transition:background var(--dv-dur) var(--dv-ease),color var(--dv-dur) var(--dv-ease);}
.dv-kind-tab:hover{color:var(--dv-ink);}
.dv-kind-tab.is-active{background:var(--dv-accent);color:#fff;box-shadow:0 2px 6px rgba(6,76,234,.20);}

/* ===== Category showcase tiles — чистый согласованный вид (бренд-иконка + active=blue) ===== */
.category-tile{display:flex;align-items:center;gap:16px;padding:18px;text-decoration:none;color:inherit;background:var(--dv-panel);border:1px solid var(--dv-line);}
.category-tile .cat-ico{flex:0 0 auto;width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:var(--dv-accent-tint);color:var(--dv-accent);transition:background var(--dv-dur) var(--dv-ease),color var(--dv-dur) var(--dv-ease);}
.category-tile .cat-body{display:grid;gap:2px;min-width:0;}
.category-tile .cat-name{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--dv-ink);}
.category-tile .cat-hint{font-size:12.5px;line-height:1.35;color:var(--dv-muted);}
.category-tile .cat-open{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:12.5px;font-weight:800;color:var(--dv-accent);}
.category-tile .cat-open svg{transition:transform var(--dv-dur) var(--dv-ease);}
.category-tile:hover .cat-ico{background:var(--dv-accent);color:#fff;}
.category-tile:hover .cat-open svg{transform:translateX(3px);}
.category-tile.is-active{border-color:var(--dv-accent);background:var(--dv-accent-tint);}
.category-tile.is-active .cat-ico{background:var(--dv-accent);color:#fff;}
.category-tile.is-active .cat-name{color:var(--dv-accent-press);}
/* Пустая категория («Скоро в продаже») — приглушённая плитка без CTA, не кликается */
.category-tile--soon{cursor:default;background:var(--dv-surface,var(--dv-neutral-tint));border-style:dashed;}
.category-tile--soon .cat-ico{background:var(--dv-neutral-tint);color:var(--dv-muted-2,#8a93a6);}
.category-tile--soon .cat-name{color:var(--dv-muted,var(--dv-muted));}
.category-tile--soon:hover .cat-ico{background:var(--dv-neutral-tint);color:var(--dv-muted-2,#8a93a6);}
.cat-open--soon{display:inline-flex;align-items:center;gap:6px;margin-top:5px;font-size:12.5px;font-weight:800;color:var(--dv-muted-2,#8a93a6);letter-spacing:.01em;}
.cat-open--soon::before{content:"";width:7px;height:7px;border-radius:50%;background:#f0b429;box-shadow:0 0 0 3px rgba(240,180,41,.22);}

/* ===== Промо сервис-центра (тёмная фирменная полоса, переход на service.dodvir.com) ===== */
.dv-svc-promo{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;
  padding:clamp(22px,3vw,34px) clamp(22px,3.2vw,40px);border-radius:var(--dv-radius-xl);color:#fff;
  background:linear-gradient(120deg,#0e1726 0%,#15233f 56%,#1d3a6e 100%);box-shadow:var(--dv-shadow-2);}
.dv-svc-promo-glow{position:absolute;right:-8%;top:-50%;width:55%;height:200%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(6,76,234,.5),transparent 70%);filter:blur(8px);}
.dv-svc-promo-main{position:relative;z-index:1;display:grid;gap:10px;max-width:660px;min-width:0;}
.dv-svc-promo-kicker{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:6px 13px;border-radius:var(--dv-pill);
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#cfe0ff;}
.dv-svc-promo-kicker svg{width:15px;height:15px;}
.dv-svc-promo h2{color:#fff;font-size:clamp(22px,2.7vw,32px);line-height:1.1;font-weight:800;letter-spacing:-.02em;margin:0;}
.dv-svc-promo-hl{background:linear-gradient(90deg,#7ad9cf,#9cc0ff);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dv-svc-promo p{margin:0;color:rgba(233,238,250,.84);font-size:14.5px;line-height:1.55;max-width:54ch;}
.dv-svc-promo-points{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 0;padding:0;list-style:none;}
.dv-svc-promo-points li{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:#e9eefa;}
.dv-svc-promo-points svg{width:16px;height:16px;color:#7ad9cf;flex:0 0 auto;}
.dv-svc-promo-cta{position:relative;z-index:1;display:grid;gap:8px;justify-items:center;flex:0 0 auto;}
.dv-svc-promo-btn{background:var(--dv-panel);color:var(--dv-accent);box-shadow:0 12px 30px rgba(0,0,0,.28);white-space:nowrap;display:inline-flex;align-items:center;gap:8px;text-decoration:none;}
.dv-svc-promo-btn:hover{background:var(--dv-info-tint);transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.32);}
.dv-svc-promo-btn svg{width:16px;height:16px;}
.dv-svc-promo-note{font-size:12px;color:rgba(233,238,250,.6);font-weight:600;}
@media (max-width:720px){.dv-svc-promo{padding:22px;}.dv-svc-promo-cta{justify-items:stretch;width:100%;}.dv-svc-promo-btn{width:100%;justify-content:center;}}

.dv-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:4px;}
.dv-results-title{display:grid;gap:4px;}
.dv-results-title h1{margin:0;font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.02em;color:var(--dv-ink);}
.dv-results-title span{color:var(--dv-muted);font-size:14px;font-weight:600;}
.dv-results-back{color:var(--dv-accent);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;}
.dv-results-back:hover{text-decoration:underline;}
.catalog-results-page{padding-top:8px;}

/* ---- Detail: condition card, fulfillment options, payment-honesty note ---- */
.dv-cond-card{display:grid;gap:10px;padding:16px;border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-surface);}
.dv-cond-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;}
.dv-cond-row b{font-weight:700;color:var(--dv-ink);}
.dv-cond-defects{display:flex;flex-wrap:wrap;gap:6px;}
.dv-cond-defect{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:var(--dv-pill);background:var(--dv-warn-tint);color:var(--dv-warn);}
.dv-cond-note{font-size:13.5px;color:var(--dv-ink-soft);line-height:1.5;margin:0;}
.dv-battery{display:inline-flex;align-items:center;gap:6px;font-weight:700;}
.dv-battery .dv-battery-bar{width:54px;height:8px;border-radius:999px;background:var(--dv-line);overflow:hidden;}
.dv-battery .dv-battery-fill{display:block;height:100%;border-radius:999px;}
.dv-fulfil{display:grid;gap:10px;}
.dv-fulfil-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--dv-line);border-radius:var(--dv-radius-sm);background:var(--dv-panel);}
.dv-fulfil-opt .dv-fulfil-ic{font-size:18px;line-height:1.2;}
.dv-fulfil-opt b{display:block;font-size:14px;color:var(--dv-ink);}
.dv-fulfil-opt span{font-size:13px;color:var(--dv-muted);}
.dv-pay-note{font-size:13px;color:var(--dv-ink-soft);background:var(--dv-accent-tint);border-radius:var(--dv-radius-sm);padding:10px 12px;line-height:1.45;}
.dv-fulfil-choice{display:grid;gap:7px;}
.dv-fulfil-choice>span{font-size:13px;font-weight:700;color:var(--dv-ink);}
.dv-fulfil-radio{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--dv-ink-soft);cursor:pointer;padding:8px 11px;border:1px solid var(--dv-line);border-radius:var(--dv-radius-sm);background:var(--dv-panel);}
.dv-fulfil-radio input{accent-color:var(--dv-accent);width:16px;height:16px;}
.dv-fulfil-radio:hover{border-color:var(--dv-accent-line,#cdddfb);}
.dv-fulfil-help{font-size:12px;color:var(--dv-muted);line-height:1.4;margin:-2px 0 2px 27px;}
/* Куда ехать за заказом (и куда не ехать) — строка под выбором способа получения. Отдельного
   визуального языка не заводим: та же нейтральная поверхность и рамка, что у соседних карточек
   чекаута (.dv-pickup-point), только текст помельче. Телефон пункта — обычная ссылка tel:,
   крупнее окружающего текста, чтобы по нему попадали пальцем на 390px. */
.dv-visit-hint{margin:2px 0 0;padding:9px 11px;border:1px solid var(--dv-line);border-radius:var(--dv-radius-sm);background:var(--dv-surface);font-size:12.5px;line-height:1.45;color:var(--dv-ink-soft);}
.dv-visit-hint b{color:var(--dv-ink);font-weight:700;}
.dv-visit-hint-tel{font-weight:700;color:var(--dv-accent);white-space:nowrap;text-decoration:none;}
.dv-visit-hint-tel:hover{text-decoration:underline;}
/* B4: общая стоимость при доставке (товар + курьерская доставка) одной карточкой. */
.dv-delivery-total{display:grid;gap:6px;background:var(--dv-accent-tint);border:1px solid var(--dv-accent-line,#cdddfb);border-radius:var(--dv-radius-sm);padding:11px 13px;}
.dv-delivery-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--dv-ink-soft);}
.dv-delivery-total-row b{color:var(--dv-ink);font-weight:700;}
.dv-delivery-total .dv-fulfil-help{margin:2px 0 0;}
/* Объяснение потолка количества («это максимум для одной позиции») стоит отдельной строкой в
   панели покупки, где слева нет ни радиокнопки, ни иконки: наследованный отступ 27px уводил бы
   текст от края панели и рвал бы его на узком рейле. Отдельного визуального языка не заводим —
   это та же подпись-помощь, что и у счётчика выше (правило «брать компоненты, которые рядом»). */
.dv-card-buy>.dv-fulfil-help[data-qty-cap-reason]{margin:-4px 0 0;}

/* ---- Карточка-модель: выбор варианта (Цвет/Память/SIM) + минимальная заявка (2026-06-23) ---- */
.dv-card-buy{display:grid;gap:14px;padding:18px 18px 20px;}
.dv-card-price{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--dv-ink);}
.dv-card-stock{font-size:13.5px;font-weight:700;color:var(--dv-good,var(--dv-good));}
.dv-card-stock.is-out{color:var(--dv-bad,var(--dv-bad));}
.dv-card-stock-note{display:block;margin-top:4px;font-size:12px;font-weight:500;color:var(--dv-ink-soft,#52607a);}
.dv-card-axis{display:grid;gap:7px;}
.dv-axis-label{font-size:12.5px;font-weight:700;color:var(--dv-ink);}
.dv-axis-row{display:flex;flex-wrap:wrap;gap:8px;}
.dv-axis-chip{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:7px 14px;border:1.5px solid var(--dv-line,#e6e9f2);border-radius:12px;background:var(--dv-panel);font:inherit;font-size:13.5px;font-weight:600;color:var(--dv-ink);cursor:pointer;transition:border-color .12s ease,background .12s ease;}
.dv-axis-chip:hover{border-color:var(--dv-accent,#064CEA);}
.dv-axis-chip.is-active{border-color:var(--dv-accent,#064CEA);background:color-mix(in srgb,var(--dv-accent,#064CEA) 8%,transparent);color:var(--dv-accent,var(--dv-accent));}
.dv-axis-chip.is-out{opacity:.5;}
.dv-axis-chip.is-out::after{content:"нет";font-size:10px;font-weight:700;color:var(--dv-bad,var(--dv-bad));margin-left:2px;}
.dv-axis-dot{width:15px;height:15px;border-radius:50%;border:1px solid rgba(0,0,0,.14);flex:0 0 auto;}
.dv-card-request{display:grid;gap:10px;border-top:1px solid var(--dv-line,#e6e9f2);padding-top:14px;}
.dv-card-request .dv-field{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--dv-ink);}
.dv-card-request .dv-field input{min-height:42px;border:1.5px solid var(--dv-line,#e6e9f2);border-radius:11px;padding:8px 12px;font:inherit;font-size:14px;color:var(--dv-ink);background:var(--dv-panel);box-sizing:border-box;}
.dv-card-request .dv-field input:focus{outline:none;border-color:var(--dv-accent,#064CEA);}
.dv-card-paynote{font-size:12.5px;color:var(--dv-ink-soft);background:var(--dv-accent-tint);border-radius:10px;padding:9px 11px;margin:0;line-height:1.4;}
.dv-card-cta{width:100%;min-height:48px;font-size:15px;font-weight:700;}
.dv-card-cta:disabled{opacity:.5;cursor:not-allowed;}
.dv-card-desc h2,.dv-pdp-trust h2{font-size:16px;font-weight:800;margin:0 0 8px;color:var(--dv-ink);}
.dv-card-desc p,.dv-pdp-trust p{font-size:14px;line-height:1.55;color:var(--dv-ink-soft);margin:0;}

/* ---- Trade-in calculator ---- */
.dv-tradein{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start;}
.dv-tradein-copy h1{margin:8px 0 6px;font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.02em;}
.dv-tradein-copy>p{color:var(--dv-muted);max-width:520px;margin:0 0 18px;line-height:1.5;}
.dv-tradein-form{display:grid;gap:12px;max-width:520px;}
.dv-tradein-form label{display:grid;gap:5px;}
.dv-tradein-form label span{font-size:13px;font-weight:700;color:var(--dv-ink);}
.dv-tradein-form input,.dv-tradein-form select{padding:11px 13px;border:1px solid var(--dv-line);border-radius:var(--dv-radius-sm);font:inherit;background:var(--dv-panel);}
.dv-tradein-result{position:sticky;top:88px;background:var(--dv-panel);border:1px solid var(--dv-line);border-radius:var(--dv-radius);box-shadow:var(--dv-shadow-1);padding:22px;display:grid;gap:10px;text-align:center;}
.dv-tradein-label{font-size:13px;font-weight:700;color:var(--dv-muted);text-transform:uppercase;letter-spacing:.04em;}
.dv-tradein-range{font-size:clamp(26px,3.6vw,38px);font-weight:800;color:var(--dv-accent);letter-spacing:-.02em;}
.dv-tradein-result .cta-button{margin-top:6px;}
/* Filled empty-state: a «как это работает» block so the right column earns its space
   (no washed-out desert). Left-aligned, so the result card overrides text-align here. */
.dv-tradein-empty{display:grid;gap:14px;text-align:left;color:var(--dv-ink);}
.dv-tradein-empty-head{display:flex;align-items:center;gap:12px;}
.dv-tradein-empty-head strong{display:block;font-size:16px;font-weight:800;color:var(--dv-ink);}
.dv-tradein-empty-head span{display:block;font-size:13px;color:var(--dv-muted);margin-top:2px;}
.dv-tradein-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:ti;}
.dv-tradein-steps li{position:relative;padding-left:38px;counter-increment:ti;}
.dv-tradein-steps li::before{content:counter(ti);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--dv-accent-tint);color:var(--dv-accent);font-weight:800;font-size:13px;display:grid;place-items:center;}
.dv-tradein-steps li b{display:block;font-size:14px;font-weight:700;color:var(--dv-ink);}
.dv-tradein-steps li span{display:block;font-size:13px;color:var(--dv-muted);line-height:1.45;margin-top:2px;}
@media (max-width:760px){.dv-tradein{grid-template-columns:1fr;} .dv-tradein-result{position:static;}}

/* ---- Shop page + reviews + shop link ---- */
.dv-shop-trust{display:flex;align-items:center;gap:10px;background:var(--dv-accent-tint);color:var(--dv-ink-soft);border-radius:var(--dv-radius-sm);padding:12px 16px;font-size:14px;margin-bottom:18px;}
.dv-reviews{margin-top:30px;}
.dv-reviews h3{font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0 0 12px;}
.dv-shop-link{display:block;font-size:13.5px;color:var(--dv-ink-soft);background:var(--dv-surface);border:1px solid var(--dv-line);border-radius:var(--dv-radius-sm);padding:9px 12px;text-decoration:none;transition:border-color .15s;}
.dv-shop-link:hover{border-color:var(--dv-accent);color:var(--dv-accent);}
.dv-shop-link b{color:var(--dv-ink);font-weight:700;}

/* ============ PRODUCT DETAIL PAGE (Avito/Ozon-grade) — 2026-06-18 ============ */
/* C4: правая колонка ЦЕЛИКОМ отдана рейлу («rail» на все ряды ниже шапки, как Ozon):
   раньше «chooser chooser»/«info info» растягивались на всю ширину, и липкий buy-бокс
   при скролле накрывал колонку значений «Характеристик». Теперь chooser/info живут
   только в левой колонке — рейлу физически нечего накрывать. */
.dv-pdp{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"head head" "gallery rail" "chooser rail" "info rail";gap:24px 32px;align-items:start;margin-top:14px;}
.dv-pdp-head{grid-area:head;display:grid;gap:8px;}
.dv-pdp-title{font-size:30px;line-height:1.12;font-weight:800;letter-spacing:-.02em;color:var(--dv-ink);margin:0;}
.dv-pdp-chips{display:flex;flex-wrap:wrap;gap:8px;}
.dv-pdp-gallery{grid-area:gallery;min-width:0;}
.dv-pdp-rail{grid-area:rail;position:sticky;top:16px;}
.dv-pdp-rail .detail-rail{width:100%;}
.dv-pdp-info{grid-area:info;display:grid;gap:18px;min-width:0;}
.dv-pdp-trust{padding:18px;}
@media (max-width:960px){
  .dv-pdp{grid-template-columns:1fr;grid-template-areas:"head" "gallery" "rail" "chooser" "info";gap:18px;}
  .dv-pdp-rail{position:static;}
  .dv-pdp-title{font-size:24px;}
  .dv-pdp-chooser{grid-template-columns:1fr;}
}

/* ===== PDP redesign 2026-06-23: галерея (зум/лайтбокс), выбор варианта внизу, моб. панель покупки ===== */
.dv-pdp-chooser{grid-area:chooser;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;min-width:0;}
.dv-pdp-info{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;}
.dv-chooser-panel,.dv-specs{padding:18px 18px 20px;}
.dv-chooser-panel h2,.dv-specs h2{font-size:17px;font-weight:800;margin:0 0 4px;color:var(--dv-ink);}
.dv-chooser-sub{font-size:13px;color:var(--dv-muted);margin:0 0 6px;}
.dv-chooser-panel .dv-card-axis{margin-top:14px;}
.dv-axis-lg .dv-axis-row{gap:10px;}
.dv-axis-lg .dv-axis-chip{min-height:46px;padding:9px 16px;font-size:14px;border-radius:13px;}
.dv-axis-lg .dv-axis-dot{width:18px;height:18px;}
.dv-axis-lg .dv-axis-chip.is-active{box-shadow:0 0 0 1.5px var(--dv-accent,#064CEA) inset;}
.dv-card-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--dv-ink-soft);}
.dv-card-selected b{color:var(--dv-ink);font-weight:700;}
.dv-card-changevar{font-size:13px;font-weight:700;color:var(--dv-accent,var(--dv-accent));text-decoration:none;white-space:nowrap;}
.dv-card-changevar:hover{text-decoration:underline;}
.dv-spec-list{margin:14px 0 0;display:grid;gap:0;}
.dv-spec-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--dv-line,#e6e9f2);font-size:14px;}
.dv-spec-row:last-child{border-bottom:0;}
.dv-spec-row dt{color:var(--dv-muted);margin:0;}
.dv-spec-row dd{margin:0;color:var(--dv-ink);font-weight:600;text-align:right;}
.dv-gal{display:grid;gap:12px;}
.dv-gal-main{position:relative;background:var(--dv-panel);border:1px solid var(--dv-line,#e6e9f2);border-radius:var(--dv-radius,16px);overflow:hidden;aspect-ratio:1/1;cursor:zoom-in;box-shadow:var(--dv-shadow-1);}
.dv-gal-img{width:100%;height:100%;object-fit:contain;display:block;background:#fff;}
.dv-gal-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;background:rgba(var(--dv-panel-rgb), .94);color:var(--dv-ink);font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.14);opacity:0;transition:opacity .18s;z-index:2;}
.dv-gal-main:hover .dv-gal-arrow{opacity:1;}
.dv-gal-arrow.prev{left:10px;} .dv-gal-arrow.next{right:10px;}
.dv-gal-arrow:hover{background:var(--dv-panel);}
.dv-gal-count{position:absolute;left:12px;bottom:12px;background:rgba(20,24,33,.62);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;pointer-events:none;}
.dv-gal-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;}
.dv-gal-thumb{flex:0 0 auto;width:68px;height:68px;border:1.5px solid var(--dv-line,#e6e9f2);border-radius:12px;overflow:hidden;background:var(--dv-panel);cursor:pointer;padding:0;transition:border-color .15s,box-shadow .15s;}
.dv-gal-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.dv-gal-thumb:hover{border-color:var(--dv-accent,#064CEA);}
.dv-gal-thumb.is-active{border-color:var(--dv-accent,#064CEA);box-shadow:0 0 0 1.5px var(--dv-accent,#064CEA);}
.dv-lb{position:fixed;inset:0;z-index:1000;background:rgba(12,16,24,.92);display:flex;align-items:center;justify-content:center;padding:32px;animation:dvLbIn .2s ease;}
@keyframes dvLbIn{from{opacity:0}to{opacity:1}}
.dv-lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.dv-lb-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer;}
.dv-lb-close:hover{background:rgba(255,255,255,.26);}
.dv-lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:34px;line-height:1;cursor:pointer;}
.dv-lb-arrow:hover{background:rgba(255,255,255,.26);}
.dv-lb-arrow.prev{left:18px;} .dv-lb-arrow.next{right:18px;}
.dv-lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:700;background:rgba(255,255,255,.14);padding:5px 14px;border-radius:999px;}
.dv-pdp-mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;gap:12px;padding:10px 14px;background:var(--dv-panel);border-top:1px solid var(--dv-line,#e6e9f2);box-shadow:0 -4px 18px rgba(0,0,0,.08);}
.dv-pdp-mbar-price{display:flex;flex-direction:column;line-height:1.15;flex:1 1 auto;min-width:0;}
.dv-pdp-mbar-price span{font-size:18px;font-weight:800;color:var(--dv-ink);}
.dv-pdp-mbar-price small{font-size:11.5px;color:var(--dv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dv-pdp-mbar .cta-button{flex:0 0 auto;min-width:130px;white-space:nowrap;}
@media (max-width:840px){
  .dv-pdp-mbar{display:flex;}
  .item-detail-shell{padding-bottom:86px;}
  .dv-gal-arrow{opacity:1;}
}
@media (prefers-reduced-motion:reduce){.dv-lb{animation:none;}}

/* condition block (main column) */
.dv-condblock{border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-panel);padding:18px;display:grid;gap:12px;box-shadow:var(--dv-shadow-1);}
.dv-condblock-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.dv-condblock-head h3{margin:0;font-size:17px;font-weight:800;}
.dv-cond-key{color:var(--dv-muted);font-size:13.5px;}
.dv-cond-row-top{align-items:flex-start;}

/* star rating (gold fill clipped to fractional value) */
.dv-stars{position:relative;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;letter-spacing:1px;}
.dv-stars-bg{color:#d8dde6;}
.dv-stars-fg{position:absolute;left:0;top:0;overflow:hidden;color:#f5a623;white-space:nowrap;}

/* shop card (PDP) */
.dv-shopcard{border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-panel);padding:16px 18px;display:grid;gap:14px;box-shadow:var(--dv-shadow-1);}
.dv-shopcard-head{display:flex;align-items:center;gap:12px;}
.dv-shop-avatar{flex:0 0 auto;width:44px;height:44px;border-radius:14px;background:var(--dv-accent);color:#fff;font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;}
.dv-shop-avatar-img{object-fit:cover;background:var(--dv-info-tint);}
.dv-shop-avatar-lg{width:60px;height:60px;border-radius:18px;font-size:26px;}
.dv-shopcard-id{flex:1 1 auto;min-width:0;display:grid;gap:4px;}
.dv-shopcard-name{font-weight:800;font-size:16px;color:var(--dv-ink);text-decoration:none;}
.dv-shopcard-name:hover{color:var(--dv-accent);}
.dv-shopcard-rate{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--dv-muted);flex-wrap:wrap;}
.dv-shopcard-rate b{color:var(--dv-ink);}
.dv-shopcard-reviews{color:var(--dv-accent);text-decoration:none;font-weight:600;}
.dv-shopcard-reviews:hover{text-decoration:underline;}
.dv-shopcard-norate{color:var(--dv-muted);}
.dv-shopcard-badge{flex:0 0 auto;align-self:flex-start;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--dv-trust-ink);background:var(--dv-trust-tint);border-radius:var(--dv-pill);padding:5px 10px;white-space:nowrap;}
.dv-vcheck{flex:0 0 auto;display:block;}
.dv-shopcard-actions{display:flex;gap:10px;flex-wrap:wrap;}
.dv-btn--sm{padding:9px 16px;font-size:13.5px;}

/* more from shop */
.dv-morefromshop{margin-top:28px;}
.dv-morefromshop-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;}
.dv-morefromshop-head h3{margin:0;font-size:20px;font-weight:800;letter-spacing:-.01em;}

/* mobile sticky buy bar */
.dv-buybar{display:none;}
@media (max-width:760px){
  .dv-buybar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;align-items:center;justify-content:space-between;gap:14px;
    background:var(--dv-panel);border-top:1px solid var(--dv-line);box-shadow:0 -6px 20px rgba(13,23,38,.10);padding:10px 16px calc(10px + env(safe-area-inset-bottom));}
  .dv-buybar-price{display:grid;gap:2px;min-width:0;}
  .dv-buybar-amount{font-size:19px;font-weight:800;color:var(--dv-ink);}
  .dv-buybar-cond{font-size:12px;color:var(--dv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .dv-buybar-cta{flex:0 0 auto;padding:13px 24px;}
  .item-detail-shell{padding-bottom:78px;}
}

/* shop hero (shop page) */
.dv-shophero{display:flex;align-items:center;gap:16px;margin:10px 0 16px;flex-wrap:wrap;}
.dv-shophero-id{flex:1 1 240px;min-width:0;display:grid;gap:6px;}
.dv-shophero-id h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;}
.dv-shophero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--dv-muted);font-size:14px;}
.dv-shophero-rate{display:inline-flex;align-items:center;gap:6px;color:var(--dv-ink);}
.dv-shophero-rate b{font-weight:800;}

/* reviews list + form */
.dv-reviews-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;}
.dv-reviews-agg{display:inline-flex;align-items:center;gap:6px;color:var(--dv-muted);font-size:14px;}
.dv-reviews-agg b{color:var(--dv-ink);}
.dv-review-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:14px;}
.dv-review{border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-panel);padding:14px 16px;}
.dv-review-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.dv-review-author{font-weight:700;color:var(--dv-ink);}
.dv-review-verified{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--dv-good);background:var(--dv-good-tint);border-radius:var(--dv-pill);padding:3px 9px;}
.dv-review-date{margin-left:auto;color:var(--dv-muted);font-size:12.5px;}
.dv-review-body{margin:0;color:var(--dv-ink-soft);line-height:1.55;font-size:14.5px;}
.dv-review-edited{font-size:12px;font-weight:600;color:var(--dv-muted);font-style:italic;}
.dv-review-actions{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap;}
.dv-review-mine{font-size:12px;font-weight:700;color:var(--dv-accent);background:var(--dv-accent-tint);border-radius:var(--dv-pill);padding:3px 9px;}
.dv-review-link{background:none;border:0;padding:0;font-weight:700;font-size:13.5px;color:var(--dv-accent);cursor:pointer;transition:color var(--dv-dur);}
.dv-review-link:hover{color:var(--dv-accent-press);text-decoration:underline;}
.dv-review-link--danger{color:var(--dv-bad);}
.dv-review-link--danger:hover{color:var(--dv-bad);}
.dv-review--editing{border-color:var(--dv-accent-line,#cdddfb);box-shadow:0 0 0 3px var(--dv-accent-tint);}
/* Свой отзыв — заметный блок наверху списка с явной кнопкой «Изменить отзыв». */
.dv-review--mine.dv-review--prominent{border-color:var(--dv-accent-line,#cdddfb);background:var(--dv-accent-tint);box-shadow:0 0 0 1px var(--dv-accent-line,#cdddfb);}
.dv-review-mine-tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--dv-accent);margin-bottom:8px;}
.dv-review-edit{flex:0 0 auto;}
.dv-review-editform{display:grid;gap:10px;}
.dv-reviewform{border:1px solid var(--dv-line);border-radius:var(--dv-radius);background:var(--dv-surface);padding:18px;display:grid;gap:12px;}
.dv-reviewform h4{margin:0;font-size:17px;font-weight:800;}
.dv-reviewform-stars{display:flex;align-items:center;gap:4px;}
.dv-star-btn{appearance:none;border:0;background:none;cursor:pointer;font-size:28px;line-height:1;color:#d8dde6;padding:0 2px;transition:color .12s,transform .12s;}
.dv-star-btn.on{color:#f5a623;}
.dv-star-btn:hover{transform:scale(1.12);}
.dv-reviewform-ratenum{margin-left:8px;font-weight:800;color:var(--dv-ink);}
.dv-reviewform-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.dv-reviewform-error{margin:0;color:var(--dv-bad);font-size:13.5px;font-weight:600;}
@media (max-width:560px){.dv-reviewform-row{grid-template-columns:1fr;}}

/* shop row on catalog card */
.rebro-shop{display:flex;align-items:center;gap:8px;justify-content:space-between;text-decoration:none;margin:-2px 0 2px;padding:2px 0;}
.rebro-shop-name{font-size:12.5px;color:var(--dv-muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rebro-shop:hover .rebro-shop-name{color:var(--dv-accent);}
.rebro-shop-rate{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--dv-ink);font-weight:700;}
@media (prefers-reduced-motion:reduce){.dv-star-btn:hover{transform:none;}}

/* Окно доставки на статусе заявки (block F1/F3) */
.dv-delivery-window{margin:2px 0 4px;font-size:14px;color:var(--dv-accent);}
.dv-delivery-window b{font-weight:800;}

/* Уведомления покупателя в шапке (block F4) */
.dv-notif{position:relative;display:inline-flex;}
.dv-notif-scrim{position:fixed;inset:0;z-index:40;}
.dv-notif-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:320px;max-width:88vw;max-height:70vh;overflow:auto;background:var(--dv-panel);border:1px solid var(--dv-line);border-radius:14px;box-shadow:0 18px 48px rgba(16,24,40,.18);padding:6px;}
.dv-notif-head{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--dv-muted);padding:8px 10px 6px;}
.dv-notif-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:9px 10px;cursor:pointer;transition:background var(--dv-dur);}
.dv-notif-item:hover{background:var(--dv-accent-tint);}
.dv-notif-item strong{font-size:13.5px;color:var(--dv-ink);font-weight:700;}
.dv-notif-item span{font-size:12px;color:var(--dv-muted);line-height:1.4;}
.dv-notif-empty{font-size:13px;color:var(--dv-muted);padding:12px 10px 14px;}

/* ---- C1: единый чекаут — нумерация шагов + детерминированный адрес доставки ---- */
.dv-step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:var(--dv-accent);color:#fff;font-size:11px;font-weight:800;vertical-align:middle;}
.dv-pay-step{padding:12px !important;background:var(--dv-accent-tint);border:1px solid var(--dv-accent-line,#d4e0fb) !important;border-radius:12px;}
/* Адрес доставки — то, куда приедет курьер, и человек обязан прочитать его глазами до
   подтверждения. Однострочный ввод прокручивал длинную строку по горизонтали и прятал хвост
   («… кв. 145, домофон 145») и на десктопе, и на 390px, а галочка «подтверждено» лежала
   поверх текста. Поэтому: город отдельной строкой, ввод многострочный и растёт под текст,
   подсказки переносятся вместо многоточия. */
.dv-b2c-addr{position:relative;}
.dv-b2c-addr-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
.dv-b2c-addr-cap{font-size:11.5px;font-weight:700;color:var(--dv-muted);letter-spacing:.01em;}
.dv-b2c-addr-city-field{display:grid;gap:4px;justify-self:start;min-width:170px;}
.dv-b2c-addr-city{padding:10px 10px;border-radius:10px;border:1px solid var(--dv-line);font:inherit;background:var(--dv-panel,var(--dv-panel));color:var(--dv-ink);}
.dv-b2c-addr-ctrl{position:relative;display:block;min-width:0;}
/* Селектор нарочно с двумя классами: .dv-cart-grid textarea из landing.css грузится ПОЗЖЕ и
   при равном весе возвращал бы padding-right 13px — правый отступ под галочку «подтверждено»
   исчезал, и она снова ложилась на последнюю цифру дома. */
.dv-b2c-addr .dv-b2c-addr-ctrl textarea{width:100%;display:block;box-sizing:border-box;resize:none;overflow:hidden;
  min-height:46px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;padding:11px 38px 11px 13px;}
.dv-b2c-addr-detail{display:grid;gap:4px;}
.dv-b2c-addr-ok{position:absolute;right:13px;top:13px;color:var(--dv-good);font-weight:800;pointer-events:none;}
.dv-b2c-addr-list{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--dv-panel);border:1px solid var(--dv-line);border-radius:12px;box-shadow:0 16px 40px rgba(14,23,38,.16);max-height:280px;overflow:auto;}
.dv-b2c-addr-item{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:9px 11px;border-radius:9px;cursor:pointer;font-size:13.5px;line-height:1.35;color:var(--dv-ink);}
.dv-b2c-addr-item:hover,.dv-b2c-addr-item.is-active{background:var(--dv-accent-tint);}
.dv-b2c-addr-item.out{opacity:.6;cursor:not-allowed;}
.dv-b2c-addr-text{min-width:0;white-space:normal;overflow-wrap:anywhere;}
.dv-b2c-addr-badge{flex:none;margin-top:1px;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--dv-surface);color:var(--dv-muted);}
.dv-b2c-addr-badge.out{background:var(--dv-bad-tint,var(--dv-bad-tint));color:var(--dv-bad);}
/* Подсказка под полем — именно подсказка: правило .dv-request-field>span делало её жирной
   и цвета основного текста, и она спорила с самой подписью поля. */
.dv-b2c-addr>.dv-fulfil-help{margin:0;font-size:12px;font-weight:500;color:var(--dv-muted);}
/* Строка «как получит курьер»: один и тот же текст здесь и в заказе — без неё покупатель
   подтверждал адрес по памяти. */
.dv-b2c-addr-review{display:grid;gap:2px;margin:0;padding:9px 11px;border-radius:10px;
  background:var(--dv-surface);border:1px solid var(--dv-line);}
.dv-b2c-addr-review-cap{font-size:11.5px;font-weight:700;color:var(--dv-muted);}
.dv-b2c-addr-review-value{font-size:13.5px;line-height:1.4;color:var(--dv-ink);overflow-wrap:anywhere;}
/* Та же сверка перед самой кнопкой оформления: между полем и кнопкой лежат контакты, бонусы
   и итог, и адрес к моменту нажатия уже уехал с экрана. */
.dv-checkout-addr-review{display:grid;gap:3px;margin:2px 0 0;padding:10px 12px;border-radius:12px;
  background:var(--dv-surface);border:1px solid var(--dv-line);}
.dv-checkout-addr-review-cap{font-size:11.5px;font-weight:700;color:var(--dv-muted);}
.dv-checkout-addr-review-value{font-size:14px;line-height:1.4;color:var(--dv-ink);overflow-wrap:anywhere;}
.dv-checkout-addr-review-note{font-size:12px;line-height:1.4;color:var(--dv-muted);}
@media (max-width:520px){.dv-b2c-addr-city-field{justify-self:stretch;}}

/* ===== Срез 2 (2026-06-30): баннер-линейки iPhone · цветовые свотчи фильтра · бейдж «лучшая цена» ===== */
/* Плитки линеек iPhone в баннере (на тёмном hero) */
.dv-hero-models{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px;}
.dv-hero-model{display:inline-flex;flex-direction:column;gap:3px;align-items:flex-start;min-width:132px;
  padding:11px 16px;border-radius:14px;cursor:pointer;text-align:left;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,border-color .15s,transform .15s;}
.dv-hero-model:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.36);transform:translateY(-1px);}
.dv-hero-model:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(124,191,255,.55);}
.dv-hero-model-name{font-size:16px;font-weight:800;letter-spacing:-.02em;}
.dv-hero-model-note{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#9fe0d6;}
.dv-hero-model-go{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:rgba(233,238,250,.82);}
.dv-hero-model-go svg{width:13px;height:13px;}

/* Панель фильтров: чистый ряд, ровные отступы (заменяет инлайн-стиль) */
.dv-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;padding:12px 16px;}
.dv-filter-group{display:flex;align-items:center;gap:10px;min-width:0;}
.dv-filter-label{font-size:13px;font-weight:700;color:var(--dv-muted);flex:0 0 auto;}
.dv-filter-reset{margin-left:auto;font-size:13px;font-weight:700;color:var(--dv-accent);align-self:center;}

/* Цветовые свотчи (кружки) */
.dv-swatch-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;}
.dv-swatch{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;
  border-radius:50%;border:2px solid transparent;background:none;cursor:pointer;flex:0 0 auto;
  transition:border-color .15s,transform .12s;}
.dv-swatch:hover{transform:scale(1.06);}
.dv-swatch:focus-visible{outline:none;border-color:var(--dv-accent);box-shadow:0 0 0 3px var(--dv-accent-tint);}
.dv-swatch-dot{width:27px;height:27px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.10);}
.dv-swatch.is-light .dv-swatch-dot{box-shadow:inset 0 0 0 1px rgba(0,0,0,.22);}
.dv-swatch.is-active{border-color:var(--dv-accent);}
.dv-swatch.is-active .dv-swatch-dot{box-shadow:inset 0 0 0 1px rgba(0,0,0,.14);}
.dv-swatch-all{width:auto;height:32px;padding:0 14px;border-radius:var(--dv-pill);font-size:13px;font-weight:700;
  color:var(--dv-ink-soft);background:var(--dv-surface);border:1.5px solid var(--dv-line);cursor:pointer;}
.dv-swatch-all.is-active{background:var(--dv-accent);color:#fff;border-color:var(--dv-accent);}
/* Счётчик карточек у цветового свотча (Волна 2): маленькая пилюля в углу кружка. */
.dv-swatch{position:relative;}
.dv-swatch-count{position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;
  background:var(--dv-ink);color:#fff;font-size:9.5px;font-weight:800;line-height:15px;text-align:center;pointer-events:none;}

/* Динамические фасеты память/модель (Волна 2): ряд чипов со счётчиком */
.dv-facet-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;}
.dv-facet-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:var(--dv-pill);
  font-size:13px;font-weight:700;color:var(--dv-ink-soft);background:var(--dv-surface);border:1.5px solid var(--dv-line);
  cursor:pointer;transition:background var(--dv-dur),border-color var(--dv-dur),color var(--dv-dur);}
.dv-facet-chip:hover{border-color:var(--dv-accent);color:var(--dv-accent);}
.dv-facet-chip:focus-visible{outline:none;border-color:var(--dv-accent);box-shadow:0 0 0 3px var(--dv-accent-tint);}
.dv-facet-chip.is-active{background:var(--dv-accent);color:#fff;border-color:var(--dv-accent);}
.dv-facet-count{font-size:11px;font-weight:800;opacity:.7;}
.dv-facet-chip.is-active .dv-facet-count{opacity:.85;}

/* Фильтр по цене: два инпута «от/до» (₽) */
.dv-price-row{display:inline-flex;align-items:center;gap:8px;}
.dv-price-input{width:88px;height:34px;padding:0 12px;border-radius:var(--dv-pill);border:1.5px solid var(--dv-line);
  background:var(--dv-surface);font:inherit;font-size:13px;font-weight:600;color:var(--dv-ink);}
.dv-price-input:focus-visible{outline:none;border-color:var(--dv-accent);background:var(--dv-panel);box-shadow:0 0 0 3px var(--dv-accent-tint);}
.dv-price-dash{color:var(--dv-muted);font-weight:700;}

/* Крос-сейл аксессуаров на карточке телефона */
.dv-pdp-xsell{margin-top:22px;}

/* Бейдж «лучшая цена» на PDP */
.dv-bestprice-line{margin-top:-2px;}
.dv-bestprice{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--dv-pill);
  font-size:12.5px;font-weight:800;color:var(--dv-good);background:var(--dv-good-tint);border:1px solid #bfe9d4;}
.dv-bestprice svg{width:13px;height:13px;flex:0 0 auto;}

@media (max-width:560px){
  .dv-hero-model{min-width:calc(50% - 5px);flex:1 1 calc(50% - 5px);}
  .dv-filter-bar{gap:10px 12px;padding:12px;}
  .dv-swatch{width:42px;height:42px;}
  .dv-swatch-dot{width:30px;height:30px;}
  /* На узком экране каждая группа фасетов — на своей строке (label над рядом чипов) */
  .dv-filter-group{flex-direction:column;align-items:flex-start;gap:7px;width:100%;}
  .dv-filter-price{flex-direction:row;align-items:center;}
  .dv-price-input{width:78px;}
}

/* ===== UX-аудит 2026-07-02: полировка витрины ===== */
/* имя выбранного цвета текстом рядом с «Цвет» */
.dv-filter-label-value{color:var(--dv-ink);font-weight:800;}
/* чипы активных условий (поиск/цвет/тип) с крестиком */
.dv-active-chips{display:flex;flex-wrap:wrap;gap:8px;}
.dv-active-chip{appearance:none;display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--dv-pill);
  border:1px solid #d4e0fb;background:var(--dv-accent-tint);color:var(--dv-accent);font:inherit;font-size:13px;font-weight:700;cursor:pointer;
  transition:background var(--dv-dur),border-color var(--dv-dur);}
.dv-active-chip span{font-size:15px;line-height:1;}
.dv-active-chip:hover{background:var(--dv-info-tint);border-color:var(--dv-accent);}
/* бейдж «Фото: другой цвет» на карточке сетки (у карточки нет фото выбранного цвета) */
.rebro-photo-link{position:relative;display:block;}
.dv-photo-note{position:absolute;left:8px;bottom:8px;z-index:2;padding:4px 9px;border-radius:8px;background:rgba(14,23,38,.78);color:#fff;
  font-size:11px;font-weight:700;pointer-events:none;}
/* приписка под галереей PDP (одно фото на несколько цветов) */
.dv-gal-note{margin:8px 0 0;font-size:12.5px;color:var(--dv-muted);text-align:center;}
/* контакты-действия на /info/contacts */
.dv-contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
.dv-contact-action{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--dv-pill);
  border:1.5px solid var(--dv-line-strong,#d8dde8);background:var(--dv-panel);color:var(--dv-ink);text-decoration:none;font-size:14px;font-weight:700;
  transition:border-color var(--dv-dur),background var(--dv-dur),transform var(--dv-dur);}
.dv-contact-action svg{width:17px;height:17px;color:var(--dv-accent);}
.dv-contact-action:hover{border-color:var(--dv-accent);background:var(--dv-accent-tint);transform:translateY(-1px);}
/* подпись остатка у степпера корзины */
.dv-cart-line-stock{font-size:12px;font-weight:700;color:var(--dv-warn-ink,#8a6d00);}
/* кнопка «Показать ещё» — в пилюльную систему кнопок */
.rebro-showmore button{border-radius:var(--dv-pill) !important;}
/* заголовки инфо-страниц — в единую шкалу (были крупнее главной) */
.dv-info h1{font-size:clamp(26px,3vw,34px);}
/* чекаут: рамка fieldset выбивалась из скруглённого стиля */
.dv-fulfil-choice{border:0;padding:0;margin:0;}
/* избранное: карточки не вылезают за подложку на мобиле */
.panel .rebro-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));}
.rebro-card{min-width:0;}
/* точки hero: крупнее зона тапа + видимый фокус на самой кнопке */
.dv-hero-dot{padding:14px 7px;}
.dv-hero-dot:focus-visible{outline:2.5px solid #9cc0ff;outline-offset:2px;border-radius:8px;}
/* мобильный hero компактнее: сначала текст и CTA, мокап меньше и ниже */
@media (max-width:840px){
  .dv-hero-carousel .dv-hero--slide .dv-hero-visual{order:1;min-height:0;}
  .dv-hero-carousel .dv-hero--slide{grid-template-columns:1fr;}
  .dv-phone3d{width:172px;height:348px;}
  .dv-phone3d-h{font-size:19px;}
  .dv-phone3d-card{grid-template-columns:44px 1fr;gap:9px;}
  .dv-phone3d-thumb{width:44px;height:44px;}
  .dv-phone3d-card i{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .dv-phone3d-card b{font-size:14.5px;white-space:nowrap;}
  .dv-repair{width:min(292px,88%);}
}
/* A7: ориентир доставки на PDP (самовывоз + курьер, живой расчёт). */
.dv-card-shipinfo{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--dv-ink-soft);line-height:1.45;margin:0 0 2px;}

/* ─── Счётчик количества и правая колонка строки корзины (потолок 20 шт.) ───────
   Потолок строки заказа стал двузначным — и счётчик перестал помещаться в свой
   контейнер. Причина одна на два экрана: у .dv-qty-stepper (base.css / landing.css)
   стоит overflow:hidden, а по CSS это обнуляет автоматический минимальный размер
   флекс- и грид-элемента (min-width:auto → 0). Контейнер сжимался до 66 px при
   содержимом 85 px, и «+» оказывался ЗА краем клипа: увеличить количество с карточки
   было физически нельзя, а в строке корзины на 390 px счётчик ужимался до 2 px и
   исчезал целиком. Экран молча отбирал у покупателя действие — ровно то, что
   запрещено («ничего не исчезает молча», «экран отвечает, что будет после действия»).

   Лечим причину: счётчику запрещено сжиматься ниже собственного содержимого, а
   тесные строки разводим переносом, а не клипом. Размеры, отступы и типографика —
   те же, что уже стоят рядом (gap 12px, .dv-fulfil-help, .dv-cart-line-stock). */
.dv-qty-stepper{flex:0 0 auto;min-width:max-content;}
.dv-qty-stepper button{flex:0 0 auto;padding:0;}
/* Тёмная тема перекрашивала обе кнопки счётчика в один цвет чернил (theme.css), и погасшая
   на потолке «+» выглядела рабочей: отказ переставал называть себя ровно там, где начинается
   правило «максимум для одной позиции». Возвращаем приглушённый тон выключенной кнопки — тот
   же --dv-muted-2, что и в светлой теме. */
html[data-theme="dark"] .dv-qty-stepper button:disabled{color:var(--dv-muted-2,#73829d);}

/* Ряд «Количество» на карточке: подпись и счётчик держат свой размер, подсказка
   забирает остаток строки и уходит на свою строку, когда остатка уже не хватает. */
.dv-card-buy .dv-card-qty-row{flex-wrap:wrap;row-gap:8px;column-gap:12px;}
.dv-card-buy .dv-card-qty-row>.dv-axis-label{flex:0 0 auto;}
.dv-card-buy .dv-card-qty-row>.dv-fulfil-help{flex:1 1 150px;min-width:0;margin:0;}

/* Правая колонка строки корзины: объяснение потолка — целое предложение, и на
   десктопе оно раздувало колонку `auto` до 505 px, отбирая ширину у названия товара
   (заголовок и плашка происхождения рвались на 2–4 строки). Ограничиваем колонку по
   самой длинной однострочной подписи и прижимаем текст к тому же правому краю, что
   и сумма. */
.dv-cart-line .dv-cart-line-side{max-width:264px;}
.dv-cart-line .dv-cart-line-side>.dv-cart-line-stock{text-align:right;}

/* Узкий экран: landing.css оставляет строке две колонки уже с 640 px, а base.css
   переносит блок управления вниз только с 520 px — в промежутке весь блок вставал в
   72-пиксельную колонку фотографии. Переносим его на том же пороге и раскладываем в
   две колонки вместо одной длинной ленты (grid-auto-flow:column из base.css рвал
   объяснение потолка на одно слово в строку). Ничего не выбрасываем: количество,
   состояние товара, причина потолка, сумма и «Удалить» остаются на экране. */
@media (max-width:640px){
  .dv-cart-line .dv-cart-line-side{
    grid-column:1 / -1;max-width:none;
    grid-auto-flow:row;grid-template-columns:auto minmax(0,1fr);
    justify-items:start;align-items:center;gap:8px 12px;
  }
  .dv-cart-line .dv-cart-line-side>.dv-qty-stepper{grid-column:1;grid-row:1;}
  .dv-cart-line .dv-cart-line-side>.dv-cart-line-total{grid-column:2;grid-row:1;justify-self:end;}
  .dv-cart-line .dv-cart-line-side>.dv-cart-line-stock{grid-column:1 / -1;text-align:left;}
  .dv-cart-line .dv-cart-line-side>.dv-cart-remove{grid-column:1 / -1;justify-self:end;}
}

/* ============================================================================
   Этап 7 — «заказ в пункте Доверяй».
   Единственная точка маршрута, где товар проходит через наши руки, и до сих пор
   покупателю про неё не говорили. Блок операционный, а не рекламный: плотная
   карточка на тех же токенах, что и остальные панели витрины, — никаких
   отдельных иллюстраций и пустых декоративных макетов.
   Тёмная тема поддержана самими токенами (--dv-*), а не отдельными правилами:
   отдельный набор цветов здесь и был бы тем самым «ещё одним местом, где тёмная
   тема не поддержана».
   ============================================================================ */
.dv-atpoint{
  display:grid;gap:14px;padding:20px;
  border:1px solid var(--dv-line-strong);border-radius:16px;
  background:radial-gradient(120% 140% at 100% 0%, var(--dv-accent-tint), transparent 62%),
    var(--dv-panel);
  box-shadow:var(--dv-shadow-1);
}
.dv-atpoint--pickup{
  border-color:color-mix(in srgb, var(--dv-good) 42%, var(--dv-line-strong));
  background:radial-gradient(120% 140% at 100% 0%, var(--dv-good-tint), transparent 62%),
    var(--dv-panel);
}
.dv-atpoint-head{display:flex;gap:14px;align-items:flex-start;}
.dv-atpoint-head-copy{display:grid;gap:4px;min-width:0;}
.dv-atpoint-kicker{
  font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dv-accent);
}
.dv-atpoint--pickup .dv-atpoint-kicker{color:var(--dv-good);}
.dv-atpoint-title{margin:0;font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--dv-ink);line-height:1.22;}
.dv-atpoint-body{margin:0;font-size:14px;line-height:1.5;color:var(--dv-ink-soft);}

/* Пломба приёмки: маскот бренда + галочка. Тот же знак, что и «Проверено Доверяй»
   на карточке товара, поэтому нового визуального языка не появляется. */
.dv-atpoint-seal{
  position:relative;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:14px;
  /* Плашка светлая в ОБЕИХ темах: маскот нарисован фирменным синим (#064CEA) прямо в
     контурах SVG и на тёмной панели читался бы как пятно. Так же витрина уже поступает
     с бейджами поверх фотографий (theme.css, .commerce-media .commerce-chip). */
  background:var(--dv-info-tint);color:var(--dv-accent);
}
.dv-atpoint-seal.is-ready{background:var(--dv-good-tint);color:var(--dv-good);}
.dv-atpoint-seal .dv-mascot{display:inline-flex;}
.dv-atpoint-seal-check{
  position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;padding:3px;
  border-radius:999px;background:var(--dv-panel);box-shadow:0 1px 4px rgba(0,0,0,.22);
  color:inherit;
}

/* Шаги маршрута: та же лента, что у курьерских шагов (.dv-delivery-steps), — берём
   существующий компонент, а не рисуем второй таймлайн. */
.dv-atpoint-steps{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;}
.dv-atpoint-steps li{
  flex:1 1 96px;min-width:84px;text-align:center;line-height:1.25;
  font-size:11.5px;font-weight:700;color:var(--dv-muted);
  padding:9px 6px;border:1px solid var(--dv-line);border-radius:10px;background:var(--dv-surface);
}
.dv-atpoint-steps li.done{color:var(--dv-accent);border-color:color-mix(in srgb, var(--dv-accent) 38%, transparent);background:var(--dv-accent-tint);}
.dv-atpoint-steps li.current{color:var(--dv-bg);background:var(--dv-accent);border-color:var(--dv-accent);}  /* текст берёт цвет фона витрины: на светлой теме белый по синему, на тёмной — тёмный по
     светло-синему. Захардкоженный #fff давал белое по светло-синему в тёмной теме. */
.dv-atpoint--pickup .dv-atpoint-steps li.done{color:var(--dv-good);border-color:color-mix(in srgb, var(--dv-good) 38%, transparent);background:var(--dv-good-tint);}
.dv-atpoint--pickup .dv-atpoint-steps li.current{color:var(--dv-bg);background:var(--dv-good);border-color:var(--dv-good);}

.dv-atpoint-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;}
.dv-atpoint-fact{
  display:grid;gap:3px;min-width:0;padding:11px 13px;
  border:1px solid var(--dv-line);border-radius:12px;background:var(--dv-surface);
}
.dv-atpoint-fact dt{font-size:11.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--dv-muted);}
.dv-atpoint-fact dd{margin:0;font-size:13.5px;line-height:1.45;color:var(--dv-ink);overflow-wrap:anywhere;}

.dv-atpoint-next{
  margin:0;padding:11px 13px;border-radius:12px;
  background:var(--dv-accent-tint);color:var(--dv-ink);
  font-size:13.5px;line-height:1.45;font-weight:600;
}
.dv-atpoint--pickup .dv-atpoint-next{background:var(--dv-good-tint);}
.dv-atpoint-actions{display:flex;flex-wrap:wrap;gap:8px;}

@media (max-width:520px){
  .dv-atpoint{padding:16px;gap:12px;}
  .dv-atpoint-title{font-size:18px;}
  .dv-atpoint-steps li{flex:1 1 calc(50% - 8px);}
  .dv-atpoint-facts{grid-template-columns:1fr;}
}

/* Сквозное уведомление витрины. Визуальный язык взят у уже существующего
   уведомления (store-auth-toast): фиксированная карточка сверху по центру. */
.dv-atpoint-toast{
  /* Стоит ПОД шапкой и у правого края: уведомление не имеет права закрывать ни поиск с
     корзиной в шапке, ни заголовок страницы (он слева). Шапка витрины sticky, её высота
     75px на десктопе и 179px на узком экране — замерено в браузере, а не на глаз. */
  position:fixed;top:87px;right:16px;z-index:89;
  width:min(420px,calc(100vw - 32px));
  display:flex;align-items:flex-start;gap:12px;padding:13px 14px;
  border:1px solid var(--dv-line-strong);border-radius:14px;
  background:var(--dv-panel);box-shadow:var(--dv-shadow-2);
}
.dv-atpoint-toast.is-ready{border-color:color-mix(in srgb, var(--dv-good) 46%, var(--dv-line-strong));}
.dv-atpoint-toast .dv-atpoint-seal{width:38px;height:38px;border-radius:12px;}
.dv-atpoint-toast .dv-atpoint-seal .dv-mascot svg{width:24px;height:24px;}
.dv-atpoint-toast-copy{flex:1 1 auto;min-width:0;display:grid;gap:2px;}
.dv-atpoint-toast-copy strong{font-size:14px;font-weight:800;color:var(--dv-ink);}
.dv-atpoint-toast-copy p{margin:0;font-size:12.5px;line-height:1.4;color:var(--dv-ink-soft);}
.dv-atpoint-toast-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px;}
.dv-atpoint-toast-open{
  display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;
  border:1.5px solid var(--dv-accent);color:var(--dv-accent);
  font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap;
}
.dv-atpoint-toast-open:hover{background:var(--dv-accent-tint);}
.dv-atpoint-toast.is-ready .dv-atpoint-toast-open{border-color:var(--dv-good);color:var(--dv-good);}
.dv-atpoint-toast.is-ready .dv-atpoint-toast-open:hover{background:var(--dv-good-tint);}
.dv-atpoint-toast-close{
  flex:0 0 auto;width:28px;height:28px;border:0;border-radius:999px;background:none;
  color:var(--dv-muted);font-size:20px;line-height:1;cursor:pointer;
}
.dv-atpoint-toast-close:hover{background:var(--dv-surface);color:var(--dv-ink);}

@media (max-width:520px){
  .dv-atpoint-toast{top:216px;left:12px;right:12px;width:auto;flex-wrap:wrap;gap:10px;padding:12px;}
  .dv-atpoint-toast-actions{width:100%;justify-content:space-between;}
  .dv-atpoint-toast-open{flex:1 1 auto;justify-content:center;}
}

/* Карточка списка «Мои заказы»: одна строка правды про положение заказа. */
.dv-order-card-atpoint{
  margin:0;font-size:12.5px;line-height:1.4;font-weight:600;color:var(--dv-ink-soft);
}
