/* =====================================================================
   ZV NEO — самостоятельная тема. Не зависит от julytheme и других тем.
   Светлая и тёмная схемы, лаймовый акцент, крупная типографика.
   ===================================================================== */
:root {
  --bg: #f1f5fb; --bg2: #e6edf7; --card: #ffffff; --ink: #1d3a8a; --txt: #1b2540; --muted: #66779a; --line: #dce4f0;
  --acc: #c8f23a; --acc-d: #b3dd1f; --acc-ink: #12285f; --hot: #ff5a36; --ok: #19b36b; --link: #1d3a8a;
  --r: 20px; --r-sm: 12px; --r-pill: 999px;
  --sh: 0 1px 2px rgba(29,58,138,.04), 0 8px 28px rgba(29,58,138,.06);
  --sh-hover: 0 2px 4px rgba(29,58,138,.06), 0 22px 48px rgba(29,58,138,.14);
  --font: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --head-h: 76px;
}
html[data-mode="dark"] {
  --bg: #0f1726; --bg2: #16203a; --card: #1a2644; --ink: #e8eefc; --txt: #e8eefc; --muted: #93a3c7; --line: #2a3a62;
  --sh: 0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35); --sh-hover: 0 22px 50px rgba(0,0,0,.6); --link: #cfe0ff;
  color-scheme: dark;
}
html.zv-neo { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.zv-neo body {
  margin: 0; font-family: var(--font); font-size: 15px; line-height: 1.55; color: var(--txt); background: var(--bg);
  -webkit-font-smoothing: antialiased; transition: background .25s, color .25s;
}
html.zv-neo ::selection { background: var(--acc); color: var(--acc-ink); }
html.zv-neo a { color: var(--link); text-decoration: none; transition: color .15s, background .15s, opacity .15s; }
html.zv-neo a:hover { color: var(--ink); opacity: .72; text-decoration: none; }
html.zv-neo img { max-width: 100%; }
html.zv-neo .container { width: 100%; max-width: 1320px; padding-left: 20px; padding-right: 20px; }
html.zv-neo h1, html.zv-neo h2, html.zv-neo h3, html.zv-neo h4, html.zv-neo h5, html.zv-neo h6 { font-family: var(--font); color: var(--ink); font-weight: 800; letter-spacing: -.03em; line-height: 1.15; }
html.zv-neo h1 { font-size: clamp(28px, 4vw, 44px); margin: 26px 0 18px; }
html.zv-neo h2 { font-size: clamp(22px, 2.6vw, 30px); margin: 28px 0 14px; }
html.zv-neo h3 { font-size: 22px; margin: 22px 0 12px; }
html.zv-neo h4 { font-size: 17px; }
html.zv-neo hr { border-color: var(--line); }
html.zv-neo p { color: inherit; }
html.zv-neo *:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; border-radius: 8px; }
html.zv-neo ::-webkit-scrollbar { width: 11px; height: 11px; }
html.zv-neo ::-webkit-scrollbar-thumb { background: var(--line); border-radius: 99px; border: 3px solid var(--bg); }
.zv-skip { position: absolute; left: -999px; top: 8px; z-index: 9999; background: var(--acc); color: var(--acc-ink); padding: 8px 14px; border-radius: 10px; }
.zv-skip:focus { left: 8px; }
.zv-main { min-height: 50vh; padding-bottom: 30px; }
.zv-main > .container { padding-top: 6px; }

/* ---------- кнопки ---------- */
html.zv-neo .btn { font-family: var(--font); font-weight: 700; border-radius: var(--r-pill); padding: 10px 22px; border: 1.5px solid transparent; transition: transform .12s, background .15s, color .15s, border-color .15s, box-shadow .2s; box-shadow: none; text-shadow: none; }
html.zv-neo .btn:active { transform: scale(.97); }
html.zv-neo .btn-lg { padding: 14px 30px; font-size: 16px; border-radius: var(--r-pill); }
html.zv-neo .btn-sm, html.zv-neo .btn-xs { padding: 6px 14px; }
html.zv-neo .btn-primary { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
html.zv-neo .btn-primary:hover, html.zv-neo .btn-primary:focus, html.zv-neo .btn-primary:active, html.zv-neo .btn-primary.active { background: var(--ink); color: var(--acc); border-color: var(--ink); }
html[data-mode="dark"].zv-neo .btn-primary:hover { background: #fff; color: var(--acc-ink); border-color: #fff; }
html.zv-neo .btn-default { background: transparent; color: var(--ink); border-color: var(--ink); }
html.zv-neo .btn-default:hover, html.zv-neo .btn-default:focus { background: var(--ink); color: var(--bg); border-color: var(--ink); }
html.zv-neo .btn-inverse, html.zv-neo .btn-info { background: var(--ink); color: var(--bg); border-color: var(--ink); }
html.zv-neo .btn-success { background: var(--ok); color: #fff; border-color: var(--ok); }
html.zv-neo .btn-danger { background: rgba(255,90,54,.12); color: var(--hot); border-color: transparent; }
html.zv-neo .btn-danger:hover { background: var(--hot); color: #fff; }
html.zv-neo .btn-link { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
html.zv-neo .btn[disabled] { opacity: .5; }

/* ---------- верхняя полоса ---------- */
.zv-announce { background: var(--ink); color: var(--bg); font-size: 13px; font-weight: 600; }
html[data-mode="dark"] .zv-announce { background: var(--acc); color: var(--acc-ink); }
.zv-announce .container { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 36px; }
html.zv-neo .zv-announce a, html.zv-neo .zv-announce a:hover { color: inherit; }
.zv-announce i { opacity: .7; margin-right: 6px; }

/* ---------- шапка ---------- */
.zv-header { position: sticky; top: 0; z-index: 1000; background: color-mix(in srgb, var(--bg) 82%, transparent); -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.zv-header.is-stuck { border-bottom-color: var(--line); box-shadow: 0 8px 30px rgba(29,58,138,.06); }
.zv-header__row { display: flex; align-items: center; gap: 18px; min-height: var(--head-h); }
.zv-logo { flex: none; }
.zv-logo img { max-height: 46px; width: auto; display: block; }
.zv-logo__text { font-weight: 800; font-size: 22px; letter-spacing: -.03em; }
.zv-search { flex: 1 1 auto; min-width: 0; max-width: 720px; }
#search.input-group { position: relative; display: flex; width: 100%; background: var(--card); border: 1.5px solid var(--line); border-radius: var(--r-pill); padding: 4px; box-shadow: var(--sh); transition: border-color .15s, box-shadow .15s; }
#search.input-group:focus-within { border-color: var(--ink); }
#search .zv-search__ico { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); color: var(--muted); z-index: 3; }
#search .form-control { flex: 1; height: 46px; padding: 0 16px 0 44px; border: 0; background: transparent; box-shadow: none; font-size: 15px; font-weight: 500; color: var(--ink); border-radius: var(--r-pill); }
#search .form-control::placeholder { color: var(--muted); }
#search .input-group-btn { width: auto; display: block; }
#search .btn { height: 46px; padding: 0 26px; border-radius: var(--r-pill) !important; background: var(--ink); color: var(--bg); border-color: var(--ink); }
#search .btn:hover { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
html[data-mode="dark"] #search .btn { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
.zv-actions { flex: none; display: flex; align-items: center; gap: 8px; margin-left: auto; }
.zv-iconbtn { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--card); border: 1.5px solid var(--line); color: var(--ink); font-size: 18px; cursor: pointer; transition: transform .12s, background .15s, border-color .15s; }
.zv-iconbtn:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); opacity: 1; }
.zv-iconbtn:active { transform: scale(.94); }
.zv-account { position: relative; }
html.zv-neo .dropdown-menu { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--sh-hover); padding: 8px; margin-top: 10px; color: var(--ink); }
html.zv-neo .dropdown-menu > li > a { color: var(--ink); border-radius: 10px; padding: 9px 14px; font-weight: 600; }
html.zv-neo .dropdown-menu > li > a:hover { background: var(--bg2); color: var(--ink); opacity: 1; }

/* корзина */
.zv-cart { position: relative; }
.zv-cart__btn { height: 46px; display: inline-flex; align-items: center; gap: 8px; padding: 0 20px; background: var(--ink); color: var(--bg); border: 0; border-radius: var(--r-pill); font-weight: 700; max-width: 260px; }
html[data-mode="dark"] .zv-cart__btn { background: var(--acc); color: var(--acc-ink); }
.zv-cart__btn:hover, .zv-cart__btn:focus, .open > .zv-cart__btn { background: var(--acc) !important; color: var(--acc-ink) !important; box-shadow: none; }
.zv-cart__btn #cart-total { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#cart[data-count="0"] .zv-cart__btn #cart-total { font-size: 0; }
#cart[data-count="0"] .zv-cart__btn #cart-total i { font-size: 17px; }
#cart:not([data-count="0"]) .zv-cart__btn:after { content: ""; position: absolute; top: -2px; right: -2px; width: 12px; height: 12px; border-radius: 50%; background: var(--hot); border: 2px solid var(--bg); }
.zv-cart .dropdown-menu { min-width: 380px; padding: 0; overflow: hidden; }
.zv-minicart { margin: 0; }
.zv-minicart > tbody > tr > td { border-color: var(--line); vertical-align: middle; padding: 12px; }
.zv-minicart img { width: 52px; border-radius: 10px; border: 0; padding: 0; background: var(--bg2); }
.zv-minicart a { font-weight: 600; }
.zv-minicart__foot { padding: 6px 16px 16px; background: var(--bg2); }
.zv-minicart__totals { margin: 0 0 10px; background: transparent; }
.zv-minicart__totals td { border: 0 !important; padding: 5px 0 !important; }
.zv-minicart__btns { display: flex; gap: 10px; }
.zv-minicart__btns .btn { flex: 1; padding: 11px 10px; }
.zv-minicart__empty { padding: 30px 20px; margin: 0; color: var(--muted); font-weight: 600; }
.zv-minicart__empty i { font-size: 34px; margin-bottom: 8px; opacity: .5; }

/* бургер */
.zv-burger { display: none; width: 46px; height: 46px; flex: none; border-radius: 50%; border: 1.5px solid var(--line); background: var(--card); position: relative; padding: 0; }
.zv-burger span { position: absolute; left: 13px; right: 13px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .25s, opacity .2s; }
.zv-burger span:nth-child(1) { top: 16px; } .zv-burger span:nth-child(2) { top: 22px; } .zv-burger span:nth-child(3) { top: 28px; }
.zv-menu-open .zv-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.zv-menu-open .zv-burger span:nth-child(2) { opacity: 0; }
.zv-menu-open .zv-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* меню каталога (рабочий стол) */
.zv-nav { padding-bottom: 12px; }
.zv-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; align-items: center; }
.zv-nav__list::-webkit-scrollbar { display: none; }
.zv-nav__item { position: relative; flex: none; }
.zv-nav__link { display: inline-block; padding: 9px 18px; border-radius: var(--r-pill); background: var(--card); border: 1.5px solid var(--line); font-weight: 700; font-size: 14px; white-space: nowrap; }
.zv-nav__link:hover, .zv-nav__item:hover > .zv-nav__link { background: var(--ink); color: var(--bg); border-color: var(--ink); opacity: 1; }
html[data-mode="dark"] .zv-nav__link:hover, html[data-mode="dark"] .zv-nav__item:hover > .zv-nav__link { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
.zv-nav__more { display: none; }
.zv-nav__sub { display: none; position: absolute; left: 0; top: 100%; z-index: 1100; min-width: 280px; padding: 18px 20px; margin-top: 8px; background: var(--card); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--sh-hover); }
@media (min-width: 992px) {
  .zv-nav__list { overflow: visible; flex-wrap: wrap; }
  .zv-nav__item.has-sub:hover > .zv-nav__sub, .zv-nav__item.has-sub:focus-within > .zv-nav__sub { display: flex; flex-wrap: wrap; gap: 6px 28px; }
  .zv-nav__item.has-sub:hover:after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; }
}
.zv-nav__sub ul { list-style: none; margin: 0; padding: 0; min-width: 190px; }
.zv-nav__sub li a { display: block; padding: 7px 10px; border-radius: 10px; font-weight: 600; font-size: 14px; }
.zv-nav__sub li a:hover { background: var(--bg2); opacity: 1; }
.zv-nav__all { flex-basis: 100%; margin-top: 6px; padding: 10px 12px; border-radius: 12px; background: var(--acc); color: var(--acc-ink) !important; font-weight: 800; font-size: 14px; }
.zv-nav__all:hover { opacity: .85; }
.zv-scrim { display: none; }

/* ---------- хлебные крошки ---------- */
html.zv-neo .breadcrumb { background: transparent; padding: 16px 0 0; margin: 0; font-size: 13px; font-weight: 600; color: var(--muted); }
html.zv-neo .breadcrumb > li + li:before { content: "/"; padding: 0 8px; color: var(--muted); }
html.zv-neo .breadcrumb a { color: var(--muted); }
html.zv-neo .breadcrumb a:hover { color: var(--ink); opacity: 1; }
html.zv-neo .breadcrumb > li:last-child a { color: var(--ink); }

/* ---------- ГЛАВНАЯ: hero, отзывы, SEO ---------- */
.zv-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 18px; margin: 20px 0 28px; }
html.zv-neo .zv-hero__main { position: relative; overflow: hidden; background: var(--ink); color: #f3f3ef; border-radius: 32px; padding: clamp(24px, 4vw, 52px); }
html[data-mode="dark"] .zv-hero__main { background: var(--card); border: 1px solid var(--line); }
html.zv-neo .zv-hero__main:before { content: ""; position: absolute; right: -90px; top: -90px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, var(--acc) 0%, transparent 68%); opacity: .55; pointer-events: none; }
.zv-hero__badge { display: inline-block; padding: 6px 14px; border-radius: var(--r-pill); background: rgba(255,255,255,.12); font-weight: 700; font-size: 13px; position: relative; }
.zv-hero__badge i { color: var(--acc); }
html.zv-neo .zv-hero__main h1 { color: #fff; margin: 18px 0 14px; font-size: clamp(30px, 4.4vw, 54px); position: relative; }
html.zv-neo .zv-hero__main p { color: #c9c9d1; max-width: 640px; font-size: 15px; position: relative; }
html.zv-neo .zv-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; position: relative; }
html.zv-neo .zv-hero__cta .btn-default { color: #fff; border-color: rgba(255,255,255,.5); }
html.zv-neo .zv-hero__cta .btn-default:hover { background: #fff; color: var(--acc-ink); border-color: #fff; }
.zv-hero__perks { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.zv-hero__perks li { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto auto; column-gap: 16px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 26px; padding: 18px 22px; box-shadow: var(--sh); transition: transform .2s, box-shadow .2s; }
.zv-hero__perks li:hover { transform: translateY(-3px); box-shadow: var(--sh-hover); }
.zv-hero__perks li i { grid-row: 1 / span 2; width: 52px; height: 52px; border-radius: 16px; background: var(--acc); color: var(--acc-ink); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.zv-hero__perks b { font-size: 17px; letter-spacing: -.02em; }
.zv-hero__perks span { color: var(--muted); font-size: 14px; }
.zv-reviews-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; margin: 34px 0; }
.zv-reviews { background: var(--card); border: 1px solid var(--line); border-radius: 28px; padding: 26px; box-shadow: var(--sh); }
.zv-reviews h2 { margin: 0 0 12px; font-size: 22px; }
.zv-reviews__rating { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.zv-reviews__score { font-size: 40px; font-weight: 800; letter-spacing: -.04em; }
.zv-reviews__stars { color: #ffb020; letter-spacing: 2px; }
.zv-reviews__count, .zv-reviews__note { color: var(--muted); font-size: 13px; }
.zv-reviews__list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.zv-reviews__list li { background: var(--bg2); border-radius: 16px; padding: 12px 14px; font-size: 14px; }
.zv-reviews__list small { color: var(--muted); margin-left: 6px; }
.zv-reviews__list p { margin: 4px 0 0; }
.zv-reviews__map iframe { width: 100%; height: 190px; border: 0; border-radius: 16px; margin: 10px 0 14px; }
.zv-reviews__btn, .zv-reviews__all { display: inline-block; margin: 4px 8px 0 0; font-weight: 700; font-size: 14px; }
.zv-reviews__btn { background: var(--acc); color: var(--acc-ink) !important; padding: 9px 18px; border-radius: var(--r-pill); }
.zv-reviews__all { text-decoration: underline; text-underline-offset: 3px; }
.zv-seo-text { background: var(--card); border: 1px solid var(--line); border-radius: 28px; padding: clamp(22px, 3vw, 40px); margin: 10px 0 20px; box-shadow: var(--sh); }
.zv-seo-text h2 { margin-top: 0; } .zv-seo-text h3 { font-size: 19px; }
.zv-seo-text p, .zv-seo-text li { color: var(--muted); }
.zv-seo-text a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--acc); text-decoration-thickness: 2px; }

/* блоки модулей на главной (рекомендуемые, категории и т. д.) */
html.zv-neo #content > h3, html.zv-neo .box-heading, html.zv-neo #content h3.h3modul { font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; letter-spacing: -.03em; margin: 34px 0 16px; }
html.zv-neo .row > [class*="col-"] > .box-category { margin-bottom: 20px; }

/* ---------- карточки товаров ---------- */
.product-layout { margin-bottom: 20px; }
html.zv-neo .product-thumb { position: relative; display: flex; flex-direction: column; height: 100%; background: var(--card); border: 1px solid var(--line); border-radius: 26px; overflow: hidden; box-shadow: var(--sh); transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s, border-color .2s; margin-bottom: 0; }
html.zv-neo .product-thumb:hover { transform: translateY(-6px); box-shadow: var(--sh-hover); border-color: var(--ink); }
html[data-mode="dark"].zv-neo .product-thumb:hover { border-color: var(--acc); }
html.zv-neo .product-thumb .image { margin: 10px 10px 0; border-radius: 18px; background: var(--bg2); overflow: hidden; text-align: center; display: block; }
html.zv-neo .product-thumb .image a { display: block; padding: 10px; }
html.zv-neo .product-thumb .image img { margin: 0 auto; border-radius: 12px; transition: transform .35s; mix-blend-mode: multiply; }
html[data-mode="dark"].zv-neo .product-thumb .image img { mix-blend-mode: normal; }
html.zv-neo .product-thumb:hover .image img { transform: scale(1.05); }
html.zv-neo .product-thumb .caption { padding: 14px 18px 4px; min-height: 0; flex: 1; }
html.zv-neo .product-thumb h4 { margin: 0 0 8px; font-size: 15px; line-height: 1.35; font-weight: 700; letter-spacing: -.01em; }
html.zv-neo .product-thumb h4 a { color: var(--ink); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
html.zv-neo .product-thumb .caption p { color: var(--muted); font-size: 13px; }
html.zv-neo .price { font-size: 22px; font-weight: 800; letter-spacing: -.03em; color: var(--ink); margin: 8px 0 0; }
html.zv-neo .price-new { color: var(--ink); }
html.zv-neo .price-old { color: var(--muted); font-size: 14px; font-weight: 600; text-decoration: line-through; margin-left: 6px; }
html.zv-neo .price-tax { display: block; color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; }
html.zv-neo .rating .fa-star, html.zv-neo .rating .fa-star-o { color: #ffb020; font-size: 12px; }
html.zv-neo .rating .fa-stack { width: 1.1em; }
html.zv-neo .rating .fa-star-o.fa-stack-2x { color: #d9d8d0; }
html.zv-neo .product-thumb .button-group { display: flex; gap: 8px; padding: 12px 14px 16px; border: 0; background: transparent; }
html.zv-neo .product-thumb .button-group button { float: none; width: auto; flex: none; height: 44px; min-width: 44px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: var(--r-pill); background: transparent; color: var(--ink); font-weight: 700; font-size: 14px; transition: all .15s; }
html.zv-neo .product-thumb .button-group button:first-child { flex: 1; background: var(--acc); border-color: var(--acc); color: var(--acc-ink); }
html.zv-neo .product-thumb .button-group button:first-child:hover { background: var(--ink); border-color: var(--ink); color: var(--acc); }
html.zv-neo .product-thumb .button-group button:first-child span { display: inline !important; }
html.zv-neo .product-thumb .button-group button + button:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.product-thumb .button-group button + button span { display: none !important; }
/* список */
@media (min-width: 768px) {
  .product-list .product-thumb, .product-layout.product-list .product-thumb { flex-direction: row; align-items: center; }
  .product-list .product-thumb .image { width: 220px; flex: none; margin: 12px; }
  .product-list .product-thumb > div:not(.image) { flex: 1; }
  .product-list .product-thumb .button-group { max-width: 340px; }
}

/* ---------- каталог: панель, пагинация ---------- */
html.zv-neo #list-view, html.zv-neo #grid-view { border-radius: 12px !important; padding: 8px 14px; margin-right: 4px; }
html.zv-neo #list-view.active, html.zv-neo #grid-view.active { background: var(--ink); color: var(--bg); border-color: var(--ink); }
html.zv-neo #compare-total { font-weight: 700; }
html.zv-neo .input-group-addon { background: var(--bg2); border: 1.5px solid var(--line); color: var(--muted); font-weight: 600; border-radius: 12px 0 0 12px; }
html.zv-neo .pagination { display: flex; gap: 6px; flex-wrap: wrap; margin: 20px 0; }
html.zv-neo .pagination > li > a, html.zv-neo .pagination > li > span { float: none; border: 1.5px solid var(--line) !important; border-radius: 12px !important; background: var(--card); color: var(--ink); font-weight: 700; min-width: 42px; text-align: center; padding: 8px 12px; margin: 0; }
html.zv-neo .pagination > li > a:hover { border-color: var(--ink) !important; background: var(--card); }
html.zv-neo .pagination > .active > a, html.zv-neo .pagination > .active > span, html.zv-neo .pagination > .active > a:hover { background: var(--ink); color: var(--bg); border-color: var(--ink) !important; }
html.zv-neo #content .text-right p, html.zv-neo #content .text-left p { color: var(--muted); font-size: 13px; }
html.zv-neo #content h3 + .row .col-sm-3 ul li a, html.zv-neo .refine-search + p a { font-weight: 600; }

/* ---------- боковые модули ---------- */
html.zv-neo #column-left .list-group, html.zv-neo #column-right .list-group, html.zv-neo .list-group { background: var(--card); border: 1px solid var(--line); border-radius: 24px; overflow: hidden; box-shadow: var(--sh); margin-bottom: 20px; }
html.zv-neo .list-group-item, html.zv-neo .list-group a.list-group-item { background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid var(--line); padding: 13px 20px; font-weight: 600; }
html.zv-neo .list-group-item:last-child { border-bottom: 0; }
html.zv-neo a.list-group-item:hover { background: var(--bg2); color: var(--ink); opacity: 1; }
html.zv-neo .list-group-item.active, html.zv-neo .list-group-item.active:hover { background: var(--acc); color: var(--acc-ink); border-color: var(--line); }
html.zv-neo .panel { background: var(--card); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--sh); color: var(--ink); overflow: hidden; }
html.zv-neo .panel-default > .panel-heading { background: transparent; color: var(--ink); border: 0; padding: 16px 20px; }
html.zv-neo .panel-title { font-weight: 800; font-size: 16px; }
html.zv-neo .panel-title a { color: var(--ink); display: block; }
html.zv-neo .panel-body { padding: 8px 20px 20px; }
html.zv-neo .panel-default > .panel-heading + .panel-collapse > .panel-body { border-top: 1px solid var(--line); }
html.zv-neo .well { background: var(--card); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--sh); }

/* ---------- ТОВАР ---------- */
html.zv-neo .thumbnails { margin: 0; padding: 0; }
html.zv-neo .thumbnail { background: var(--card); border: 1px solid var(--line); border-radius: 28px; padding: 14px; box-shadow: var(--sh); display: block; }
html.zv-neo .thumbnails .thumbnail img { border-radius: 18px; }
html.zv-neo .image-additional { margin-top: 12px; }
html.zv-neo .image-additional a.thumbnail { display: inline-block; width: calc(25% - 10px); margin: 0 10px 10px 0; padding: 6px; border-radius: 16px; box-shadow: none; }
html.zv-neo .image-additional a.thumbnail:hover { border-color: var(--ink); opacity: 1; }
html.zv-neo .nav-tabs { border-bottom: 0; display: flex; gap: 8px; flex-wrap: wrap; margin: 28px 0 14px; }
html.zv-neo .nav-tabs > li { float: none; margin: 0; }
html.zv-neo .nav-tabs > li > a { border: 1.5px solid var(--line) !important; border-radius: var(--r-pill) !important; background: var(--card); color: var(--ink); font-weight: 700; padding: 9px 20px; margin: 0; }
html.zv-neo .nav-tabs > li.active > a, html.zv-neo .nav-tabs > li.active > a:hover, html.zv-neo .nav-tabs > li > a:hover { background: var(--ink); color: var(--bg); border-color: var(--ink) !important; }
html.zv-neo .tab-content { background: var(--card); border: 1px solid var(--line); border-radius: 26px; padding: 26px; box-shadow: var(--sh); }
html.zv-neo #product { background: var(--card); border: 1px solid var(--line); border-radius: 26px; padding: 22px 24px 8px; margin-bottom: 20px; box-shadow: var(--sh); }
html.zv-neo #product h3 { font-size: 18px; margin-top: 0; }
html.zv-neo .col-sm-4 > ul.list-unstyled:first-of-type li, html.zv-neo .btn-group + h1 + ul.list-unstyled li { color: var(--muted); }
html.zv-neo .col-sm-4 > ul.list-unstyled > li > h2 { font-size: 42px; font-weight: 800; letter-spacing: -.04em; margin: 8px 0; }
html.zv-neo #button-cart { width: 100%; padding: 16px 30px; font-size: 17px; font-weight: 800; background: var(--acc); color: var(--acc-ink); border-color: var(--acc); border-radius: var(--r-pill); }
html.zv-neo #button-cart:hover { background: var(--ink); color: var(--acc); border-color: var(--ink); }
html.zv-neo #input-quantity { max-width: 120px; text-align: center; font-weight: 800; }
html.zv-neo .btn-group > .btn[data-original-title], html.zv-neo .btn-group > button.btn[data-toggle="tooltip"] { border-radius: 50% !important; width: 46px; height: 46px; padding: 0; }
html.zv-neo .alert { border: 0; border-radius: 18px; padding: 14px 20px; font-weight: 600; box-shadow: var(--sh); }
html.zv-neo .alert-success { background: rgba(25,179,107,.14); color: var(--ok); }
html.zv-neo .alert-danger, html.zv-neo .alert-warning { background: rgba(255,90,54,.13); color: var(--hot); }
html.zv-neo .alert-info { background: var(--bg2); color: var(--ink); }
html.zv-neo #notification { position: fixed; top: 90px; right: 20px; left: auto; z-index: 3000; width: min(420px, calc(100% - 40px)); }
html.zv-neo #notification .alert { background: var(--ink); color: var(--bg); box-shadow: var(--sh-hover); }
html.zv-neo #notification .alert a { color: var(--acc); text-decoration: underline; }
html.zv-neo #notification .close { color: var(--bg); opacity: .6; }

/* ---------- формы ---------- */
html.zv-neo .form-control, html.zv-neo select.form-control, html.zv-neo textarea.form-control { height: 48px; padding: 10px 16px; background: var(--card); color: var(--ink); border: 1.5px solid var(--line); border-radius: 14px; box-shadow: none; font-family: var(--font); font-size: 15px; font-weight: 500; transition: border-color .15s, box-shadow .15s; }
html.zv-neo textarea.form-control { height: auto; min-height: 110px; }
html.zv-neo .form-control::placeholder { color: var(--muted); }
html.zv-neo .form-control:focus { border-color: var(--ink); box-shadow: 0 0 0 4px rgba(200,242,58,.35); }
html[data-mode="dark"].zv-neo .form-control:focus { border-color: var(--acc); }
html.zv-neo select.form-control { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1.5l6 6 6-6' fill='none' stroke='%236f6f78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; }
html.zv-neo .form-group.has-error .form-control, html.zv-neo .has-error .form-control { border-color: var(--hot); box-shadow: 0 0 0 4px rgba(255,90,54,.12); }
html.zv-neo .text-danger { color: var(--hot); font-size: 13px; font-weight: 600; }
html.zv-neo .control-label, html.zv-neo label { font-weight: 700; color: var(--ink); }
html.zv-neo .radio label, html.zv-neo .checkbox label { font-weight: 600; cursor: pointer; }
html.zv-neo input[type=checkbox], html.zv-neo input[type=radio] { accent-color: var(--acc-ink); width: 18px; height: 18px; margin-top: 3px; }
html[data-mode="dark"].zv-neo input[type=checkbox], html[data-mode="dark"].zv-neo input[type=radio] { accent-color: var(--acc); }
html.zv-neo .required > .control-label:before, html.zv-neo .form-group.required > label:before { color: var(--hot); }
html.zv-neo legend { color: var(--ink); border: 0; font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
html.zv-neo .help-block { color: var(--muted); }
html.zv-neo fieldset { background: var(--card); border: 1px solid var(--line); border-radius: 24px; padding: 22px 26px 8px; margin-bottom: 20px; box-shadow: var(--sh); }
html.zv-neo fieldset legend { float: left; width: 100%; padding: 0; margin: 0 0 16px; } html.zv-neo fieldset legend + * { clear: both; }
@media (min-width: 768px) {
  html.zv-neo .form-horizontal .form-group { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 6px 22px; align-items: start; margin: 0 0 16px; }
  html.zv-neo .form-horizontal .form-group:before, html.zv-neo .form-horizontal .form-group:after { display: none; }
  html.zv-neo .form-horizontal .form-group > [class*="col-"] { width: auto; float: none; padding: 0; }
  html.zv-neo .form-horizontal .control-label { text-align: left; padding-top: 13px; }
}
html.zv-neo .input-group .form-control:first-child { border-radius: 14px 0 0 14px; }
html.zv-neo .input-group-btn .btn { height: 48px; border-radius: 0 14px 14px 0 !important; }

/* ---------- таблицы ---------- */
html.zv-neo .table { color: var(--ink); background: transparent; }
html.zv-neo .table > thead > tr > td, html.zv-neo .table > thead > tr > th { border: 0 !important; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; padding: 10px 14px; background: transparent; }
html.zv-neo .table > tbody > tr > td, html.zv-neo .table > tfoot > tr > td, html.zv-neo .table > tbody > tr > th { border-color: var(--line); vertical-align: middle; padding: 14px; }
html.zv-neo .table-bordered, html.zv-neo .table-bordered > tbody > tr > td, html.zv-neo .table-bordered > thead > tr > td { border-left: 0; border-right: 0; }
html.zv-neo .table-striped > tbody > tr:nth-of-type(odd) { background: transparent; }
html.zv-neo .table-hover > tbody > tr:hover { background: var(--bg2); }
html.zv-neo .table-responsive { border: 0; }
html.zv-neo .table .img-thumbnail { border: 0; border-radius: 12px; padding: 0; background: var(--bg2); }
html.zv-neo .img-thumbnail { background: var(--card); border-color: var(--line); border-radius: 14px; }

/* ---------- корзина / оформление ---------- */
.july-white { background: var(--card); border: 1px solid var(--line); border-radius: 28px; padding: 18px 24px; box-shadow: var(--sh); }
.zv-qty { display: inline-flex; align-items: center; background: var(--bg2); border-radius: var(--r-pill); padding: 4px; }
.zv-qty-btn { width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--card); color: var(--ink); font-size: 18px; font-weight: 800; line-height: 1; box-shadow: var(--sh); }
.zv-qty-btn:hover { background: var(--acc); color: var(--acc-ink); }
.zv-qty-input.form-control { width: 48px; height: 34px; padding: 0; border: 0; background: transparent; text-align: center; font-weight: 800; box-shadow: none; }
.zv-qty-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.zv-qty-actions { display: flex; gap: 6px; }
.zv-qty-actions .btn { width: 38px; height: 38px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.july-cart-table { background: var(--ink) !important; color: #f3f3ef; border-radius: 24px; overflow: hidden; margin-top: 14px; }
html[data-mode="dark"] .july-cart-table { background: var(--card) !important; border: 1px solid var(--line); }
.july-cart-table td { border: 0 !important; color: #d5d5dc; padding: 10px 20px !important; }
.july-cart-table tr:last-child td { font-size: 22px; font-weight: 800; color: var(--acc); padding-top: 16px !important; padding-bottom: 18px !important; }
body.checkout-cart .buttons, body.checkout-checkout .buttons { margin: 22px 0; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
body.checkout-cart .buttons > div { float: none !important; }
body.checkout-cart .buttons .btn-primary { padding: 15px 40px; font-size: 16px; font-weight: 800; }
body.checkout-checkout #accordion { counter-reset: zvstep; }
body.checkout-checkout #accordion > .panel { margin-bottom: 14px; }
body.checkout-checkout .panel-title { display: flex; align-items: center; gap: 14px; font-size: 18px; counter-increment: zvstep; }
body.checkout-checkout .panel-title:before { content: counter(zvstep); width: 36px; height: 36px; flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--bg2); font-weight: 800; }
body.checkout-checkout .panel:has(.panel-collapse.in) .panel-title:before { background: var(--acc); color: var(--acc-ink); }
@media (max-width: 767px) {
  .july-white { padding: 10px; border-radius: 22px; }
  body.checkout-cart .table-responsive { overflow: visible; }
  body.checkout-cart .table-responsive .table thead { display: none; }
  body.checkout-cart .table-responsive .table, body.checkout-cart .table-responsive .table tbody { display: block; width: 100%; }
  body.checkout-cart .table-responsive .table tbody tr { display: grid; grid-template-columns: 78px 1fr; gap: 4px 12px; background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 12px; margin-bottom: 12px; }
  body.checkout-cart .table-responsive .table tbody tr td { display: block; border: 0 !important; padding: 0 !important; text-align: left !important; background: transparent !important; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(1) { grid-row: 1 / span 4; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(1) img { width: 78px; height: auto; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(3) { color: var(--muted); font-size: 12px; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(5):before { content: "Цена: "; color: var(--muted); }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(6) { font-weight: 800; font-size: 17px; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(6):before { content: "Итого: "; color: var(--muted); font-weight: 500; font-size: 13px; }
  body.checkout-cart .col-sm-offset-8 { margin-left: 0; width: 100%; }
  body.checkout-cart .buttons { flex-direction: column-reverse; } body.checkout-cart .buttons .btn { width: 100%; }
}

/* ---------- кабинет / вход / регистрация ---------- */
html.zv-neo body[class*="account-"] #content, html.zv-neo[class] body.account-login #content { }
body.account-account #content ul.list-unstyled li a { display: flex; align-items: center; padding: 14px 18px; margin: 8px 0; background: var(--card); border: 1px solid var(--line); border-radius: 16px; font-weight: 700; transition: transform .15s, box-shadow .15s; }
body.account-account #content ul.list-unstyled li a:hover { transform: translateX(4px); box-shadow: var(--sh); opacity: 1; }
body.account-login #content > .row > [class*="col-sm-"]:first-child .well { background: var(--ink); color: #e6e6ec; }
body.account-login #content > .row > [class*="col-sm-"]:first-child .well h2 { color: #fff; }
body.account-login #content > .row > [class*="col-sm-"]:first-child .well .btn-primary { background: var(--acc); color: var(--acc-ink); }
body.account-register .buttons .pull-right { float: none !important; display: flex; align-items: center; justify-content: flex-end; gap: 16px; flex-wrap: wrap; }
body.account-register .buttons input.btn-primary { padding: 15px 42px; font-size: 16px; font-weight: 800; }

/* ---------- окна, подсказки, мелочи ---------- */
html.zv-neo .modal-content { background: var(--card); color: var(--ink); border: 0; border-radius: 28px; box-shadow: 0 40px 90px rgba(0,0,0,.4); overflow: hidden; }
html.zv-neo .modal-header { border: 0; padding: 22px 26px 6px; } html.zv-neo .modal-footer { border: 0; }
html.zv-neo .modal-backdrop.in { opacity: .55; background: #000; }
html.zv-neo .close { color: var(--ink); opacity: .5; text-shadow: none; }
html.zv-neo .tooltip-inner { background: var(--ink); color: var(--bg); border-radius: 10px; font-weight: 600; padding: 6px 12px; }
html.zv-neo .label, html.zv-neo .badge { border-radius: var(--r-pill); font-weight: 700; }
html.zv-neo .carousel, html.zv-neo .swiper-container, html.zv-neo .swiper { border-radius: 28px; overflow: hidden; }
html.zv-neo blockquote { border-left: 4px solid var(--acc); background: var(--bg2); border-radius: 0 16px 16px 0; }
html.zv-neo code { background: var(--bg2); color: var(--ink); border-radius: 6px; }
html.zv-neo .text-muted { color: var(--muted); }
html.zv-neo .products-sort-limit label { margin: 0; }

/* ---------- подвал ---------- */
html.zv-neo .zv-footer { background: var(--ink); color: #b9b9c2; margin-top: 70px; border-radius: 40px 40px 0 0; padding: 56px 0 24px; }
html[data-mode="dark"] .zv-footer { background: #101013; border-top: 1px solid var(--line); }
html.zv-neo .zv-footer a { color: #d9d9e0; } .zv-footer a:hover { color: var(--acc); opacity: 1; }
html.zv-neo .zv-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 36px; }
html.zv-neo .zv-footer__logo { font-size: 26px; font-weight: 800; letter-spacing: -.04em; color: #fff; margin-bottom: 10px; }
html.zv-neo .zv-footer h5 { color: #fff; font-size: 15px; font-weight: 800; letter-spacing: 0; margin: 4px 0 14px; text-transform: none; }
html.zv-neo .zv-footer ul { margin: 0; padding: 0; list-style: none; }
html.zv-neo .zv-footer li { margin: 0 0 9px; font-size: 14px; }
html.zv-neo .zv-footer__contacts li i { color: var(--acc); width: 20px; }
html.zv-neo .zv-footer p { color: #9a9aa6; font-size: 14px; max-width: 420px; }
html.zv-neo .zv-footer__bottom { margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; color: #8b8b97; }
html.zv-neo .zv-footer__bottom a { color: #b9b9c2; }

/* ---------- нижняя панель (телефон) ---------- */
.zv-tabbar { display: none; }

/* ---------- адаптив ---------- */
@media (max-width: 991px) {
  :root { --head-h: 66px; }
  .zv-burger { display: block; }
  .zv-header__row { flex-wrap: wrap; gap: 10px; padding-top: 10px; padding-bottom: 10px; }
  .zv-search { order: 5; flex: 1 0 100%; max-width: none; }
  .zv-actions { margin-left: auto; }
  .zv-logo img { max-height: 38px; }
  .zv-nav { position: fixed; z-index: 1300; top: 0; left: 0; bottom: 0; width: min(88vw, 380px); background: var(--bg); padding: 20px 0 100px; overflow-y: auto; transform: translateX(-102%); transition: transform .3s cubic-bezier(.2,.7,.2,1); box-shadow: 10px 0 50px rgba(0,0,0,.3); }
  .zv-menu-open .zv-nav { transform: none; }
  .zv-scrim { display: block; position: fixed; inset: 0; z-index: 1250; background: rgba(0,0,0,.5); opacity: 0; pointer-events: none; transition: opacity .25s; }
  .zv-menu-open .zv-scrim { opacity: 1; pointer-events: auto; }
  html.zv-menu-open body { overflow: hidden; }
  .zv-nav__list { flex-direction: column; align-items: stretch; gap: 4px; overflow: visible; }
  .zv-nav__item { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--line); }
  .zv-nav__link { flex: 1; background: transparent; border: 0; border-radius: 0; padding: 15px 4px; font-size: 16px; white-space: normal; }
  .zv-nav__link:hover, .zv-nav__item:hover > .zv-nav__link { background: transparent; color: var(--ink); border: 0; }
  .zv-nav__more { display: block; width: 44px; height: 44px; background: none; border: 0; font-size: 20px; color: var(--ink); }
  .zv-nav__item.open .zv-nav__more i { transform: rotate(180deg); }
  .zv-nav__sub { position: static; display: none; flex-basis: 100%; margin: 0 0 10px; padding: 8px; box-shadow: none; background: var(--bg2); border: 0; border-radius: 16px; }
  .zv-nav__item.open > .zv-nav__sub { display: block; }
  .zv-nav__sub ul { min-width: 0; }
  .zv-hero { grid-template-columns: 1fr; }
  .zv-footer__grid { grid-template-columns: 1fr 1fr; }
  .zv-footer__brand { grid-column: 1 / -1; }
  .zv-cart .dropdown-menu { min-width: 0; width: min(92vw, 380px); }
}
@media (max-width: 767px) {
  html.zv-neo body { padding-bottom: 78px; }
  html.zv-neo .container { padding-left: 14px; padding-right: 14px; }
  .zv-announce__txt { display: none; } .zv-announce .container { justify-content: center; }
  .zv-account { display: none; }
  .zv-cart__btn { padding: 0 16px; }
  .zv-cart__btn #cart-total { font-size: 0 !important; } .zv-cart__btn #cart-total i { font-size: 18px; }
  .zv-hero__main { border-radius: 26px; }
  .zv-footer { border-radius: 28px 28px 0 0; padding-top: 40px; }
  .zv-tabbar { display: flex; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 1200; padding: 6px; background: color-mix(in srgb, var(--card) 88%, transparent); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%); border: 1px solid var(--line); border-radius: 26px; box-shadow: 0 14px 40px rgba(0,0,0,.18); }
  .zv-tabbar a { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 7px 0 5px; border-radius: 20px; font-size: 10px; font-weight: 700; color: var(--muted); }
  .zv-tabbar a i { font-size: 19px; line-height: 22px; }
  .zv-tabbar a:hover, .zv-tabbar a:active { background: var(--acc); color: var(--acc-ink); opacity: 1; }
  .zv-tabbar a[data-count]:not([data-count="0"]):after { content: attr(data-count); position: absolute; top: 1px; left: calc(50% + 6px); min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--hot); color: #fff; font-size: 10px; line-height: 17px; text-align: center; }
  html.zv-neo #notification { top: 74px; right: 10px; }
  html.zv-neo .product-thumb .caption { padding: 12px 12px 2px; }
  html.zv-neo .product-thumb .button-group { padding: 10px 10px 12px; gap: 6px; }
  html.zv-neo .product-thumb .button-group button:first-child span { font-size: 13px; }
  html.zv-neo .price { font-size: 19px; }
  html.zv-neo fieldset { padding: 18px 16px 4px; border-radius: 20px; }
  html.zv-neo .form-horizontal .control-label { text-align: left; }
  html.zv-neo .tab-content, html.zv-neo #product { padding: 18px 16px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) { html.zv-neo * { animation: none !important; transition: none !important; } html.zv-neo { scroll-behavior: auto; } }
@media print { .zv-announce, .zv-header, .zv-tabbar, .zv-footer { display: none !important; } }

/* ===== v2: выравнивание и недостающая вёрстка ===== */
/* сетка товаров: одинаковая высота карточек, без float-хаоса */
html.zv-neo .row:has(> .product-layout) { display: flex; flex-wrap: wrap; }
html.zv-neo .row:has(> .product-layout)::before, html.zv-neo .row:has(> .product-layout)::after { display: none; }
html.zv-neo .row > .product-layout { display: flex; float: none; margin-bottom: 24px; }
html.zv-neo .product-layout > .product-thumb { width: 100%; }
html.zv-neo .product-thumb > div:not(.image) { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
html.zv-neo .product-thumb .caption { flex: 1 1 auto; }
html.zv-neo .product-thumb .button-group { margin-top: auto; }
html.zv-neo .product-thumb:hover { transform: none; box-shadow: var(--sh-hover); }
html.zv-neo .product-thumb .image a { padding: 8px; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; }
html.zv-neo .product-thumb .image img { max-width: 100%; height: auto; max-height: 100%; width: auto; }
html.zv-neo .product-thumb .price { font-weight: 800; color: var(--ink); font-size: 17px; }
html.zv-neo .product-thumb .price-old { color: var(--muted); font-weight: 500; }
html.zv-neo .product-thumb .button-group button { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
@media (min-width: 768px) {
  html.zv-neo .product-list.product-layout, html.zv-neo .row > .product-layout.product-list { width: 100%; }
  html.zv-neo .product-list .product-thumb > div:not(.image) { flex-direction: row; align-items: center; }
  html.zv-neo .product-list .product-thumb .caption { padding: 18px 20px; }
  html.zv-neo .product-list .product-thumb .button-group { flex-direction: column; margin: 0; padding: 16px; min-width: 220px; }
  html.zv-neo .product-list .product-thumb .image a { aspect-ratio: auto; }
}
@media (max-width: 767px) {
  html.zv-neo .row:has(> .product-layout) { margin-left: -6px; margin-right: -6px; }
  html.zv-neo .row > .product-layout { padding-left: 6px; padding-right: 6px; margin-bottom: 12px; }
  html.zv-neo .product-thumb h4 { font-size: 13.5px; }
}

/* меню категорий: тихая текстовая лента вместо тяжёлых «таблеток» */
html.zv-neo .zv-nav { border-top: 1px solid var(--line); padding: 0; }
html.zv-neo .zv-nav__list { gap: 2px 4px; flex-wrap: wrap; }
html.zv-neo .zv-nav__link { background: transparent; border: 0; border-radius: 10px; padding: 11px 12px; font-size: 14px; font-weight: 600; position: relative; }
html.zv-neo .zv-nav__link:hover, html.zv-neo .zv-nav__item:hover > .zv-nav__link { background: var(--bg2); color: var(--ink); border: 0; }
html[data-mode="dark"].zv-neo .zv-nav__link:hover, html[data-mode="dark"].zv-neo .zv-nav__item:hover > .zv-nav__link { background: var(--bg2); color: var(--acc); border: 0; }
@media (max-width: 991px) {
  html.zv-neo .zv-nav { border-top: 0; }
  html.zv-neo .zv-nav__link { border-radius: 0; padding: 15px 4px; font-size: 16px; }
}

/* заголовки и хлебные крошки */
html.zv-neo #content > h1, html.zv-neo #content > h2:first-child { font-size: clamp(26px, 3.4vw, 40px); letter-spacing: -.03em; margin: 8px 0 22px; }
html.zv-neo .breadcrumb { margin: 18px 0 6px; padding: 0; background: none; font-size: 13px; }

/* панель сортировки категории */
html.zv-neo #content .row:has(> .col-md-2 .btn-group), html.zv-neo #content .row:has(#input-sort) { align-items: center; }
html.zv-neo .btn-group > .btn { border-radius: var(--r-pill); }

/* главная: плитки категорий (julycategory) */
html.zv-neo .featur_categ, html.zv-neo .featur_vtabs { margin-bottom: 28px; }
html.zv-neo .vtabs.nav.nav-tabs { margin: 0 0 14px; }
html.zv-neo .j-boxcategory.tab-content, html.zv-neo .featur_categ .tab-content { background: transparent; border: 0; box-shadow: none; padding: 0; }
html.zv-neo .featur_categ .link-category, html.zv-neo .featur_vtabs .link-category { display: block; background: var(--card); border: 1px solid var(--line); border-radius: 22px; padding: 14px; box-shadow: var(--sh); transition: box-shadow .2s, transform .2s; }
html.zv-neo .featur_categ .link-category:hover { box-shadow: var(--sh-hover); transform: translateY(-3px); opacity: 1; }
html.zv-neo .featur_categ img { max-width: 100%; height: auto; border-radius: 14px; }
html.zv-neo .text-category { font-weight: 700; margin-top: 8px; text-align: center; }
html.zv-neo .sub-category { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--sh-hover); padding: 10px; }

/* слайдеры (julyslider / slideshow / owl) */
html.zv-neo .julyslider, html.zv-neo .j-slider, html.zv-neo #slideshow0, html.zv-neo .owl-carousel { border-radius: 26px; overflow: hidden; }
html.zv-neo .owl-carousel .owl-item img { width: 100%; height: auto; }
html.zv-neo .owl-carousel .owl-controls .owl-buttons div, html.zv-neo .owl-nav button { background: var(--card) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; border-radius: 50% !important; width: 40px; height: 40px; box-shadow: var(--sh); opacity: 1; }
html.zv-neo .owl-dots .owl-dot span, html.zv-neo .owl-page span { background: var(--ink); opacity: .25; }
html.zv-neo .owl-dots .owl-dot.active span, html.zv-neo .owl-page.active span { background: var(--acc); opacity: 1; }
html.zv-neo .july-titleslider { font-weight: 800; letter-spacing: -.02em; }
html.zv-neo .carousel-inner, html.zv-neo .swiper-viewport { border-radius: 26px; }
html.zv-neo .swiper-viewport { border: 0; box-shadow: var(--sh); margin-bottom: 28px; }

/* блоки модулей */
html.zv-neo .zipvrn-home-catalog, html.zv-neo [class^="zipvrn-home-catalog"] { color: var(--ink); }
html.zv-neo .list-group { border-radius: 22px; overflow: hidden; border: 1px solid var(--line); box-shadow: var(--sh); }
html.zv-neo .list-group-item { background: var(--card); border-color: var(--line); color: var(--ink); font-weight: 600; }
html.zv-neo .list-group-item.active, html.zv-neo .list-group-item.active:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
html.zv-neo .category-description-content { color: var(--ink); }
html.zv-neo .category-description-button, html.zv-neo .zipvrn-product-description__toggle { border-radius: var(--r-pill); background: var(--card); border: 1.5px solid var(--line); color: var(--ink); font-weight: 700; }
html.zv-neo .zipvrn-product-description--collapsible .zipvrn-product-description__fade { background: linear-gradient(to bottom, transparent, var(--card) 80%); }
html.zv-neo .zipvrn-stock, html.zv-neo [class*="zipvrn-stock"] { font-weight: 700; }

/* страница товара */
html.zv-neo .thumbnails { list-style: none; margin: 0; padding: 0; }
html.zv-neo .thumbnails > li { list-style: none; }
html.zv-neo .thumbnails .thumbnail { display: block; background: var(--card); border: 1px solid var(--line); border-radius: 24px; padding: 14px; box-shadow: var(--sh); text-align: center; }
html.zv-neo .thumbnails .thumbnail img { max-width: 100%; height: auto; border-radius: 14px; }
html.zv-neo .image-additional { display: flex; flex-wrap: wrap; gap: 10px; }
html.zv-neo .image-additional a.thumbnail { width: 84px; float: none; margin: 0; padding: 6px; border-radius: 16px; }
html.zv-neo #product { background: var(--card); border: 1px solid var(--line); border-radius: 26px; padding: 22px; box-shadow: var(--sh); }
html.zv-neo ul.list-unstyled h2 { font-weight: 800; font-size: 32px; letter-spacing: -.02em; }
html.zv-neo .nav-tabs + .tab-content { margin-top: 0; }
html.zv-neo #content .nav-tabs:not(.vtabs) { margin-top: 28px; }
html.zv-neo #content .col-sm-6 > ul.thumbnails, html.zv-neo #content .col-sm-8 > ul.thumbnails { margin-bottom: 20px; }

/* предотвращаем горизонтальный скролл */
html.zv-neo body { overflow-x: hidden; }
html.zv-neo img { max-width: 100%; }

@media (max-width: 991px) {
  html.zv-neo .zv-tabbar a { justify-content: flex-start; min-height: 48px; }
  html.zv-neo .zv-tabbar a i { display: block; height: 22px; width: 22px; text-align: center; flex: none; }
  html.zv-neo .zv-tabbar a span { display: block; line-height: 12px; }
}
/* мобильный список товаров: компактные строки */
@media (max-width: 767px) {
  html.zv-neo .row > .product-layout.col-xs-12 { width: 100%; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb { flex-direction: row; align-items: stretch; border-radius: 20px; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .image { width: 112px; flex: none; margin: 8px; align-self: flex-start; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .image a { padding: 4px; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb > div:not(.image) { flex: 1; min-width: 0; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .caption { padding: 12px 12px 2px 4px; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .button-group { padding: 6px 12px 12px 4px; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .button-group button { height: 40px; min-width: 40px; }
  html.zv-neo .product-layout.col-xs-12 .product-thumb .caption p:not(.price) { display: none; }
}

/* v3: синяя палитра вместо чёрной */
html.zv-neo .zv-hero__main { background: linear-gradient(135deg, #1d3a8a 0%, #2b55c7 100%); }
html[data-mode="dark"].zv-neo .zv-hero__main { background: linear-gradient(135deg, #1a2644, #22346a); }
html.zv-neo .zv-announce { background: #1d3a8a; color: #fff; }
html[data-mode="dark"].zv-neo .zv-announce { background: #22346a; color: #fff; }
html.zv-neo .zv-footer { background: #16295f; }
html[data-mode="dark"].zv-neo .zv-footer { background: #0b1220; }
html.zv-neo #search .btn, html.zv-neo .zv-cart__btn { background: #1d3a8a; color: #fff; border-color: #1d3a8a; }
html[data-mode="dark"].zv-neo #search .btn, html[data-mode="dark"].zv-neo .zv-cart__btn { background: var(--acc); color: #12285f; border-color: var(--acc); }
html.zv-neo ::selection { background: var(--acc); color: #12285f; }

/* ===== v4: логотип, шапка, плитки категорий ===== */
.zv-brand { display: inline-flex; align-items: center; gap: 11px; color: var(--ink); }
html.zv-neo .zv-brand:hover { opacity: 1; }
.zv-brand__mark { width: 42px; height: 42px; border-radius: 14px; background: linear-gradient(135deg, #c8f23a, #8fd620); color: #12285f; display: inline-flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: 0 6px 16px rgba(143,214,32,.35); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.zv-brand:hover .zv-brand__mark i { animation: zvspin 1.2s linear infinite; }
@keyframes zvspin { to { transform: rotate(360deg); } }
.zv-brand__txt { display: flex; flex-direction: column; line-height: 1; }
.zv-brand__txt b { font-size: 22px; font-weight: 800; letter-spacing: -.035em; color: var(--ink); }
.zv-brand__txt b em { font-style: normal; color: #6f93ff; }
html[data-mode="dark"] .zv-brand__txt b em { color: var(--acc); }
.zv-brand__txt small { margin-top: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
@media (max-width: 991px) { .zv-brand__txt small { display: none; } .zv-brand__mark { width: 38px; height: 38px; font-size: 19px; } .zv-brand__txt b { font-size: 19px; } }
@media (max-width: 380px) { .zv-brand__mark { display: none; } }

html.zv-neo .zv-header { background: color-mix(in srgb, var(--bg) 94%, transparent); }
#cart[data-count="0"] .zv-cart__btn #cart-total { font-size: 0; }
#cart[data-count="0"] .zv-cart__btn #cart-total::after { content: "Корзина"; font-size: 14px; margin-left: 0; }
#cart[data-count="0"] .zv-cart__btn #cart-total i { font-size: 16px; }
html.zv-neo .zv-iconbtn i, html.zv-neo .zv-cart__btn i { line-height: 1; }
@media (max-width: 767px) { #cart[data-count="0"] .zv-cart__btn #cart-total::after { display: none; } .zv-cart__btn { padding: 0 16px; } }

/* плитки категорий: три в ряд */
html.zv-neo .featur_categ .otstuprow, html.zv-neo .featur_categ .featur_vtabs { margin: 0; }
html.zv-neo .featur_categ .featur_vtabs > .col-lg-12, html.zv-neo .featur_categ .featur_vtabs > [class*="col-"] { padding: 0; width: 100%; float: none; }
html.zv-neo .featur_categ .vtabs.nav.nav-tabs { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 26px 0 8px !important; border: 0; width: 100%; float: none; }
html.zv-neo .featur_categ .vtabs.nav.nav-tabs::before, html.zv-neo .featur_categ .vtabs.nav.nav-tabs::after { display: none; }
html.zv-neo .featur_categ .vtabs.nav.nav-tabs > [class*="col-"] { width: auto !important; max-width: none; float: none; padding: 0; margin: 0; }
@media (max-width: 991px) { html.zv-neo .featur_categ .vtabs.nav.nav-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (max-width: 480px) { html.zv-neo .featur_categ .vtabs.nav.nav-tabs { gap: 10px; } }

html.zv-neo .featur_categ .link-category { position: relative; display: flex; flex-direction: column; height: 100%; padding: 12px 12px 18px; border-radius: 28px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--sh); overflow: hidden; transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .2s; }
html.zv-neo .featur_categ .link-category::before { content: ""; position: absolute; left: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle, rgba(200,242,58,.55), transparent 70%); opacity: 0; transition: opacity .3s; pointer-events: none; }
html.zv-neo .featur_categ .link-category:hover { transform: translateY(-6px); box-shadow: var(--sh-hover); border-color: #1d3a8a; }
html.zv-neo .featur_categ .link-category:hover::before { opacity: 1; }
html.zv-neo .featur_categ .link-category > a:first-child { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; border-radius: 20px; background: linear-gradient(160deg, #eef3ff 0%, #dde7fb 100%); overflow: hidden; position: relative; }
html[data-mode="dark"].zv-neo .featur_categ .link-category > a:first-child { background: linear-gradient(160deg, #22346a, #1a2644); }
html.zv-neo .featur_categ .link-category > a:first-child img { max-width: 86%; max-height: 86%; width: auto; height: auto; border-radius: 0; mix-blend-mode: multiply; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
html[data-mode="dark"].zv-neo .featur_categ .link-category > a:first-child img { mix-blend-mode: normal; }
html.zv-neo .featur_categ .link-category:hover > a:first-child img { transform: scale(1.08) rotate(-1.5deg); }
html.zv-neo .featur_categ .text-category { display: block; margin: 16px 56px 0 10px; text-align: left; font-size: 17px; font-weight: 800; letter-spacing: -.02em; line-height: 1.25; color: var(--ink); }
html.zv-neo .featur_categ .transzone { position: absolute !important; right: 16px; bottom: 16px; left: auto !important; top: auto !important; width: 42px !important; height: 42px !important; border-radius: 50%; background: var(--acc) !important; color: #12285f; display: flex !important; align-items: center; justify-content: center; font-size: 0; transition: transform .25s, background .2s; z-index: 3; }
html.zv-neo .featur_categ .transzone::before { content: "\f105"; font-family: FontAwesome; font-size: 20px; line-height: 1; color: #12285f; }
html.zv-neo .featur_categ .transzone::after { display: none; }
html.zv-neo .featur_categ .link-category:hover .transzone { background: #1d3a8a !important; transform: translateX(3px); }
html.zv-neo .featur_categ .link-category:hover .transzone::before { color: #fff; }
@media (max-width: 575px) { html.zv-neo .featur_categ .text-category { font-size: 14px; margin: 12px 4px 0 4px; } html.zv-neo .featur_categ .transzone { display: none !important; } html.zv-neo .featur_categ .link-category { padding: 8px 8px 14px; border-radius: 22px; } }
html.zv-neo .featur_categ .transzone { background: transparent !important; }
html.zv-neo .featur_categ .transzone::before { content: none; }
html.zv-neo .featur_categ .link-category::after { content: "\f105"; font-family: FontAwesome; position: absolute; right: 16px; bottom: 16px; width: 42px; height: 42px; border-radius: 50%; background: var(--acc); color: #12285f; display: flex; align-items: center; justify-content: center; font-size: 20px; transition: transform .25s, background .2s, color .2s; pointer-events: none; z-index: 2; }
html.zv-neo .featur_categ .link-category:hover::after { background: #1d3a8a; color: #fff; transform: translateX(3px); }
@media (max-width: 575px) { html.zv-neo .featur_categ .link-category::after { width: 30px; height: 30px; right: 10px; bottom: 10px; font-size: 16px; } }

/* ===== v5: компактные кнопки карточки, низкие карточки, разделы категорий ===== */
html.zv-neo .product-thumb .button-group { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center; gap: 8px; min-width: 0 !important; max-width: none !important; margin: auto 0 0 !important; padding: 8px 14px 14px !important; border: 0 !important; background: transparent !important; overflow: visible; }
html.zv-neo .product-thumb .button-group button { float: none !important; width: auto !important; flex: 0 0 auto !important; height: 40px !important; min-width: 40px; padding: 0 !important; line-height: 1 !important; border: 1.5px solid var(--line) !important; border-radius: 50% !important; background: var(--card) !important; color: var(--ink) !important; text-transform: none; display: inline-flex !important; align-items: center; justify-content: center; font-size: 15px; }
html.zv-neo .product-thumb .button-group button:first-child { flex: 1 1 auto !important; border-radius: var(--r-pill) !important; background: var(--acc) !important; border-color: var(--acc) !important; color: #12285f !important; font-size: 14px; gap: 7px; padding: 0 14px !important; }
html.zv-neo .product-thumb .button-group button:first-child span { display: inline !important; }
html.zv-neo .product-thumb .button-group button:first-child:hover { background: #1d3a8a !important; border-color: #1d3a8a !important; color: #fff !important; }
html.zv-neo .product-thumb .button-group button + button:hover { background: #1d3a8a !important; border-color: #1d3a8a !important; color: #fff !important; }
html.zv-neo .product-list .product-thumb .button-group { flex-direction: row !important; }
html.zv-neo .product-thumb .button-group .fa { font-size: 15px; }
/* низкие карточки */
html.zv-neo .product-thumb .image { margin: 8px 8px 0; }
html.zv-neo .product-thumb .image a { aspect-ratio: 4 / 3 !important; padding: 6px; }
html.zv-neo .product-thumb .caption { padding: 12px 16px 2px; }
html.zv-neo .product-thumb h4 { margin-bottom: 6px; font-size: 14.5px; }
html.zv-neo .product-thumb .catalog-product-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 6px; font-size: 12.5px; line-height: 1.4; }
html.zv-neo .product-thumb .price { margin: 4px 0 0; }
@media (min-width: 768px) { html.zv-neo .product-list .product-thumb .image a { aspect-ratio: auto !important; } }
html.zv-neo .featur_categ .link-category > a:first-child { aspect-ratio: 16 / 10; }

/* категории: убираем старый всплывающий список и шарик, кнопка «Разделы» открывает панель */
html.zv-neo .featur_categ .sub-category { display: none !important; }
html.zv-neo .featur_categ .link-category::after { content: none !important; display: none !important; }
html.zv-neo .featur_categ .link-category .transzone { position: static !important; display: inline-flex !important; align-self: flex-start; align-items: center; gap: 6px; width: auto !important; height: 34px !important; margin: 12px 0 0 10px; padding: 0 14px; border-radius: var(--r-pill); background: var(--bg2) !important; border: 1.5px solid var(--line); color: var(--ink) !important; font-size: 13px !important; font-weight: 700; line-height: 1; cursor: pointer; transform: none !important; opacity: 1 !important; }
html.zv-neo .featur_categ .link-category .transzone::before { content: "Разделы" !important; font-family: var(--font) !important; font-size: 13px !important; color: inherit !important; width: auto; height: auto; background: none !important; display: inline !important; }
html.zv-neo .featur_categ .link-category .transzone::after { content: "\f107" !important; font-family: FontAwesome !important; font-size: 15px; display: inline !important; position: static !important; width: auto !important; height: auto !important; background: none !important; border: 0 !important; color: inherit !important; transform: none !important; }
html.zv-neo .featur_categ .link-category .transzone:hover { background: #1d3a8a !important; color: #fff !important; border-color: #1d3a8a; }
html.zv-neo .featur_categ .text-category { margin: 14px 10px 0; }
@media (max-width: 575px) { html.zv-neo .featur_categ .link-category .transzone { margin: 8px 0 0 4px; height: 30px !important; padding: 0 11px; } }

/* панель разделов */
.zv-sheet { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; padding: 20px; }
.zv-sheet.is-open { display: flex; }
.zv-sheet__bg { position: absolute; inset: 0; background: rgba(18,40,95,.45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: zvfade .2s; }
.zv-sheet__box { position: relative; width: min(860px, 100%); max-height: min(86vh, 720px); display: flex; flex-direction: column; background: var(--card); border-radius: 30px; box-shadow: 0 30px 80px rgba(18,40,95,.35); overflow: hidden; animation: zvpop .25s cubic-bezier(.2,.8,.2,1); }
.zv-sheet__head { display: flex; align-items: center; gap: 14px; padding: 22px 26px 14px; }
.zv-sheet__head h3 { margin: 0; font-size: 22px; flex: 1; }
.zv-sheet__x { width: 42px; height: 42px; flex: none; border-radius: 50%; border: 1.5px solid var(--line); background: var(--bg2); color: var(--ink); font-size: 22px; line-height: 1; cursor: pointer; }
.zv-sheet__x:hover { background: #1d3a8a; color: #fff; border-color: #1d3a8a; }
.zv-sheet__grid { overflow-y: auto; padding: 4px 18px 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 2px 14px; -webkit-overflow-scrolling: touch; }
.zv-sheet__grid a { display: block; padding: 10px 14px; border-radius: 14px; font-weight: 600; font-size: 14.5px; line-height: 1.3; color: var(--txt); }
html.zv-neo .zv-sheet__grid a:hover { background: var(--bg2); color: var(--ink); opacity: 1; }
.zv-sheet__foot { padding: 14px 26px 22px; border-top: 1px solid var(--line); }
.zv-sheet__foot .btn { width: 100%; }
html.zv-sheet-open { overflow: hidden; }
@keyframes zvfade { from { opacity: 0; } }
@keyframes zvpop { from { opacity: 0; transform: translateY(14px) scale(.98); } }
@media (max-width: 767px) {
  .zv-sheet { align-items: flex-end; padding: 0; }
  .zv-sheet__box { width: 100%; max-height: 88vh; border-radius: 26px 26px 0 0; animation: zvup .28s cubic-bezier(.2,.8,.2,1); }
  .zv-sheet__head { padding: 18px 18px 10px; } .zv-sheet__head h3 { font-size: 18px; }
  .zv-sheet__grid { grid-template-columns: 1fr; padding: 2px 10px 6px; }
  .zv-sheet__foot { padding: 12px 18px calc(16px + env(safe-area-inset-bottom)); }
}
@keyframes zvup { from { transform: translateY(100%); } }

/* ===== v6: карусель-баннер (Owl 1.x) ===== */
html.zv-neo .owl-carousel.owl-theme { position: relative; margin: 0 0 30px; border-radius: 30px; overflow: hidden; background: var(--card); box-shadow: var(--sh); isolation: isolate; }
html.zv-neo .owl-carousel.owl-theme::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px var(--line); pointer-events: none; z-index: 3; }
html.zv-neo .owl-carousel .owl-wrapper-outer { border-radius: inherit; }
html.zv-neo .owl-carousel .owl-item .item { display: block; line-height: 0; }
html.zv-neo .owl-carousel .owl-item .item a { display: block; }
html.zv-neo .owl-carousel .owl-item img { display: block; width: 100%; height: auto; border-radius: 0; transition: transform 6s ease-out; }
html.zv-neo .owl-carousel .owl-item:hover img { transform: scale(1.025); }

/* элементы управления поверх картинки */
html.zv-neo .owl-carousel .owl-controls { position: absolute; inset: 0; margin: 0; padding: 0; pointer-events: none; z-index: 5; text-align: left; }
html.zv-neo .owl-carousel .owl-controls .owl-buttons div { position: absolute; top: 50%; margin: 0; padding: 0 !important; width: 48px; height: 48px; border-radius: 50% !important; background: rgba(255,255,255,.92) !important; color: #1d3a8a !important; border: 0 !important; box-shadow: 0 8px 24px rgba(18,40,95,.28); opacity: 0 !important; transform: translateY(-50%) scale(.85); display: flex !important; align-items: center; justify-content: center; font-size: 0; pointer-events: auto; cursor: pointer; transition: opacity .25s, transform .25s, background .2s, color .2s; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
html.zv-neo .owl-carousel .owl-controls .owl-buttons .owl-prev { left: 18px; right: auto; }
html.zv-neo .owl-carousel .owl-controls .owl-buttons .owl-next { right: 18px; left: auto; }
html.zv-neo .owl-carousel:hover .owl-controls .owl-buttons div { opacity: 1 !important; transform: translateY(-50%) scale(1); }
html.zv-neo .owl-carousel .owl-controls .owl-buttons div:hover { background: #1d3a8a !important; color: #fff !important; }
html.zv-neo .owl-carousel .owl-controls .owl-buttons div i { font-size: 18px !important; line-height: 1; width: auto; }
@media (hover: none) { html.zv-neo .owl-carousel .owl-controls .owl-buttons div { opacity: .9 !important; transform: translateY(-50%) scale(1); width: 38px; height: 38px; } html.zv-neo .owl-carousel .owl-controls .owl-buttons div i { font-size: 15px !important; } }

html.zv-neo .owl-carousel .owl-controls .owl-pagination { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 99px; background: rgba(18,40,95,.42); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); pointer-events: auto; }
html.zv-neo .owl-carousel .owl-controls .owl-page { display: block; }
html.zv-neo .owl-carousel .owl-controls .owl-page span { display: block; width: 8px; height: 8px; margin: 0; border-radius: 99px; background: #fff; opacity: .6; transition: width .3s cubic-bezier(.2,.8,.2,1), background .2s, opacity .2s; cursor: pointer; }
html.zv-neo .owl-carousel .owl-controls .owl-page:hover span { opacity: 1; }
html.zv-neo .owl-carousel .owl-controls .owl-page.active span { width: 24px; background: var(--acc); opacity: 1; }
@media (max-width: 767px) {
  html.zv-neo .owl-carousel.owl-theme { border-radius: 20px; margin-bottom: 22px; }
  html.zv-neo .owl-carousel .owl-controls .owl-pagination { bottom: 8px; padding: 5px 9px; }
  html.zv-neo .owl-carousel .owl-controls .owl-page span { width: 6px; height: 6px; } html.zv-neo .owl-carousel .owl-controls .owl-page.active span { width: 18px; }
  html.zv-neo .owl-carousel .owl-controls .owl-buttons div { display: none !important; }
}

/* ===== v7: слайдер-баннер zv-slider ===== */
html.zv-neo .owl-carousel .owl-controls .owl-pagination { top: auto !important; height: auto !important; right: auto !important; }
.zv-slider { --zv-ratio: 1300 / 350; position: relative; margin: 0 0 30px; padding: 10px; border-radius: 36px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--sh); }
.zv-slider::before { content: ""; position: absolute; z-index: -1; left: 6%; right: 6%; bottom: -14px; height: 30px; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(29,58,138,.28), transparent 70%); filter: blur(10px); }
.zv-slider__view { position: relative; overflow: hidden; border-radius: 27px; background: #fff; aspect-ratio: var(--zv-ratio); isolation: isolate; }
.zv-slider__track { position: absolute; inset: 0; }
.zv-slide { position: absolute; inset: 0; display: block; opacity: 0; transform: translateX(6%) scale(1.03); transition: opacity .8s ease, transform 1s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.zv-slide.is-prev { transform: translateX(-6%) scale(1.03); }
.zv-slider[data-dir="prev"] .zv-slide:not(.is-active):not(.is-prev) { transform: translateX(-6%) scale(1.03); }
.zv-slide.is-active { opacity: 1; transform: none; pointer-events: auto; z-index: 2; }
.zv-slide img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.zv-slide.is-active img { animation: zvkb 7s ease-out both; }
@keyframes zvkb { from { transform: scale(1.045); } to { transform: scale(1); } }
.zv-slider__shade { position: absolute; inset: auto 0 0 0; height: 70px; z-index: 3; pointer-events: none; background: linear-gradient(to top, rgba(18,40,95,.16), transparent); }

.zv-slider__nav { position: absolute; top: 50%; z-index: 5; width: 52px; height: 52px; margin-top: -26px; border: 0; border-radius: 50%; padding: 0; cursor: pointer; background: rgba(255,255,255,.9); box-shadow: 0 10px 28px rgba(18,40,95,.3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity .25s, transform .25s, background .2s; }
.zv-slider__nav--prev { left: 18px; transform: translateX(-10px); } .zv-slider__nav--next { right: 18px; transform: translateX(10px); }
.zv-slider:hover .zv-slider__nav { opacity: 1; transform: none; }
.zv-slider__nav span { position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; border-top: 2.5px solid #1d3a8a; border-right: 2.5px solid #1d3a8a; transition: border-color .2s; }
.zv-slider__nav--next span { transform: translate(-65%, -50%) rotate(45deg); } .zv-slider__nav--prev span { transform: translate(-35%, -50%) rotate(-135deg); }
.zv-slider__nav:hover { background: #1d3a8a; } .zv-slider__nav:hover span { border-color: #fff; }

.zv-slider__bar { position: absolute; left: 22px; bottom: 18px; z-index: 5; display: flex; gap: 8px; padding: 9px 12px; border-radius: 99px; background: rgba(18,40,95,.5); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.zv-slider__seg { position: relative; width: 34px; height: 5px; padding: 0; border: 0; border-radius: 5px; background: rgba(255,255,255,.35); overflow: hidden; cursor: pointer; transition: width .35s; }
.zv-slider__seg.is-active { width: 54px; }
.zv-slider__seg i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: inherit; background: var(--acc); }
.zv-slider__seg.is-done i { width: 100%; background: #fff; }
.zv-slider__count { position: absolute; right: 22px; bottom: 18px; z-index: 5; padding: 8px 14px; border-radius: 99px; background: rgba(18,40,95,.5); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: rgba(255,255,255,.75); font-weight: 700; font-size: 13px; letter-spacing: .04em; }
.zv-slider__count b { color: #fff; font-size: 15px; }
html[data-mode="dark"] .zv-slider__view { background: var(--bg2); }
@media (max-width: 767px) {
  .zv-slider { padding: 6px; border-radius: 24px; margin-bottom: 22px; }
  .zv-slider__view { border-radius: 18px; }
  .zv-slider__nav, .zv-slider__shade { display: none; }
  .zv-slider__bar { left: 12px; bottom: 10px; padding: 6px 9px; gap: 5px; } .zv-slider__seg { width: 20px; height: 4px; } .zv-slider__seg.is-active { width: 34px; }
  .zv-slider__count { right: 12px; bottom: 10px; padding: 5px 10px; font-size: 11px; } .zv-slider__count b { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .zv-slide, .zv-slide.is-active img { transition: opacity .3s; animation: none; transform: none !important; } }

/* ===== v8: бренды ===== */
.zv-brands { margin: 10px 0 34px; padding: 20px 0 22px; border-radius: 32px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--sh); overflow: hidden; }
.zv-brands__head { padding: 0 28px 14px; display: flex; align-items: baseline; gap: 12px; }
html.zv-neo .zv-brands__head h3 { margin: 0; font-size: 20px; }
.zv-brands__marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.zv-brands__track { display: flex; width: max-content; padding: 6px 0; animation: zvmarq var(--zv-dur, 40s) linear infinite; will-change: transform; }
.zv-brands:hover .zv-brands__track { animation-play-state: paused; }
@keyframes zvmarq { to { transform: translateX(-50%); } }
.zv-brandtile { flex: none; width: 176px; height: 92px; margin: 0 8px; padding: 14px 20px; display: flex; align-items: center; justify-content: center; border-radius: 22px; background: #fff; border: 1px solid var(--line); transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .2s; }
html.zv-neo a.zv-brandtile:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: #1d3a8a; opacity: 1; }
.zv-brandtile img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: grayscale(1) contrast(1.05); opacity: .72; transition: filter .3s, opacity .3s, transform .3s; mix-blend-mode: multiply; }
a.zv-brandtile:hover img { filter: none; opacity: 1; transform: scale(1.06); }
@media (max-width: 767px) { .zv-brands { border-radius: 22px; padding: 14px 0 16px; margin-bottom: 24px; } .zv-brands__head { padding: 0 16px 10px; } .zv-brandtile { width: 132px; height: 72px; margin: 0 6px; padding: 10px 14px; border-radius: 18px; } }
@media (prefers-reduced-motion: reduce) { .zv-brands__track { animation: none; } .zv-brands__marquee { overflow-x: auto; } }
.zv-brand__mark { flex: none; } .zv-brand { flex: none; height: auto; width: auto; padding: 0; background: none; border: 0; }

/* ===== v9: главный баннер — гармоничная композиция ===== */
.zv-hero { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 20px; align-items: stretch; margin: 22px 0 26px; }
html.zv-neo .zv-hero__main { display: flex; flex-direction: column; justify-content: center; min-height: 420px; padding: clamp(26px, 4vw, 56px); border-radius: 36px; box-shadow: 0 24px 60px -24px rgba(29,58,138,.55); background:
  radial-gradient(circle at 88% 12%, rgba(200,242,58,.38), transparent 42%),
  radial-gradient(circle at 5% 110%, rgba(111,147,255,.45), transparent 45%),
  linear-gradient(135deg, #1d3a8a 0%, #2b55c7 100%); }
html.zv-neo .zv-hero__main:before { right: auto; top: auto; left: auto; width: 60%; height: 100%; right: 0; bottom: 0; border-radius: 0; opacity: .16; background-image: radial-gradient(rgba(255,255,255,.9) 1.4px, transparent 1.6px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(115deg, transparent 35%, #000 100%); mask-image: linear-gradient(115deg, transparent 35%, #000 100%); }
html.zv-neo .zv-hero__main:after { content: "\f013"; font-family: FontAwesome; position: absolute; right: -40px; bottom: -60px; font-size: 300px; line-height: 1; color: #fff; opacity: .07; pointer-events: none; transform: rotate(12deg); }
html.zv-neo .zv-hero__main h1 { margin: 20px 0 16px; font-size: clamp(30px, 4vw, 52px); line-height: 1.08; max-width: 720px; }
html.zv-neo .zv-hero__main p { color: rgba(255,255,255,.78); max-width: 620px; line-height: 1.6; }
html.zv-neo .zv-hero__cta { margin-top: 26px; }

.zv-hero__perks { gap: 16px; grid-auto-rows: 1fr; }
.zv-hero__perks li { position: relative; grid-template-columns: 56px 1fr 34px; grid-template-rows: auto auto; row-gap: 3px; align-content: center; padding: 18px 20px 18px 20px; border-radius: 28px; overflow: hidden; background: linear-gradient(135deg, var(--card) 55%, color-mix(in srgb, var(--acc) 22%, var(--card)) 130%); }
.zv-hero__perks li::after { content: "\f105"; font-family: FontAwesome; grid-column: 3; grid-row: 1 / span 2; width: 34px; height: 34px; border-radius: 50%; background: var(--bg2); color: var(--ink); display: flex; align-items: center; justify-content: center; font-size: 18px; transition: background .2s, color .2s, transform .2s; }
.zv-hero__perks li:hover::after { background: #1d3a8a; color: #fff; transform: translateX(3px); }
.zv-hero__perks li i { grid-row: 1 / span 2; width: 56px; height: 56px; border-radius: 18px; box-shadow: 0 8px 18px -6px rgba(143,214,32,.7); }
.zv-hero__perks b { align-self: end; font-size: 17px; line-height: 1.2; color: var(--ink); }
.zv-hero__perks span { align-self: start; font-size: 13.5px; line-height: 1.3; }
@media (max-width: 991px) {
  .zv-hero { grid-template-columns: 1fr; }
  html.zv-neo .zv-hero__main { min-height: 0; }
  .zv-hero__perks { grid-auto-rows: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .zv-hero__perks li { grid-template-columns: 1fr; grid-template-rows: auto auto auto; row-gap: 4px; padding: 16px; text-align: left; }
  .zv-hero__perks li::after { display: none; }
  .zv-hero__perks li i { grid-row: auto; width: 44px; height: 44px; font-size: 18px; margin-bottom: 8px; border-radius: 14px; }
  .zv-hero__perks b, .zv-hero__perks span { align-self: auto; }
}
@media (max-width: 575px) {
  .zv-hero__perks { grid-template-columns: 1fr; gap: 10px; }
  .zv-hero__perks li { grid-template-columns: 48px 1fr; grid-template-rows: auto auto; column-gap: 14px; padding: 14px 16px; border-radius: 22px; }
  .zv-hero__perks li i { grid-row: 1 / span 2; width: 48px; height: 48px; margin: 0; }
  html.zv-neo .zv-hero__main:after { font-size: 200px; }
  html.zv-neo .zv-hero__main { border-radius: 28px; }
}
html[data-mode="dark"].zv-neo .zv-hero__main { background: radial-gradient(circle at 88% 12%, rgba(200,242,58,.2), transparent 42%), linear-gradient(135deg, #1a2644, #22346a); }
.zv-hero__badge { align-self: flex-start; } html.zv-neo .zv-hero__cta { align-self: flex-start; }

/* ===== v10: мобильное меню и горизонтальная прокрутка ===== */
html.zv-neo, html.zv-neo body { overflow-x: clip; }
html.zv-neo .zv-footer__grid > * { min-width: 0; }
@media (max-width: 991px) {
  /* backdrop-filter у шапки делал её контейнером для position:fixed — шторка меню не открывалась */
  html.zv-neo .zv-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--bg); }
  html.zv-menu-open.zv-neo .zv-header { z-index: 1000; }
  html.zv-neo .zv-footer__grid { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
  html.zv-neo .zv-footer__brand { grid-column: 1 / -1; }
  html.zv-neo .zv-footer__col:last-child { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  html.zv-neo .zv-footer__contacts li { word-break: break-word; }
  html.zv-neo .zv-footer p { max-width: none; }
}
.zv-sheet__foot .btn { white-space: normal; overflow: hidden; text-overflow: ellipsis; line-height: 1.25; }

/* ===== v11: шторка каталога на телефоне ===== */
.zv-nav__head { display: none; }
@media (max-width: 991px) {
  html.zv-neo .zv-nav { z-index: 1300; padding: 0 0 110px; border-top: 0; }
  html.zv-neo .zv-nav__head { display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 2; padding: 18px 18px 14px 20px; background: var(--bg); border-bottom: 1px solid var(--line); }
  html.zv-neo .zv-nav__head b { font-size: 22px; font-weight: 800; letter-spacing: -.03em; color: var(--ink); }
  html.zv-neo .zv-nav__close { width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font-size: 24px; line-height: 1; cursor: pointer; }
  html.zv-neo .zv-nav .container { padding-left: 14px; padding-right: 14px; }
  html.zv-neo .zv-nav__list { margin-top: 6px; }
  html.zv-neo .zv-nav__item { border-bottom: 1px solid var(--line); }
  html.zv-neo .zv-nav__link { padding: 16px 6px; font-size: 16px; font-weight: 700; color: var(--ink); }
  html.zv-neo .zv-nav__more { width: 46px; height: 46px; margin: 0 -4px 0 0; border-radius: 50%; background: var(--bg2); font-size: 22px; display: flex; align-items: center; justify-content: center; }
  html.zv-neo .zv-nav__item.open > .zv-nav__sub { display: block; }
  html.zv-neo .zv-nav__sub { margin: 2px 0 12px; padding: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; }
  html.zv-neo .zv-nav__sub li a { padding: 11px 12px; font-size: 15px; }
  html.zv-neo .zv-nav__all { margin: 4px 0 0; display: block; text-align: center; padding: 12px; }
}

/* ===== v12: мобильная корзина и компактная шапка ===== */
@media (max-width: 767px) {
  body.checkout-cart .table-responsive .table tbody tr { grid-template-columns: 78px minmax(0, 1fr); }
  body.checkout-cart .table-responsive .table tbody tr td { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(2) a { font-weight: 700; font-size: 15px; line-height: 1.3; display: block; }
  body.checkout-cart .table-responsive .table tbody tr td:nth-child(3) { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
  body.checkout-cart .zv-qty-wrap { flex-wrap: wrap; }
  body.checkout-cart #content { overflow-x: clip; }
}
@media (max-width: 575px) {
  html.zv-neo .zv-header__row { flex-wrap: nowrap; gap: 8px; padding-top: 8px; padding-bottom: 8px; }
  html.zv-neo .zv-header__row .zv-search { order: 5; flex: 1 0 100%; max-width: none; }
  html.zv-neo .zv-header__row { flex-wrap: wrap; }
  html.zv-neo .zv-burger, html.zv-neo .zv-iconbtn, html.zv-neo .zv-cart__btn { width: 42px; height: 42px; }
  html.zv-neo .zv-logo { min-width: 0; flex: 1 1 auto; }
  html.zv-neo .zv-brand { gap: 8px; max-width: 100%; }
  html.zv-neo .zv-brand__mark { width: 34px; height: 34px; font-size: 17px; border-radius: 11px; }
  html.zv-neo .zv-brand__txt b { font-size: 18px; white-space: nowrap; }
  html.zv-neo .zv-actions { gap: 6px; margin-left: 0; }
  html.zv-neo .zv-cart__btn { padding: 0; justify-content: center; border-radius: 50%; }
  html.zv-neo .zv-cart__btn #cart-total { font-size: 0 !important; }
  html.zv-neo .zv-cart__btn #cart-total::after { display: none !important; }
  html.zv-neo .zv-cart__btn #cart-total i { font-size: 17px !important; }
}
@media (max-width: 767px) { body.checkout-cart .table-responsive .table tbody tr { max-width: 100%; overflow: hidden; box-sizing: border-box; } body.checkout-cart .table-responsive { max-width: 100%; } }

/* ===== v13: перенос слов в корзине, кнопка «В корзину» в мобильном списке ===== */
@media (max-width: 767px) {
  body.checkout-cart .table-responsive > .table > tbody > tr > td,
  body.checkout-cart .table-responsive > .table > tbody > tr > td a { white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .image { width: 96px; margin: 8px 6px 8px 8px; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .caption { padding: 10px 10px 2px 4px; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb h4 a { -webkit-line-clamp: 3; overflow-wrap: anywhere; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group { gap: 6px; padding: 6px 10px 12px 4px !important; flex-wrap: nowrap !important; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group button { height: 38px !important; min-width: 38px; width: 38px !important; flex: 0 0 38px !important; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group button:first-child { flex: 1 1 auto !important; width: auto !important; min-width: 0; padding: 0 12px !important; font-size: 13px; font-weight: 800; white-space: nowrap !important; gap: 6px; overflow: hidden; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group button:first-child span { display: inline !important; white-space: nowrap; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group button:first-child .fa { font-size: 14px; }
}
@media (max-width: 359px) { html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .button-group button:nth-child(3) { display: none !important; } }
@media (max-width: 767px) {
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb > div:not(.image):not(.caption):not(.button-group) { display: flex !important; flex-direction: column !important; align-items: stretch !important; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb .caption { flex: 1 1 auto; }
}
/* мобильные карточки-строки: работает и для разметки модулей (caption + button-group рядом с image), и для каталога (обёртка div) */
@media (max-width: 767px) {
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb { display: grid !important; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: stretch; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb > .image { grid-column: 1; grid-row: 1 / span 2; align-self: start; width: auto; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb > .caption { grid-column: 2; grid-row: 1; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb > .button-group { grid-column: 2; grid-row: 2; margin: 0 !important; }
  html.zv-neo .row > .product-layout.col-xs-12 .product-thumb > div:not(.image):not(.caption):not(.button-group) { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
}

/* ===== v14: интерактивные карточки баннера и окно с картой ===== */
.zv-hero__perks li[role] { cursor: pointer; }
.zv-hero__perks li[role]:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; }
.zv-hero__perks li[role]:active { transform: scale(.985); }
.zv-mapmodal__box { width: min(980px, 100%); max-height: 92vh; }
.zv-mapmodal__addr { margin-top: 4px; color: var(--muted); font-weight: 600; font-size: 14px; }
.zv-mapmodal__map { position: relative; flex: 1 1 auto; min-height: 340px; margin: 0 22px; border-radius: 22px; overflow: hidden; background: var(--bg2); border: 1px solid var(--line); }
.zv-mapmodal__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.zv-mapmodal__btns { display: flex; gap: 12px; flex-wrap: wrap; border-top: 0; padding-top: 16px; }
.zv-mapmodal__btns .btn { flex: 1 1 220px; width: auto; text-align: center; }
@media (max-width: 767px) {
  .zv-mapmodal__box { max-height: 94vh; }
  .zv-mapmodal__map { margin: 0 12px; min-height: 300px; border-radius: 18px; }
  .zv-mapmodal__btns { padding: 12px 12px calc(14px + env(safe-area-inset-bottom)); gap: 8px; }
  .zv-mapmodal__btns .btn { flex: 1 1 100%; padding: 13px; font-size: 15px; }
}
html.zv-no-nav .zv-burger { display: none !important; }
