/* ==========================================
   GERKON — Design Tokens + Site Styles
   ==========================================

   КАРТА СТИЛЕЙ (где что искать):
   :root            — CSS-переменные (цвета, тени, отступы, шрифты)
   Reset/Base       — * box-sizing, body, a, button, img
   .container       — центрирующий контейнер 1280px
   Admin            — стили админки (.admin-*)
   Cards/Product    — карточки товаров (.card, .product-card, .product-gallery)
   Catalog layout   — страница каталога (.catalog-layout, .sidebar-*, .products-grid)
   Topbar           — верхняя полоса ссылок (.va-topbar)
   Header           — шапка: лого + телефоны + флаг (.va-header, .va-contacts, .op-badge)
   Searchbar        — строка поиска + кнопка категорий (.va-searchbar, .va-catbtn, .va-search)
   Language switcher— дропдаун языков (.va-lang-wrap, .va-lang-dropdown, .va-lang-opt)
   Category dropdown— выпадающий список категорий (.va-cat-dropdown, .va-cat-item)
   Hero             — главный баннер (.va-hero, .va-hero-video)
   Features         — полоса преимуществ (.va-features, .va-feat)
   Section bar      — заголовки секций с линиями (.section-bar)
   Category sections— секции категорий на главной (.va-catsec, .va-catgrid, .va-subcat)
   Products strip   — горизонтальная лента товаров (.va-toptabs, .va-products, .va-product)
   Consult banner   — баннер консультации (.va-consultban)
   Footer           — подвал (.va-footer, .va-footer-col, .va-footer-bottom)
   Responsive       — медиа-запросы @media (max-width: 1024/768/480px)
   ========================================== */

:root {
  --teal-50:  #ecf8f7;
  --teal-100: #d0eeec;
  --teal-200: #a3ddd9;
  --teal-300: #6cc5bf;
  --teal-400: #3eaba4;
  --teal-500: #1f9189;
  --teal-600: #167a73;
  --teal-700: #11625c;
  --teal-800: #0e4f4a;
  --teal-900: #0b3e3a;
  --red-500:  #e63946;
  --red-600:  #c92b38;
  --ink-900: #0f1419;
  --ink-800: #1a2128;
  --ink-700: #2d3640;
  --ink-600: #4a5560;
  --ink-500: #6b7682;
  --ink-400: #95a0ac;
  --ink-300: #c4ccd4;
  --ink-200: #e1e6eb;
  --ink-150: #ecf0f3;
  --ink-100: #f4f6f8;
  --ink-50:  #f9fafb;
  --white:   #ffffff;
  --success: #16a34a;
  --warning: #f59e0b;
  --font-sans: 'Inter', Arial, system-ui, sans-serif;
  --font-display: 'Manrope', 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
  --r-xs: 4px; --r-sm: 6px; --r-md: 8px; --r-lg: 12px; --r-xl: 16px; --r-2xl: 24px;
  --shadow-xs: 0 1px 2px rgba(15,20,25,.04);
  --shadow-sm: 0 1px 3px rgba(15,20,25,.06), 0 1px 2px rgba(15,20,25,.04);
  --shadow-card: 0 1px 2px rgba(15,20,25,.04), 0 0 0 1px rgba(15,20,25,.06);
  --shadow-md: 0 4px 12px rgba(15,20,25,.08), 0 2px 4px rgba(15,20,25,.04);
  --shadow-lg: 0 12px 32px rgba(15,20,25,.08), 0 4px 8px rgba(15,20,25,.04);
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-sans); color: var(--ink-900); background: var(--ink-100); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; padding: 0; }
img { max-width: 100%; display: block; }

.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* ===== BUTTONS ===== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; padding: 0 18px; border-radius: var(--r-md);
  font-weight: 600; font-size: 14px; transition: all .15s ease; white-space: nowrap; cursor: pointer;
}
.btn-primary { background: var(--teal-500); color: white; border: none; }
.btn-primary:hover { background: var(--teal-600); }
.btn-outline { background: transparent; border: 1.5px solid var(--ink-300); color: var(--ink-900); }
.btn-outline:hover { border-color: var(--teal-500); color: var(--teal-600); }
.btn-outline-light { background: transparent; border: 1.5px solid rgba(255,255,255,.4); color: white; }
.btn-outline-light:hover { border-color: white; background: rgba(255,255,255,.1); }
.btn-lg { height: 48px; padding: 0 28px; font-size: 15px; border-radius: var(--r-lg); }
.btn-sm { height: 32px; padding: 0 12px; font-size: 13px; }

/* ===== BADGES ===== */
.badge {
  display: inline-block; padding: 3px 8px; border-radius: 100px;
  font-size: 12px; font-weight: 500;
}
.badge--success { background: #dcfce7; color: #15803d; }
.badge--warning { background: #fef3c7; color: #92400e; }
.badge--lg { padding: 6px 14px; font-size: 14px; }

/* ===== TOPBAR ===== */
.topbar { background: var(--ink-900); color: rgba(255,255,255,.8); font-size: 13px; }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; height: 40px; }
.topbar__contacts { display: flex; align-items: center; gap: 20px; }
.topbar__phone, .topbar__email { display: flex; align-items: center; gap: 6px; transition: color .15s; }
.topbar__phone:hover, .topbar__email:hover { color: white; }

/* ===== HEADER ===== */
.header { background: white; box-shadow: 0 1px 0 var(--ink-200); position: sticky; top: 0; z-index: 100; }
.header__inner { display: flex; align-items: center; gap: 32px; height: 64px; }
.header__logo { flex-shrink: 0; }
.header__logo img { height: 44px; width: auto; }
.header__nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.header__nav a { padding: 6px 12px; border-radius: var(--r-md); font-size: 14px; font-weight: 500; color: var(--ink-700); transition: all .15s; }
.header__nav a:hover, .header__nav a.active { background: var(--teal-50); color: var(--teal-700); }

/* Dropdown nav */
.nav-dropdown { position: relative; }
.nav-dropdown > span { padding: 6px 12px; border-radius: var(--r-md); font-size: 14px; font-weight: 500; color: var(--ink-700); cursor: pointer; display: block; }
.nav-dropdown:hover > span { background: var(--teal-50); color: var(--teal-700); }
.nav-dropdown__menu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; background: white; border-radius: var(--r-lg); box-shadow: var(--shadow-md); border: 1px solid var(--ink-200); padding: 8px; z-index: 200; }
.nav-dropdown:hover .nav-dropdown__menu { display: block; }
.nav-dropdown__menu a { display: block; padding: 8px 12px; border-radius: var(--r-md); font-size: 14px; color: var(--ink-700); }
.nav-dropdown__menu a:hover { background: var(--teal-50); color: var(--teal-700); }

/* Burger */
.burger { display: none; flex-direction: column; gap: 5px; padding: 8px; margin-left: auto; }
.burger span { display: block; width: 22px; height: 2px; background: var(--ink-900); border-radius: 2px; transition: all .2s; }
.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; }
.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu { display: none; position: fixed; inset: 0; background: white; z-index: 200; padding: 80px 24px 24px; overflow-y: auto; }
.mobile-menu.open { display: block; }
.mobile-menu nav { display: flex; flex-direction: column; gap: 4px; }
.mobile-menu nav a { padding: 12px 16px; border-radius: var(--r-md); font-size: 16px; font-weight: 500; color: var(--ink-900); border-bottom: 1px solid var(--ink-100); }
.mobile-menu__sub { font-size: 14px !important; color: var(--ink-500) !important; padding-left: 28px !important; }

/* ===== HERO ===== */
.hero { background: white; padding: 64px 0; border-bottom: 1px solid var(--ink-200); }
.hero__content { max-width: 640px; }
.hero__tag { display: inline-block; padding: 4px 12px; background: var(--teal-50); color: var(--teal-700); border-radius: 100px; font-size: 13px; font-weight: 600; margin-bottom: 20px; }
.hero__title { font-family: var(--font-display); font-size: 48px; font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; color: var(--ink-900); margin: 0 0 16px; }
.hero__sub { font-size: 17px; color: var(--ink-500); line-height: 1.6; margin: 0 0 32px; max-width: 480px; }
.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 40px; }
.hero__stats { display: flex; gap: 32px; }
.hero__stat { display: flex; flex-direction: column; }
.hero__stat strong { font-family: var(--font-display); font-size: 28px; font-weight: 800; color: var(--teal-600); }
.hero__stat span { font-size: 13px; color: var(--ink-500); }

/* ===== FEATURES STRIP ===== */
.features-strip { background: white; border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
.features-strip__inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.feature-item { display: flex; align-items: center; gap: 14px; padding: 20px 24px; border-right: 1px solid var(--ink-200); color: var(--ink-700); }
.feature-item:last-child { border-right: none; }
.feature-item svg { flex-shrink: 0; color: var(--teal-500); }
.feature-item strong { display: block; font-size: 14px; font-weight: 600; color: var(--ink-900); }
.feature-item span { font-size: 12px; color: var(--ink-500); }

/* ===== SECTIONS ===== */
.section { padding: 56px 0; }
.section--gray { background: var(--ink-50); }
.section__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.section__title { font-family: var(--font-display); font-size: 26px; font-weight: 700; margin: 0 0 32px; color: var(--ink-900); }
.section__header .section__title { margin: 0; }
.section__more { font-size: 14px; font-weight: 600; color: var(--teal-600); }
.section__more:hover { text-decoration: underline; }

/* ===== CATEGORIES GRID ===== */
.categories-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.category-card {
  background: white; border-radius: var(--r-xl); padding: 24px;
  box-shadow: var(--shadow-card); border: 1px solid var(--ink-200);
  display: flex; flex-direction: column; gap: 12px;
  transition: all .2s;
}
.category-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--teal-200); }
.category-card__name { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink-900); }
.category-card__subs { display: flex; flex-direction: column; gap: 4px; }
.category-card__subs span { font-size: 13px; color: var(--ink-500); }
.category-card__link { font-size: 13px; font-weight: 600; color: var(--teal-600); margin-top: auto; }

/* ===== PRODUCTS GRID ===== */
.products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.products-grid--catalog { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.product-card {
  background: white; border-radius: var(--r-lg);
  box-shadow: var(--shadow-card); border: 1px solid var(--ink-200);
  display: flex; flex-direction: column; overflow: hidden;
  transition: all .2s;
}
.product-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.product-card__img { aspect-ratio: 4/3; overflow: hidden; background: var(--ink-50); }
.product-card__img img { width: 100%; height: 100%; object-fit: contain; padding: 12px; transition: transform .3s; }
.product-card:hover .product-card__img img { transform: scale(1.04); }
.product-card__no-img { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--ink-300); }
.product-card .product-card__body { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; align-items: center; text-align: center; }
.product-card .product-card__sku { font-size: 11px; color: var(--ink-400); font-family: monospace; text-align: center; }
.product-card .product-card__title { font-size: 14px; font-weight: 500; color: var(--ink-900); line-height: 1.4; flex: 1; text-align: center; }
.product-card .product-card__footer { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px; width: 100%; }
.product-card__price { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--teal-600); }

/* ===== PAGE HERO ===== */
.page-hero { background: white; padding: 28px 0 0; border-bottom: 1px solid var(--ink-200); }
.page-hero h1 { font-family: var(--font-display); font-size: 32px; font-weight: 800; margin: 8px 0 4px; }
.page-hero__count { font-size: 14px; color: var(--ink-500); margin: 0 0 18px; }
.page-hero__inner { display: flex; flex-direction: column; gap: 0; }
.page-hero__title { flex: 0 0 auto; }
.page-hero__cats { flex: 0 0 auto; padding: 0; max-width: none; margin: 0; min-width: 0; justify-content: flex-start; }

/* ===== BREADCRUMBS ===== */
.breadcrumbs { font-size: 13px; color: var(--ink-500); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.breadcrumbs a { color: var(--ink-500); }
.breadcrumbs a:hover { color: var(--teal-600); }

/* ===== CATALOG LAYOUT ===== */
.catalog-layout { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 32px 24px; max-width: 1280px; margin: 0 auto; }
.catalog-layout--no-sidebar { grid-template-columns: 1fr; padding-top: 16px; }

/* Grouped catalog (bare /catalog with category sections) */
.catalog-group { margin-bottom: 36px; }
.catalog-group__header { display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin-bottom: 14px; background: var(--teal-700, #1a6b65); color: white; border-radius: 8px; }
.catalog-group__title { font-family: var(--font-display); font-size: 16px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; margin: 0; flex: 0 0 auto; }
.catalog-group__count { font-size: 11px; opacity: .85; padding: 2px 8px; background: rgba(255,255,255,.15); border-radius: 100px; }
.catalog-group__more { margin-left: auto; color: white; font-size: 12px; font-weight: 600; opacity: .9; text-decoration: none; }
.catalog-group__more:hover { opacity: 1; }
.catalog-sidebar { }
.sidebar-block { background: white; border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow-card); }
.sidebar-block__title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-400); margin-bottom: 12px; }
.sidebar-link { display: block; padding: 7px 10px; border-radius: var(--r-md); font-size: 14px; color: var(--ink-700); transition: all .15s; }
.sidebar-link:hover { background: var(--teal-50); color: var(--teal-700); }
.sidebar-link.active { background: var(--teal-50); color: var(--teal-700); font-weight: 600; }
.sidebar-link--sub { padding-left: 22px; font-size: 13px; color: var(--ink-500); }
.sidebar-link--sub.active { color: var(--teal-600); }

/* ─── Horizontal category nav (catalog top tabs — settings-style) ─── */
.cat-nav {
  display: flex; flex-wrap: wrap; gap: 0;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid var(--ink-200);
}
.cat-subnav {
  display: flex; flex-wrap: wrap; gap: 8px;
  padding: 14px 0 4px;
}
.cat-pill {
  display: inline-flex; align-items: center;
  padding: 12px 18px;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  color: var(--ink-500);
  font-size: 14px; font-weight: 600;
  text-decoration: none;
  transition: color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.cat-pill:hover { color: var(--ink-800); }
.cat-pill--active { color: var(--teal-700); border-bottom-color: var(--teal-600); }
.cat-pill--active:hover { color: var(--teal-700); }
/* Subnav still uses pill look — visually distinct from main tabs */
.cat-pill--sub {
  padding: 7px 14px; border-radius: 100px;
  background: var(--ink-50); border: 1px solid var(--ink-200);
  color: var(--ink-700); font-size: 13px; font-weight: 500;
  margin-bottom: 0;
}
.cat-pill--sub:hover { border-color: var(--teal-500); color: var(--teal-700); background: white; }
.cat-pill--sub.cat-pill--active { background: var(--teal-600); border-color: var(--teal-600); color: white; }

/* ─── Category description block (SEO/UX) ─── */
.cat-desc {
  margin: 18px auto 0; max-width: 1232px; padding: 24px 32px;
  background: white; border: 1px solid var(--ink-150); border-radius: 10px;
  box-sizing: border-box;
}
.cat-desc .vp-prose { margin: 0; font-size: 14.5px; }
.cat-desc h2:first-child, .cat-desc h3:first-child { margin-top: 0 !important; }

/* ─── Category SEO block: long-form text + FAQ accordion ─── */
.cat-seo-block {
  max-width: 1232px;
  margin: 28px auto 0;
  padding: 28px 32px;
  background: white;
  border: 1px solid var(--ink-150);
  border-radius: 10px;
  box-sizing: border-box;
}
.cat-seo-block__text { margin: 0 0 24px; font-size: 14.5px; }
.cat-seo-block__text:last-child { margin-bottom: 0; }
.cat-seo-block__text h2:first-child, .cat-seo-block__text h3:first-child { margin-top: 0 !important; }

.cat-seo-block__faq-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--ink-900);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--teal-500);
}
.cat-seo-faq-item {
  border: 1px solid var(--ink-150);
  border-radius: 8px;
  margin: 8px 0;
  background: var(--ink-50);
  transition: background .15s ease, border-color .15s ease;
}
.cat-seo-faq-item[open] {
  background: white;
  border-color: var(--teal-300, #b9dcd9);
}
.cat-seo-faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 44px 14px 18px;
  font-weight: 600;
  font-size: 15px;
  color: var(--ink-900);
  position: relative;
  user-select: none;
}
.cat-seo-faq-item summary::-webkit-details-marker { display: none; }
.cat-seo-faq-item summary::after {
  content: '+';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 400;
  color: var(--teal-600);
  transition: transform .2s ease;
  line-height: 1;
}
.cat-seo-faq-item[open] summary::after {
  content: '−';
  transform: translateY(-50%) rotate(0deg);
}
.cat-seo-faq-item summary:hover { color: var(--teal-700); }
.cat-seo-faq-item__a {
  padding: 0 18px 16px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-700);
}
.cat-seo-faq-item__a p:last-child { margin-bottom: 0; }
@media (max-width: 768px) {
  .cat-seo-block { padding: 18px 16px; margin-top: 16px; }
  .cat-seo-block__faq-title { font-size: 18px; }
  .cat-seo-faq-item summary { font-size: 14px; padding: 12px 36px 12px 14px; }
  .cat-seo-faq-item__a { padding: 0 14px 12px; font-size: 13.5px; }
}

/* ===== PRODUCT PAGE ===== */
.product-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 32px 0; }
.product-gallery__main { background: white; border-radius: var(--r-xl); border: 1px solid var(--ink-200); overflow: hidden; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; }
.product-gallery__main img { width: 100%; height: 100%; object-fit: contain; padding: 20px; }
.product-gallery__main--empty { color: var(--ink-300); }
.product-gallery__thumbs { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.thumb { width: 72px; height: 72px; object-fit: contain; border: 2px solid var(--ink-200); border-radius: var(--r-md); cursor: pointer; padding: 4px; background: white; }
.thumb:hover { border-color: var(--teal-400); }
.product-info { display: flex; flex-direction: column; gap: 16px; padding-top: 8px; }
.product-info__sku { font-size: 13px; color: var(--ink-500); font-family: monospace; }
.product-info__title { font-family: var(--font-display); font-size: 26px; font-weight: 800; line-height: 1.2; margin: 0; }
.product-info__price { font-family: var(--font-display); font-size: 32px; font-weight: 800; color: var(--teal-600); }
.product-info__actions { display: flex; flex-direction: column; gap: 10px; }
.product-info__guarantee { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-500); padding: 12px 16px; background: var(--ink-50); border-radius: var(--r-md); }

/* Product tabs */
.product-tabs { padding: 32px 0; }
.tabs-nav { display: flex; gap: 4px; border-bottom: 2px solid var(--ink-200); margin-bottom: 24px; }
.tab-btn { padding: 10px 18px; font-size: 14px; font-weight: 600; color: var(--ink-500); border-radius: var(--r-md) var(--r-md) 0 0; transition: all .15s; background: none; border: none; cursor: pointer; }
.tab-btn:hover { color: var(--ink-900); }
.tab-btn.active { color: var(--teal-600); border-bottom: 2px solid var(--teal-500); margin-bottom: -2px; }
.tab-content { display: none; }
.tab-content.active { display: block; }
.tab-content p { line-height: 1.7; color: var(--ink-700); }
.specs-table { width: 100%; border-collapse: collapse; }
.specs-table td { padding: 10px 16px; border-bottom: 1px solid var(--ink-200); font-size: 14px; }
.specs-table td:first-child { color: var(--ink-500); width: 40%; }
.specs-table tr:last-child td { border-bottom: none; }

/* ===== EMPTY STATE ===== */
.empty-state { text-align: center; padding: 60px 20px; color: var(--ink-500); }
.empty-state p { margin-bottom: 24px; }

/* ===== CTA SECTION ===== */
.cta-section { background: var(--teal-900); color: white; padding: 64px 0; text-align: center; }
.cta-section h2 { font-family: var(--font-display); font-size: 32px; font-weight: 800; margin: 0 0 12px; }
.cta-section p { font-size: 17px; color: rgba(255,255,255,.7); margin: 0 0 32px; }
.cta-section__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ===== FOOTER ===== */
.footer { background: var(--ink-900); color: rgba(255,255,255,.7); padding-top: 48px; }
.footer__inner { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.footer__logo { filter: brightness(0) invert(1); opacity: .8; }
.footer__desc { font-size: 13px; line-height: 1.6; margin-top: 12px; }
.footer__title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.4); margin-bottom: 16px; }
.footer__col a, .footer__col span { display: block; font-size: 14px; color: rgba(255,255,255,.6); margin-bottom: 8px; transition: color .15s; }
.footer__col a:hover { color: white; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 16px 0; font-size: 13px; color: rgba(255,255,255,.35); }

/* ===== RESPONSIVE (legacy) ===== */
@media (max-width: 900px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .catalog-sidebar { display: none; }
  .product-layout { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .products-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   VARIANT A — HEADER + HOMEPAGE LAYOUT
   ============================================================ */

/* Shared card / product-img */
.card { background: white; border-radius: var(--r-lg); box-shadow: var(--shadow-card); }
.card-hoverable { transition: all .2s; }
.card-hoverable:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.product-img {
  background: repeating-linear-gradient(135deg, var(--ink-100), var(--ink-100) 8px, var(--ink-150) 8px, var(--ink-150) 16px);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-400); font-size: 11px; border-radius: var(--r-md);
}

.icon-tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--r-md);
  background: var(--teal-50); color: var(--teal-700); flex-shrink: 0;
}

.btn-dark { background: var(--ink-900); color: white; border: none; }
.btn-dark:hover { background: var(--ink-800); }

/* Section-bar (teal title strip) */
.section-bar {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 18px;
  background: var(--teal-500); color: white;
  border-radius: var(--r-md) var(--r-md) 0 0;
  font-weight: 700; font-size: 14px;
  letter-spacing: 0.06em; text-transform: uppercase;
}

/* VA container */
.va-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* ─── Topbar ─── */
.va-topbar { background: var(--ink-150); border-bottom: 1px solid var(--ink-200); font-size: 12px; }
.va-topbar-inner { display: flex; gap: 24px; height: 36px; align-items: center; }
.va-link { color: var(--ink-600); display: inline-flex; align-items: center; gap: 5px; transition: color .15s; }
.va-link:hover { color: var(--teal-600); }

/* ─── Header (logo + phones + viber/email + map) ─── */
.va-header { padding: 14px 0; border-bottom: 1px solid var(--ink-200); background: white; }
.va-header-inner { display: flex; align-items: center; gap: 28px; flex-wrap: nowrap; justify-content: space-between; }
.va-logo { flex: none; display: flex; flex-direction: column; gap: 2px; text-decoration: none; }
.va-logo img { display: block; }
.va-logo-tag { font-size: 9px; color: var(--ink-500); font-weight: 500; letter-spacing: -0.01em; line-height: 1.25; white-space: nowrap; }

.va-phones-col { display: flex; flex-direction: column; gap: 6px; flex: none; }
.va-cline { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink-800); font-size: 14px; font-weight: 600; white-space: nowrap; }
.va-cline:hover { color: var(--teal-700); }
.va-cico { width: 22px; height: 22px; object-fit: contain; flex: none; border-radius: 4px; }

.va-schedule { display: flex; align-items: center; gap: 12px; flex: none; }
.va-schedule-map { width: 46px; height: auto; flex: none; }
.va-schedule-info { line-height: 1.35; }
.va-schedule-t { font-size: 13px; font-weight: 700; color: var(--ink-900); }
.va-schedule-s { font-size: 12px; color: var(--ink-600); }

/* ─── Searchbar (teal) ─── */
.va-searchbar { background: var(--teal-500); padding: 10px 0; }
.va-searchbar-inner { display: flex; gap: 10px; align-items: center; }
.va-catbtn {
  display: inline-flex; align-items: center; gap: 8px;
  height: 40px; padding: 0 18px;
  background: var(--ink-900); color: white;
  border-radius: var(--r-md); font-weight: 600; font-size: 14px; cursor: pointer;
}
.va-catbtn:hover { background: var(--ink-800); }
.va-search {
  flex: 1; display: flex; align-items: center; gap: 0;
  background: white; border-radius: var(--r-md); padding: 0 14px; height: 40px;
}
.va-search input { border: 0; flex: 1; outline: none; font-size: 14px; padding: 0 10px; }
.va-search-btn { background: var(--ink-900); color: white; height: 32px; padding: 0 16px; border-radius: var(--r-sm); font-size: 13px; font-weight: 600; cursor: pointer; }
.va-search-btn:hover { background: var(--ink-700); }
.va-iconbtn { color: white; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; height: 40px; font-size: 13px; opacity: .95; text-decoration: none; position: relative; }
.va-iconbtn:hover { opacity: 1; }
.va-iconbtn--cart { padding-right: 14px; }
.cart-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 100px; background: #ef4444; color: white; font-size: 11px; font-weight: 700; line-height: 1; }
.cart-badge--empty { display: none; }

/* Cart page */
.cart-page { padding: 24px 0 48px; }
.cart-grid { display: grid; grid-template-columns: 1fr 440px; gap: 24px; align-items: start; }
.cart-grid[hidden], .cart-summary[hidden], .cart-empty[hidden], .cart-success[hidden], .cart-delivery__np[hidden], .cart-delivery__intl[hidden] { display: none; }
.cart-summary { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 14px; }
.cart-summary__breakdown { padding: 14px 18px; background: white; border: 1px solid var(--ink-150); border-radius: 10px; }
.cart-summary__row { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; font-size: 13.5px; color: var(--ink-700); }
.cart-summary__row span:last-child, .cart-summary__row strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cart-summary__row--total { padding-top: 12px; margin-top: 6px; border-top: 1px solid var(--ink-150); font-size: 15px; color: var(--ink-900); font-weight: 600; }
.cart-summary__row--total strong { font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--teal-700); }
.cart-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cart-form__row[hidden] { display: none; }
.cart-form__row .cart-form__field { margin-bottom: 0; }
.cart-empty { text-align: center; padding: 60px 20px; color: var(--ink-500); background: white; border: 1px solid var(--ink-150); border-radius: 10px; margin-bottom: 28px; }
.cart-empty svg { color: var(--ink-300); margin-bottom: 14px; }
.cart-empty h2 { font-family: var(--font-display); font-size: 22px; margin: 0 0 6px; color: var(--ink-700); }
.cart-empty p { margin: 0 0 18px; font-size: 14px; }
.cart-success { text-align: center; padding: 60px 20px; background: white; border: 1px solid var(--ink-150); border-radius: 10px; }
.cart-success h2 { font-family: var(--font-display); font-size: 20px; margin: 14px 0 22px; color: var(--ink-800); }

.cart-items { display: flex; flex-direction: column; gap: 10px; }
.cart-item { display: grid; grid-template-columns: 70px 1fr; gap: 12px; padding: 12px; background: white; border: 1px solid var(--ink-150); border-radius: 10px; }
.cart-item__img { width: 70px; height: 70px; display: flex; align-items: center; justify-content: center; background: var(--ink-50); border-radius: 8px; overflow: hidden; }
.cart-item__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cart-item__noimg { width: 100%; height: 100%; background: linear-gradient(135deg, var(--ink-100), var(--ink-50)); }
.cart-item__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cart-item__title { font-size: 14px; font-weight: 600; color: var(--ink-900); text-decoration: none; line-height: 1.35; }
.cart-item__title:hover { color: var(--teal-700); }
.cart-item__variants { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12px; color: var(--ink-600); }
.cart-item__variant { overflow-wrap: anywhere; min-width: 0; }
.cart-item__variant b { color: var(--ink-500); font-weight: 500; }
.cart-item__variant em { color: var(--teal-700); font-style: normal; font-weight: 600; }
.cart-item__row { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.cart-item__qty { display: inline-flex; align-items: center; border: 1px solid var(--ink-200); border-radius: 8px; overflow: hidden; }
.cart-item__qty button { width: 30px; height: 32px; border: 0; background: transparent; font-size: 16px; cursor: pointer; color: var(--ink-700); }
.cart-item__qty button:hover { background: var(--ink-50); }
.cart-item__qty input { width: 44px; height: 32px; border: 0; border-left: 1px solid var(--ink-200); border-right: 1px solid var(--ink-200); text-align: center; font-size: 14px; font-weight: 600; }
.cart-item__qty input::-webkit-outer-spin-button, .cart-item__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item__qty input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.cart-item__price { margin-left: auto; text-align: right; }
.cart-item__line { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--ink-900); }
.cart-item__unit { font-size: 11px; color: var(--ink-500); margin-top: 2px; }
.cart-item__remove { background: transparent; border: 0; color: var(--ink-400); cursor: pointer; padding: 6px; border-radius: 6px; transition: color .15s, background .15s; }
.cart-item__remove:hover { color: #ef4444; background: #fef2f2; }

.cart-checkout { background: white; border: 1px solid var(--ink-150); border-radius: 10px; padding: 24px; }
.cart-checkout__total { display: none; }
.cart-form__title { font-family: var(--font-display); font-size: 16px; font-weight: 700; margin: 0 0 14px; color: var(--ink-800); }
.cart-form__recipient { display: flex; gap: 0; padding: 4px; margin-bottom: 14px; background: var(--ink-50); border-radius: 8px; }
.cart-recipient__opt { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 10px; cursor: pointer; font-size: 13px; font-weight: 600; color: var(--ink-600); border-radius: 6px; transition: background .15s, color .15s; }
.cart-recipient__opt input[type=radio] { display: none; }
.cart-recipient__opt:has(input:checked) { background: var(--teal-500); color: white; box-shadow: 0 2px 6px rgba(31, 145, 137, 0.25); }
.cart-form__field { display: block; margin-bottom: 12px; }
.cart-form__field span { display: block; font-size: 12px; font-weight: 600; color: var(--ink-600); margin-bottom: 5px; }
.cart-form__field span em { color: #ef4444; font-style: normal; }
.cart-form__field input, .cart-form__field textarea { width: 100%; padding: 9px 12px; border: 1px solid var(--ink-200); border-radius: 7px; font-size: 14px; font-family: inherit; box-sizing: border-box; }
.cart-form__field input:focus, .cart-form__field textarea:focus { outline: none; border-color: var(--teal-500); }
.cart-form__field textarea { resize: vertical; min-height: 60px; }
.cart-form__error { background: #fef2f2; color: #b91c1c; font-size: 13px; padding: 8px 12px; border-radius: 6px; margin-bottom: 10px; }
.cart-form__submit { width: 100%; margin-top: 6px; }
.cart-form__clear { display: block; width: 100%; margin-top: 10px; padding: 8px; background: transparent; border: 0; color: var(--ink-500); font-size: 12px; cursor: pointer; text-decoration: underline; }
.cart-form__clear:hover { color: #ef4444; }

/* Delivery section */
.cart-form__delivery { border: 1px solid var(--ink-200); border-radius: 8px; padding: 12px; margin: 0 0 14px; }
.cart-form__delivery legend { padding: 0 6px; font-size: 12px; font-weight: 700; color: var(--ink-700); }
.cart-delivery__opt { display: flex; align-items: flex-start; gap: 8px; padding: 6px 4px; cursor: pointer; font-size: 13px; color: var(--ink-700); }
.cart-delivery__opt input[type=radio] { margin-top: 2px; }
.cart-delivery__np, .cart-delivery__intl { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--ink-200); }
.cart-delivery__np .cart-form__field, .cart-delivery__intl .cart-form__field { margin-bottom: 10px; }
.cart-delivery__np select { width: 100%; padding: 9px 12px; border: 1px solid var(--ink-200); border-radius: 7px; font-size: 14px; font-family: inherit; box-sizing: border-box; background: white; }
.cart-delivery__np select:disabled { background: var(--ink-50); color: var(--ink-400); }
.cart-delivery__hint { padding: 10px 12px; background: #fffbeb; border-left: 3px solid #f59e0b; border-radius: 4px; font-size: 12px; line-height: 1.45; color: var(--ink-700); margin-bottom: 10px; }
.cart-delivery__hint strong { color: var(--ink-900); }

/* Nova Poshta city autocomplete */
.np-autocomplete { position: relative; }
.np-autocomplete__list { list-style: none; margin: 2px 0 0; padding: 0; position: absolute; top: 100%; left: 0; right: 0; background: white; border: 1px solid var(--ink-200); border-radius: 7px; box-shadow: 0 6px 20px rgba(0,0,0,.08); max-height: 240px; overflow-y: auto; z-index: 50; }
.np-autocomplete__list li { padding: 9px 12px; cursor: pointer; font-size: 13px; line-height: 1.35; border-top: 1px solid var(--ink-100); }
.np-autocomplete__list li:first-child { border-top: 0; }
.np-autocomplete__list li:hover { background: var(--teal-50); }
.np-autocomplete__list li b { font-weight: 600; color: var(--ink-900); }
.np-autocomplete__list li span { color: var(--ink-500); font-size: 12px; }
.np-autocomplete__empty { color: var(--ink-400); font-style: italic; cursor: default !important; }
.np-autocomplete__empty:hover { background: white !important; }

/* Toast notification */
.cart-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); z-index: 9999; padding: 12px 22px; background: var(--ink-900, #1f2937); color: white; font-size: 14px; font-weight: 500; border-radius: 100px; box-shadow: 0 8px 24px rgba(0,0,0,.18); opacity: 0; transition: opacity .25s ease, transform .25s ease; pointer-events: none; }
.cart-toast--show { opacity: 1; transform: translateX(-50%) translateY(0); }
.cart-toast--error { background: #b91c1c; }

@media (max-width: 900px) {
  .cart-grid { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
  .cart-item { grid-template-columns: 70px 1fr; gap: 12px; padding: 12px; }
  .cart-item__img { width: 70px; height: 70px; }
}
.va-iconbtn:hover { opacity: 1; background: rgba(255,255,255,.1); border-radius: var(--r-md); }
.va-iconbtn span { font-weight: 600; }
.va-cart-count { background: rgba(255,255,255,.15); padding: 2px 8px; border-radius: 100px; font-size: 12px; }

/* ─── Native selects (categories + language) ─── */
.va-catselect {
  height: 40px;
  padding: 0 18px 0 42px;
  background-color: #0f1419;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'><line x1='3' y1='6' x2='21' y2='6'/><line x1='3' y1='12' x2='21' y2='12'/><line x1='3' y1='18' x2='21' y2='18'/></svg>");
  background-repeat: no-repeat;
  background-position: 14px center;
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.va-catselect:hover { background-color: #1a2128; }
.va-catselect option { background: #fff; color: #0f1419; }

.va-langselect {
  height: 40px;
  padding: 0 24px 0 32px;
  background-color: transparent;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'><circle cx='12' cy='12' r='10'/><line x1='2' y1='12' x2='22' y2='12'/><path d='M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z'/></svg>");
  background-repeat: no-repeat;
  background-position: 10px center;
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.va-langselect:hover { background-color: rgba(255,255,255,.1); }
.va-langselect option { background: #fff; color: #0f1419; }

/* ─── Language switcher (legacy) ─── */
.va-lang-wrap { position: relative; }
.va-lang-dropdown { display: none; flex-direction: column; position: absolute; right: 0; top: calc(100% + 4px); background: white; border: 1px solid var(--ink-200); border-radius: var(--r-md); box-shadow: var(--shadow-md); min-width: 160px; z-index: 400; overflow: hidden; }
.va-lang-dropdown.open { display: flex; }
.va-lang-opt { display: block; width: 100%; padding: 10px 16px; font-size: 14px; color: var(--ink-700); font-weight: 500; box-sizing: border-box; }
.va-lang-opt:hover { background: var(--teal-50); color: var(--teal-700); }
.va-lang-opt.active { color: var(--teal-700); font-weight: 700; }

/* ─── Category dropdown ─── */
.va-cat-dropdown { display: none; background: white; border-top: 3px solid var(--teal-500); border-bottom: 2px solid var(--ink-200); box-shadow: var(--shadow-md); padding: 16px 0; }
.va-cat-dropdown.open { display: block; }
.va-cat-dropdown .va-container { display: flex; flex-wrap: wrap; gap: 4px; }
.va-cat-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; border-radius: var(--r-md); font-size: 14px; font-weight: 500; color: var(--ink-700); min-width: 200px; }
.va-cat-item:hover { background: var(--teal-50); color: var(--teal-700); }

/* ─── Hero ─── */
.va-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; padding: 40px 32px; align-items: stretch; background: white; border: 1px solid var(--ink-150); border-radius: 10px; max-width: 1232px; margin: 0 auto 24px; box-sizing: border-box; }
.va-hero-main { display: flex; flex-direction: column; justify-content: flex-start; height: 100%; min-height: 100%; }
.va-hero-main .va-hero-actions { margin-top: auto !important; margin-bottom: 0 !important; }
.va-hero-tag { display: inline-block; padding: 6px 12px; background: var(--teal-50); color: var(--teal-700); border-radius: 100px; font-size: 12px; font-weight: 600; margin-bottom: 16px; }
.va-hero-title { font-family: var(--font-display); font-size: 34px; line-height: 1.12; letter-spacing: -0.02em; font-weight: 800; margin: 0 0 14px; max-width: 640px; }
.va-hero-sub { font-size: 13.5px; color: var(--ink-600); margin: 0 0 18px; line-height: 1.55; }
.va-hero-sub:last-of-type { margin-bottom: 20px; }
.va-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
.va-hero-video {
  position: relative; aspect-ratio: 4/3; border-radius: var(--r-xl); overflow: hidden;
  background: repeating-linear-gradient(135deg, #1a6b65 0px, #1a6b65 10px, #1f9189 10px, #1f9189 20px);
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 12px; color: white;
}
.va-hero-live { position: absolute; top: 16px; left: 16px; background: rgba(0,0,0,.4); padding: 4px 10px; border-radius: 100px; font-size: 12px; font-weight: 600; }
.va-hero-play {
  width: 56px; height: 56px; background: rgba(255,255,255,.2); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; backdrop-filter: blur(4px);
  cursor: pointer; border: 2px solid rgba(255,255,255,.4);
}
.va-hero-placeholder { font-size: 13px; color: rgba(255,255,255,.6); }

/* ─── Hero featured products carousel ─── */
.va-hero-slider {
  position: relative; aspect-ratio: 4/3;
  border-radius: 14px; overflow: hidden;
  background: white;
  border: 1px solid var(--ink-150);
  box-shadow: 0 8px 24px rgba(31, 145, 137, 0.08);
}
.va-hero-slide {
  position: absolute; inset: 0;
  background: var(--ink-100);
  opacity: 0; transition: opacity .4s ease;
  text-decoration: none; color: inherit; pointer-events: none;
  overflow: hidden;
}
.va-hero-slide--active { opacity: 1; pointer-events: auto; }
.va-hero-slide__img-wrap {
  position: absolute; inset: 0;
  overflow: hidden;
}
.va-hero-slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform .5s ease;
}
@keyframes va-hero-zoom {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
.va-hero-slide--active img {
  animation: va-hero-zoom 6s ease-out forwards;
}
.va-hero-slide:hover img { animation-play-state: paused; transform: scale(1.05); }
.va-hero-slide::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 35%;
  background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 100%);
  pointer-events: none;
  z-index: 1;
}
.va-hero-slide__caption {
  position: absolute; left: 18px; right: 18px; bottom: 18px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
  z-index: 2;
  background: transparent; padding: 0;
}
.va-hero-slide__title {
  color: white;
  font-size: 14px; font-weight: 700; line-height: 1.3;
  text-shadow: 0 2px 6px rgba(0,0,0,.5), 0 0 4px rgba(0,0,0,.3);
  display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  flex: 1; min-width: 0;
  letter-spacing: -0.01em;
}
.va-hero-slide__more {
  font-size: 12px; font-weight: 600;
  color: var(--teal-700);
  background: white;
  padding: 7px 14px;
  border-radius: 100px;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 4px;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
  transition: transform .2s ease, box-shadow .2s ease;
}
.va-hero-slide:hover .va-hero-slide__more {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
  color: var(--teal-800);
}
.va-hero-slider__dots {
  position: absolute; left: 0; right: 0; top: 14px;
  display: flex; justify-content: center; gap: 6px; z-index: 2;
}
.va-hero-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255, 255, 255, .65); border: 0; cursor: pointer; padding: 0;
  transition: width .2s ease, background .2s ease;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.va-hero-dot--active { background: white; width: 22px; border-radius: 4px; }
.va-hero-nav {
  position: absolute; top: 42%; transform: translateY(-50%);
  width: 38px; height: 38px; border-radius: 50%;
  background: white; border: 1px solid var(--ink-200); cursor: pointer;
  font-size: 22px; line-height: 1; color: var(--teal-700); font-weight: 600;
  display: flex; align-items: center; justify-content: center;
  z-index: 2; transition: all .15s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.va-hero-nav:hover { background: var(--teal-600); color: white; border-color: var(--teal-600); }
.va-hero-nav--prev { left: 12px; }
.va-hero-nav--next { right: 12px; }

/* ─── Features ─── */
.va-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 24px 32px; margin: 24px auto 32px; max-width: 1232px; background: white; border: 1px solid var(--ink-150); border-radius: 10px; box-sizing: border-box; }
.va-feat { display: flex; gap: 14px; align-items: flex-start; }
.va-feat-t { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.va-feat-s { font-size: 12px; color: var(--ink-500); line-height: 1.4; }

/* ─── Industries strip ─── */
.va-industries { max-width: 1232px; margin: 0 auto 36px; padding: 0; }
.va-industries__title { font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--ink-900); margin: 0 0 16px; text-align: center; }
.va-industries__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.va-ind { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 12px; background: white; border: 1px solid var(--ink-150); border-radius: 10px; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.va-ind:hover { border-color: var(--teal-500); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(31, 145, 137, 0.08); }
.va-ind__icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--teal-50); color: var(--teal-600); border-radius: 50%; }
.va-ind__icon svg { width: 26px; height: 26px; }
.va-ind__label { font-size: 13px; font-weight: 600; color: var(--ink-800); text-align: center; line-height: 1.3; }

/* ─── DWS / Spotlight blocks (AutoScan, ПРК, Мірники) ─── */
.va-dws { max-width: 1232px; margin: 0 auto 24px; padding: 0; }
.va-dws__inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: center; padding: 28px 32px; background: linear-gradient(135deg, #f0faf8 0%, #ffffff 100%); border: 1px solid var(--teal-100, #d4ede9); border-radius: 14px; }
.va-dws__tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--teal-700); background: var(--teal-50); padding: 5px 10px; border-radius: 100px; margin-bottom: 12px; }
.va-dws__title { font-family: var(--font-display); font-size: 24px; font-weight: 800; color: var(--ink-900); line-height: 1.25; margin: 0 0 12px; }
.va-dws__lead { font-size: 14px; line-height: 1.6; color: var(--ink-700); margin: 0 0 18px; }
.va-dws__media { display: flex; justify-content: center; }
.va-dws__media img { max-width: 100%; height: auto; max-height: 240px; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.08); }
/* Reverse layout — image on the LEFT */
.va-dws--reverse .va-dws__inner { grid-template-columns: 1fr 1.2fr; }
.va-dws--reverse .va-dws__media { order: -1; }
/* Blue variant — ПРК */
.va-dws--blue .va-dws__inner { background: linear-gradient(135deg, #eef4fa 0%, #ffffff 100%); border-color: #d4e3f0; }
.va-dws--blue .va-dws__tag { color: #2d5a87; background: #e1ecf6; }
/* Gray variant — Мірники */
.va-dws--gray .va-dws__inner { background: linear-gradient(135deg, #f5f5f3 0%, #ffffff 100%); border-color: #e5e5e0; }
.va-dws--gray .va-dws__tag { color: #555; background: #ececea; }

/* ─── Category sections ─── */
.va-catsec { margin-bottom: 28px; }
.va-catcount { font-size: 11px; opacity: .8; font-weight: 500; padding: 2px 8px; background: rgba(255,255,255,.15); border-radius: 100px; }
.va-catspace { flex: 1; }
.va-catall { color: white; font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; opacity: .9; text-decoration: none; }
.va-catall:hover { opacity: 1; }
.va-catgrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; padding: 16px; background: var(--ink-50); border: 1px solid var(--ink-200); border-top: 0; border-radius: 0 0 var(--r-md) var(--r-md); }
.va-subcat {
  display: flex; flex-direction: column;
  background: white; border: 1px solid var(--ink-150); border-radius: 10px;
  overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  text-decoration: none; color: inherit;
}
.va-subcat:hover {
  border-color: var(--teal-500);
  box-shadow: 0 6px 18px rgba(31, 145, 137, 0.1);
  transform: translateY(-2px);
}
.va-subcat__img {
  width: 100%; height: 130px;
  background: linear-gradient(180deg, #f7faf9 0%, white 100%);
  display: flex; align-items: center; justify-content: center;
  padding: 14px; box-sizing: border-box;
  color: var(--ink-300);
  border-bottom: 1px solid var(--ink-100);
  overflow: hidden;
}
.va-subcat__img img {
  max-width: 100%; max-height: 100%;
  width: auto; height: auto;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.06));
  transition: transform .25s ease;
}
.va-subcat:hover .va-subcat__img img { transform: scale(1.05); }
.va-subcat__img svg { width: 44px; height: 44px; opacity: .5; }
.va-subcat--sub .va-subcat__img { background: var(--teal-50); color: var(--teal-600); }
.va-subcat--sub .va-subcat__img svg { width: 38px; height: 38px; opacity: .85; }
.va-subcat .va-subcat__title {
  padding: 12px 14px;
  font-size: 13.5px; line-height: 1.35; font-weight: 500;
  color: var(--ink-800); flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  text-align: center;
}

/* ─── Products section ─── */
.va-toptabs { padding-bottom: 32px; }
.va-products { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.va-product { padding: 14px; position: relative; display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.va-prod-img { aspect-ratio: 1; margin-bottom: 12px; border-radius: var(--r-md); overflow: hidden; }
.va-prod-body { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.va-prod-sku { font-size: 11px; color: var(--ink-500); }
.va-prod-title { font-size: 13px; font-weight: 500; line-height: 1.4; min-height: 36px; }
.va-prod-stock { font-size: 12px; color: var(--success); display: inline-flex; align-items: center; gap: 6px; }
.va-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.va-dot-green { background: var(--success); }
.va-dot-grey { background: var(--ink-400); }
.va-prod-price { margin-top: 4px; }
.va-prod-cur { font-size: 16px; font-weight: 800; color: var(--ink-900); font-family: var(--font-display); }

/* ─── Home SEO text + FAQ blocks (rendered before consult banner) ─── */
/* Outer section keeps va-container's natural 0 24 padding so inner box aligns
   with .va-catgrid / .section-bar (also inside va-container content area). */
.va-home-seo, .va-home-faq { margin-top: 24px; }
.va-home-seo > .vp-prose,
.va-home-faq > .vp-prose {
  padding: 32px;
  background: white;
  border: 1px solid var(--ink-150);
  border-radius: 10px;
  box-sizing: border-box;
  margin-top: 0;
}
.va-home-seo > .vp-prose h2:first-child,
.va-home-faq > .vp-prose h2:first-child { margin-top: 0; }
@media (max-width: 720px) {
  .va-home-seo > .vp-prose, .va-home-faq > .vp-prose { padding: 18px; }
}

/* ─── Consult banner ─── */
.va-consultban { background: var(--teal-500); color: white; padding: 36px 0; margin-top: 32px; }
.va-consultban-inner { display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.va-consultban-t { font-family: var(--font-display); font-size: 24px; font-weight: 700; margin-bottom: 6px; }
.va-consultban-s { font-size: 14px; opacity: 0.85; max-width: 600px; }

/* ─── Footer ─── */
.va-footer { background: var(--ink-900); color: var(--ink-300); padding: 48px 0 0; margin-top: 40px; }
.va-footer-inner { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 36px; }
.va-footer-col { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; text-align: left; }
.va-footer-col img { display: block; align-self: flex-start; }
.va-footer-col > a { font-size: 13px; color: var(--ink-300); display: inline-flex; align-items: center; gap: 6px; }
.va-footer-col > a:hover { color: white; }
.va-footer-col > span { font-size: 13px; color: var(--ink-300); display: inline-flex; align-items: center; gap: 6px; }
.va-footer-h { font-size: 13px; font-weight: 700; color: white; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 4px; }
.va-footer-about { font-size: 13px; color: var(--ink-400); margin: 8px 0 0; line-height: 1.5; }
.va-footer-bottom { padding: 18px 0; border-top: 1px solid #2a3340; font-size: 12px; color: var(--ink-500); text-align: center; }

/* ──────────────────────────────────────────────
   PRODUCT PAGE (Woodmart-style replica)
   ────────────────────────────────────────────── */
.va-product-page { padding: 18px 0 56px; background: #fff; }

.vp-breadcrumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 6px 0 14px; font-size: 13px; color: var(--ink-500); }
.vp-breadcrumbs a { color: var(--ink-500); text-decoration: none; }
.vp-breadcrumbs a:hover { color: var(--teal-600); }
.vp-breadcrumbs__sep { color: var(--ink-300); }
.vp-breadcrumbs__cur { color: var(--ink-700); font-weight: 500; }

.vp-titlebar {
  background: var(--teal-50);
  border-radius: var(--r-md);
  padding: 18px 24px;
  margin-bottom: 22px;
}
.vp-titlebar h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 800;
  color: #4a5560;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.vp-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
  gap: 32px;
  margin-bottom: 32px;
}
.vp-gallery, .vp-info { min-width: 0; }

/* Gallery — sticky so image stays visible while description scrolls */
.vp-gallery {
  display: flex; flex-direction: column; gap: 10px;
  position: sticky; top: 16px;
  align-self: start;
}
@media (max-width: 768px) {
  .vp-gallery { position: static; }
}
.vp-gallery__main {
  aspect-ratio: 1;
  background: #fff;
  border: 1px solid var(--ink-150);
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.vp-gallery__main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 16px;
  box-sizing: border-box;
}
.vp-gallery__main--empty { color: var(--ink-300); }
.vp-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.vp-thumb {
  aspect-ratio: 1; width: 100%; object-fit: cover;
  border: 2px solid var(--ink-150); border-radius: 6px;
  cursor: pointer; padding: 4px; background: white; box-sizing: border-box;
  transition: border-color .15s;
}
.vp-thumb:hover { border-color: var(--teal-400, #3eaba4); }
.vp-thumb.active { border-color: var(--teal-500); }

/* Info column */
.vp-info { display: flex; flex-direction: column; gap: 18px; }

.vp-priceline {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  padding-bottom: 18px; border-bottom: 1px solid var(--ink-150);
}
.vp-price {
  font-family: var(--font-display);
  font-size: 36px; font-weight: 800;
  color: var(--teal-600);
  letter-spacing: -0.02em;
  line-height: 1;
}
.vp-price--call { font-size: 24px; color: var(--ink-700); }
.vp-price--quote { font-size: 18px; font-weight: 700; color: var(--ink-700); font-style: italic; letter-spacing: 0; }
.vp-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.vp-stock {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 14px; font-weight: 600;
}
.vp-stock--in { color: var(--success); }
.vp-stock--in svg { color: var(--success); }
.vp-stock--order { color: var(--warning); }
.vp-sku { font-size: 13px; color: var(--ink-500); }
.vp-sku strong { color: var(--ink-800); font-weight: 700; }

/* Variants selector */
.vp-variants-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  margin-bottom: 4px;
}
.vp-variants {
  display: flex; flex-direction: column; gap: 8px;
  flex: 0 1 auto;
  min-width: 160px;
}
.vp-variants__label { font-size: 14px; font-weight: 600; color: var(--ink-800); }
.vp-variants__list { display: flex; gap: 8px; flex-wrap: wrap; }
.vp-variant {
  padding: 8px 16px;
  background: var(--ink-100); color: var(--ink-700);
  border: 1px solid var(--ink-200); border-radius: var(--r-md);
  font-weight: 700; font-size: 13.5px; cursor: pointer;
  transition: all .12s; min-width: 78px; text-align: center;
}
.vp-variant:hover { border-color: var(--teal-500); color: var(--teal-700); }
.vp-variant.active { background: var(--teal-500); color: white; border-color: var(--teal-500); }

.vp-variant-hint {
  flex: 1 1 100%;
  margin-top: 4px;
  padding: 10px 14px;
  background: #f4faf9;
  border-left: 3px solid var(--teal-500);
  border-radius: 0 6px 6px 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-700);
}
.vp-variant-hint strong { color: var(--ink-900); }

/* Actions */
.vp-actions { display: grid; grid-template-columns: auto 1fr 1fr; gap: 10px; align-items: center; }
.vp-qty {
  display: inline-flex; align-items: center;
  border: 1px solid var(--ink-200); border-radius: var(--r-md); height: 48px;
  background: white;
}
.vp-qty__btn {
  width: 38px; height: 100%; background: transparent; border: 0;
  font-size: 20px; color: var(--ink-700); cursor: pointer;
  font-weight: 600;
}
.vp-qty__btn:hover { color: var(--teal-600); background: var(--ink-50); }
.vp-qty__input {
  width: 44px; height: 100%; border: 0; text-align: center;
  font-size: 15px; font-weight: 600; color: var(--ink-900);
  background: transparent; outline: none;
  -moz-appearance: textfield;
}
.vp-qty__input::-webkit-outer-spin-button,
.vp-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.vp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 18px;
  border-radius: var(--r-md);
  font-weight: 700; font-size: 14px; text-transform: uppercase;
  letter-spacing: 0.04em; text-decoration: none;
  transition: all .12s;
  white-space: nowrap;
}
.vp-btn--primary { background: var(--teal-500); color: white; border: 0; }
.vp-btn--primary:hover { background: var(--teal-600); }
.vp-btn--outline { background: white; color: var(--teal-600); border: 2px solid var(--teal-500); }
.vp-btn--outline:hover { background: var(--teal-500); color: white; }

/* PDFs section — list of clickable cards */
.vp-pdfs { display: flex; flex-direction: column; gap: 6px; }
.vp-pdfs__link {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: white;
  border: 1px solid var(--ink-150);
  border-radius: var(--r-md);
  text-decoration: none;
  transition: all .12s;
}
.vp-pdfs__link:hover {
  border-color: var(--teal-500);
  background: var(--teal-50);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(31,145,137,.12);
}
.vp-pdfs__icon {
  width: 36px; height: 36px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: #e0f3f0; color: var(--teal-600);
  border-radius: var(--r-sm);
}
.vp-pdfs__text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.vp-pdfs__small { font-size: 11px; color: var(--ink-500); text-transform: uppercase; letter-spacing: 0.04em; }
.vp-pdfs__title { font-size: 13.5px; font-weight: 600; color: var(--ink-900); line-height: 1.3; }

.vp-guarantee {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ink-600);
  padding: 10px 0; border-top: 1px solid var(--ink-150);
}
.vp-guarantee svg { color: var(--teal-500); }

/* Description tabs */
.vp-content { background: white; border: 1px solid var(--ink-150); border-radius: var(--r-md); overflow: hidden; }
.vp-tabs { display: flex; gap: 0; background: var(--ink-50); border-bottom: 1px solid var(--ink-150); }
.vp-tab {
  padding: 14px 22px; background: transparent; border: 0;
  font-size: 13.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--ink-500); cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
}
.vp-tab.active { color: var(--teal-600); border-bottom-color: var(--teal-500); background: white; }
.vp-tab:hover { color: var(--ink-800); }
.vp-tab-content { padding: 22px 24px; display: none; }
.vp-tab-content.active { display: block; }

/* Description prose styles (legacy HTML from old site) */
.vp-prose {
  font-size: 15px; line-height: 1.55;
  color: #545b61;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.vp-prose p { margin: 0 0 14px; text-align: justify; }
.vp-prose p:empty { display: none; }
/* Numbered list — teal circle counter */
.vp-prose ol {
  counter-reset: vp-counter;
  list-style: none;
  margin: 14px 0 18px;
  padding: 0;
  text-align: left;
}
.vp-prose ol > li {
  counter-increment: vp-counter;
  position: relative;
  padding: 0 0 0 38px;
  margin-bottom: 12px;
  line-height: 1.55;
  min-height: 26px;
}
.vp-prose ol > li::before {
  content: counter(vp-counter);
  position: absolute;
  left: 0; top: 3px;
  width: 24px; height: 24px;
  background: var(--teal-500); color: white;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12.5px;
  font-family: var(--font-display);
  line-height: 1;
}

/* Bullet list — teal dot */
.vp-prose ul {
  list-style: none;
  margin: 14px 0 18px;
  padding: 0;
  text-align: left;
}
.vp-prose ul > li {
  position: relative;
  padding: 3px 0 3px 22px;
  margin-bottom: 6px;
  line-height: 1.55;
}
.vp-prose ul > li::before {
  content: '';
  position: absolute;
  left: 4px; top: 11px;
  width: 7px; height: 7px;
  background: var(--teal-500);
  border-radius: 50%;
}

/* Bold inline labels (like "Власне виробництво:" inside list items) */
.vp-prose li strong, .vp-prose li b {
  color: var(--ink-900); font-weight: 700;
}
.vp-prose a { color: var(--teal-600); text-decoration: underline; }
.vp-prose img { max-width: 100%; height: auto; border-radius: 4px; }
.vp-prose strong, .vp-prose b { font-weight: 700; color: var(--ink-900); }

/* Section headers (h5 banners like "Короткий опис товару:" / "Наші переваги:") */
.vp-prose h2, .vp-prose h3, .vp-prose h4, .vp-prose h5, .vp-prose h6 {
  background: #e0f3f0;
  padding: 12px 16px 12px 18px !important;
  margin: 22px 0 14px !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 700;
  color: var(--ink-900);
  border-left: 3px solid var(--teal-500);
  border-radius: 0 4px 4px 0;
}
/* When followed by table — connect them as one unit */
.vp-prose h2 + table, .vp-prose h3 + table, .vp-prose h4 + table,
.vp-prose h5 + table, .vp-prose h6 + table {
  margin-top: -14px !important;
}
.vp-prose h2 { font-size: 18px !important; }
.vp-prose h3 { font-size: 16px !important; }
.vp-prose h5 span, .vp-prose h4 span, .vp-prose h3 span, .vp-prose h2 span {
  font-size: inherit !important;
  font-weight: inherit !important;
}
/* When header followed by table — connect them visually */
.vp-prose h2 + table, .vp-prose h3 + table, .vp-prose h4 + table,
.vp-prose h5 + table, .vp-prose h6 + table,
.vp-prose h2 + p + table, .vp-prose h3 + p + table, .vp-prose h4 + p + table,
.vp-prose h5 + p + table, .vp-prose h6 + p + table {
  margin-top: 0 !important;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Benefits grid — replaces monotone <p>+<br> bullet lists in product descriptions */
.vp-prose ul.vp-benefits {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 14px;
  padding: 0;
  margin: 14px 0 22px;
}
.vp-prose ul.vp-benefits > li {
  background: white;
  border: 1px solid var(--ink-150);
  border-left: 3px solid var(--teal-600, #1f9189);
  border-radius: 6px;
  padding: 12px 14px 12px 44px;
  position: relative;
  font-size: 14px;
  line-height: 1.5;
  transition: box-shadow .15s ease, transform .15s ease;
}
.vp-prose ul.vp-benefits > li:hover {
  box-shadow: 0 4px 12px rgba(31,145,137,.12);
  transform: translateY(-1px);
}
.vp-prose ul.vp-benefits > li::before {
  content: '';
  position: absolute;
  top: 14px;
  left: 14px;
  width: 20px;
  height: 20px;
  background: #d1f0ec;
  border-radius: 50%;
}
.vp-prose ul.vp-benefits > li::after {
  content: '✓';
  position: absolute;
  top: 12px;
  left: 18.5px;
  font-size: 13px;
  font-weight: 700;
  color: var(--teal-700, #0e756d);
  line-height: 20px;
}
.vp-prose ul.vp-benefits strong {
  display: block;
  color: var(--ink-900, #2d3640);
  font-weight: 700;
  margin-bottom: 3px;
  font-size: 14.5px;
}
.vp-prose ul.vp-benefits span {
  color: #545b61;
  font-size: 13.5px;
}
@media (max-width: 720px) {
  .vp-prose ul.vp-benefits { grid-template-columns: 1fr; }
}

/* FAQ block (rendered by template after description) */
.vp-faq { margin-top: 28px; }
.vp-faq__item {
  border: 1px solid var(--ink-150);
  border-radius: 6px;
  margin: 8px 0;
  background: white;
}
.vp-faq__item[open] { background: #f7faf9; }
.vp-faq__item summary {
  cursor: pointer;
  padding: 13px 18px;
  font-weight: 600;
  font-size: 15px;
  color: var(--ink-900, #2d3640);
  list-style: none;
  position: relative;
  padding-right: 42px;
}
.vp-faq__item summary::-webkit-details-marker { display: none; }
.vp-faq__item summary::after {
  content: '+';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 400;
  color: var(--teal-600, #1f9189);
  line-height: 1;
}
.vp-faq__item[open] summary::after { content: '−'; }
.vp-faq__answer {
  padding: 4px 18px 16px;
  color: #545b61;
  line-height: 1.55;
  font-size: 14.5px;
}

/* Specs tables in description */
.vp-prose table {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed;
  margin: 12px 0 16px; font-size: 14px;
  background: white;
  border: 1px solid var(--ink-150);
  border-radius: 4px;
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.vp-prose td, .vp-prose th {
  padding: 11px 14px;
  border-bottom: 1px solid var(--ink-150);
  vertical-align: top;
  line-height: 1.5;
  text-align: left;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.vp-prose tr:last-child td { border-bottom: 0; }
.vp-prose tr:nth-child(odd) td { background: #f7faf9; }
.vp-prose td:first-child, .vp-prose th:first-child {
  color: #2d3640;
  font-weight: 600;
  width: 38%;
  white-space: normal;
}
.vp-prose td:not(:first-child) {
  text-align: right;
}
.vp-prose td p { margin: 0 !important; text-align: inherit !important; }

/* Static specs table (.vp-specs) — same look */
.vp-specs {
  width: 100%; border-collapse: collapse;
  border: 1px solid var(--ink-150); border-radius: 4px;
  overflow: hidden; background: white;
}
.vp-specs td {
  padding: 11px 16px;
  border-bottom: 1px solid var(--ink-150);
  font-size: 14px; line-height: 1.5;
}
.vp-specs tr:last-child td { border-bottom: 0; }
.vp-specs tr:nth-child(even) td { background: #f7faf9; }
.vp-specs td:first-child {
  color: #2d3640; font-weight: 600;
  width: 42%;
}

/* Specs table */
.vp-specs { width: 100%; border-collapse: collapse; font-size: 14px; }
.vp-specs td { padding: 10px 14px; border-bottom: 1px solid var(--ink-150); }
.vp-specs td:first-child { background: var(--ink-50); color: var(--ink-700); font-weight: 600; width: 38%; }

.vp-related { margin-top: 36px; }
.vp-related .section-bar { margin-bottom: 14px; }

/* Quick buy modal */
.vp-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.vp-modal[hidden] { display: none; }
.vp-modal__backdrop { position: absolute; inset: 0; background: rgba(15,20,25,.55); }
.vp-modal__box {
  position: relative; background: white; border-radius: var(--r-md);
  width: 100%; max-width: 460px; padding: 26px 28px 24px;
  box-shadow: 0 14px 40px rgba(0,0,0,.22);
  animation: vpFadeIn .2s ease-out;
  max-height: 92vh; overflow-y: auto;
}
.vp-modal__box.qb-box { max-width: 480px; }
@keyframes vpFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.vp-modal__close {
  position: absolute; top: 8px; right: 10px;
  width: 32px; height: 32px; border: 0; background: transparent;
  font-size: 24px; line-height: 1; color: var(--ink-500); cursor: pointer;
  border-radius: 6px;
}
.vp-modal__close:hover { background: var(--ink-100); color: var(--ink-900); }
.vp-modal__title {
  font-family: var(--font-display); font-size: 22px; font-weight: 800;
  color: var(--ink-900); margin: 0 0 18px;
}
.vp-modal__input {
  width: 100%; padding: 12px 14px; margin-bottom: 10px;
  border: 1px solid var(--ink-200); border-radius: 6px;
  font-size: 14px; color: var(--ink-900); outline: none;
  transition: border-color .12s;
}
.vp-modal__input:focus { border-color: var(--teal-500); box-shadow: 0 0 0 3px var(--teal-50); }
.vp-modal__submit {
  width: 100%; padding: 13px;
  background: var(--teal-600, #1f9189); color: white; border: 0;
  border-radius: 8px; font-weight: 700; font-size: 14px; text-transform: uppercase;
  letter-spacing: 0.04em; cursor: pointer; margin-top: 8px;
  transition: all .12s;
}
.vp-modal__submit:hover { background: var(--teal-700, #0e756d); }
.vp-modal__success { text-align: center; padding: 26px 0 6px; }
.vp-modal__success svg { margin-bottom: 14px; }
.vp-modal__success p { margin: 0; font-size: 15px; color: var(--ink-700); line-height: 1.5; }

/* === Quick Buy modal extras === */
.qb-product {
  display: flex; gap: 12px; align-items: center;
  padding: 12px; margin-bottom: 16px;
  background: var(--ink-50, #f7faf9); border-radius: 8px;
}
.qb-product__img {
  width: 56px; height: 56px; flex: 0 0 auto;
  border-radius: 6px; background: #fff; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--ink-150);
}
.qb-product__img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.qb-product__info { flex: 1; min-width: 0; }
.qb-product__title { font-weight: 700; font-size: 14px; color: var(--ink-900); line-height: 1.3; margin-bottom: 4px; }
.qb-product__meta { font-size: 12px; color: var(--ink-500); display: flex; gap: 12px; flex-wrap: wrap; }
.qb-product__meta strong { color: var(--ink-700); font-weight: 600; }
.qb-product__stock { color: var(--teal-700, #0e756d); font-weight: 600; }

.qb-section {
  border: 1px solid var(--ink-150);
  border-radius: 8px;
  padding: 12px 14px 14px;
  margin-bottom: 14px;
}
.qb-section__title {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--ink-500); margin-bottom: 8px;
}
.qb-summary {
  list-style: none; margin: 0; padding: 0; font-size: 13.5px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 16px;
  row-gap: 0;
  align-items: baseline;
}
.qb-summary__row { display: contents; }
.qb-summary__row > * {
  padding: 7px 0;
  border-bottom: 1px dashed var(--ink-150);
}
.qb-summary__row:last-child > * { border-bottom: 0; }
.qb-summary__group { color: var(--ink-500); font-size: 12.5px; }
.qb-summary__value { color: var(--ink-900); font-weight: 600; }
.qb-summary__price { color: var(--teal-700, #0e756d); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.qb-summary__row--free .qb-summary__value { font-weight: 600; }
.qb-total {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 10px; padding-top: 10px;
  border-top: 2px solid var(--teal-600, #1f9189);
  font-size: 14px;
}
.qb-total span { color: var(--ink-700); font-weight: 600; }
.qb-total strong {
  font-size: 20px; font-weight: 800; color: var(--teal-700, #0e756d);
  font-variant-numeric: tabular-nums;
}

.qb-fields { display: flex; flex-direction: column; gap: 10px; }
.qb-field { display: block; }
.qb-field__label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--ink-600); margin-bottom: 4px;
}
.qb-field input { margin-bottom: 0 !important; }
.vp-modal__input--err {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}
.qb-error {
  margin-top: 10px;
  padding: 10px 12px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

/* Mobile */
@media (max-width: 768px) {
  .vp-grid { grid-template-columns: 1fr; gap: 18px; margin-bottom: 22px; }
  .vp-titlebar { padding: 14px 16px; margin-bottom: 14px; }
  .vp-titlebar h1 { font-size: 22px; }
  .vp-price { font-size: 28px; }
  .vp-priceline { gap: 8px; padding-bottom: 14px; }
  .vp-meta { align-items: flex-start; flex-direction: row; gap: 10px; flex-wrap: wrap; }
  .vp-actions { grid-template-columns: auto 1fr; }
  .vp-actions .vp-btn:last-child { grid-column: 1 / -1; }
  .vp-tab { padding: 11px 14px; font-size: 12px; }
  .vp-tab-content { padding: 16px; }
  .vp-prose td:first-child { width: auto; }
}

/* ─── Mobile burger + drawer ─── */
.va-burger {
  display: none;
  width: 42px; height: 42px; border-radius: 8px;
  background: var(--ink-900); color: white; border: 0; cursor: pointer;
  align-items: center; justify-content: center; flex: none;
  margin-left: auto;
}
.va-burger svg { width: 22px; height: 22px; }
.va-burger:hover { background: var(--ink-800); }

/* Mobile burger inside searchbar (replaces catselect on mobile) */
.va-mburger { display: none; }

.va-drawer-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  opacity: 0; pointer-events: none; transition: opacity .25s;
  z-index: 998;
}
body.drawer-open .va-drawer-backdrop { opacity: 1; pointer-events: auto; }

.va-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 320px; max-width: 88vw;
  background: white; z-index: 999;
  transform: translateX(100%); transition: transform .28s ease-out;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  display: flex; flex-direction: column;
  box-shadow: -8px 0 24px rgba(0,0,0,.15);
}
.va-drawer.open { transform: translateX(0); }
body.drawer-open { overflow: hidden; }

.va-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-bottom: 1px solid var(--ink-200);
}
.va-drawer-close {
  width: 32px; height: 32px; border-radius: 6px; background: transparent; border: 0;
  color: var(--ink-700); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.va-drawer-close:hover { background: var(--ink-100); }

.va-drawer-section { padding: 10px 0 6px; border-bottom: 1px solid var(--ink-100); }
.va-drawer-section:last-child { border-bottom: 0; padding-bottom: 14px; }
.va-drawer-h {
  font-size: 10.5px; font-weight: 700; color: var(--ink-500);
  text-transform: uppercase; letter-spacing: 0.06em;
  padding: 4px 14px 6px;
}

.va-drawer-nav { display: flex; flex-direction: column; }
.va-drawer-nav a {
  display: flex; align-items: center; gap: 9px;
  padding: 6px 14px;
  font-size: 13px; font-weight: 500;
  color: var(--ink-800); text-decoration: none;
}
.va-drawer-nav a::before {
  content: ''; width: 16px; height: 16px; flex: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f9189' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z'/></svg>") no-repeat center / contain;
}
.va-drawer-nav a::after {
  content: ''; margin-left: auto; flex: none;
  width: 6px; height: 6px;
  border-right: 1.5px solid var(--ink-400);
  border-top: 1.5px solid var(--ink-400);
  transform: rotate(45deg);
}
.va-drawer-nav a:active, .va-drawer-nav a:hover { background: var(--ink-50); color: var(--teal-700); }

/* Contacts inside drawer — compact phone lines */
.va-drawer-section .va-cline {
  padding: 6px 14px; font-size: 13px; gap: 9px; color: var(--ink-800);
}
.va-drawer-section .va-cico { width: 18px; height: 18px; }

.va-drawer-schedule { padding: 0 14px; display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; line-height: 1.4; }
.va-drawer-schedule .va-muted { color: var(--ink-500); font-size: 12px; }

.va-drawer-langs { display: flex; gap: 5px; padding: 0 14px; }
.va-drawer-langs a {
  flex: 1; text-align: center; padding: 7px 0; border-radius: 6px;
  background: var(--ink-100); color: var(--ink-700); font-weight: 600; font-size: 12px;
  text-decoration: none;
}
.va-drawer-langs a.active { background: var(--teal-500); color: white; }

/* ─── Responsive ─── */

/* Tablets / small laptops — hide schedule (map) and Viber/email column */
@media (max-width: 1180px) {
  .va-header-inner { gap: 18px; }
  .va-schedule { display: none; }
  .va-cline { font-size: 13px; }
}
@media (max-width: 980px) {
  .va-phones-col:nth-of-type(4) { display: none; } /* hide viber/email column */
  .va-hero { grid-template-columns: 1fr; }
  .va-hero-side { display: none; }
  .va-features { grid-template-columns: 1fr 1fr; }
  .va-products { grid-template-columns: repeat(3, 1fr); }
  .va-catgrid { grid-template-columns: repeat(3, 1fr); }
  .va-industries__grid { grid-template-columns: repeat(3, 1fr); }
  .va-dws__inner { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
  .va-dws__title { font-size: 22px; }
  .va-dws__media img { max-height: 220px; }
}

/* Mobile (≤768px) — logo + 2 phones (VF/KS), burger in searchbar */
@media (max-width: 768px) {
  .va-topbar { display: none; }
  .va-header { padding: 8px 0; border-bottom: 1px solid var(--ink-150); }
  .va-header-inner { gap: 10px; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
  .va-logo img { height: 28px; }
  .va-logo-tag { display: none; }

  /* Show only first phone column (VF + KS) */
  .va-phones-col { display: none; }
  .va-phones-col:first-of-type {
    display: flex; flex: 0 0 auto; gap: 4px;
  }
  .va-phones-col:first-of-type .va-cline {
    font-size: 11.5px; gap: 6px; white-space: nowrap; font-weight: 600;
  }
  .va-phones-col:first-of-type .va-cico { width: 16px; height: 16px; }
  .va-schedule { display: none; }
  /* Old header burger not used */
  .va-burger { display: none !important; }

  /* Searchbar — burger button + big search */
  .va-searchbar { padding: 8px 0; }
  .va-searchbar-inner { flex-wrap: nowrap; gap: 6px; align-items: center; }
  .va-catselect { display: none; }
  .va-mburger {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 36px;
    background: #0f1419; color: white; border: 0; border-radius: 8px;
    cursor: pointer; flex: 0 0 auto; padding: 0;
  }
  .va-mburger svg { width: 20px; height: 20px; }
  .va-mburger:hover, .va-mburger:active { background: #1a2128; }
  .va-search { height: 36px; padding: 0 10px; flex: 1 1 auto; min-width: 0; gap: 6px; }
  .va-search input { font-size: 13.5px; padding: 0 2px; min-width: 0; }
  .va-search-btn { height: 28px; padding: 0 12px; font-size: 12.5px; }
  .va-iconbtn--account { display: none; }
  .va-langselect { display: none; }

  /* Hero */
  .va-hero { grid-template-columns: 1fr; padding: 24px 14px; gap: 18px; }
  .va-hero-side { display: none; }
  .va-hero-title { font-size: 26px; line-height: 1.1; }
  .va-hero-sub { font-size: 14px; }
  .va-hero-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .va-hero-actions .btn { width: 100%; justify-content: center; }

  /* Sections */
  .va-features { grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px; }
  .va-feat { gap: 10px; }
  .va-feat-t { font-size: 12.5px; }
  .va-feat-s { font-size: 11px; }
  .icon-tile { width: 36px; height: 36px; }
  .icon-tile svg { width: 18px; height: 18px; }
  .va-products { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .va-catgrid { grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px; }
  .section-bar { padding: 8px 12px; font-size: 11.5px; letter-spacing: 0.04em; }
  .va-prod-title { font-size: 12px; min-height: 32px; }
  .va-prod-cur { font-size: 14px; }

  /* Consult banner */
  .va-consultban { padding: 22px 0; }
  .va-consultban-inner { flex-direction: column; text-align: center; gap: 12px; }
  .va-consultban-t { font-size: 17px; }
  .va-consultban-s { font-size: 12.5px; }

  /* Footer */
  .va-footer { padding: 24px 0 0; }
  .va-footer-inner { grid-template-columns: 1fr 1fr; gap: 18px; padding-bottom: 20px; }
  .va-footer-h { font-size: 11.5px; margin-bottom: 2px; }
  .va-footer-col > a, .va-footer-col > span { font-size: 12px; }

  /* Industries + DWS on mobile */
  .va-industries { margin-bottom: 24px; }
  .va-industries__title { font-size: 18px; margin-bottom: 12px; }
  .va-industries__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .va-ind { padding: 14px 8px; }
  .va-ind__icon { width: 40px; height: 40px; }
  .va-ind__icon svg { width: 22px; height: 22px; }
  .va-ind__label { font-size: 12px; }
  .va-dws__inner { padding: 18px; }
  .va-dws__tag { font-size: 10px; }
  .va-dws__title { font-size: 19px; }
  .va-dws__lead { font-size: 13.5px; }

  /* Container padding */
  .va-container { padding: 0 12px; }
}

/* Tiny phones (≤420px) */
@media (max-width: 420px) {
  .va-header-inner { gap: 6px; }
  .va-logo img { height: 30px; }
  .va-burger { width: 38px; height: 38px; }
  .va-burger svg { width: 20px; height: 20px; }
  .va-catselect { padding: 0 20px 0 30px; font-size: 11.5px; }
  .va-search input::placeholder { font-size: 12px; }
  .va-hero-title { font-size: 23px; }
  .va-features { grid-template-columns: 1fr; }
  .va-footer-inner { grid-template-columns: 1fr; }
  .va-catgrid { grid-template-columns: 1fr; }
}
