/*
 * Vendra Parts marketplace redesign
 * The public uploads tree and product image URLs are intentionally untouched.
 * This file only changes presentation and responsive behaviour.
 */
:root {
    --vp-navy: #071326;
    --vp-navy-2: #0c1b34;
    --vp-navy-3: #142544;
    --vp-purple: #6246ea;
    --vp-purple-2: #7c4dff;
    --vp-purple-soft: #eeeaff;
    --vp-blue: #315bea;
    --vp-white: #ffffff;
    --vp-bg: #f4f6fb;
    --vp-surface: #ffffff;
    --vp-surface-soft: #f8f9fd;
    --vp-text: #111a2d;
    --vp-muted: #687086;
    --vp-line: #e4e8f1;
    --vp-success: #159566;
    --vp-danger: #d93f55;
    --vp-warning: #f5a000;
    --vp-shadow: 0 24px 70px rgba(16, 30, 59, .10);
    --vp-shadow-soft: 0 12px 34px rgba(16, 30, 59, .08);
    --vp-radius-xl: 28px;
    --vp-radius-lg: 21px;
    --vp-radius-md: 15px;
    --vp-header-width: 1500px;
    --bg: var(--vp-bg);
    --bg-soft: var(--vp-surface-soft);
    --card: rgba(255,255,255,.94);
    --card-strong: var(--vp-white);
    --text: var(--vp-text);
    --muted: var(--vp-muted);
    --line: var(--vp-line);
    --accent: var(--vp-purple);
    --accent-strong: #4e35d4;
    --accent-soft: rgba(98, 70, 234, .12);
    --shadow: var(--vp-shadow);
}

html[data-theme="dark"] {
    --vp-bg: #080f1d;
    --vp-surface: #101b2d;
    --vp-surface-soft: #132139;
    --vp-text: #f5f7fc;
    --vp-muted: #a9b2c5;
    --vp-line: rgba(255, 255, 255, .10);
    --vp-purple-soft: rgba(124, 77, 255, .18);
    --vp-shadow: 0 28px 85px rgba(0, 0, 0, .42);
    --vp-shadow-soft: 0 14px 40px rgba(0, 0, 0, .30);
    --bg: var(--vp-bg);
    --bg-soft: var(--vp-surface-soft);
    --card: rgba(16, 27, 45, .94);
    --card-strong: var(--vp-surface);
    --text: var(--vp-text);
    --muted: var(--vp-muted);
    --line: var(--vp-line);
}

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

body {
    margin: 0 !important;
    padding-top: 0 !important;
    color: var(--vp-text) !important;
    background:
        radial-gradient(circle at 8% 2%, rgba(98, 70, 234, .08), transparent 26rem),
        radial-gradient(circle at 94% 12%, rgba(49, 91, 234, .06), transparent 32rem),
        var(--vp-bg) !important;
    font-family: 'Montserrat', Inter, Arial, sans-serif !important;
}

body::before,
body::after {
    pointer-events: none;
}

a { text-underline-offset: 3px; }
button, input, select, textarea { font-family: inherit; }
img { max-width: 100%; }

.site-shell.vendra-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    min-width: 0 !important;
}

/* Header */
.vendra-header-wrap.vp-header-wrap {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    z-index: 1600 !important;
    width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    overflow: visible !important;
    color: #fff !important;
    background: var(--vp-navy) !important;
    border: 0 !important;
    box-shadow: 0 12px 32px rgba(5, 15, 32, .20) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.vendra-header-wrap.vp-header-wrap.hdr--hidden {
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.vp-header-container {
    width: min(var(--vp-header-width), calc(100% - 44px));
    margin-inline: auto;
}

.vp-topbar {
    min-height: 42px;
    color: rgba(255,255,255,.78);
    background: #061021;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.vp-topbar-inner {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.vp-top-links,
.vp-top-actions {
    display: flex;
    align-items: center;
    gap: clamp(14px, 2vw, 30px);
    min-width: 0;
}

.vp-top-link,
.vp-top-icon-link {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: inherit !important;
    text-decoration: none;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
    transition: color .2s ease;
}

.vp-top-link:hover,
.vp-top-icon-link:hover { color: #fff !important; }
.vp-top-link svg,
.vp-top-icon-link svg { width: 17px; height: 17px; flex: 0 0 auto; }

.vp-topbar .locale-wrap { position: relative; }
.vp-topbar .locale-trigger.vp-top-trigger {
    min-height: 32px !important;
    width: auto !important;
    padding: 0 3px !important;
    gap: 5px !important;
    color: rgba(255,255,255,.85) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-size: 11px !important;
}
.vp-topbar .locale-trigger svg.locale-caret { width: 13px; height: 13px; }

.vendra-header.vp-mainbar {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 92px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 55% -60%, rgba(98, 70, 234, .28), transparent 40%),
        linear-gradient(135deg, var(--vp-navy), #09172c 62%, #101b35) !important;
    border: 0 !important;
    overflow: visible !important;
}

.vp-mainbar-inner {
    min-height: 92px;
    display: grid;
    grid-template-columns: auto auto minmax(280px, 1fr) auto auto auto;
    align-items: center;
    gap: 16px;
}

.vendra-brand.vp-brand {
    width: auto !important;
    min-width: 176px !important;
    max-width: none !important;
    display: inline-flex !important;
    align-items: center;
    gap: 11px;
    color: #fff !important;
    text-decoration: none;
    overflow: visible !important;
}

.vp-brand-mark.brand-vmark {
    width: 56px !important;
    height: 48px !important;
    flex: 0 0 56px !important;
    display: grid !important;
    place-items: center;
    padding: 0 !important;
    color: #765cff !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}
.vp-brand-mark svg { width: 54px; height: 44px; overflow: visible; }
.vendra-brand.vp-brand .brand-copy { display: block !important; }
.vendra-brand.vp-brand .brand-copy strong {
    color: #fff !important;
    font-size: 22px !important;
    line-height: .94 !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
}
.vendra-brand.vp-brand .brand-copy small {
    margin-top: 5px !important;
    color: #765cff !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .09em !important;
}

.vp-catalog-button,
.vp-vehicle-button,
.vp-cart-button,
.vp-mobile-menu-button {
    border: 0;
    cursor: pointer;
    font: inherit;
}

.vp-catalog-button {
    min-height: 56px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, #5d42e6, #7650f1 60%, #4c5ff3);
    box-shadow: 0 12px 30px rgba(81, 61, 218, .32);
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
    transition: transform .2s ease, filter .2s ease;
}
.vp-catalog-button:hover { transform: translateY(-2px); filter: brightness(1.08); }
.vp-catalog-button svg { width: 23px; height: 23px; }

.vendra-finder.vp-search-form {
    position: relative !important;
    width: 100% !important;
    height: 56px !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(130px, 180px) 62px !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow: visible !important;
    color: var(--vp-text) !important;
    background: #fff !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.13) !important;
}
.vendra-finder.vp-search-form:focus-within {
    border-color: #8b72ff !important;
    box-shadow: 0 0 0 4px rgba(116, 88, 255, .18), 0 10px 28px rgba(0,0,0,.15) !important;
}
.vp-search-input.finder-query {
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    padding: 0 18px !important;
    color: #1a2233 !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
}
.vp-search-input::placeholder { color: #9299aa; opacity: 1; }
.vp-search-category {
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: 0 34px 0 15px;
    color: #2b3345;
    background: #fff;
    border: 0;
    border-left: 1px solid #e7e9f0;
    outline: 0;
    font-size: 11px;
    font-weight: 750;
}
.vp-search-submit.finder-submit {
    width: 62px !important;
    min-width: 62px !important;
    height: 56px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center;
    color: #fff !important;
    background: linear-gradient(135deg, #6144e9, #4e5ff1) !important;
    border: 0 !important;
    border-radius: 0 11px 11px 0 !important;
    box-shadow: none !important;
}
.vp-search-submit span { display: none !important; }
.vp-search-submit svg { width: 25px !important; height: 25px !important; }
.vp-search-form .finder-smart {
    top: calc(100% + 8px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2005 !important;
    border-radius: 15px !important;
    box-shadow: 0 24px 60px rgba(7, 19, 38, .22) !important;
}

.vp-vehicle-button {
    min-height: 56px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255,255,255,.92);
    background: transparent;
    text-align: left;
    white-space: nowrap;
}
.vp-vehicle-button > svg { width: 25px; height: 25px; color: #8f7aff; flex: 0 0 auto; }
.vp-vehicle-button span { display: grid; gap: 3px; }
.vp-vehicle-button b { font-size: 11px; font-weight: 900; }
.vp-vehicle-button small { color: rgba(255,255,255,.58); font-size: 9px; font-weight: 650; }

.vp-phone {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff !important;
    text-decoration: none;
    white-space: nowrap;
}
.vp-phone > svg { width: 24px; height: 24px; color: #8f7aff; flex: 0 0 auto; }
.vp-phone span { display: grid; gap: 3px; }
.vp-phone small { color: rgba(255,255,255,.60); font-size: 9px; font-weight: 700; }
.vp-phone strong { color: #fff; font-size: 12px; font-weight: 900; }

.vendra-actions.vp-main-actions {
    display: flex !important;
    align-items: center;
    gap: 8px !important;
    min-width: 0;
}
.vp-main-actions .icon-button {
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 12px !important;
    color: #fff !important;
    background: rgba(255,255,255,.06) !important;
    box-shadow: none !important;
}
.vp-main-actions .icon-button:hover { background: rgba(255,255,255,.12) !important; transform: translateY(-1px); }
.vp-main-actions .icon-button svg { width: 21px; height: 21px; }
.vp-mobile-account,
.vp-theme-button,
.mobile-search-button { display: none !important; }

.vp-cart-button {
    position: relative;
    min-width: 94px;
    min-height: 58px;
    padding: 8px 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #fff !important;
    text-decoration: none;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(113, 86, 237, .32), rgba(255,255,255,.10));
    border: 1px solid rgba(255,255,255,.12);
}
.vp-cart-button > svg { width: 25px; height: 25px; flex: 0 0 auto; }
.vp-cart-copy { display: grid; gap: 1px; }
.vp-cart-copy small { color: rgba(255,255,255,.58); font-size: 8px; font-weight: 650; }
.vp-cart-copy strong { font-size: 11px; font-weight: 900; }
.vp-cart-button .cart-count {
    position: absolute !important;
    top: -7px !important;
    right: -7px !important;
    min-width: 22px !important;
    height: 22px !important;
    padding: 0 5px !important;
    display: grid !important;
    place-items: center;
    border: 2px solid var(--vp-navy) !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: #6d49ef !important;
    font-size: 9px !important;
    font-weight: 900 !important;
}
.vp-mobile-menu-button { display: none !important; }

.vp-categorybar {
    color: var(--vp-text);
    background: #fff;
    border-bottom: 1px solid #e8ebf2;
}
html[data-theme="dark"] .vp-categorybar { background: #101b2d; border-color: rgba(255,255,255,.08); }
.vp-categorybar-inner {
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
}
.vp-categorybar-inner::-webkit-scrollbar { display: none; }
.vp-categorybar a,
.vp-categorybar button {
    min-width: max-content;
    min-height: 46px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--vp-text) !important;
    background: transparent;
    border: 0;
    border-radius: 12px;
    text-decoration: none;
    cursor: pointer;
    font-size: 10px;
    font-weight: 750;
    transition: color .2s ease, background .2s ease;
}
.vp-categorybar a:hover,
.vp-categorybar button:hover { color: var(--vp-purple) !important; background: var(--vp-purple-soft); }
.vp-category-icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    color: currentColor;
}
.vp-category-svg { width: 23px; height: 23px; fill: currentColor; }
.vp-more-dots { font-size: 16px; letter-spacing: 2px; }

.vp-benefitbar {
    color: #fff;
    background:
        radial-gradient(circle at 48% -90%, rgba(104, 75, 240, .34), transparent 46%),
        linear-gradient(135deg, #071326, #09182e);
    border-top: 1px solid rgba(255,255,255,.05);
}
.vp-benefitbar-inner {
    min-height: 88px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: center;
    gap: 14px;
}
.vp-benefit {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff !important;
    text-decoration: none;
}
.vp-benefit > span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #987eff;
}
.vp-benefit svg { width: 29px; height: 29px; }
.vp-benefit div { min-width: 0; }
.vp-benefit strong { display: block; margin-bottom: 5px; font-size: 11px; line-height: 1.2; font-weight: 900; }
.vp-benefit small { display: block; color: rgba(255,255,255,.65); font-size: 9px; line-height: 1.35; font-weight: 600; }

/* Popovers above the sticky header */
.vp-header-wrap .locale-menu { z-index: 2010 !important; }

/* Drawer and vehicle finder */
.vendra-menu {
    z-index: 2100 !important;
    border-radius: 0 28px 28px 0 !important;
    box-shadow: 28px 0 70px rgba(4, 12, 26, .26) !important;
}
.overlay-backdrop { z-index: 2050 !important; }
.mobile-search { z-index: 2150 !important; }
.mobile-search .mobile-search-submit,
.drawer-cta {
    background: linear-gradient(135deg, var(--vp-purple), var(--vp-blue)) !important;
    color: #fff !important;
}

/* Site-wide surfaces */
main,
.vh-home,
.catalog-page,
.vndp-page {
    color: var(--vp-text);
}

.vh-shell,
.catalog-shell,
.vndp-shell,
.page-shell,
.checkout-shell,
.account-shell {
    width: min(1440px, calc(100% - 44px)) !important;
    max-width: 1440px !important;
    margin-inline: auto !important;
}

.card,
.vh-card,
.vndp-card,
.catalog-panel,
.table-card,
.page-card {
    border-color: var(--vp-line) !important;
    background: var(--vp-surface) !important;
    box-shadow: var(--vp-shadow-soft) !important;
}

.primary-button,
.yellow-button,
.header-cta,
.vndp-primary-button {
    border: 0 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--vp-purple), var(--vp-blue)) !important;
    box-shadow: 0 13px 28px rgba(88, 68, 225, .24) !important;
    text-transform: none !important;
}
.primary-button:hover,
.yellow-button:hover,
.header-cta:hover,
.vndp-primary-button:hover { filter: brightness(1.06); transform: translateY(-2px); }

.outline-button,
.ghost-button,
.vndp-secondary-button {
    color: var(--vp-purple) !important;
    border-color: rgba(98, 70, 234, .26) !important;
    background: var(--vp-surface) !important;
}

/* Homepage */
.vh-home { padding-top: 30px !important; }
.vh-hero,
.vh-search-card,
.vh-trust,
.vh-section {
    border-color: var(--vp-line) !important;
}
.vh-hero {
    background:
        radial-gradient(circle at 86% 12%, rgba(104, 72, 237, .16), transparent 28rem),
        linear-gradient(135deg, #fff, #f7f8ff) !important;
    box-shadow: var(--vp-shadow) !important;
}
html[data-theme="dark"] .vh-hero {
    background:
        radial-gradient(circle at 86% 12%, rgba(104, 72, 237, .22), transparent 28rem),
        linear-gradient(135deg, #101b2d, #0c1729) !important;
}
.vh-hero h1,
.vh-section h2,
.vh-search-card h2 { color: var(--vp-text) !important; }
.vh-hero h1 span,
.vh-section-kicker,
.vh-eyebrow { color: var(--vp-purple) !important; }
.vh-search-card {
    background: var(--vp-surface) !important;
    box-shadow: var(--vp-shadow) !important;
}
.vh-product-grid { gap: 18px !important; }

/* Product cards: all product photos keep their original source paths. */
.product-card.product-card-pro.vendra-product-card {
    position: relative;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
    color: var(--vp-text) !important;
    background: var(--vp-surface) !important;
    border: 1px solid var(--vp-line) !important;
    border-radius: 20px !important;
    box-shadow: 0 8px 24px rgba(16, 30, 59, .06) !important;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}
.product-card.product-card-pro.vendra-product-card:hover {
    transform: translateY(-5px) !important;
    border-color: rgba(98, 70, 234, .34) !important;
    box-shadow: 0 22px 50px rgba(16, 30, 59, .13) !important;
}

.vp-product-media,
.product-card .product-photo {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    min-height: 190px;
    overflow: hidden;
    display: grid !important;
    place-items: center;
    background:
        radial-gradient(circle at 50% 38%, rgba(98, 70, 234, .08), transparent 45%),
        #f8f9fc !important;
    border: 0 !important;
    border-bottom: 1px solid var(--vp-line) !important;
}
html[data-theme="dark"] .vp-product-media,
html[data-theme="dark"] .product-card .product-photo { background: #0d1829 !important; }
.vp-product-media img,
.product-card .product-photo img {
    width: 100% !important;
    height: 100% !important;
    padding: 13px !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block;
    mix-blend-mode: normal !important;
    transition: transform .3s ease !important;
}
.product-card:hover .vp-product-media img,
.product-card:hover .product-photo img { transform: scale(1.035); }
.vp-product-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #9ba3b5;
    opacity: 0;
    pointer-events: none;
}
.vp-product-placeholder svg { width: 52px; height: 52px; }
.vp-product-media.is-missing .vp-product-placeholder,
.product-card.no-photo .vp-product-placeholder { opacity: 1; }
.vp-product-media.is-missing img { display: none !important; }

.vp-card-favorite {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: #465066;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(25, 36, 60, .10);
    border-radius: 12px;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(20, 31, 54, .11);
}
.vp-card-favorite svg { width: 19px; height: 19px; }
.vp-card-favorite:hover { color: var(--vp-purple); border-color: rgba(98,70,234,.30); }

.product-card .product-content {
    min-width: 0;
    padding: 17px !important;
    display: flex !important;
    flex: 1;
    flex-direction: column;
}
.product-card .badge-row { min-height: 25px; margin: 0 0 9px !important; gap: 5px !important; }
.product-card .badge {
    min-height: 23px;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    background: var(--vp-purple-soft) !important;
    color: var(--vp-purple) !important;
    border: 0 !important;
    font-size: 8px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.product-card .badge.sale { color: #fff !important; background: var(--vp-danger) !important; }
.product-card .badge.hot { color: #8c5200 !important; background: #fff0c9 !important; }
.product-card .badge.muted { color: var(--vp-muted) !important; background: var(--vp-surface-soft) !important; }
.product-card .product-title {
    margin: 0 0 10px !important;
    min-height: 48px;
    font-size: 13px !important;
    line-height: 1.45 !important;
    font-weight: 850 !important;
    letter-spacing: -.015em;
}
.product-card .product-title a {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--vp-text) !important;
    text-decoration: none;
}
.product-card .rating-row {
    margin-bottom: 10px !important;
    display: flex;
    align-items: center;
    gap: 6px !important;
    font-size: 9px !important;
}
.product-card .stars { color: var(--vp-warning) !important; letter-spacing: .5px; }
.product-card .rating-row small { color: var(--vp-muted) !important; }
.product-card .product-meta,
.product-card .product-code-line {
    margin: 0 0 6px !important;
    color: var(--vp-muted) !important;
    font-size: 9px !important;
    line-height: 1.45 !important;
    font-weight: 650 !important;
}
.product-card .product-meta {
    padding: 9px 10px;
    border-radius: 11px;
    background: var(--vp-surface-soft);
}
.product-card .price-row {
    margin-top: auto !important;
    padding-top: 12px !important;
    align-items: center !important;
    border-top: 1px solid var(--vp-line);
}
.product-card .price { color: var(--vp-text) !important; font-size: 20px !important; font-weight: 950 !important; letter-spacing: -.04em; }
.product-card .old-price { color: var(--vp-muted) !important; font-size: 10px !important; }
.product-card .round-link {
    width: 38px !important;
    height: 38px !important;
    display: grid !important;
    place-items: center;
    color: #fff !important;
    background: linear-gradient(135deg, var(--vp-purple), var(--vp-blue)) !important;
    border-radius: 12px !important;
}
.product-card .card-actions {
    margin-top: 11px !important;
    display: grid !important;
    grid-template-columns: .85fr 1.15fr;
    gap: 8px !important;
}
.product-card .card-actions button {
    min-width: 0;
    min-height: 42px !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    font-size: 9px !important;
    white-space: normal;
    line-height: 1.2;
}
.vp-stock-line {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: var(--vp-success);
    font-size: 9px;
    font-weight: 850;
}
.vp-stock-line::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px rgba(21,149,102,.12); }
.vp-stock-line.is-out { color: var(--vp-danger); }

/* Catalog */
.catalog-page { background: transparent !important; }
.catalog-layout { gap: 22px !important; }
.catalog-products-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
}
.catalog-card-host { min-width: 0; }
.catalog-sidebar,
.catalog-toolbar,
.catalog-result-panel {
    border-color: var(--vp-line) !important;
    background: var(--vp-surface) !important;
    box-shadow: var(--vp-shadow-soft) !important;
}

/* Product page */
.vndp-page { padding-top: 26px !important; }
.vndp-buy-panel { top: 16px !important; }
.vndp-main-photo { background: var(--vp-surface-soft) !important; }
.vndp-price-zone { background: linear-gradient(135deg, var(--vp-purple-soft), var(--vp-surface-soft)) !important; border-color: rgba(98,70,234,.18) !important; }

/* Footer visual alignment */
.vendra-footer-pro {
    color: var(--vp-text) !important;
    background:
        radial-gradient(circle at 8% 0%, rgba(98,70,234,.13), transparent 28rem),
        radial-gradient(circle at 96% 8%, rgba(49,91,234,.10), transparent 30rem),
        var(--vp-surface) !important;
    border-color: var(--vp-line) !important;
    box-shadow: var(--vp-shadow) !important;
}

/* Accessibility */
:focus-visible {
    outline: 3px solid rgba(98, 70, 234, .42) !important;
    outline-offset: 2px;
}

@media (max-width: 1380px) {
    .vp-mainbar-inner { grid-template-columns: auto auto minmax(260px, 1fr) auto auto; }
    .vp-phone { display: none; }
    .vp-benefitbar-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .vp-benefit:last-child { display: none; }
    .catalog-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 1160px) {
    .vp-header-container { width: min(100% - 28px, var(--vp-header-width)); }
    .vp-top-link:nth-child(3) { display: none; }
    .vp-mainbar-inner { grid-template-columns: auto auto minmax(240px, 1fr) auto; gap: 12px; }
    .vp-vehicle-button { display: none; }
    .vp-search-category { display: none; }
    .vendra-finder.vp-search-form { grid-template-columns: minmax(0, 1fr) 58px !important; }
    .vp-categorybar a:nth-child(n+7) { display: none; }
    .vp-cart-copy { display: none; }
    .vp-cart-button { min-width: 56px; width: 56px; padding: 0; }
    .vp-brand { min-width: 150px !important; }
    .vp-benefitbar-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vp-benefit:nth-child(4) { display: none; }
}

@media (max-width: 900px) {
    .vp-topbar { display: none; }
    .vendra-header.vp-mainbar { min-height: auto !important; }
    .vp-mainbar-inner {
        min-height: 78px;
        grid-template-columns: 46px minmax(132px, auto) 1fr auto;
        gap: 9px;
    }
    .vp-mobile-menu-button {
        width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        display: grid !important;
        place-items: center;
        color: #fff !important;
        background: rgba(255,255,255,.06) !important;
        border: 1px solid rgba(255,255,255,.12) !important;
        border-radius: 12px !important;
    }
    .vp-mobile-menu-button svg { width: 23px; height: 23px; }
    .vendra-brand.vp-brand { min-width: 138px !important; }
    .vp-brand-mark.brand-vmark { width: 44px !important; height: 38px !important; flex-basis: 44px !important; }
    .vp-brand-mark svg { width: 43px; height: 36px; }
    .vendra-brand.vp-brand .brand-copy strong { font-size: 17px !important; }
    .vendra-brand.vp-brand .brand-copy small { font-size: 9px !important; }
    .vp-catalog-button,
    .vp-mainbar-inner > .vp-search-form { display: none !important; }
    .vendra-actions.vp-main-actions { justify-self: end; }
    .vp-mobile-account,
    .mobile-search-button { display: grid !important; }
    .vp-theme-button { display: none !important; }
    .vp-categorybar { background: var(--vp-surface); }
    .vp-categorybar-inner { min-height: 82px; padding: 9px 0; justify-content: flex-start; gap: 9px; }
    .vp-categorybar a,
    .vp-categorybar button {
        min-width: 72px;
        min-height: 62px;
        padding: 7px 8px;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        border: 1px solid var(--vp-line);
        background: var(--vp-surface-soft);
        font-size: 8px;
        text-align: center;
    }
    .vp-categorybar a:nth-child(n+6) { display: none; }
    .vp-category-icon { width: 26px; height: 26px; }
    .vp-category-svg { width: 22px; height: 22px; }
    .vp-benefitbar { display: none; }
    .mobile-search {
        width: min(560px, 100%) !important;
        border-radius: 24px 0 0 24px !important;
    }
    .vh-home { padding-top: 18px !important; }
    .vh-shell,
    .catalog-shell,
    .vndp-shell,
    .page-shell,
    .checkout-shell,
    .account-shell { width: min(100% - 24px, 900px) !important; }
    .catalog-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 620px) {
    .vp-header-container { width: calc(100% - 18px); }
    .vp-mainbar-inner { min-height: 70px; grid-template-columns: 42px minmax(118px, 1fr) auto; }
    .vp-mobile-menu-button { width: 40px !important; height: 40px !important; }
    .vendra-brand.vp-brand { min-width: 0 !important; }
    .vp-main-actions { gap: 5px !important; }
    .vp-main-actions .icon-button { width: 39px !important; height: 39px !important; }
    .vp-mobile-account { display: none !important; }
    .vp-cart-button { width: 42px; min-width: 42px; min-height: 42px; border-radius: 11px; }
    .vp-cart-button > svg { width: 22px; height: 22px; }
    .vp-categorybar-inner { padding-bottom: 7px; }
    .vp-categorybar a,
    .vp-categorybar button { min-width: 66px; }
    .vp-categorybar a:nth-child(5) { display: none; }
    .vh-shell,
    .catalog-shell,
    .vndp-shell,
    .page-shell,
    .checkout-shell,
    .account-shell { width: calc(100% - 16px) !important; }
    .catalog-products-grid { grid-template-columns: 1fr !important; }
    .product-card.product-card-pro.vendra-product-card {
        display: grid !important;
        grid-template-columns: 128px minmax(0, 1fr);
        border-radius: 17px !important;
    }
    .vp-product-media,
    .product-card .product-photo {
        min-height: 100%;
        aspect-ratio: auto;
        border-right: 1px solid var(--vp-line) !important;
        border-bottom: 0 !important;
    }
    .vp-product-media img,
    .product-card .product-photo img { padding: 8px !important; }
    .product-card .product-content { padding: 13px !important; }
    .product-card .badge-row { display: none !important; }
    .product-card .product-title { min-height: auto; font-size: 11px !important; }
    .product-card .product-meta,
    .product-card .product-code-line { display: none !important; }
    .product-card .price { font-size: 17px !important; }
    .product-card .card-actions { grid-template-columns: 1fr; }
    .product-card .card-actions .outline-button { display: none !important; }
    .product-card .card-actions button { min-height: 38px !important; }
}

@media (max-width: 390px) {
    .vendra-brand.vp-brand .brand-copy strong { font-size: 15px !important; }
    .vendra-brand.vp-brand .brand-copy small { display: none !important; }
    .vp-brand-mark.brand-vmark { width: 38px !important; flex-basis: 38px !important; }
    .vp-brand-mark svg { width: 37px; }
    .vp-categorybar a,
    .vp-categorybar button { min-width: 62px; padding-inline: 5px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.vp-card-favorite.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--vp-purple), var(--vp-blue));
}
.vp-card-favorite.is-active svg { fill: currentColor; }


/* City selection — shared by header, product and checkout */
.vp-city-selector {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.vp-city-selector .vp-city-caret { width: 13px; height: 13px; opacity: .74; }
.vp-city-selector [data-vendra-city] {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.vp-city-lock { overflow: hidden !important; }
.vp-city-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    padding: 20px;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
}
.vp-city-modal.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.vp-city-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 12, 27, .72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.vp-city-dialog {
    position: relative;
    width: min(680px, 100%);
    max-height: min(760px, calc(100dvh - 40px));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 28px;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 28px;
    color: var(--vp-text);
    background: rgba(255,255,255,.98);
    box-shadow: 0 38px 110px rgba(2, 10, 25, .34);
    transform: translateY(16px) scale(.985);
    transition: transform .22s ease;
}
.vp-city-modal.is-open .vp-city-dialog { transform: translateY(0) scale(1); }
html[data-theme="dark"] .vp-city-dialog {
    border-color: rgba(255,255,255,.10);
    background: rgba(16,27,45,.98);
}
.vp-city-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.vp-city-kicker {
    display: block;
    margin-bottom: 7px;
    color: var(--vp-purple);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.vp-city-dialog h2 { margin: 0; color: var(--vp-text); font-size: clamp(22px, 3vw, 30px); line-height: 1.16; font-weight: 900; letter-spacing: -.04em; }
.vp-city-dialog p { margin: 8px 0 0; color: var(--vp-muted); font-size: 11px; line-height: 1.55; font-weight: 650; }
.vp-city-close {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid var(--vp-line);
    border-radius: 13px;
    color: var(--vp-text);
    background: var(--vp-surface-soft);
    cursor: pointer;
}
.vp-city-close svg { width: 20px; height: 20px; }
.vp-city-search {
    min-height: 56px;
    margin-top: 22px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1.5px solid var(--vp-line);
    border-radius: 16px;
    background: var(--vp-surface-soft);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.vp-city-search:focus-within { border-color: var(--vp-purple); box-shadow: 0 0 0 4px rgba(98,70,234,.11); }
.vp-city-search svg { width: 21px; height: 21px; flex: 0 0 auto; color: var(--vp-purple); }
.vp-city-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--vp-text); background: transparent; font-size: 13px; font-weight: 700; }
.vp-city-popular { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.vp-city-popular button {
    min-height: 36px;
    padding: 7px 13px;
    border: 1px solid var(--vp-line);
    border-radius: 999px;
    color: var(--vp-text);
    background: var(--vp-surface);
    font-size: 10px;
    font-weight: 850;
    cursor: pointer;
    transition: .18s ease;
}
.vp-city-popular button:hover { color: var(--vp-purple); border-color: var(--vp-purple); background: var(--vp-purple-soft); }
.vp-city-status { margin: 17px 2px 9px; color: var(--vp-muted); font-size: 10px; font-weight: 700; }
.vp-city-results { min-height: 0; overflow-y: auto; display: grid; gap: 7px; padding-right: 4px; scrollbar-width: thin; }
.vp-city-result {
    width: 100%;
    min-height: 56px;
    padding: 10px 12px 10px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid var(--vp-line);
    border-radius: 14px;
    color: var(--vp-text);
    text-align: left;
    background: var(--vp-surface);
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.vp-city-result:hover { transform: translateY(-1px); border-color: rgba(98,70,234,.55); background: var(--vp-purple-soft); }
.vp-city-result span { min-width: 0; }
.vp-city-result strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 850; }
.vp-city-result small { display: block; margin-top: 3px; color: var(--vp-muted); font-size: 9px; font-weight: 650; }
.vp-city-result svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--vp-purple); }
.vp-city-empty { padding: 28px 16px; border: 1px dashed var(--vp-line); border-radius: 15px; color: var(--vp-muted); text-align: center; font-size: 11px; font-weight: 700; }

@media (max-width: 700px) {
    .vp-city-modal { align-items: end; padding: 0; }
    .vp-city-dialog { width: 100%; max-height: calc(100dvh - 8px); padding: 22px 15px calc(20px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; }
    .vp-city-search { min-height: 52px; }
    .vp-city-results { overscroll-behavior: contain; }
}
