/* ============================================================
   РафэлГриг общий UI: шрифты, переменные, верхняя промо-полоса,
   шапка и подвал — единые для ВСЕХ типов страниц.
   Подключается в layouts/main.php, разметка — в партиалах
   layouts/_vf-header.php и layouts/_vf-footer.php.
   ============================================================ */

@font-face{
    font-family:'Bebas Neue Cyrillic'; font-style:normal; font-weight:400; font-display:swap;
    src:url('/fonts/bebas.woff2') format('woff2'), url('/fonts/bebas.woff') format('woff'), url('/fonts/bebas.ttf') format('truetype');
}
/* В Bebas Neue Cyrillic глиф "+" сломан (рисуется как "±") — подменяем его глифом из Manrope только для этого символа */
@font-face{
    font-family:'Bebas Neue Cyrillic'; font-style:normal; font-weight:400; font-display:swap;
    src:url('/fonts/manrope-latin.woff2') format('woff2');
    unicode-range:U+002B;
}
@font-face{
    font-family:'Manrope'; font-style:normal; font-weight:100 800; font-display:swap;
    src:url('/fonts/manrope-cyrillic.woff2') format('woff2');
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
    font-family:'Manrope'; font-style:normal; font-weight:100 800; font-display:swap;
    src:url('/fonts/manrope-latin.woff2') format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
    --vf-dark:#2e2e2e; --vf-dark2:#262626; --vf-accent:#272E87; --vf-accent2:#3b44b0;
    --vf-light:#fdfdfd; --vf-bg:#f4f4f4; --vf-muted:#9d9d9d; --vf-border:#e4e4e4;
}

/* статичная шапка вместо прежнего fixed-navbar → убираем компенсирующий отступ */
body{ padding-top:0 !important; }

/* фон всех страниц — белый (по макету) */
body{ background:#fdfdfd !important; }
.main-content{ background:#fdfdfd; }

/* ── ХЛЕБНЫЕ КРОШКИ (единый стиль по макету) ── */
.breadcrumb-wrapper{ max-width:1240px; margin:22px auto 10px; padding:0 20px;
    background:transparent !important; border:0; border-radius:0;
    display:flex; flex-wrap:wrap; align-items:center; gap:0; list-style:none;
    font-family:'Manrope',sans-serif; font-size:14px; line-height:1.2; }
.breadcrumb-wrapper .breadcrumb-item{ display:flex; align-items:center; }
.breadcrumb-wrapper .breadcrumb-item a{ color:#2d2d2d; text-decoration:none; font-weight:400; }
.breadcrumb-wrapper .breadcrumb-item a:hover{ color:var(--vf-accent); }
.breadcrumb-wrapper .breadcrumb-item,
.breadcrumb-wrapper .breadcrumb-item.active{ color:#acacac; font-weight:400; }
.breadcrumb-wrapper .breadcrumb-item + .breadcrumb-item{ padding-left:0; }
.breadcrumb-wrapper .breadcrumb-item + .breadcrumb-item::before{ content:"\203A"; color:#acacac;
    font-size:16px; line-height:1; padding:0 9px; float:none; }

.vf-wrap{ max-width:1240px; margin:0 auto; padding:0 20px; }

/* ── ВЕРХНЯЯ ПРОМО-ПОЛОСА (бегущая строка) ── */
.vf-topbar{ background:var(--vf-dark); color:#cfcfcf; overflow:hidden; }
.vf-topbar .track{ display:flex; width:max-content; white-space:nowrap; padding:7px 0;
    font-family:'Manrope',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:.6px;
    animation:vf-marq 40s linear infinite; }
.vf-topbar .it{ display:flex; align-items:center; color:inherit; text-decoration:none; }
.vf-topbar .it::after{ content:"•"; color:var(--vf-accent); margin:0 26px; }
@keyframes vf-marq{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── ШАПКА (светлая, по макету) ── */
.vf-header{ background:#fdfdfd; padding:14px 0; font-family:'Manrope',sans-serif; }
.vf-header .vf-wrap{ display:flex; align-items:center; gap:16px; padding:10px 22px;
    background:rgba(148,148,148,.10); border:1px solid #ececec; border-radius:10px; }
.vf-logo{ display:flex; align-items:center; flex-shrink:0; }
.vf-logo img{ height:34px; display:block; }
.vf-h-cat{ display:inline-flex; align-items:center; gap:9px; color:#2e2e2e;
    font-weight:500; font-size:14px; padding:11px 18px; border-radius:8px; text-decoration:none; flex-shrink:0; transition:background .15s,color .15s; }
.vf-h-cat:hover{ color:var(--vf-accent); }
.vf-h-nav{ display:flex; align-items:center; gap:clamp(0px,.5vw,8px); margin-right:auto; min-width:0; }
/* отступы пунктов сжимаются вместе с шириной окна: меню из шести пунктов (плюс «Регистрация») иначе выходило за блок шапки */
.vf-h-nav a{ display:inline-flex; align-items:center; color:#2e2e2e; text-decoration:none; font-size:14px;
    white-space:nowrap; padding:11px clamp(8px,.95vw,16px); border-radius:8px; transition:background .15s,color .15s; }
.vf-h-nav a:hover{ color:var(--vf-accent); }
/* Активный пункт меню — подсветка переезжает на текущую страницу (Каталог либо один из пунктов nav).
   Паддинг у всех пунктов одинаковый всегда (даже неактивных) — иначе из-за разной высоты
   боксов и стандартного align-items:stretch текст "съезжает" между пунктами. */
.vf-h-cat.is-active, .vf-h-nav a.is-active{ background:var(--vf-dark); color:#fff; }
.vf-h-cat.is-active:hover, .vf-h-nav a.is-active:hover{ color:#fff; }
.vf-h-icons{ display:flex; gap:19px; font-size:20px; flex-shrink:0; }
.vf-h-icons a{ color:#2e2e2e; text-decoration:none; position:relative; }
.vf-h-icons a:hover{ color:var(--vf-accent); }
.vf-h-icons .cnt{ position:absolute; top:0; right:-9px; background:var(--vf-accent); color:#fff;
    font-size:10px; font-weight:700; min-width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0 3px; }
.vf-h-dl{ display:inline-flex; align-items:center; gap:9px; background:var(--vf-dark); color:#fff;
    font-weight:500; font-size:13px; padding:11px 16px; border-radius:10px; text-decoration:none; white-space:nowrap; flex-shrink:0; }
.vf-h-dl-ic{ width:14px; height:15px; display:block; }
@media(max-width:1380px){ .vf-header .vf-wrap{ gap:10px; } .vf-h-cat{ padding:11px 12px; } .vf-h-nav a{ font-size:13.5px; } .vf-h-icons{ gap:14px; } .vf-h-dl{ padding:11px 12px; } }
@media(max-width:1200px){ .vf-h-nav,.vf-h-dl{ display:none; } }

/* ── ГАМБУРГЕР + МОБИЛЬНОЕ МЕНЮ ── */
.vf-burger{ display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:38px; height:38px; flex-shrink:0; background:none; border:0; padding:0; cursor:pointer; }
.vf-burger span{ display:block; width:22px; height:2px; background:#2e2e2e; border-radius:1px; transition:transform .2s,opacity .2s; }
@media(max-width:1200px){ .vf-burger{ display:flex; } }

/* На узких экранах в шапке остаются только лого, корзина и гамбургер —
   каталог/поиск/аккаунт/избранное переезжают в выезжающее меню. */
@media(max-width:640px){
    .vf-header .vf-wrap{ padding:9px 14px; gap:10px; background:none; border:none; border-radius:0; }
    .vf-logo img{ height:26px; }
    .vf-h-cat{ display:none; }
    .vf-h-icons{ margin-left:auto; gap:16px; }
    .vf-h-icons a:not(.vf-h-cart){ display:none; }
}

.vf-mnav-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:1040;
    opacity:0; visibility:hidden; transition:opacity .25s; }
.vf-mnav-backdrop.is-open{ opacity:1; visibility:visible; }

.vf-mnav{ position:fixed; top:0; right:0; bottom:0; width:300px; max-width:84vw; background:var(--vf-dark);
    z-index:1050; padding:22px 20px 28px; display:flex; flex-direction:column; overflow-y:auto;
    transform:translateX(100%); transition:transform .25s ease; font-family:'Manrope',sans-serif; }
.vf-mnav.is-open{ transform:translateX(0); }
.vf-mnav-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.vf-mnav-head .vf-logo img{ height:28px; filter:brightness(0) invert(1); }
.vf-mnav-close{ background:none; border:0; color:#fdfdfd; font-size:20px; padding:4px; line-height:1; cursor:pointer; }
.vf-mnav-links{ display:flex; flex-direction:column; gap:2px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.12); }
.vf-mnav-links a{ display:flex; align-items:center; gap:9px; color:#fdfdfd; text-decoration:none; font-size:15px;
    padding:12px 10px; border-radius:8px; }
.vf-mnav-links a.is-active{ background:rgba(255,255,255,.1); color:var(--vf-accent2); }
.vf-mnav-icons{ display:flex; flex-direction:column; gap:2px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.vf-mnav-icons a{ display:flex; align-items:center; gap:11px; color:#cfcfcf; text-decoration:none; font-size:14px; padding:9px 10px; }
.vf-mnav-icons a i{ font-size:17px; width:20px; text-align:center; color:var(--vf-accent2); }
.vf-mnav-icons a .cnt{ background:var(--vf-accent); color:#fff; font-size:11px; font-weight:700;
    min-width:18px; height:18px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; padding:0 4px; }
.vf-mnav-dl{ display:flex; align-items:center; justify-content:center; gap:9px; background:var(--vf-accent);
    color:#fff; font-weight:600; font-size:14px; padding:13px 16px; border-radius:10px; text-decoration:none;
    margin-top:18px; }
body.vf-mnav-open{ overflow:hidden; }

/* ── ПОДВАЛ ── */
.vf-footer{ position:relative; width:100%; background:#2d2d2d; overflow:hidden; margin-top:40px;
    font-family:'Manrope',sans-serif; }
.vf-footer .vf-burst2{ position:absolute; left:-60px; top:50%; transform:translateY(-50%); width:560px; opacity:.18; pointer-events:none; z-index:0; }
.vf-foot-inner{ position:relative; z-index:1; max-width:1240px; margin:0 auto; padding:48px 20px 0; }
.vf-foot-top{ display:grid; grid-template-columns:1.1fr 1fr 1.15fr 1fr; gap:30px; }
.vf-foot-logo img{ height:54px; }
.vf-foot-col h4{ font-family:'Bebas Neue Cyrillic','Oswald',sans-serif; font-weight:400; font-size:30px;
    text-transform:uppercase; color:#fdfdfd; letter-spacing:.5px; line-height:1; margin:0 0 18px; }
.vf-foot-link{ display:flex; align-items:center; gap:11px; color:#fdfdfd; font-family:'Manrope',sans-serif;
    font-size:14px; text-decoration:none; padding:6px 0; }
.vf-foot-link svg{ flex:none; color:#272E87; }
.vf-foot-link:hover{ color:#272E87; }
.vf-foot-contacts{ text-align:right; }
.vf-foot-contacts .crow{ display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap;
    white-space:nowrap; gap:10px; color:#fdfdfd; font-family:'Manrope',sans-serif; font-size:14px;
    margin-bottom:16px; text-decoration:none; }
.vf-foot-contacts .crow i{ color:#272E87; font-size:16px; }
.vf-foot-social{ display:flex; justify-content:flex-end; gap:12px; margin-top:4px; }
.vf-foot-social a{ width:38px; height:38px; border-radius:9px; background:#fdfdfd; color:#272E87;
    display:flex; align-items:center; justify-content:center; font-size:18px; text-decoration:none; }
.vf-foot-line{ height:1px; background:#4a4a4a; margin-top:36px; }
.vf-foot-bottom{ display:flex; justify-content:space-between; padding:18px 0 30px; }
.vf-foot-bottom a{ color:#a9a9a9; font-family:'Manrope',sans-serif; font-size:12px; text-decoration:none; }
.vf-foot-bottom a:hover{ color:#fdfdfd; }
@media(max-width:992px){ .vf-foot-top{ grid-template-columns:1fr 1fr; gap:30px; } .vf-foot-contacts{ text-align:left; }
    .vf-foot-contacts .crow, .vf-foot-social{ justify-content:flex-start; } .vf-footer .vf-burst2{ display:none; } }
@media(max-width:560px){ .vf-foot-top{ grid-template-columns:1fr; } .vf-foot-bottom{ flex-direction:column; gap:10px; }
    .vf-foot-logo{ text-align:center; } }

/* ══════════════════════════════════════════════════════
   КАРТОЧКА ТОВАРА (каталог, сетка)
   ══════════════════════════════════════════════════════ */
.vf-prod-card{ position:relative; display:flex; flex-direction:column; width:100%; min-width:0; height:100%; min-height:340px; }
.vf-prod-img-link{ display:flex; align-items:center; justify-content:center; background:#fcfcfc;
    border:1px solid #dedede; height:170px; overflow:hidden; flex-shrink:0;
    text-decoration:none; border-radius:10px; margin-bottom:12px; }
.vf-prod-img-link img{ max-width:90%; max-height:90%; object-fit:contain; }
.vf-prod-body{ padding:0 2px 4px; display:flex; flex-direction:column; flex:1; }
.vf-prod-name{ font-family:'Manrope',sans-serif; font-size:14px; font-weight:400; line-height:19px;
    color:#2e2e2e; text-decoration:none; display:-webkit-box; -webkit-line-clamp:2;
    -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }
.vf-prod-name:hover{ color:var(--vf-accent); }
.vf-prod-price-row{ display:flex; align-items:baseline; gap:5px; font-family:'Manrope',sans-serif;
    font-size:14px; line-height:19px; color:#2e2e2e; margin-top:5px; }
.vf-prod-price-row strong{ font-weight:700; }
.vf-prod-specs{ font-family:'Manrope',sans-serif; font-size:12px; line-height:16px;
    color:rgba(0,0,0,.6); margin-top:5px; flex:1; overflow:hidden; white-space:pre-line;
    display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; }
.vf-prod-actions{ margin-top:auto; padding-top:8px; }
.vf-prod-cart-form{ width:100%; }
.vf-prod-btn{ width:100%; height:39px; border-radius:7px; background:var(--vf-accent); color:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px; font-weight:400; border:none;
    cursor:pointer; transition:background .2s; display:block; }
.vf-prod-btn:hover{ background:var(--vf-accent2); }
.vf-prod-fav{ position:absolute; top:9px; right:9px; background:transparent; border:none;
    cursor:pointer; padding:2px; color:#dedede; font-size:18px; z-index:3; line-height:1;
    transition:color .2s; }
.vf-prod-fav:hover,.vf-prod-fav.is-active{ color:var(--vf-accent); }

/* ── СЕТКА ТОВАРОВ ── */
.vf-prod-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.vf-prod-item{ display:flex; } /* grid cell — карточка заполняет высоту */
@media(max-width:1024px){ .vf-prod-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:768px) { .vf-prod-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px) { .vf-prod-grid{ grid-template-columns:1fr; } }

/* ══════════════════════════════════════════════════════
   СТРОКА СОРТИРОВКИ
   ══════════════════════════════════════════════════════ */
.vf-sort-bar{ display:flex; align-items:center; gap:12px; padding:12px 24px;
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e;
    background:rgba(147,147,147,0.10); border-radius:10px;
    margin-bottom:20px; }
.vf-sort-label{ white-space:nowrap; flex-shrink:0; }
.vf-sort-dd{ height:29px; border:1px solid #e4e4e4; border-radius:5px; background:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e; padding:0 10px;
    cursor:pointer; min-width:160px; outline:none; }
.vf-sort-right{ margin-left:auto; flex-shrink:0; }
.vf-sort-search-wrap{ position:relative; display:flex; align-items:center; }
.vf-sort-search{ height:29px; border:1px solid #e4e4e4; border-radius:5px; background:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e; padding:0 34px 0 10px;
    min-width:179px; outline:none; width:100%; }
.vf-sort-search::placeholder{ color:#acacac; }
.vf-sort-search-icon{ position:absolute; right:10px; top:50%; transform:translateY(-50%);
    background:none; border:none; padding:0; cursor:pointer; color:#acacac; font-size:14px;
    display:flex; align-items:center; pointer-events:none; }

/* ══════════════════════════════════════════════════════
   РАСКЛАДКА КАТАЛОГА: сайдбар + товары
   ══════════════════════════════════════════════════════ */
.vf-cat-layout{ display:flex; gap:20px; align-items:flex-start; }
.vf-cat-sidebar{ flex:0 0 360px; min-width:0; background:#fdfdfd; border:1px solid #e4e4e4;
    border-radius:10px; padding:20px; }
.vf-cat-products{ flex:1; min-width:0; }
@media(max-width:900px){
    .vf-cat-layout{ flex-direction:column; align-items:stretch; }
    .vf-cat-sidebar{ flex:none; width:100%; padding:16px; }
    .vf-cat-products{ width:100%; }
    .vf-filter-title-btn{ display:flex; align-items:center; gap:8px; background:none; border:none; padding:0; cursor:pointer; }
    .vf-filter-icon{ flex:none; display:flex; }
    .vf-filter-chevron{ transition:transform .2s; }
    .vf-filter-title-btn[aria-expanded="true"] .vf-filter-chevron{ transform:rotate(180deg); }
    .vf-filter-panel{ display:none; }
    .vf-filter-panel.is-open{ display:block; }

    .vf-sort-bar{ display:none; }
    aside.vf-cat-sidebar{ border:none; }
    span.vf-filter-title{ font-weight:300; }
    .bi-chevron-down::before{ content:none; }
    a.vf-filter-reset{ display:none; }

    .vf-filter-search-btn{ display:flex; align-items:center; justify-content:center;
        background:none; border:0; padding:0; color:#2e2e2e; font-size:20px; cursor:pointer; }
    .vf-filter-search-btn:hover{ color:var(--vf-accent); }
    .vf-filter-search-panel{ max-height:0; opacity:0; overflow:hidden;
        transition:max-height .3s ease, opacity .25s ease, margin-top .3s ease; margin-top:0; }
    .vf-filter-search-panel.is-open{ max-height:54px; opacity:1; margin-top:12px; }
    .vf-filter-search-panel input{ width:100%; height:38px; border:1px solid #e4e4e4; border-radius:7px;
        padding:0 14px; font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e; outline:none; }
}
@media(min-width:901px){ .vf-filter-search-btn, .vf-filter-search-panel{ display:none; } }
@media(min-width:901px){ .vf-filter-icon{ display:none; }
    .vf-filter-title-btn{ display:flex; align-items:center; gap:8px; background:none; border:none; padding:0; pointer-events:none; }
    .vf-filter-chevron{ display:none; } }
@media(max-width:560px){
    .vf-sort-bar{ flex-wrap:wrap; }
    .vf-sort-right{ margin-left:0; width:100%; }
    .vf-sort-search-wrap{ width:100%; }
    .vf-sort-search{ width:100%; min-width:0; }
}

/* ── САЙДБАР ФИЛЬТРОВ ── */
.vf-filter-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px; }
.vf-filter-title{ font-family:'Bebas Neue Cyrillic','Oswald',sans-serif; font-size:30px;
    font-weight:400; text-transform:uppercase; color:#2e2e2e; line-height:1; }
@media(max-width:900px){
    .vf-filter-head{ align-items:center; margin-bottom:0; }
    .vf-filter-title{ font-family:'Manrope',sans-serif; font-size:15px; font-weight:600;
        text-transform:none; color:#2e2e2e; line-height:1.2; }
}
.vf-filter-reset{ font-family:'Manrope',sans-serif; font-size:14px; color:#989898; text-decoration:none; }
.vf-filter-reset:hover{ color:var(--vf-accent); }
.vf-filter-line{ border:none; border-top:1px solid #e4e4e4; margin:0 0 16px; }
.vf-filter-group{ margin-bottom:14px; }
.vf-filter-ghead{ display:flex; align-items:center; justify-content:space-between;
    font-family:'Manrope',sans-serif; font-size:14px; font-weight:600; color:#2e2e2e; margin-bottom:10px;
    background:none; border:none; padding:0; width:100%; text-align:left; cursor:pointer; }
.vf-chevron{ transition:transform .2s; display:inline-block; }
.vf-acc-toggle[aria-expanded="true"] .vf-chevron{ transform:rotate(180deg); }
.vf-filter-body{ padding-bottom:4px; }
.vf-filter-price{ display:flex; gap:12px; }
.vf-filter-price input{ flex:1; height:30px; border:1px solid #e4e4e4; border-radius:5px;
    background:#fdfdfd; font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e;
    padding:0 10px; min-width:0; outline:none; }
.vf-filter-check{ display:flex; align-items:center; gap:10px; cursor:pointer;
    margin-bottom:8px; font-family:'Manrope',sans-serif; font-size:14px; color:rgba(0,0,0,.6); }
.vf-filter-check input[type=checkbox]{ width:15px; height:15px; appearance:none;
    -webkit-appearance:none; background:#fdfdfd; border:1px solid #ccc; border-radius:2px;
    flex-shrink:0; cursor:pointer; }
.vf-filter-check input[type=checkbox]:checked{ background:var(--vf-accent); border-color:var(--vf-accent); }
/* ВРЕМЕННАЯ ЗАГЛУШКА: кнопка «Показать N товаров» временно тёмная (#2e2e2e).
   Постоянный цвет — фирменный var(--vf-accent), как у бейджей SALE/NEW,
   стрелок и кнопок «В корзину». Вернуть акцент, когда скажет заказчик. */
.vf-filter-submit{ width:100%; height:43px; background:#2e2e2e; color:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px; font-weight:400; border:none;
    border-radius:5px; cursor:pointer; margin-top:6px; transition:background .2s; }
.vf-filter-submit:hover{ background:#444; } /* временно, см. заглушку выше */

/* ── ПОЛЗУНОК ДИАПАЗОНА (цена / мощность) ── */
.vf-price-nums{ display:flex; gap:12px; margin-bottom:14px; }
.vf-price-num{ flex:1; height:30px; border:1px solid #e4e4e4; border-radius:5px; background:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e; padding:0 10px; min-width:0; outline:none; }
.vf-range-wrap{ position:relative; height:24px; margin:4px 0; }
.vf-range-track{ position:absolute; top:50%; left:0; right:0; height:4px;
    transform:translateY(-50%); background:#e4e4e4; border-radius:2px; pointer-events:none; }
.vf-range-fill{ position:absolute; height:100%; background:#2e2e2e; border-radius:2px; }
.vf-range-input{ position:absolute; width:100%; height:24px; top:0; left:0;
    background:transparent; -webkit-appearance:none; appearance:none; pointer-events:none;
    outline:none; margin:0; padding:0; }
.vf-range-input::-webkit-slider-runnable-track{ background:transparent !important; height:4px; border:none; box-shadow:none; }
.vf-range-input::-moz-range-track{ background:transparent !important; height:4px; border:none; box-shadow:none; }
.vf-range-input::-ms-track{ background:transparent; border-color:transparent; color:transparent; height:4px; }
.vf-range-input::-webkit-slider-thumb{ -webkit-appearance:none; width:20px; height:20px;
    border-radius:50%; background:#2e2e2e; cursor:pointer; pointer-events:all;
    border:none; box-shadow:none; margin-top:-8px; }
.vf-range-input::-moz-range-thumb{ width:20px; height:20px; border-radius:50%; background:#2e2e2e;
    cursor:pointer; pointer-events:all; border:none; box-shadow:none; }

/* ── TOAST (добавлено в корзину) ── */
.vf-toast{
    position:fixed; bottom:24px; right:24px; z-index:9999;
    display:flex; align-items:center; gap:12px;
    background:#2e2e2e; color:#fdfdfd;
    font-family:'Manrope',sans-serif; font-size:14px;
    padding:14px 18px; border-radius:10px;
    box-shadow:0 4px 24px rgba(0,0,0,.22);
    transform:translateY(20px); opacity:0;
    transition:transform .25s ease,opacity .25s ease;
    pointer-events:none; max-width:320px;
}
.vf-toast--show{ transform:translateY(0); opacity:1; pointer-events:auto; }
.vf-toast-icon{ font-size:20px; font-weight:700; color:var(--vf-accent); flex-shrink:0; line-height:1; }
.vf-toast--error .vf-toast-icon{ color:#e57373; }
.vf-toast-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.vf-toast-body b{ font-weight:600; font-size:13px; }
.vf-toast-body span{ color:#b0b0b0; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px; }

/* ── ОКНО «НУЖНА АВТОРИЗАЦИЯ» (избранное) ── */
.vf-auth-modal{ position:fixed; inset:0; z-index:10001; display:flex;
    align-items:center; justify-content:center; }
.vf-auth-modal-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.5); }
.vf-auth-modal-box{ position:relative; z-index:1; background:#fff; border-radius:14px;
    padding:32px 28px; max-width:360px; width:calc(100% - 32px);
    box-shadow:0 12px 40px rgba(0,0,0,.25); text-align:center; }
.vf-auth-modal-close{ position:absolute; top:10px; right:14px; background:none; border:none;
    font-size:24px; line-height:1; color:#999; cursor:pointer; }
.vf-auth-modal-close:hover{ color:#2e2e2e; }
.vf-auth-modal-title{ font-family:'Manrope',sans-serif; font-size:18px; font-weight:700;
    color:#2e2e2e; margin:0 0 10px; }
.vf-auth-modal-text{ font-family:'Manrope',sans-serif; font-size:14px; color:#666;
    margin:0 0 22px; line-height:1.4; }
.vf-auth-modal-actions{ display:flex; flex-direction:column; gap:10px; }
.vf-auth-modal-btn{ display:block; height:42px; line-height:42px; border-radius:7px;
    font-family:'Manrope',sans-serif; font-size:14px; font-weight:600; text-decoration:none;
    background:#2e2e2e; color:#fdfdfd; transition:background .2s; }
.vf-auth-modal-btn:hover{ background:#444; color:#fdfdfd; }
.vf-auth-modal-btn--outline{ background:transparent; color:#2e2e2e; border:1px solid #ddd; }
.vf-auth-modal-btn--outline:hover{ background:#f5f5f5; color:#2e2e2e; }

/* ── КНОПКА «ПОКАЗАТЬ ЕЩЁ» ── */
.vf-load-more-wrap{ text-align:center; padding:28px 0; }
.btn-vf-load-more{ display:inline-flex; align-items:center; gap:8px; height:43px;
    padding:0 32px; background:#2e2e2e; color:#fdfdfd; font-family:'Manrope',sans-serif;
    font-size:14px; font-weight:400; border-radius:7px; text-decoration:none; transition:background .2s; }
.btn-vf-load-more:hover{ background:#444; color:#fdfdfd; }
.btn-vf-load-more i{ color:var(--vf-accent, #272E87); font-size:15px; line-height:1; }

/* ══════════════════════════════════════════════════════
   СТЕППЕР (глобальный, используется в карточке товара
   и в корзине)
   ══════════════════════════════════════════════════════ */
.vf-qty{
    display:flex; align-items:stretch;
    width:80px; height:29px; flex-shrink:0;
    border:1px solid #e4e4e4; border-radius:7px; overflow:hidden;
    background:#fff;
}
.vf-qty-btn{
    flex:1; border:none; background:transparent;
    cursor:pointer; font-family:'Manrope',sans-serif; font-size:14px; font-weight:400;
    color:#2e2e2e; display:flex; align-items:center; justify-content:center;
}
.vf-qty-btn:hover{ background:#f0f0f0; }
.vf-qty-sep{ width:1px; align-self:stretch; background:#e4e4e4; flex-shrink:0; }
.vf-qty-num{
    flex:1; text-align:center;
    font-family:'Manrope',sans-serif; font-size:12px; font-weight:400; color:#2e2e2e;
    display:flex; align-items:center; justify-content:center;
}
.vf-qty-input{
    flex:1; width:100%; height:100%; min-width:0;
    border:none; background:transparent; outline:none; padding:0; margin:0;
    text-align:center; -moz-appearance:textfield;
    font-family:'Manrope',sans-serif; font-size:12px; font-weight:400; color:#2e2e2e;
}
.vf-qty-input::-webkit-outer-spin-button,
.vf-qty-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

/* ══════════════════════════════════════════════════════
   КОРЗИНА
   ══════════════════════════════════════════════════════ */
.vf-cart-wrap{ max-width:1240px; margin:0 auto; padding:24px 20px 56px; }

/* пустая корзина */
.vf-cart-empty{ text-align:center; padding:80px 20px; }
.vf-cart-empty-icon{ font-size:80px; color:#e4e4e4; display:block; margin-bottom:24px; line-height:1; }
.vf-cart-empty h2{ font-family:'Bebas Neue Cyrillic',sans-serif; font-size:44px; font-weight:400;
    color:#2e2e2e; text-transform:uppercase; margin:0 0 12px; }
.vf-cart-empty p{ font-family:'Manrope',sans-serif; font-size:15px; color:#9d9d9d; margin:0 0 28px; }
.vf-btn-dark{ display:inline-flex; align-items:center; height:43px; padding:0 32px;
    background:#2e2e2e; color:#fdfdfd; font-family:'Manrope',sans-serif; font-size:14px;
    font-weight:400; border-radius:7px; text-decoration:none; transition:background .2s; }
.vf-btn-dark:hover{ background:#444; color:#fdfdfd; }

/* заголовок */
.vf-cart-h{ font-family:'Bebas Neue Cyrillic',sans-serif; font-size:44px; font-weight:400;
    color:#2e2e2e; text-transform:uppercase; line-height:1; margin:0 0 20px; }

/* layout: список + боковая панель */
.vf-cart-layout{ display:grid; grid-template-columns:1fr 280px; gap:32px; align-items:start; }

/* ─ таблица товаров ─ */
.vf-cart-items{
    min-width:0; background:none !important;
    border:1px solid #e4e4e4; border-radius:12px;
    padding:20px 24px;
}

/* заголовки колонок */
.vf-cart-thead{
    display:grid;
    grid-template-columns: 150px 1fr 90px 80px 110px 90px 36px;
    gap:0 16px;
    padding:0 0 12px;
    border-bottom:2px solid #e4e4e4;
}
.vf-cart-th{
    font-family:'Manrope',sans-serif; font-size:13px; color:#9d9d9d; font-weight:400;
}
.vf-cart-th--center{ text-align:center; }

/* строка товара */
.vf-cart-row{
    display:grid;
    grid-template-columns: 150px 1fr 90px 80px 110px 90px 36px;
    gap:0 16px;
    align-items:start;
    padding:16px 0;
    border-bottom:1px solid #e4e4e4;
}
.vf-cart-row-img{
    display:flex; align-items:center; justify-content:center;
    width:150px; height:110px; padding:10px;
    overflow:hidden; flex-shrink:0; background:#d9d9d9;
    border:1px solid #dedede;
    text-decoration:none; border-radius:8px;
}
.vf-cart-row-img img{ max-width:100%; max-height:100%; object-fit:contain; }
.vf-cart-row-info{ min-width:0; }
.vf-cart-row-name{
    font-family:'Manrope',sans-serif; font-size:14px; font-weight:700;
    color:#2e2e2e; text-decoration:none; line-height:1.4;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.vf-cart-row-name:hover{ color:var(--vf-accent); }
.vf-cart-row-specs{
    margin-top:6px; font-family:'Manrope',sans-serif; font-size:12px; color:#9d9d9d; line-height:1.6;
}
.vf-cart-row-specs span{ color:#666; }

/* ячейки данных */
.vf-cart-td{
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e;
    text-align:center;
}
.vf-cart-row-art{ color:#9d9d9d; font-size:13px; }
.vf-cart-row-price{ font-weight:400; }
.vf-cart-row-qty{ display:flex; flex-direction:column; align-items:center; gap:4px; }
.vf-cart-row-total{ font-weight:700; white-space:nowrap; }
.vf-cart-td--del{ display:flex; align-items:center; justify-content:center; }

/* степпер в корзине — светлый (белый фон, тёмный текст) */
.vf-cart-stepper-form{ display:contents; }
.vf-cart-del-form{ display:contents; }
.vf-cart-row-qty .vf-qty{ width:100px; height:33px; }
.vf-cart-upd{ display:none; background:none; border:none; color:#c0c0c0; cursor:pointer; font-size:13px;
    padding:2px; line-height:1; transition:color .2s; }
.vf-cart-upd:hover{ color:#2e2e2e; }

/* кнопка удалить */
.vf-cart-del-btn{
    background:none; border:none; cursor:pointer; font-size:22px; font-weight:300;
    color:#c0c0c0; line-height:1; padding:0; transition:color .2s;
}
.vf-cart-del-btn:hover{ color:#e53935; }

/* уведомления (скидка, опт) */
.vf-cart-notice{ display:flex; align-items:center; gap:10px; padding:12px 16px;
    border-radius:8px; font-family:'Manrope',sans-serif; font-size:13px; margin-top:12px; }
.vf-cart-notice--ok{ background:rgba(76,175,80,.08); color:#2e7d32; }
.vf-cart-notice--info{ background:rgba(39,46,135,.08); color:#8a6000; }
.vf-cart-notice i{ flex-shrink:0; }

/* ─ правая панель: Ваш заказ ─ */
.vf-cart-summary{ position:sticky; top:20px; }
.vf-cart-sum-card{
    background:none !important; border:1px solid #e4e4e4; border-radius:12px; padding:24px 22px;
}
.vf-cart-sum-h{
    font-family:'Bebas Neue Cyrillic',sans-serif; font-size:28px; font-weight:400;
    color:#2e2e2e; text-transform:uppercase; letter-spacing:.04em; margin:0 0 16px;
}
.vf-cart-sum-line{
    display:flex; justify-content:space-between; align-items:center;
    font-family:'Manrope',sans-serif; font-size:14px; color:#9d9d9d;
    margin-bottom:10px;
}
.vf-cart-sum-line span:last-child{ color:#2e2e2e; font-weight:500; }
.vf-cart-sum-line--discount span:last-child{ color:#e53935; }
.vf-cart-sum-delivery{ color:#9d9d9d !important; font-weight:400 !important; font-style:italic; }
.vf-cart-sum-sep{ border:none; border-top:1px solid #e4e4e4; margin:14px 0; }
.vf-cart-sum-total-row{
    display:flex; justify-content:space-between; align-items:center;
    font-family:'Manrope',sans-serif; margin-bottom:18px;
}
.vf-cart-sum-total-lbl{ font-size:15px; color:#2e2e2e; font-weight:500; }
.vf-cart-grand{ font-size:24px; font-weight:700; color:#2e2e2e; }

/* кнопка "Оформить заказ" — тот же .vf-btn, что и на главной */
.vf-cart-sum-card .vf-btn{ width:100%; justify-content:flex-start; }

@media(max-width:1060px){
    .vf-cart-layout{ grid-template-columns:1fr 260px; gap:20px; }
    .vf-cart-thead,.vf-cart-row{ grid-template-columns:110px 1fr 80px 80px 100px 80px 30px; }
    .vf-cart-row-img{ width:110px; height:82px; }
}
@media(max-width:860px){
    .vf-cart-layout{ grid-template-columns:1fr; }
    .vf-cart-summary{ position:static; }
    .vf-cart-thead{ display:none; }
    .vf-cart-row{ position:relative; grid-template-columns:96px 1fr auto; grid-template-rows:auto auto auto auto;
        row-gap:8px; column-gap:12px; padding:16px 34px 16px 0; }
    .vf-cart-row-img{ width:96px; height:74px; grid-row:1/5; }
    .vf-cart-row-info{ grid-column:2/4; grid-row:1; }
    .vf-cart-row-art{ display:block; grid-column:2/4; grid-row:2; text-align:left; }
    .vf-cart-row-art::before{ content:"Артикул: "; }
    .vf-cart-row-price{ display:block; grid-column:3; grid-row:3; text-align:right; align-self:center; color:#2e2e2e; }
    .vf-cart-row-qty{ grid-column:2; grid-row:3; align-items:flex-start; }
    .vf-cart-row-total{ grid-column:2/4; grid-row:4; text-align:right; }
    .vf-cart-row-total::before{ content:"Итого: "; color:#9d9d9d; font-weight:400; }
    .vf-cart-td--del{ position:absolute; top:14px; right:0; }
}

/* ══════════════════════════════════════════════════════
   ОФОРМЛЕНИЕ ЗАКАЗА (inline на странице корзины)
   ══════════════════════════════════════════════════════ */
.vf-co-section{ margin-top:52px; padding-top:44px; border-top:none; }
.vf-co-h{
    font-family:'Bebas Neue Cyrillic',sans-serif; font-size:44px; font-weight:400;
    color:#2e2e2e; text-transform:uppercase; line-height:1; margin:0 0 24px;
}
.vf-co-card{
    background:none !important; border:1px solid #e4e4e4; border-radius:12px; padding:32px;
}
/* двухколоночная сетка внутри формы */
.vf-co-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:24px 40px;
}
.vf-co-col{ min-width:0; }
.vf-co-sec-h{
    font-family:'Manrope',sans-serif; font-size:15px; font-weight:600;
    color:#2e2e2e; margin:0 0 14px;
}
/* разделитель между блоками */
.vf-co-sep{ border:none; border-top:1px solid #e4e4e4; margin:24px 0; }

/* поле формы: обёртка */
.vf-co-field{ margin-bottom:10px; }
.vf-co-error{ font-family:'Manrope',sans-serif; font-size:12px; color:#e53935; margin-top:3px; }

/* инпуты: светло-серый фон, скруглённые, без лейблов */
.vf-co-input, .vf-co-select{
    display:block; width:100%; height:44px; padding:0 14px;
    background:#f5f5f5; border:1px solid transparent; border-radius:8px;
    font-family:'Manrope',sans-serif; font-size:14px; color:#2e2e2e;
    outline:none; transition:border-color .15s, background .15s;
    -webkit-appearance:none; appearance:none;
}
.vf-co-input::placeholder{ color:#b0b0b0; }
.vf-co-input:focus{ background:#fff; border-color:#c8c8c8; }
.vf-co-input.has-error{ border-color:#e53935; background:#fff; }
.vf-co-select{ cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239d9d9d' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
.vf-co-select:focus{ background-color:#fff; border-color:#c8c8c8; }
.vf-co-select option[value=""]{ color:#b0b0b0; }

/* строка из 2 полей рядом */
.vf-co-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* кнопка отправки */
.vf-co-submit-wrap{ margin-top:24px; display:flex; justify-content:flex-start; }
.vf-co-submit-wrap .vf-btn{ padding:10px 40px; }

@media(max-width:860px){
    .vf-co-grid{ grid-template-columns:1fr; gap:0; }
    .vf-co-col + .vf-co-col{ margin-top:20px; }
    .vf-co-card{ padding:20px 16px; }
    .vf-co-submit-wrap .vf-btn{ width:100%; justify-content:flex-start; }
}

/* ============================================================
   ОБЩИЕ КОМПОНЕНТЫ "vf-*" — раньше копировались инлайн-стилем
   в каждый шаблон отдельно (site/index, cart/index, about,
   contact, delivery, wholesale, account/_promo) и расходились
   между собой при правках. Теперь единая точка правки для всех.
   ============================================================ */
.vf{ font-family:'Manrope',system-ui,sans-serif; color:var(--vf-dark); background:#fdfdfd; }
.vf *{ box-sizing:border-box; }
.vf h1,.vf h2,.vf h3,.vf .vf-display{
    font-family:'Bebas Neue Cyrillic','Bebas Neue','Oswald',sans-serif;
    font-weight:500; letter-spacing:.5px; text-transform:uppercase; line-height:.98; margin:0;
}
.vf-accent{ color:var(--vf-accent); }
.vf-btn{ display:inline-flex; align-items:center; gap:10px; border:0; cursor:pointer;
    font-family:'Manrope'; font-weight:400; font-size:14px; border-radius:10px; padding:10px 22px;
    background:var(--vf-dark); color:#fff; text-decoration:none; transition:.2s; }
.vf-btn:hover{ background:#000; color:#fff; }
.vf-btn-accent{ background:var(--vf-accent); color:#1c1c1c; }
.vf-btn-accent:hover{ background:var(--vf-accent2); color:#1c1c1c; }
.vf-btn-light{ background:#fff; color:var(--vf-dark); border:1px solid var(--vf-border); }
.vf-arrow{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
    background:var(--vf-accent); color:#fdfdfd; border-radius:9px; flex-shrink:0; }
.vf-arrow-w{ display:inline-flex; align-items:center; justify-content:center; width:33px; height:33px;
    background:#fdfdfd; color:#2e2e2e; border-radius:7px; flex-shrink:0; margin-left:auto; }
.vf-sec{ padding:56px 0; }
.vf .vf-sec-title{ font-size:50px; margin-bottom:32px; }
@media(max-width:992px){ .vf .vf-sec-title{ font-size:34px; } }
/* Заголовок "Популярные товары": до 400px — фиксированные 2rem, дальше растёт
   пропорционально ширине экрана (8vw = тот же масштаб, что даёт 2rem на 400px),
   до совпадения с десктопным размером 50px. */
.vf .vf-popular-title{ font-size:clamp(2rem, 8vw, 50px); }

/* ── ПОПУЛЯРНЫЕ ТОВАРЫ / НОВИНКИ (слайдер) ── */
.vf-prod-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.vf-nav-btns{ display:flex; gap:10px; }
.vf-nav-btns .vf-arrow{ width:47px; height:47px; border:0; border-radius:10px; font-size:18px; background:var(--vf-dark); color:#fff; cursor:pointer; padding:0; transition:background .2s; }
.vf-nav-btns .vf-arrow:hover{ background:#000; }
.vf-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:var(--vf-card,170px); gap:20px;
    overflow-x:auto; padding-bottom:2px; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scrollbar-width:none; -ms-overflow-style:none; }
.vf-slider::-webkit-scrollbar{ display:none; width:0; height:0; }
.vf-prod{ display:flex; flex-direction:column; scroll-snap-align:start; }
.vf-prod-img{ position:relative; width:100%; aspect-ratio:1/1; background:#fcfcfc; border:1px solid #dedede; border-radius:10px;
    display:flex; align-items:center; justify-content:center; overflow:hidden; margin-bottom:15px; }
/* Высота контейнера задана через aspect-ratio, поэтому ЛЮБОЙ процент по высоте
   у обычного потомка (и height, и max-height) браузер разрешить не может —
   правило игнорируется, и высокие миниатюры (200×264) вылезали за рамку.
   Абсолютное позиционирование эту проблему снимает: у absolute-элемента
   проценты считаются от уже вычисленного размера контейнера. */
.vf-prod-img img{ position:absolute; inset:3%; width:94%; height:94%; object-fit:contain; }
.vf-img-scrub{ position:relative; }
.vf-img-dashes{ position:absolute; left:0; right:0; bottom:8px; z-index:3;
    display:flex; align-items:center; justify-content:center; gap:4px; pointer-events:none; }
.vf-img-dash{ width:14px; height:3px; border-radius:2px; background:rgba(46,46,46,.25); transition:background .15s; }
.vf-img-dash.is-active{ background:var(--vf-accent); }
.vf-badge{ position:absolute; left:10px; top:10px; z-index:3; background:var(--vf-accent); color:#fdfdfd;
    font-size:12px; font-weight:600; padding:4px 11px; border-radius:7px; text-transform:uppercase; }
.vf-fav{ position:absolute; right:12px; top:12px; width:26px; height:26px; z-index:2;
    display:flex; align-items:center; justify-content:center; color:#c4c4c4; font-size:17px;
    text-decoration:none; cursor:pointer; transition:color .15s, transform .1s; }
.vf-fav:hover{ color:#9a9a9a; transform:scale(1.08); }
.vf-fav.is-active{ color:var(--vf-accent); }
.vf .vf-prod-name{ font-family:'Manrope',sans-serif; font-weight:400; font-size:14px; color:#2e2e2e; margin:0 0 10px;
    line-height:1.3; text-transform:none; letter-spacing:0;
    min-height:2.6em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vf .vf-prod-name a{ font-family:inherit; font-weight:inherit; text-transform:none; letter-spacing:0; color:inherit; text-decoration:none; }
.vf-spec{ font-size:12px; color:#000; line-height:1.45; margin-bottom:10px; }
.vf-spec b{ font-weight:600; }
.vf-price-row{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:15px; margin-top:auto; }
.vf-price-row .lbl{ color:#2e2e2e; font-size:14px; }
.vf-price{ font-size:14px; font-weight:700; color:#2e2e2e; }
.vf-prod .vf-btn{ width:100%; justify-content:center; padding:10px; border-radius:7px; font-size:14px; }

/* ── ОПТОВИКАМ + ФОРМА ВОПРОСОВ (тёмный блок) ── */
.vf-block-dark{ background:#2d2d2d; border-radius:20px; padding:44px; position:relative; overflow:hidden; color:#fff; }
.vf-block-dark .vf-burst{ position:absolute; left:-2%; top:50%; transform:translateY(-50%); width:62%; opacity:.2; pointer-events:none; }
.vf-wq{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; position:relative; z-index:2; align-items:stretch; }
.vf-wq-left{ display:flex; flex-direction:column; align-items:flex-start; }
.vf-wq-left .vf-bottom{ margin-top:auto; }
.vf-wq-left .vf-btn{ align-self:flex-start; }
.vf-wq h2{ font-size:50px; color:#fdfdfd; margin-bottom:14px; }
.vf-wq p{ color:#cfcfcf; max-width:410px; font-size:14px; line-height:19px; margin-bottom:22px; }
.vf-phone{ font-family:'Bebas Neue Cyrillic','Oswald',sans-serif; font-size:50px; line-height:26px; color:#fdfdfd; }
.vf-callnote{ color:#fdfdfd; font-family:'Manrope'; font-size:14px; line-height:19px; margin-bottom:18px; }
.vf-field{ width:100%; background:#fdfdfd; border:0; border-radius:10px; padding:15px 18px;
    font-family:'Manrope'; font-size:15px; margin-bottom:14px; }
textarea.vf-field{ min-height:110px; resize:vertical; }
.vf-check{ display:flex; align-items:center; gap:10px; color:#ffffff; font-size:12px; margin-bottom:16px; }
.vf-check input{ appearance:none; -webkit-appearance:none; width:16px; height:16px; flex:none;
    border:1.5px solid #fdfdfd; border-radius:4px; background:transparent; cursor:pointer; position:relative; }
.vf-check input:checked{ background:var(--vf-accent); border-color:var(--vf-accent); }
.vf-check input:checked::after{ content:""; position:absolute; left:4px; top:1px; width:4px; height:8px;
    border:solid #2d2d2d; border-width:0 2px 2px 0; transform:rotate(45deg); }
@media(max-width:992px){ .vf-wq{ grid-template-columns:1fr; gap:30px; } .vf-block-dark .vf-burst{ display:none; }
    .vf-wq-left .vf-bottom{ margin-top:24px; } }
@media(max-width:560px){ .vf-block-dark{ padding:30px 22px; } .vf-wq h2{ font-size:38px; } .vf-phone{ font-size:30px; line-height:1.1; white-space:nowrap; } }

/* ── ПОЧЕМУ ВЫБИРАЮТ НАС (блок доверия) ── */
.vf-why-wrap{ margin:0 auto; }
.vf-why{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.vf-why-card{ position:relative; aspect-ratio:1 / 1; background:#d9d9d9; border:1px solid #dedede;
    border-radius:15px; overflow:hidden; }
.vf-why-bg{ position:absolute; aspect-ratio:4 / 3; height:auto; object-fit:cover; z-index:0; }
.vf-why-num{ position:absolute; left:20px; top:10px; z-index:2; font-family:'Bebas Neue Cyrillic','Oswald',sans-serif;
    font-weight:400; font-size:100px; line-height:94px; color:#272E87; }
.vf-why-txt{ position:absolute; left:20px; right:20px; bottom:20px; z-index:2; }
.vf-why-card .t{ font-family:'Manrope',sans-serif; font-weight:700; font-size:20px; line-height:1.05;
    text-transform:none; letter-spacing:0; color:#2d2d2d; margin:0 0 7px; }
.vf-why-card .s{ font-family:'Manrope',sans-serif; font-weight:400; font-size:12px; line-height:1.35; color:#2d2d2d; }
@media(max-width:992px){
    .vf-why{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
    .vf-why-card{ aspect-ratio:4 / 3; background-size:cover; background-repeat:no-repeat; }
    .vf-why-card:nth-child(1){ background-position:50% 70%; }
    .vf-why-card:nth-child(2){ background-position:90% 80%; }
    .vf-why-card:nth-child(3){ background-position:85% 75%; }
    .vf-why-card:nth-child(4){ background-position:85% 45%; }
    .vf-why-bg{ display:none; }
    .vf-why-card::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; }
    .vf-why-num{ font-size:100px; line-height:1; }
    .vf-why-card .t, .vf-why-card .s{ color:#2E2E2E; }
}


/* Кнопки «В корзину» в блоках товаров (популярные, похожие, слайдеры).
   Класс .vf-btn общий для всего сайта, поэтому цепляемся за .vf-cart-btn —
   иначе перекрасились бы кнопки форм и шапки. */
.vf-btn.vf-cart-btn{ background:var(--vf-accent); color:#fdfdfd; }
.vf-btn.vf-cart-btn:hover{ background:var(--vf-accent2); color:#fdfdfd; }

/* ── Защита контента ──────────────────────────────────────────────────
   ВРЕМЕННО ОТКЛЮЧЕНО по просьбе заказчика: выделение и копирование текста
   снова работают на всём сайте. Чтобы вернуть запрет — раскомментировать
   блок ниже. Исключения (поля ввода, цены, контакты) остаются на месте
   и заработают автоматически. */
/*
body, .vf {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
*/

/* Поля ввода обязаны оставаться рабочими: иначе не заполнить заказ */
input, textarea, select,
[contenteditable="true"],
.ql-editor {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

/* Данные, которые копируют сами покупатели */
.vf-price, .vf-price-panel, .vf-price-row,
.vf-spec-row b,
[data-copyable],
a[href^="tel:"], a[href^="mailto:"],
.vf-ct-card-value, .vf-foot-contacts .crow {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

/* Фото: нельзя перетащить в папку или сохранить долгим тапом */
.vf-prod-img img,
.vf-pv-main img,
.vf-pv-thumbs img,
.vf-lb-cnt img,
.vf-slider img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
    -webkit-touch-callout: none;
}

/* переключатель языка RU | EN */
.vf-lang{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; letter-spacing:.3px; margin-right:6px; }
.vf-lang a{ color:#9a9a9a; text-decoration:none; }
.vf-lang a.is-on{ color:var(--vf-dark); }
.vf-lang a:hover{ color:var(--vf-accent); }
.vf-lang span{ color:#cfcfcf; font-weight:400; }

.vf-foot-bottom .vf-lang{ margin-right:18px; font-size:14px; }
.vf-foot-bottom .vf-lang a{ color:rgba(255,255,255,.6); }
.vf-foot-bottom .vf-lang a.is-on{ color:#fff; }
.vf-foot-bottom .vf-lang span{ color:rgba(255,255,255,.3); }
