/* ============================================================================
   ДОВЕРЯЙ 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(255,255,255,.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:#fff;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:#fff;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:#fff;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:#fff;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;}

/* ============================ 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:#fff;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:#fff;
  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:cover;}

/* ===== 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:cover;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:#fff;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:#fff;cursor:pointer;overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s;}
.dv-thumb img{width:100%;height:100%;object-fit:cover;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(255,255,255,.92);box-shadow:0 4px 14px rgba(0,0,0,.16);color:var(--dv-ink,#0E1726);display:grid;place-items:center;cursor:pointer;z-index:3;transition:background .15s,transform .15s;}
.dv-gallery-nav:hover{background:#fff;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(255,255,255,.92);box-shadow:0 4px 14px rgba(0,0,0,.14);color:var(--dv-ink,#0E1726);display:grid;place-items:center;cursor:pointer;z-index:3;transition:background .15s;}
.dv-gallery-zoom:hover{background:#fff;}
.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:cover;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:#0b8175;}
.dv-trust-badge--partner{background:var(--dv-accent-tint);color:var(--dv-accent);}
/* Уголок карточки каталога: поверх фото, снизу-справа (слева уже живёт «Фото: другой цвет»),
   чтобы не спорить с бейджами состояния сверху. */
.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:#0b8175;}
.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:#fff;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(255,255,255,.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:#fff;color:#0b8f83;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(255,255,255,.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(255,255,255,.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%,#e9eef7 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,#fff,var(--dv-accent-tint));border-color:#d4e0fb;}
.commerce-media,.commerce-media-detail,.commerce-media-card,.commerce-media-thumb{border-radius:var(--dv-radius);background:#fff;}
.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:1.06fr .94fr;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-height:100vh;padding:clamp(28px,4vw,64px);background:linear-gradient(180deg,#f5f8fd,#e9eff8);}
.dv-auth-card{position:relative;z-index:3;width:100%;max-width:412px;display:grid;gap:12px;padding:clamp(26px,3vw,38px);border-radius:24px;
  background:#fff;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,#0E1726);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-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:#fff;color:var(--dv-ink,#0E1726);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:#f3f6fc;border-color:var(--dv-accent,#064CEA);transform:translateY(-1px);}
.dv-auth-actions .oauth-badge{flex:0 0 auto;}
.dv-auth-or{display:flex;align-items:center;gap:10px;color:var(--dv-muted,#8a93a6);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:2px 0;}
.dv-auth-or::before,.dv-auth-or::after{content:"";flex:1;height:1px;background:var(--dv-line,#e6eaf2);}
.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,#0E1726);background:var(--dv-surface-soft,#f6f6f6);}
.dv-auth-fine{color:var(--dv-muted,#8a93a6);font-size:12px;line-height:1.5;margin:6px 0 0;}
.dv-auth-close{position:absolute;top:18px;right:18px;z-index:5;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);border:1px solid var(--dv-line,#e6eaf2);color:var(--dv-ink,#0E1726);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;}
  .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:#fff;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:#fff;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(255,255,255,.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:#fff 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:#fff;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(255,255,255,.35) 0%,rgba(255,255,255,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 .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:#fff;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:#fff !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:#fff;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,#fff,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:#fff;}
.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:#fff;}
.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:#fff;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:#c8344b;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);}

/* ===== Site footer (rebro-inspired, Dovery trust brand) ===== */
/* 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{width:100%;margin:0;flex-shrink:0;background:#0b1424;color:#fff;}
.dv-footer-inner{max-width:1200px;margin:0 auto;padding:clamp(36px,5vw,56px) 24px 30px;display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:clamp(28px,4vw,56px);}
.dv-footer-brand{display:grid;gap:18px;align-content:start;}
.dv-footer-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.01em;}
.dv-footer-tagline{margin:0;font-size:14px;line-height:1.55;color:rgba(233,238,250,.62);max-width:340px;}
.dv-footer-support{font-size:13px;color:rgba(233,238,250,.5);}
.dv-footer-note{color:rgba(233,238,250,.42);}
.dv-footer-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.dv-footer-col{display:grid;gap:11px;align-content:start;}
.dv-footer-col h4{margin:0 0 4px;font-size:15px;font-weight:800;color:#fff;letter-spacing:-.01em;}
.dv-footer-col a{color:rgba(233,238,250,.6);text-decoration:none;font-size:14px;transition:color .15s;width:max-content;}
.dv-footer-col a:hover{color:#fff;}
.dv-footer-bar{border-top:1px solid rgba(255,255,255,.1);}
.dv-footer-barwrap{max-width:1200px;margin:0 auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(233,238,250,.5);}
.dv-footer-legal{display:flex;gap:18px;flex-wrap:wrap;}
.dv-footer-legal a{color:rgba(233,238,250,.5);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:860px){
  .dv-footer-inner{grid-template-columns:1fr;gap:28px;padding:32px 18px 22px;}
  .dv-footer-cols{grid-template-columns:1fr 1fr;gap:22px;}
  .dv-footer-barwrap{flex-direction:column;align-items:flex-start;padding:16px 18px;}
}
@media (max-width:480px){.dv-footer-cols{grid-template-columns:1fr;}}

/* ---- 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:#fff;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,#f6f7f9);border-style:dashed;}
.category-tile--soon .cat-ico{background:#eceef3;color:var(--dv-muted-2,#8a93a6);}
.category-tile--soon .cat-name{color:var(--dv-muted,#6b7280);}
.category-tile--soon:hover .cat-ico{background:#eceef3;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:#fff;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:#eef2fb;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:#fff;}
.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:#fff;}
.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;}
/* 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;}

/* ---- Карточка-модель: выбор варианта (Цвет/Память/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,#119e72);}
.dv-card-stock.is-out{color:var(--dv-bad,#c0392b);}
.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:#fff;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,#064CEA);}
.dv-axis-chip.is-out{opacity:.5;}
.dv-axis-chip.is-out::after{content:"нет";font-size:10px;font-weight:700;color:var(--dv-bad,#c0392b);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:#fff;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:#fff;}
.dv-tradein-result{position:sticky;top:88px;background:#fff;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 ============ */
.dv-pdp{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"head head" "gallery rail" "chooser chooser" "info info";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,#064CEA);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:#fff;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(255,255,255,.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:#fff;}
.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:#fff;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:#fff;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;}
@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:#fff;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:#fff;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:#eef2fb;}
.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:#fff;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:#fff;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:#fff;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;}
.dv-b2c-addr{position:relative;}
.dv-b2c-addr-row{display:grid;grid-template-columns:130px 1fr;gap:8px;}
.dv-b2c-addr-city{padding:11px 10px;border-radius:10px;border:1px solid var(--dv-line);font:inherit;background:#fff;}
.dv-b2c-addr-ctrl{position:relative;display:block;}
.dv-b2c-addr-ctrl input{width:100%;}
.dv-b2c-addr-ok{position:absolute;right:11px;top:50%;transform:translateY(-50%);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:#fff;border:1px solid var(--dv-line);border-radius:12px;box-shadow:0 16px 40px rgba(14,23,38,.16);max-height:260px;overflow:auto;}
.dv-b2c-addr-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-radius:9px;cursor:pointer;font-size:13.5px;color:var(--dv-ink);}
.dv-b2c-addr-item:hover{background:var(--dv-accent-tint);}
.dv-b2c-addr-item.out{opacity:.6;cursor:not-allowed;}
.dv-b2c-addr-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dv-b2c-addr-badge{flex:none;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:#fdecec;color:var(--dv-bad);}
@media (max-width:520px){.dv-b2c-addr-row{grid-template-columns:1fr;}}

/* ===== Срез 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:#fff;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:#0a7a52;background:#e7f7ef;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:#dbe6ff;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:#fff;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%);}
}
