/* =============================================================
   VENDORA – MOBILE RESPONSIVE CSS  (max-width: 768px / 480px)
   Couvre : Dashboard, Sidebar, Produits, Commandes, Wallet,
            Profil, Catégories, Stores, Modules, Onboarding,
            Login/Register, OTP, Chat, Ads, Admin
   ============================================================= */

/* ─────────────────────────────────────────
   1. VARIABLES & BASE
───────────────────────────────────────── */
:root {
    --vs-primary: #2563eb;
    --vs-primary-dark: #1d4ed8;
    --vs-bg: #f5f7fb;
    --vs-card: #ffffff;
    --vs-border: #e2e8f0;
    --vs-text: #0f172a;
    --vs-muted: #64748b;
    --vs-radius: 14px;
    --vs-touch: 44px;      /* minimum touch target */
}

/* ─────────────────────────────────────────
   2. DASHBOARD LAYOUT — MOBILE FIRST
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Stack sidebar above content */
    .vs-dashboard {
        flex-direction: column !important;
        padding: 10px !important;
        gap: 10px !important;
        background: var(--vs-bg) !important;
    }

    /* ══ SIDEBAR: vertical list, NO grid, NO wrap ══ */
    .vs-sidebar {
        width: 100% !important;
        min-height: 0 !important;
        border-radius: 12px !important;
        padding: 8px 10px !important;
        margin-bottom: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
    }

    /* Header: hamburger right-aligned */
    .vs-sidebar-header {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        padding: 4px 4px 8px !important;
    }

    /* Main menu: full-width vertical list */
    .vs-sidebar-menu {
        display: flex !important;
        flex-direction: column !important;
        gap: 3px !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }

    /* Every top-level <li> — full width */
    .vs-sidebar-menu > li {
        width: 100% !important;
        flex: none !important;
        margin: 0 !important;
    }

    /* Top-level links */
    .vs-sidebar-menu > li > a,
    .vs-sidebar-menu > li > .vs-parent-link {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 11px 12px !important;
        font-size: 14px !important;
        border-radius: 10px !important;
        min-height: 44px !important;
        box-sizing: border-box !important;
        justify-content: flex-start !important;
    }

    /* Submenu: full-width vertical list */
    .vs-has-submenu .vs-submenu {
        display: none;
        flex-direction: column !important;
        gap: 2px !important;
        padding-left: 14px !important;
        margin-top: 3px !important;
        width: 100% !important;
        list-style: none !important;
    }

    .vs-has-submenu.open .vs-submenu {
        display: flex !important;
    }

    /* Submenu <li> full width */
    .vs-has-submenu .vs-submenu li {
        width: 100% !important;
        flex: none !important;
        margin: 0 !important;
    }

    /* Submenu links */
    .vs-has-submenu .vs-submenu li a {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        padding: 9px 10px !important;
        font-size: 13px !important;
        border-radius: 8px !important;
        min-height: 40px !important;
        box-sizing: border-box !important;
    }

    /* Arrow stays right */
    .vs-arrow { margin-left: auto !important; }

    /* Footer: full width */
    .vs-sidebar-footer {
        width: 100% !important;
        margin-top: 6px !important;
    }

    /* Collapsed on mobile */
    .vs-sidebar.collapsed {
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 8px 10px !important;
    }

    .vs-sidebar.collapsed .vs-sidebar-menu,
    .vs-sidebar.collapsed .vs-sidebar-footer {
        display: none !important;
    }

    /* ── CONTENT AREA ── */
    .vs-content {
        padding: 14px !important;
        border-radius: 12px !important;
        overflow-x: hidden !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .vs-content h3 {
        font-size: 17px !important;
        margin-bottom: 12px !important;
    }
}

/* ─────────────────────────────────────────
   3. METRIC / STAT CARDS
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Orders summary cards — 2 columns on mobile */
    .vs-orders-cards {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .vs-card {
        padding: 10px 12px !important;
    }

    .vs-card-value {
        font-size: 16px !important;
    }

    /* Product metric cards — 2 columns */
    .vs-metrics-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        margin: 10px 0 !important;
    }

    .vs-metric-card {
        padding: 10px !important;
        gap: 10px !important;
    }

    .vs-metric-card strong {
        font-size: 18px !important;
    }

    .vs-metric-card span.dashicons {
        font-size: 24px !important;
        width: 24px !important;
        height: 24px !important;
    }
}

@media (max-width: 480px) {
    /* 2 columns still OK on very small screens, just tighter */
    .vs-orders-cards,
    .vs-metrics-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 6px !important;
    }

    .vs-card-value {
        font-size: 14px !important;
    }
}

/* ─────────────────────────────────────────
   4. PRODUCTS TABLE
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Make tables scroll horizontally */
    .vs-products-table,
    .vs-orders-table {
        display: block !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        width: 100% !important;
        font-size: 13px !important;
    }

    .vs-products-table th,
    .vs-products-table td,
    .vs-orders-table th,
    .vs-orders-table td {
        padding: 8px 6px !important;
        white-space: nowrap !important;
    }

    /* Hide less important columns */
    .vs-products-table th:nth-child(2),
    .vs-products-table td:nth-child(2),
    .vs-products-table th:nth-child(4),
    .vs-products-table td:nth-child(4) {
        display: none !important;
    }

    /* Action buttons — stack vertically */
    .vs-action-buttons {
        display: flex !important;
        flex-direction: column !important;
        gap: 5px !important;
        align-items: stretch !important;
    }

    .vs-action-buttons button,
    .vs-action-buttons a,
    .vs-action-buttons .vs-view-btn {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
        min-height: 36px !important;
        font-size: 12px !important;
    }

    /* Status badges — keep them legible */
    .vs-status-badge {
        font-size: 10px !important;
        padding: 3px 7px !important;
    }

    /* Pagination */
    .vs-page-btn {
        padding: 6px 8px !important;
        font-size: 12px !important;
    }
}

/* ─────────────────────────────────────────
   5. ORDERS TOOLS & FILTERS
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-orders-tools {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    .vs-orders-tools input,
    .vs-orders-tools select,
    .vs-orders-tools button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        border-radius: 10px !important;
        box-sizing: border-box !important;
    }

    /* Date pickers side by side */
    .vs-orders-date-range {
        display: flex !important;
        gap: 8px !important;
    }

    .vs-orders-date-range input {
        flex: 1 !important;
        min-width: 0 !important;
    }

    /* Bulk action row */
    .vs-bulk-row {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
    }

    .vs-bulk-row button {
        flex: 1 1 calc(50% - 4px) !important;
        font-size: 12px !important;
        padding: 8px !important;
    }
}

/* ─────────────────────────────────────────
   6. ADD / EDIT PRODUCT FORM
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-form-wrapper {
        padding: 14px !important;
        margin: 10px 0 !important;
        border-radius: 12px !important;
    }

    /* 2-col grid → single column */
    .vs-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .vs-field.full {
        grid-column: span 1 !important;
    }

    .vs-field input,
    .vs-field textarea,
    .vs-field select {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Image upload box — full width on mobile */
    .vs-upload-box {
        width: 100% !important;
        height: 200px !important;
    }

    .vs-gallery-add {
        width: 72px !important;
        height: 72px !important;
    }

    .vs-form-actions {
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-form-actions button,
    .vs-form-actions .vs-btn {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        text-align: center !important;
        justify-content: center !important;
    }
}

/* ─────────────────────────────────────────
   7. VENDOR PROFILE
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-profile-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    /* Profile stats — 2 per row */
    .vs-metrics-grid.vs-profile-metrics {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Profile 2-column grid → 1 column */
    .vs-profile-two-col {
        grid-template-columns: 1fr !important;
        margin: 10px 0 !important;
    }

    /* Form grid inside profile → 1 column */
    .vs-form-grid {
        grid-template-columns: 1fr !important;
    }

    /* Visibility checkboxes — 1 per row */
    .vs-visibility-grid {
        grid-template-columns: 1fr !important;
    }

    /* Profile panel summary — bigger tap area */
    .vs-profile-panel > summary {
        padding: 14px !important;
        font-size: 14px !important;
        min-height: var(--vs-touch) !important;
    }

    .vs-profile-form {
        padding: 12px !important;
    }

    /* Store media preview — full width */
    .vs-store-media-preview {
        max-width: 100% !important;
    }

    /* Profile inline actions */
    .vs-profile-inline {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .vs-profile-inline button,
    .vs-profile-inline .vs-btn {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
    }

    /* Chart — full width */
    #vs-sales-trend-chart {
        width: 100% !important;
        margin: 8px 0 0 !important;
    }

    /* Header store info */
    .vs-profile-header .vs-store-info-block {
        width: 100% !important;
    }
}

/* ─────────────────────────────────────────
   8. WALLET
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Wallet summary cards — 1 column */
    .vs-wallet-summary {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .vs-wallet-card {
        padding: 12px !important;
    }

    /* Withdrawal form */
    .vs-withdrawal-form {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .vs-withdrawal-form input,
    .vs-withdrawal-form select,
    .vs-withdrawal-form button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Transaction history table */
    #vs-transaction-history {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    #vs-transaction-history table {
        min-width: 480px !important;
        font-size: 12px !important;
    }
}

/* ─────────────────────────────────────────
   9. BEST CLIENTS
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-clients-tools {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-clients-tools input,
    .vs-clients-tools select,
    .vs-clients-tools button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Best clients table — scroll */
    .vs-clients-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .vs-clients-table {
        min-width: 520px !important;
        font-size: 12px !important;
    }

    /* Summary cards */
    .vs-clients-summary {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
}

/* ─────────────────────────────────────────
   10. CATEGORIES
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-categories-header {
        flex-direction: column !important;
        gap: 8px !important;
        align-items: stretch !important;
    }

    .vs-categories-header button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
    }

    /* Categories requests table */
    .vs-categories-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .vs-categories-table {
        min-width: 400px !important;
        font-size: 12px !important;
    }

    .vs-categories-table td,
    .vs-categories-table th {
        padding: 8px 6px !important;
    }
}

/* ─────────────────────────────────────────
   11. MODULES PAGE
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-modules-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .vs-module-card {
        padding: 14px !important;
        border-radius: 14px !important;
    }

    .vs-module-card .vs-btn,
    .vs-module-card button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        margin-top: 10px !important;
    }

    /* Module tab filters */
    .vs-modules-tabs {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    .vs-modules-tabs button {
        flex: 1 1 auto !important;
        min-height: 36px !important;
        font-size: 12px !important;
    }
}

/* ─────────────────────────────────────────
   12. STORES DIRECTORY
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-stores-page {
        padding: 0 10px !important;
        margin: 14px auto !important;
    }

    .vs-stores-hero {
        padding: 16px !important;
        border-radius: 12px !important;
    }

    .vs-stores-hero h2 {
        font-size: 20px !important;
        margin-bottom: 4px !important;
    }

    /* Store cards — 1 column on small mobile */
    .vs-stores-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    /* Store tabs (All / Followed) */
    .vs-stores-tabs {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
    }

    .vs-stores-tabs button,
    .vs-stores-tabs a {
        flex: 1 1 auto !important;
        text-align: center !important;
        min-height: var(--vs-touch) !important;
        font-size: 13px !important;
    }

    /* Store search */
    .vs-stores-search {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
        margin-top: 8px !important;
    }

    /* Card actions row */
    .vs-store-card-actions {
        display: flex !important;
        gap: 8px !important;
        margin-top: 12px !important;
    }

    .vs-store-card-actions a,
    .vs-store-card-actions button {
        flex: 1 !important;
        text-align: center !important;
        min-height: 38px !important;
        font-size: 13px !important;
    }

    .vs-store-card-banner {
        height: 90px !important;
    }
}

@media (min-width: 480px) and (max-width: 768px) {
    /* 2 columns between 480px – 768px */
    .vs-stores-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ─────────────────────────────────────────
   13. ONBOARDING (Become a Vendor)
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-onboard {
        padding: 16px !important;
        margin: 8px 0 0 !important;
        border-radius: 14px !important;
    }

    /* Steps row — smaller circles */
    .vs-onboard-steps {
        gap: 0 !important;
        margin-bottom: 16px !important;
    }

    .vs-onboard-step {
        width: 30px !important;
        height: 30px !important;
        font-size: 12px !important;
    }

    /* Step label (if any) — hide on tiny screens */
    .vs-onboard-step-label {
        display: none !important;
    }

    .vs-onboard-form input,
    .vs-onboard-form textarea {
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
    }

    .vs-onboard-actions {
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-onboard-actions button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
    }

    /* CTA split boxes — stack */
    .vs-split-cta {
        grid-template-columns: 1fr !important;
        margin: 30px 0 !important;
        padding: 0 !important;
        gap: 16px !important;
    }

    .vs-cta-box {
        padding: 24px 18px !important;
    }

    .vs-actions {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .vs-actions .vs-btn,
    .vs-actions .vs-btn-outline {
        width: 100% !important;
        text-align: center !important;
        min-height: var(--vs-touch) !important;
    }
}

/* ─────────────────────────────────────────
   14. ADMIN – USERS MANAGEMENT
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Summary cards row */
    .vs-users-summary {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    /* Search + filter row */
    .vs-users-tools {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-users-tools input,
    .vs-users-tools select {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Bulk action row */
    .vs-users-bulk {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
    }

    .vs-users-bulk select,
    .vs-users-bulk button {
        flex: 1 1 auto !important;
        min-height: var(--vs-touch) !important;
    }

    /* Users table — scrollable */
    .vs-users-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .vs-users-table {
        min-width: 540px !important;
        font-size: 12px !important;
    }

    .vs-users-table td,
    .vs-users-table th {
        padding: 8px 6px !important;
        white-space: nowrap !important;
    }

    /* User action icons */
    .vs-user-actions {
        display: flex !important;
        gap: 4px !important;
        justify-content: center !important;
    }

    .vs-user-actions button,
    .vs-user-actions a {
        width: 32px !important;
        height: 32px !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 8px !important;
    }
}

/* ─────────────────────────────────────────
   15. ADS SYSTEM
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* My Ads form */
    .vs-ads-form-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .vs-ads-form-grid input,
    .vs-ads-form-grid select,
    .vs-ads-form-grid textarea {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    .vs-ads-form button[type="submit"] {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
    }

    /* Budget row side by side */
    .vs-ads-budget-row {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    /* Date row side by side */
    .vs-ads-date-row {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    /* Ads table — scroll */
    .vs-ads-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .vs-ads-table {
        min-width: 560px !important;
        font-size: 12px !important;
    }

    /* Bulk action tabs */
    .vs-ads-tabs {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
        margin-bottom: 10px !important;
    }

    .vs-ads-tabs button {
        flex: 1 1 auto !important;
        font-size: 11px !important;
        padding: 6px 8px !important;
        min-height: 36px !important;
    }

    /* Report filters */
    .vs-ads-report-filters {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-ads-report-filters select,
    .vs-ads-report-filters input,
    .vs-ads-report-filters button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
    }
}

/* ─────────────────────────────────────────
   16. LIVE CHAT
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Chat wrapper — stack conversations above messages */
    .vs-chat-wrapper,
    .vs-messages-wrapper {
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
        gap: 0 !important;
    }

    /* Conversation list — full width, fixed height, scrollable */
    .vs-chat-sidebar,
    .vs-conversations-list {
        width: 100% !important;
        max-height: 220px !important;
        overflow-y: auto !important;
        border-bottom: 1px solid var(--vs-border) !important;
        border-right: none !important;
        border-radius: 12px 12px 0 0 !important;
    }

    /* Individual conversation item */
    .vs-conv-item {
        padding: 10px 12px !important;
        min-height: var(--vs-touch) !important;
    }

    /* Message area */
    .vs-chat-main,
    .vs-messages-area {
        width: 100% !important;
        border-radius: 0 0 12px 12px !important;
        min-height: 340px !important;
    }

    /* Messages */
    .vs-message-bubble {
        max-width: 85% !important;
        font-size: 13px !important;
    }

    /* Input row */
    .vs-chat-input-row {
        display: flex !important;
        gap: 8px !important;
        padding: 8px !important;
        align-items: flex-end !important;
    }

    .vs-chat-input-row textarea,
    .vs-chat-input-row input {
        flex: 1 !important;
        min-height: 42px !important;
        font-size: 14px !important;
        border-radius: 10px !important;
    }

    .vs-chat-send-btn {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* New conversation button */
    .vs-chat-new-btn {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        margin-bottom: 8px !important;
    }

    /* Load older messages */
    .vs-load-older-btn {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        padding: 8px !important;
        font-size: 12px !important;
    }
}

/* ─────────────────────────────────────────
   17. LOGIN / REGISTER PAGE
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* WooCommerce my-account columns */
    .woocommerce-MyAccount-content,
    .u-columns.woocommerce-Columns--2 {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
    }

    .u-column1,
    .u-column2 {
        width: 100% !important;
        float: none !important;
        padding: 0 !important;
    }

    /* Google login button */
    .vs-google-button {
        width: 100% !important;
        justify-content: center !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        border-radius: 10px !important;
    }

    /* WooCommerce form fields */
    .woocommerce form .form-row {
        margin: 0 0 12px !important;
    }

    .woocommerce form .form-row input.input-text {
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
    }

    /* Register-as toggle */
    .vs-register-role-toggle {
        display: flex !important;
        gap: 8px !important;
    }

    .vs-register-role-toggle label {
        flex: 1 !important;
        text-align: center !important;
        padding: 10px !important;
        border-radius: 10px !important;
        min-height: var(--vs-touch) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}

/* ─────────────────────────────────────────
   18. OTP VERIFICATION
───────────────────────────────────────── */
@media (max-width: 480px) {

    .vs-otp-card {
        padding: 20px 14px !important;
        border-radius: 18px !important;
        margin: 10px !important;
    }

    .vs-otp-digit {
        width: 48px !important;
        height: 54px !important;
        font-size: 22px !important;
        border-radius: 12px !important;
    }

    .vs-otp-title {
        font-size: 22px !important;
    }
}

/* ─────────────────────────────────────────
   19. MODAL (Category request, etc.)
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-modal {
        padding: 12px !important;
        align-items: flex-end !important;   /* slide up from bottom */
    }

    .vs-modal__dialog {
        border-radius: 20px 20px 14px 14px !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    .vs-modal__body {
        padding: 14px !important;
    }

    .vs-modal__footer {
        flex-direction: column !important;
        gap: 8px !important;
    }

    .vs-modal__footer .vs-btn {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        text-align: center !important;
        justify-content: center !important;
    }
}

/* ─────────────────────────────────────────
   20. RESTORE / TRASH PAGE
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-restore-header {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        align-items: center !important;
        margin-bottom: 12px !important;
    }

    .vs-restore-header .vs-btn,
    .vs-restore-header button {
        flex: 1 1 auto !important;
        min-height: var(--vs-touch) !important;
        text-align: center !important;
    }

    .vs-restore-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .vs-restore-table {
        min-width: 380px !important;
        font-size: 12px !important;
    }
}

/* ─────────────────────────────────────────
   21. ADMIN SETTINGS PAGE
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Settings tabs — scroll horizontally */
    .vs-settings-tabs,
    .vs-admin-tabs {
        display: flex !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        gap: 6px !important;
        padding-bottom: 4px !important;
        flex-wrap: nowrap !important;
    }

    .vs-settings-tabs a,
    .vs-settings-tabs button,
    .vs-admin-tabs a,
    .vs-admin-tabs button {
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        font-size: 12px !important;
        padding: 8px 12px !important;
        min-height: 38px !important;
    }

    /* Settings grid → 1 column */
    .vs-settings-grid,
    .vs-admin-settings-grid {
        grid-template-columns: 1fr !important;
    }

    .vs-settings-grid input,
    .vs-settings-grid select,
    .vs-admin-settings-grid input,
    .vs-admin-settings-grid select {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    .vs-settings-save-btn {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        margin-top: 12px !important;
    }
}

/* ─────────────────────────────────────────
   22. SINGLE PRODUCT PAGE
───────────────────────────────────────── */
@media (max-width: 768px) {

    .vs-single-product-page div.product {
        margin: 16px auto 80px !important;
        padding: 0 12px !important;
    }

    .vs-sp-hero {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .vs-sp-info-card,
    .vs-sp-gallery-card {
        border-radius: 16px !important;
        padding: 16px !important;
    }

    .vs-sp-title {
        font-size: 22px !important;
    }

    .vs-sp-vendor-card {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    .vs-sp-vendor-actions {
        width: 100% !important;
        display: flex !important;
        gap: 8px !important;
    }

    .vs-sp-vendor-btn {
        flex: 1 !important;
        text-align: center !important;
        min-height: var(--vs-touch) !important;
    }

    .vs-sp-trust-grid {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .vs-sp-product-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Add to cart button — full width */
    .vs-single-product-page .single_add_to_cart_button {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 15px !important;
    }
}

/* ─────────────────────────────────────────
   23. GENERAL BUTTONS & UTILITIES
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* All primary action buttons */
    .vs-btn--primary,
    .vs-btn-primary,
    #add-product-btn {
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
    }

    /* Search bar — full width */
    .vs-search-wrap {
        width: 100% !important;
    }

    .vs-search-wrap input {
        width: 100% !important;
        min-height: var(--vs-touch) !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Tab links inside content */
    .vs-dashboard-tabs {
        display: flex !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 4px !important;
    }

    .vs-dashboard-tabs a,
    .vs-dashboard-tabs button {
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        font-size: 12px !important;
        min-height: 38px !important;
        padding: 6px 12px !important;
    }

    /* Avoid horizontal scroll on the whole page */
    body {
        overflow-x: hidden !important;
    }

    /* Tables that are not already handled */
    table:not(.vs-products-table):not(.vs-orders-table):not(.vs-clients-table):not(.vs-users-table):not(.vs-ads-table):not(.vs-categories-table):not(.vs-restore-table) {
        display: block !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        max-width: 100% !important;
    }

    /* Make images responsive */
    .vs-dashboard img,
    .vs-content img {
        max-width: 100% !important;
        height: auto !important;
    }

    /* Empty states */
    .vs-empty-state {
        padding: 30px 14px !important;
    }

    .vs-empty-hero {
        width: min(280px, 80%) !important;
    }

    .vs-empty-title {
        font-size: 17px !important;
    }
}

/* ─────────────────────────────────────────
   24. SMALL SCREENS (< 400px)
───────────────────────────────────────── */
@media (max-width: 400px) {

    .vs-sidebar a {
        font-size: 11px !important;
        padding: 8px 6px !important;
    }

    .vs-sidebar li {
        flex: 1 1 100% !important;    /* stack all items on very small screens */
    }

    .vs-orders-cards,
    .vs-metrics-grid {
        grid-template-columns: 1fr !important;  /* 1 column on tiny screens */
    }

    .vs-clients-summary {
        grid-template-columns: 1fr !important;
    }

    .vs-users-summary {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .vs-content {
        padding: 10px !important;
    }
}

/* =============================================================
   PATCH MOBILE — PAGES SPÉCIFIQUES
   1. All Users / All Vendors (vs-table-tools)
   2. Account Requests (vs-moderation-container)
   3. Single Product Page (add-to-cart + payment buttons)
   ============================================================= */

/* ─────────────────────────────────────────
   P1. ALL USERS / ALL VENDORS PAGE
   Problème : selects énormes, search trop large,
              bulk tools mal alignés
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Header row: stack title + export button */
    #tab-vendors-management .vs-dashboard-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }

    #tab-vendors-management .vs-dashboard-header h2 {
        font-size: 18px !important;
    }

    #tab-vendors-management .vs-header-actions {
        width: 100% !important;
    }

    #tab-vendors-management .vs-header-actions button,
    #vs-export-vendors-csv {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }

    /* Stat cards: 3 in a row stays fine on mobile? Force 1 col if cramped */
    #tab-vendors-management .vs-stats-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-bottom: 14px !important;
    }

    /* ── THE MAIN FIX: Tools bar → vertical stack ── */
    #tab-vendors-management .vs-table-tools {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        padding: 14px !important;
        margin-bottom: 14px !important;
        align-items: stretch !important;
    }

    /* Search box: full width, no min-width constraint */
    #tab-vendors-management .vs-search-box {
        width: 100% !important;
        flex: none !important;
        min-width: 0 !important;
    }

    #vs-vendor-search {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
        padding: 10px 10px 10px 42px !important;
    }

    /* Selects: full width */
    #vs-vendor-type-filter,
    #vs-vendor-status-filter {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 14px !important;
        flex: none !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        padding: 10px 12px !important;
    }

    /* Bulk tools row: select + Apply on one row */
    #tab-vendors-management .vs-bulk-tools {
        display: flex !important;
        flex-direction: row !important;
        gap: 8px !important;
        align-items: center !important;
        flex: none !important;
        width: 100% !important;
        margin-left: 0 !important;
        justify-content: space-between !important;
    }

    #vs-vendors-selected-count {
        min-width: 80px !important;
        font-size: 12px !important;
        text-align: left !important;
    }

    #vs-vendors-bulk-action {
        flex: 1 !important;
        min-height: 44px !important;
        font-size: 13px !important;
        min-width: 0 !important;
    }

    #vs-vendors-bulk-apply {
        min-height: 44px !important;
        padding: 10px 16px !important;
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }

    /* ── USERS TABLE: scrollable ── */
    #tab-vendors-management .vs-table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        border-radius: 12px !important;
    }

    .vs-vendors-table {
        min-width: 520px !important;
        font-size: 12px !important;
    }

    .vs-vendors-table th,
    .vs-vendors-table td {
        padding: 10px 10px !important;
        white-space: nowrap !important;
    }

    /* Hide "Sales" column on mobile (less important) */
    .vs-vendors-table th:nth-child(6),
    .vs-vendors-table td:nth-child(6) {
        display: none !important;
    }

    /* Pagination */
    #vs-vendors-pagination {
        justify-content: center !important;
        gap: 6px !important;
    }
}

@media (max-width: 480px) {
    /* On very small screens, stat cards 1 column */
    #tab-vendors-management .vs-stats-grid {
        grid-template-columns: 1fr !important;
    }

    /* Bulk tools: stack on tiny screen */
    #tab-vendors-management .vs-bulk-tools {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    #vs-vendors-bulk-action,
    #vs-vendors-bulk-apply {
        width: 100% !important;
    }

    #vs-vendors-selected-count {
        text-align: center !important;
    }
}

/* ─────────────────────────────────────────
   P2. ACCOUNT REQUESTS PAGE
   Problème : table trop large, colonnes débordent
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Header */
    #tab-vendor-requests .vs-dashboard-header {
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 14px !important;
    }

    #tab-vendor-requests .vs-dashboard-header h2 {
        font-size: 17px !important;
    }

    /* Table container: scroll */
    #tab-vendor-requests .vs-moderation-container {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        border-radius: 12px !important;
        background: #fff !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
    }

    /* Table itself */
    #tab-vendor-requests .vs-products-table {
        min-width: 460px !important;
        width: 100% !important;
        font-size: 12px !important;
        border-collapse: collapse !important;
    }

    #tab-vendor-requests .vs-products-table th,
    #tab-vendor-requests .vs-products-table td {
        padding: 10px 10px !important;
        white-space: nowrap !important;
    }

    /* Hide "Phone" column (can be seen in edit modal) */
    #tab-vendor-requests .vs-products-table th:nth-child(4),
    #tab-vendor-requests .vs-products-table td:nth-child(4) {
        display: none !important;
    }

    /* Approve / Reject buttons: side by side, compact */
    #tab-vendor-requests .vs-admin-approve-vendor-btn,
    #tab-vendor-requests .vs-admin-reject-vendor-btn {
        padding: 6px 8px !important;
        font-size: 11px !important;
        border-radius: 6px !important;
        min-height: 32px !important;
        white-space: nowrap !important;
    }
}

/* ─────────────────────────────────────────
   P3. SINGLE PRODUCT PAGE
   Problème : ADD TO CART flotte sur le contenu,
              Google Pay / Stripe se superposent
───────────────────────────────────────── */
@media (max-width: 768px) {

    /* Give enough bottom padding for the sticky bar */
    .vs-single-product-page div.product {
        margin-bottom: 100px !important;
        padding: 0 12px !important;
    }

    /* Sticky add-to-cart bar at bottom */
    .vs-sp-mobile-sticky {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 999 !important;
        background: #fff !important;
        border-top: 1px solid #e2e8f0 !important;
        padding: 10px 14px !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        box-shadow: 0 -4px 16px rgba(0,0,0,0.10) !important;
        box-sizing: border-box !important;
    }

    /* The price in the sticky bar */
    .vs-sp-mobile-sticky .vs-sp-sticky-price {
        font-size: 16px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
        color: #1e293b !important;
    }

    /* ADD TO CART button in sticky bar: fill remaining space */
    .vs-sp-mobile-sticky .single_add_to_cart_button,
    .vs-sp-mobile-sticky .vs-sp-sticky-btn {
        flex: 1 !important;
        min-height: 44px !important;
        font-size: 14px !important;
        text-align: center !important;
        border-radius: 10px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* ── Remove duplicate ADD TO CART inside info-card on mobile ── */
    /* (keep only the sticky one visible) */
    .vs-sp-info-card .cart:not(.vs-sp-mobile-sticky .cart) {
        display: none !important;
    }

    /* ── Payment buttons (Stripe, Google Pay, etc.) ──
       They stack below the sticky bar — push them UP into the product page flow */
    .vs-single-product-page .woocommerce-variation-add-to-cart,
    .vs-single-product-page .cart {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        margin-bottom: 8px !important;
    }

    /* Make all payment/cart buttons full width */
    .vs-single-product-page .single_add_to_cart_button,
    .vs-single-product-page .woocommerce-variation-add-to-cart .button,
    .vs-single-product-page .cart .button {
        width: 100% !important;
        min-height: 48px !important;
        font-size: 15px !important;
        border-radius: 12px !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    /* Google Pay / Stripe payment request button wrapper */
    .vs-single-product-page .wc-stripe-payment-request-wrapper,
    .vs-single-product-page .wc-stripe-payment-request-button,
    .vs-single-product-page #wc-stripe-payment-request-wrapper,
    .vs-single-product-page .gpay-button-container,
    .vs-single-product-page .wp-stripe-prc-button-wrapper {
        width: 100% !important;
        margin: 4px 0 !important;
        box-sizing: border-box !important;
    }

    .vs-single-product-page .wc-stripe-payment-request-wrapper button,
    .vs-single-product-page .wp-stripe-prc-button-wrapper button {
        width: 100% !important;
        min-height: 48px !important;
        border-radius: 12px !important;
        box-sizing: border-box !important;
    }

    /* "OR" divider between Add to Cart and payment buttons */
    .vs-single-product-page .wc-stripe-payment-request-button-separator,
    .vs-single-product-page #wc-stripe-payment-request-button-separator {
        display: flex !important;
        align-items: center !important;
        text-align: center !important;
        margin: 6px 0 !important;
        color: #94a3b8 !important;
        font-size: 12px !important;
    }

    /* Quantity input: full width */
    .vs-single-product-page .quantity {
        width: 100% !important;
        margin-right: 0 !important;
    }

    .vs-single-product-page .quantity .qty {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 16px !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    /* Reviews tab: full width textarea */
    .vs-single-product-page .woocommerce-Reviews #commentform {
        padding: 0 !important;
    }

    .vs-single-product-page .woocommerce-Reviews #commentform textarea {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Tabs (Reviews, Description): full width scroll */
    .vs-single-product-page .woocommerce-tabs ul.tabs {
        display: flex !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        white-space: nowrap !important;
        gap: 4px !important;
        padding-bottom: 2px !important;
    }

    .vs-single-product-page .woocommerce-tabs ul.tabs li {
        flex-shrink: 0 !important;
    }
}

/* =============================================================
   PATCH MOBILE V4 — PAGE PRODUIT COMPLÈTE
   Cible tous les éléments WooCommerce + thème
   ============================================================= */

@media (max-width: 767px) {

    /* ── 1. DONNER ASSEZ D'ESPACE EN BAS pour la barre sticky ── */
    body.single-product .site-main,
    body.single-product #primary,
    body.single-product #content,
    .vs-single-product-page div.product,
    .single-product div.product {
        padding-bottom: 100px !important;
        margin-bottom: 0 !important;
    }

    /* ── 2. LA BARRE STICKY — rester propre en bas ── */
    .vs-sp-mobile-sticky {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        z-index: 9999 !important;
        background: #fff !important;
        border-top: 1px solid #e5e7eb !important;
        border-radius: 0 !important;
        padding: 10px 16px !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        box-shadow: 0 -4px 20px rgba(15,23,42,0.14) !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .vs-sp-mobile-price,
    .vs-sp-mobile-sticky .vs-sp-mobile-price {
        font-size: 14px !important;
        font-weight: 900 !important;
        color: #0f172a !important;
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }

    .vs-sp-mobile-cart-btn,
    .vs-sp-mobile-sticky .vs-sp-mobile-cart-btn {
        flex: 1 !important;
        height: 46px !important;
        min-width: 0 !important;
        border-radius: 12px !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        text-align: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* ── 3. CACHER LE FORMULAIRE ADD TO CART DANS LA PAGE ──
       Le sticky bar en bas suffit sur mobile.
       On cible tous les emplacements possibles. ── */

    /* Dans la carte info WooCommerce */
    .vs-sp-info-card form.cart,
    .vs-sp-info-card .woocommerce-variation-add-to-cart,
    /* Dans le summary WooCommerce standard */
    .woocommerce-product-details__short-description + form.cart,
    .summary form.cart,
    /* Tout bouton add-to-cart flottant hors de la sticky bar */
    body.single-product .single_add_to_cart_button:not(.vs-sp-mobile-sticky *),
    body.vs-single-product-page .single_add_to_cart_button:not(.vs-sp-mobile-sticky *),
    body.single-product form.cart:not(.vs-sp-mobile-sticky *),
    body.vs-single-product-page form.cart:not(.vs-sp-mobile-sticky *) {
        display: none !important;
    }

    /* ── 4. CACHER Stripe, Google Pay hors de la sticky ── */
    body.single-product [class*="stripe"]:not(.vs-sp-mobile-sticky *),
    body.single-product [id*="stripe"]:not(.vs-sp-mobile-sticky *),
    body.single-product [class*="gpay"]:not(.vs-sp-mobile-sticky *),
    body.single-product [class*="google-pay"]:not(.vs-sp-mobile-sticky *),
    body.single-product [class*="payment-request"]:not(.vs-sp-mobile-sticky *),
    body.single-product .wp-block-woocommerce-product-button:not(.vs-sp-mobile-sticky *),
    body.vs-single-product-page [class*="stripe"]:not(.vs-sp-mobile-sticky *),
    body.vs-single-product-page [class*="gpay"]:not(.vs-sp-mobile-sticky *),
    body.vs-single-product-page [class*="payment-request"]:not(.vs-sp-mobile-sticky *) {
        display: none !important;
    }

    /* ── 5. HERO: colonne unique ── */
    .vs-sp-hero {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    /* ── 6. CARDS: padding réduit ── */
    .vs-sp-info-card,
    .vs-sp-gallery-card {
        border-radius: 18px !important;
        padding: 16px !important;
    }

    /* ── 7. TITRE ── */
    .vs-sp-title {
        font-size: 22px !important;
        line-height: 1.3 !important;
        margin-bottom: 10px !important;
    }

    /* ── 8. PRIX ── */
    .vs-sp-price-main {
        font-size: 24px !important;
    }

    .vs-sp-price-block {
        margin-bottom: 14px !important;
    }

    /* ── 9. VENDOR CARD ── */
    .vs-sp-vendor-card {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
        padding: 14px !important;
    }

    .vs-sp-vendor-actions {
        width: 100% !important;
        display: flex !important;
        gap: 8px !important;
    }

    .vs-sp-vendor-btn {
        flex: 1 !important;
        text-align: center !important;
        min-height: 42px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* ── 10. TRUST GRID → 2 colonnes sur mobile ── */
    .vs-sp-trust-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .vs-sp-trust-item {
        padding: 10px 12px !important;
        font-size: 12px !important;
    }

    /* ── 11. DESCRIPTION COURTE ── */
    .vs-sp-shortdesc {
        font-size: 14px !important;
        margin-bottom: 14px !important;
    }

    /* ── 12. META BOX ── */
    .vs-sp-meta-box {
        padding: 14px !important;
        border-radius: 16px !important;
    }

    /* ── 13. SHARE BUTTON ── */
    .vs-sp-actions-row {
        flex-wrap: wrap !important;
        gap: 8px !important;
        margin-top: 10px !important;
    }

    .vs-sp-action-btn {
        flex: 1 1 auto !important;
        min-height: 40px !important;
        text-align: center !important;
    }

    /* ── 14. WOOCOMMERCE TABS (Reviews, Description) ── */
    .vs-single-product-page .woocommerce-tabs,
    .single-product .woocommerce-tabs {
        border-radius: 18px !important;
        padding: 16px !important;
        margin-top: 14px !important;
    }

    .vs-single-product-page .woocommerce-tabs ul.tabs,
    .single-product .woocommerce-tabs ul.tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        gap: 6px !important;
        padding-bottom: 2px !important;
    }

    .vs-single-product-page .woocommerce-tabs ul.tabs li,
    .single-product .woocommerce-tabs ul.tabs li {
        flex-shrink: 0 !important;
    }

    /* ── 15. REVIEWS ── */
    .woocommerce-Reviews {
        padding: 0 !important;
    }

    .woocommerce-Reviews #commentform {
        padding: 0 !important;
    }

    .woocommerce-Reviews #commentform textarea,
    .woocommerce-Reviews #commentform p input {
        width: 100% !important;
        box-sizing: border-box !important;
        font-size: 14px !important;
    }

    .woocommerce-Reviews #commentform p {
        margin-bottom: 12px !important;
    }

    .woocommerce-Reviews #commentform .form-submit input {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 14px !important;
    }

    /* ── 16. VISIT STORE CARD ── */
    .vs-sp-vendor-mini-card,
    .vs-sp-vendor-box {
        border-radius: 16px !important;
        padding: 14px !important;
        margin-top: 12px !important;
    }

    /* ── 17. RELATED PRODUCTS ── */
    .vs-sp-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .vs-single-product-page .related.products {
        padding: 0 12px !important;
        margin-top: 16px !important;
    }

    /* ── 18. BREADCRUMB ── */
    .vs-sp-breadcrumb {
        font-size: 12px !important;
        margin-bottom: 10px !important;
    }

    /* ── 19. QUANTITY (si visible hors carte) ── */
    .single-product .quantity .qty {
        min-height: 44px !important;
        font-size: 16px !important;
        text-align: center !important;
    }
}

/* Très petits écrans */
@media (max-width: 380px) {
    .vs-sp-trust-grid {
        grid-template-columns: 1fr !important;
    }

    .vs-sp-vendor-actions {
        flex-direction: column !important;
    }

    .vs-sp-vendor-btn {
        width: 100% !important;
    }

    .vs-sp-mobile-price {
        font-size: 13px !important;
    }
}
