/*
Theme Name: Hello Elementor Child - Vision Globale
Theme URI: https://visionglobaleinformatique.com/
Description: Thème enfant sur-mesure pour Vision Globale Informatique, inspiré de l'ergonomie e-commerce tech moderne (dispo.sn / LDLC)
Author: Antigravity
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

:root {
    --color-primary: #0A356D;
    --color-primary-dark: #062144;
    --color-primary-light: #154c93;
    --color-primary-subtle: #eff6ff;
    --color-secondary: #0f172a;
    --color-subnav: #1e293b;
    --color-subnav-hover: #0f172a;
    --color-accent: #0284c7;
    --color-whatsapp: #25d366;
    --color-whatsapp-hover: #20ba59;
    --color-text-main: #1e293b;
    --color-text-muted: #64748b;
    --color-bg-light: #ffffff;
    --color-card-border: #e2e8f0;
    --font-sans: ui-sans-serif, system-ui, sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 14px rgba(10, 53, 109, 0.08);
    --shadow-lg: 0 12px 28px rgba(10, 53, 109, 0.14);
}

/* Base & Typography (Exactement la police moderne de dispo.sn) */
html, body, #page, .site, .site-content, .vg-homepage-main {
    font-family: var(--font-sans);
    color: var(--color-text-main);
    background-color: #ffffff !important;
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.15s ease;
}

a:hover {
    color: var(--color-primary-light);
}

/* ==========================================================================
   1. TRUST-BAR (Bandeau de réassurance centré avec séparateur style dispo.sn)
   ========================================================================== */
.vg-trust-bar {
    background: var(--color-primary-dark);
    color: #ffffff;
    font-size: 0.8125rem;
    font-weight: 500;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.vg-trust-bar-inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0.45rem 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
}

.vg-trust-list {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.15rem;
}

.vg-trust-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #ffffff;
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: 500;
}

.vg-trust-item svg {
    width: 1rem;
    height: 1rem;
    color: #ffffff;
    stroke: currentColor;
    flex-shrink: 0;
}

.vg-trust-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    background: rgba(255, 255, 255, 0.32);
    flex-shrink: 0;
}

.vg-trust-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s ease;
}

.vg-trust-phone:hover {
    color: #93c5fd;
    text-decoration: underline;
}

.vg-trust-phone-sep {
    color: rgba(255, 255, 255, 0.45);
    font-weight: 400;
    margin: 0 0.1rem;
}

.vg-trust-phone svg {
    width: 1rem;
    height: 1rem;
    color: #ffffff;
    stroke: currentColor;
    flex-shrink: 0;
}

/* ==========================================================================
   2. HEADER PRINCIPAL (Bleu Vision Globale #0A356D)
   ========================================================================== */
#site-header,
.site-header,
.vg-site-header,
#site-header:not(.dynamic-header) {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--color-primary);
    box-shadow: none;
    transition: box-shadow 0.25s ease;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#site-header.is-scrolled {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.vg-hdr-main-row {
    background: var(--color-primary);
    padding: 0.65rem 0;
    width: 100% !important;
    display: block !important;
}

.vg-hdr-main-inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    width: 100%;
    box-sizing: border-box;
}

/* Logo - Taille uniforme et nette sur TOUTES les pages (accueil, boutique, catégories, recherche) */
.vg-logo-link {
    display: inline-flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    text-decoration: none !important;
    line-height: 1 !important;
}

.vg-logo-img,
#site-header .vg-logo-img,
.site-header .vg-logo-img,
.woocommerce-page #site-header .vg-logo-img {
    height: 42px !important;
    width: auto !important;
    max-height: 42px !important;
    max-width: 155px !important;
    object-fit: contain !important;
    display: block !important;
    background: transparent !important;
    transition: transform 0.15s ease !important;
}

.vg-logo-img:hover {
    transform: scale(1.02);
}

/* Barre de recherche centrale (Design fidèle à dispo.sn, moderne et fluide) */
.vg-hdr-search {
    flex: 1;
    max-width: 680px;
    margin: 0 auto;
    position: relative;
    min-width: 0;
}

.vg-search-form {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 44px !important;
    background: #ffffff !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    padding: 0 !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.vg-search-form:focus-within {
    border-color: #60a5fa !important;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.35), 0 3px 10px rgba(0, 0, 0, 0.2) !important;
}

.vg-search-input,
.vg-search-form input[type="search"]#vg-live-search-input,
.vg-hdr-search input[type="search"] {
    flex: 1 1 auto !important;
    height: 100% !important;
    border: none !important;
    border-width: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: #ffffff !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    padding: 0 0.5rem 0 1.25rem !important;
    font-size: 0.9375rem !important;
    color: #111827 !important;
    font-family: var(--font-sans) !important;
    line-height: normal !important;
    border-radius: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
}

.vg-search-input:focus,
.vg-search-form input[type="search"]:focus {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

.vg-search-input::-webkit-search-decoration,
.vg-search-input::-webkit-search-cancel-button,
.vg-search-input::-webkit-search-results-button,
.vg-search-input::-webkit-search-results-decoration {
    -webkit-appearance: none !important;
    display: none !important;
}

.vg-search-input::placeholder {
    color: #94a3b8 !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
}

.vg-search-submit {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 3.25rem !important;
    height: 100% !important;
    background: #ffffff !important;
    border: none !important;
    outline: none !important;
    cursor: pointer !important;
    color: var(--color-primary) !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    transition: color 0.15s ease, background-color 0.15s ease !important;
}

.vg-search-submit:hover {
    color: var(--color-primary-dark) !important;
    background-color: #f8fafc !important;
    transform: none !important;
}

.vg-search-submit svg {
    width: 1.3rem !important;
    height: 1.3rem !important;
    stroke: currentColor !important;
    stroke-width: 2.5 !important;
}

/* Résultats autocomplétion */
.vg-search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 0.4rem;
    background: #ffffff;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-card-border);
    max-height: 400px;
    overflow-y: auto;
    z-index: 1050;
    display: none;
}

.vg-search-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid #f1f5f9;
    color: var(--color-text-main);
    transition: background 0.15s;
}

.vg-search-item:hover {
    background: var(--color-primary-subtle);
}

.vg-search-item-thumb {
    width: 40px;
    height: 40px;
    object-fit: contain;
    border-radius: 4px;
    border: 1px solid #e2e8f0;
}

/* Boutons d'action droite (Contact, Connexion, Mon Panier) */
.vg-hdr-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.vg-icon-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.45rem 0.75rem;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    border-radius: 8px;
    border: none;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    background: transparent;
    cursor: pointer;
    position: relative;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.vg-icon-btn svg {
    width: 1.3rem !important;
    height: 1.3rem !important;
    stroke-width: 1.8;
    color: #ffffff;
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.vg-icon-label {
    font-size: 0.6875rem;
    letter-spacing: 0.01em;
    color: rgba(255, 255, 255, 0.9);
    transition: color 0.15s ease;
}

/* Hover moderne & fluide style tech premium */
.vg-icon-btn:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.vg-icon-btn:hover svg {
    transform: scale(1.08);
    color: #ffffff;
}

.vg-icon-btn:hover .vg-icon-label {
    color: #ffffff;
}

.vg-icon-btn:active {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.22);
}

/* Pastille Mon Panier (Badge rouge vif notification moderne) */
.vg-cart-badge {
    position: absolute;
    top: -5px;
    right: -8px;
    background: #ef4444;
    color: #ffffff;
    font-size: 0.625rem;
    font-weight: 800;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.25rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--color-primary);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    line-height: 1;
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.vg-icon-btn:hover .vg-cart-badge {
    transform: scale(1.12);
}

/* ==========================================================================
   3. SOUS-NAVIGATION & MÉGA-MENU (Anthracite sombre #1e293b style dispo.sn)
   ========================================================================== */
.vg-hdr-subnav {
    background: var(--color-subnav);
    position: relative;
    z-index: 995;
    display: block !important;
    width: 100% !important;
}

.vg-hdr-subnav-inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
}

.vg-cat-trigger {
    position: relative;
    z-index: 100;
}

.vg-all-cats-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    padding: 0.65rem 1.15rem !important;
    background: #0f172a !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    font-family: var(--font-sans) !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    border-left: 3px solid #38bdf8 !important;
    transition: background 0.15s ease !important;
}

.vg-all-cats-btn:hover {
    background: #06090e !important;
    color: #ffffff !important;
}

.vg-cats-panel {
    position: absolute;
    top: 100%;
    left: 0;
    width: 320px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgba(10, 53, 109, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
    border-top: 3px solid var(--color-primary);
    border-radius: 0 0 10px 10px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px);
    transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 9999;
    padding: 0.35rem 0;
    border-inline: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}

.vg-cat-trigger:hover .vg-cats-panel,
.vg-cats-panel:hover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.vg-cat-item-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 1rem;
    color: var(--color-text-main);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.vg-cat-item-link:hover {
    background: var(--color-primary-subtle);
    border-left-color: var(--color-primary);
    color: var(--color-primary);
}

.vg-cat-item-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.vg-cat-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 7px;
    background: #f1f5f9;
    color: var(--color-primary);
    flex-shrink: 0;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.vg-cat-icon-badge svg {
    width: 1.1rem;
    height: 1.1rem;
}

.vg-cat-item-link:hover .vg-cat-icon-badge {
    background: var(--color-primary);
    color: #ffffff;
    transform: scale(1.04);
}

.vg-cat-arrow {
    width: 0.75rem;
    height: 0.75rem;
    color: #94a3b8;
    flex-shrink: 0;
    transition: transform 0.18s ease, color 0.18s ease;
}

.vg-cat-item-link:hover .vg-cat-arrow {
    color: var(--color-primary);
    transform: translateX(3px);
}

.vg-cat-item-all {
    margin-top: 0.35rem;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
}

.vg-cat-badge-primary {
    background: #e0f2fe !important;
    color: var(--color-primary) !important;
}

.vg-cat-item-all:hover .vg-cat-badge-primary {
    background: var(--color-primary) !important;
    color: #ffffff !important;
}

/* --- SOUS-PANNEAU FLYOUT DES SOUS-CATÉGORIES (Style Amazon / LDLC / Fnac) --- */
.vg-cat-nav-item {
    position: static;
}

.vg-cat-nav-item:hover > .vg-cat-item-link {
    background: var(--color-primary-subtle);
    border-left-color: var(--color-primary);
    color: var(--color-primary);
}

.vg-cat-nav-item:hover > .vg-cat-item-link .vg-cat-icon-badge {
    background: var(--color-primary);
    color: #ffffff;
    transform: scale(1.04);
}

.vg-cat-nav-item:hover > .vg-cat-item-link .vg-cat-arrow {
    color: var(--color-primary);
    transform: translateX(4px);
}

.vg-cat-subpanel {
    position: absolute;
    top: -3px;
    left: calc(100% - 1px);
    width: 320px;
    min-height: calc(100% + 4px);
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-top: 3px solid var(--color-primary);
    border-radius: 0 10px 10px 0;
    box-shadow: 14px 14px 34px rgba(10, 53, 109, 0.12), 2px 2px 6px rgba(0, 0, 0, 0.04);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-6px);
    transition: opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1), transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.18s ease;
    z-index: 10001;
    display: flex;
    flex-direction: column;
    padding: 0.75rem 0;
    box-sizing: border-box;
}

.vg-cat-nav-item:hover > .vg-cat-subpanel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
}

.vg-subpanel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 1.15rem 0.65rem;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 0.4rem;
}

.vg-subpanel-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.vg-subpanel-all {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.vg-subpanel-all:hover {
    color: #07254d;
    text-decoration: underline;
}

.vg-subpanel-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.vg-subcat-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 1.15rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #334155;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease, padding-left 0.12s ease;
}

.vg-subcat-link:hover {
    background: #f8fafc;
    color: var(--color-primary);
    border-left-color: var(--color-primary);
    padding-left: 1.35rem;
}

.vg-subcat-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 0.5rem;
}

.vg-subcat-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
    background: #f1f5f9;
    border-radius: 9999px;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
}

.vg-subcat-link:hover .vg-subcat-count {
    background: var(--color-primary);
    color: #ffffff;
}


.vg-subnav-links {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
}

.vg-subnav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.65rem 0.9rem;
    color: #cbd5e1;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
    transition: color 0.15s, background 0.15s;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}

.vg-subnav-link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}

/* ==========================================================================
   4. STRUCTURE & COMPOSANTS ACCUEIL (Style exact dispo.sn)
   ========================================================================== */
.vg-container {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 1rem;
}

.vg-section {
    padding: 1.5rem 0;
    background: #ffffff;
}

/* Toutes les sections sur fond blanc direct, sans cadre ombré ni fond différent */
.vg-rail-section,
.vg-categories-section,
.vg-brands-section,
.vg-pillars-section,
.vg-b2b-section,
.vg-quick-pills-section,
.vg-slider-section {
    background: #ffffff;
    box-shadow: none !important;
}

.vg-rail-section .vg-container,
.vg-categories-section .vg-container,
.vg-brands-section .vg-container {
    background: #ffffff;
    border: none;
    border-radius: 0;
    box-shadow: none !important;
    padding: 0 1rem;
}

.vg-rail-alt {
    background: #ffffff;
    border: none;
    box-shadow: none !important;
}

/* En-têtes de sections sobres et réduits (pas de flashy, sentence case) */
.vg-section-head {
    text-align: center;
    margin-bottom: 1.5rem;
}

.vg-section-pill {
    display: inline-block;
    background: var(--color-primary);
    color: #ffffff;
    border: none;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 0.25rem 0.85rem;
    border-radius: 9999px;
    margin-bottom: 0.45rem;
    letter-spacing: 0.02em;
    text-transform: none;
}

.vg-section-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.35rem;
    line-height: 1.25;
}

.vg-section-subtitle {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    margin: 0;
}

/* --- 4.1 SLIDER D'ACCUEIL HERO --- */
.vg-slider-section {
    padding: 1rem 0 0.5rem;
}

.vg-slider-wrapper {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background: #082245;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    width: 100%;
    aspect-ratio: 2.5 / 1;
    max-height: 520px;
    height: auto;
}

.vg-slides-track {
    position: relative;
    width: 100%;
    height: 100%;
}

.vg-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.6s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vg-slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

.vg-slide-link {
    display: block;
    width: 100%;
    height: 100%;
}

.vg-slide-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Flèches de navigation circulaires sombres (Style exact dispo.sn) */
.vg-slider-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    background: rgba(0, 0, 0, 0.45) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 9999px !important;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    transition: background 0.2s, transform 0.2s, opacity 0.2s;
    -webkit-appearance: none !important;
}

.vg-slider-nav:hover {
    background: rgba(0, 0, 0, 0.75) !important;
    color: #ffffff !important;
    transform: translateY(-50%) scale(1.08);
}

.vg-slider-nav svg {
    width: 1.15rem !important;
    height: 1.15rem !important;
    min-width: 1.15rem !important;
    min-height: 1.15rem !important;
    stroke: #ffffff !important;
    stroke-width: 2.5 !important;
    flex-shrink: 0 !important;
    display: block !important;
}

.vg-slider-prev {
    left: 1rem;
}

.vg-slider-next {
    right: 1rem;
}

/* Indicateurs de pagination points (Style pilule dispo.sn) */
.vg-slider-dots {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.vg-dot {
    width: 8px !important;
    height: 8px !important;
    border-radius: 9999px !important;
    border: none !important;
    background: rgba(255, 255, 255, 0.6) !important;
    cursor: pointer;
    padding: 0 !important;
    transition: width 0.25s ease, background 0.25s ease, border-radius 0.25s ease;
}

.vg-dot.is-active {
    width: 26px !important;
    background: #ffffff !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* --- 4.2 BARRE DE CATÉGORIES FLOTTANTE SOUS LE SLIDER (Style Pilule dispo.sn) --- */
.vg-catbar-nav {
    position: sticky;
    top: var(--vg-header-h, 64px);
    z-index: 990;
    padding: 0.55rem 0;
    background: transparent;
    pointer-events: none;
    will-change: transform;
}

.vg-catbar-nav.is-docked {
    background: transparent;
    box-shadow: none;
    border: none;
}

.vg-catbar-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.vg-catbar-capsule {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 9999px;
    box-shadow: 0 6px 20px rgba(17, 17, 17, 0.08);
    padding: 0.25rem 0.45rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    overflow: visible;
    max-width: 100%;
    pointer-events: auto;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.vg-catbar-nav.is-docked .vg-catbar-capsule {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    border-color: #cbd5e1;
}

.vg-catbar-capsule::-webkit-scrollbar {
    display: none;
}

@media (max-width: 991px) {
    .vg-catbar-capsule {
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
    }
}

.vg-catbar-item {
    position: relative;
    flex: 0 0 auto;
}

.vg-catbar-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1e293b;
    white-space: nowrap;
    text-decoration: none;
    border-radius: 9999px;
    transition: all 0.15s ease;
}

.vg-catbar-chevron {
    width: 0.65rem;
    height: 0.65rem;
    opacity: 0.55;
    stroke: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.vg-catbar-item:hover > .vg-catbar-tab {
    background: var(--color-primary);
    color: #ffffff;
}

.vg-catbar-item:hover > .vg-catbar-tab .vg-catbar-chevron {
    transform: rotate(180deg);
    opacity: 1;
    color: #ffffff;
}

.vg-catbar-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    min-width: 250px;
    max-width: 320px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(10, 53, 109, 0.16), 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid #e2e8f0;
    border-top: 3px solid #0A356D;
    border-radius: 0 0 10px 10px;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1), transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.18s ease;
    padding: 0.35rem 0;
    margin: 0;
}

/* Pont invisible pour éviter la perte du hover entre le bouton et le dropdown */
.vg-catbar-dropdown::before {
    content: '';
    position: absolute;
    top: -14px;
    left: 0;
    right: 0;
    height: 14px;
    background: transparent;
}

.vg-catbar-item:hover > .vg-catbar-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

/* Calage bord gauche pour le premier onglet */
.vg-catbar-item:first-child .vg-catbar-dropdown {
    left: 0;
    transform: translateY(6px);
}
.vg-catbar-item:first-child:hover > .vg-catbar-dropdown {
    transform: translateY(0);
}

/* Calage bord droit pour le dernier onglet */
.vg-catbar-item:last-child .vg-catbar-dropdown {
    left: auto;
    right: 0;
    transform: translateY(6px);
}
.vg-catbar-item:last-child:hover > .vg-catbar-dropdown {
    transform: translateY(0);
}

.vg-catbar-dd-all {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.95rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
    background: rgba(10, 53, 109, 0.05);
    border-bottom: 1px solid #eef2f6;
    transition: background 0.15s ease, color 0.15s ease;
}

.vg-catbar-dd-all:hover {
    background: rgba(10, 53, 109, 0.12);
    color: #07254d;
}

.vg-catbar-dd-list {
    display: flex;
    flex-direction: column;
    padding: 0.2rem 0;
}

.vg-catbar-dd-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.95rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #334155;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease, padding-left 0.12s ease;
}

.vg-catbar-dd-link:hover {
    background: #f8fafc;
    color: var(--color-primary);
    border-left-color: var(--color-primary);
    padding-left: 1.15rem;
}

.vg-catbar-dd-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 0.5rem;
}

.vg-catbar-dd-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem 0.45rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
    background: #f1f5f9;
    border-radius: 9999px;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
}

.vg-catbar-dd-link:hover .vg-catbar-dd-count,
.vg-catbar-dd-all:hover .vg-catbar-dd-count {
    background: var(--color-primary);
    color: #ffffff;
}

/* --- 4.3 GRILLE DES 6 CATÉGORIES PHARES --- */
.vg-featured-cats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.15rem;
}

.vg-featured-cat-card {
    position: relative;
    aspect-ratio: 16 / 9;
    min-height: 190px;
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background: #ffffff;
    border: 1px solid rgba(10, 53, 109, 0.12);
    box-shadow: 0 2px 8px rgba(10, 53, 109, 0.05);
    text-decoration: none;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.2s ease;
}

.vg-featured-cat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(10, 53, 109, 0.16);
    border-color: rgba(10, 53, 109, 0.35);
}

.vg-featured-cat-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.vg-featured-cat-card:hover .vg-featured-cat-bg {
    transform: scale(1.06);
}

.vg-featured-cat-veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to top, rgba(10, 40, 85, 0.92) 0%, rgba(10, 40, 85, 0.45) 45%, rgba(10, 40, 85, 0.05) 75%, transparent 100%);
    pointer-events: none;
    transition: background 0.3s ease;
}

.vg-featured-cat-card:hover .vg-featured-cat-veil {
    background: linear-gradient(to top, rgba(10, 40, 85, 0.95) 0%, rgba(10, 40, 85, 0.52) 48%, rgba(10, 40, 85, 0.08) 78%, transparent 100%);
}

.vg-featured-cat-ribbon {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 2;
    background: rgba(10, 53, 109, 0.9);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #ffffff;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 0.22rem 0.65rem;
    border-radius: 6px;
    letter-spacing: 0.03em;
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.vg-featured-cat-content {
    position: relative;
    z-index: 2;
    padding: 1.15rem;
    color: #ffffff;
}

.vg-featured-cat-content h3 {
    margin: 0 0 0.3rem;
    font-size: 1.125rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.25;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.vg-featured-cat-content .vg-featured-cat-link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #93c5fd;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: transform 0.2s ease, color 0.2s ease;
}

.vg-featured-cat-card:hover .vg-featured-cat-content .vg-featured-cat-link {
    transform: translateX(4px);
    color: #ffffff;
}

.vg-featured-cat-count {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 2;
    font-size: 0.65rem;
    font-weight: 700;
    color: #ffffff;
    background: rgba(15, 23, 42, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 0.22rem 0.6rem;
    border-radius: 9999px;
    letter-spacing: 0.02em;
}

.vg-cat-shine {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,0.18) 50%, transparent 60%);
    transform: translateX(-120%);
    pointer-events: none;
    transition: transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}

.vg-featured-cat-card:hover .vg-cat-shine {
    transform: translateX(120%);
}

.vg-cat-g0 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #0b1f3d 0%, #15325b 55%, #0a356d 100%); }
.vg-cat-g1 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #0f172a 0%, #1e293b 100%); }
.vg-cat-g2 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #1e1b4b 0%, #0f172a 100%); }
.vg-cat-g3 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #0c2340 0%, #1a365d 100%); }
.vg-cat-g4 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #18181b 0%, #09090b 100%); }
.vg-cat-g5 .vg-featured-cat-bg { background-image: linear-gradient(150deg, #0f2b48 0%, #162a45 55%, #1e3a5f 100%); }

.vg-cat-glow {
    position: absolute;
    top: -35%;
    right: -25%;
    width: 70%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(10, 53, 109, 0.55) 0%, rgba(10, 53, 109, 0) 70%);
    filter: blur(8px);
    z-index: 1;
    pointer-events: none;
}

@media (max-width: 768px) {
    .vg-featured-cats-grid > a:last-child:nth-child(odd) {
        grid-column: span 2;
    }
}

/* --- 4.4 LES 4 PILIERS DE RÉASSURANCE --- */
.vg-pillars-section {
    padding: 0.75rem 0 1.25rem;
}

.vg-pillars-card {
    background: #ffffff;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 1.15rem 0.5rem;
    box-shadow: none;
}

.vg-pillar-box {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0 1.25rem;
    border-right: 1px solid #f1f5f9;
}

.vg-pillar-box:last-child {
    border-right: none;
}

.vg-pillar-icon-wrap {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #eff6ff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.vg-pillar-icon-wrap svg {
    width: 20px;
    height: 20px;
    stroke: var(--color-primary);
}

.vg-pillar-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.15rem;
    line-height: 1.3;
}

.vg-pillar-desc {
    font-size: 0.71875rem;
    color: var(--color-text-muted);
    margin: 0;
    line-height: 1.3;
}

/* ==========================================================================
   5. GRILLE PRODUITS (5 COLONNES EXACTES STYLE DISPO.SN) & CARTE PRODUIT
   ========================================================================== */
.vg-products-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.85rem;
    margin: 1.25rem 0;
}

.vg-product-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: var(--radius-sm);
    overflow: hidden;
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    box-shadow: none;
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.vg-product-card:hover {
    transform: translateY(-2px);
    box-shadow: none;
    border-color: var(--color-primary);
}

/* Ligne supérieure badges stock & remise */
.vg-card-badges-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 20px;
    margin-bottom: 0.45rem;
}

.vg-card-badge-stock {
    font-size: 0.58rem !important;
    font-weight: 700 !important;
    padding: 0.15rem 0.45rem !important;
    border-radius: 3px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    line-height: 1.15 !important;
}

.vg-stock-in {
    background: #16a34a !important;
    color: #ffffff !important;
    border: none !important;
}

.vg-stock-out {
    background: #64748b !important;
    color: #ffffff !important;
    border: none !important;
}

.vg-card-badge-discount {
    background: #dc2626 !important;
    color: #ffffff !important;
    border: none !important;
    font-size: 0.58rem !important;
    font-weight: 800 !important;
    padding: 0.15rem 0.45rem !important;
    border-radius: 3px !important;
    line-height: 1.15 !important;
}

/* Image produit contenue et centrée */
.vg-card-img-wrap {
    width: 100%;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.5rem;
    background: #ffffff;
}

.vg-card-img {
    max-height: 130px;
    max-width: 100%;
    object-fit: contain;
    transition: transform 0.2s ease;
}

.vg-product-card:hover .vg-card-img {
    transform: scale(1.05);
}

/* Corps de texte de la carte */
.vg-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.vg-card-cat {
    display: none !important;
}

.vg-card-title {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #1e293b !important;
    line-height: 1.45 !important;
    height: 2.9em !important;
    min-height: 2.9em !important;
    max-height: 2.9em !important;
    padding: 0 !important;
    box-sizing: content-box !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    text-overflow: ellipsis !important;
    margin: 0 0 0.4rem !important;
    word-break: break-word !important;
}

.vg-card-title a {
    color: inherit;
    text-decoration: none;
}

.vg-card-title a:hover {
    color: var(--color-primary);
}

.vg-card-rating {
    font-size: 0.6875rem;
    color: #f59e0b;
    margin-bottom: 0.35rem;
    letter-spacing: 1px;
}

/* Prix */
.vg-card-price-wrap {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin-top: auto !important;
    margin-bottom: 0.65rem;
}

.vg-card-price {
    font-size: 0.9375rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1.2;
}

.vg-card-price del {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    font-weight: 500;
    margin-right: 0.25rem;
}

.vg-card-price ins {
    text-decoration: none;
    color: var(--color-primary);
}

/* Actions de la carte */
.vg-card-actions {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.vg-btn-cart {
    background: #111827;
    color: #ffffff;
    font-size: 0.71875rem;
    font-weight: 600;
    padding: 0.45rem 0.5rem;
    border-radius: var(--radius-sm);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    transition: background 0.15s ease;
    width: 100%;
    text-decoration: none;
}

.vg-btn-cart:hover {
    background: #1f2937;
    color: #ffffff;
}

.vg-btn-wa {
    background: #25D366 !important;
    color: #ffffff !important;
    border: 1px solid #20ba59 !important;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.45rem 0.65rem;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    text-decoration: none;
    box-shadow: 0 1px 3px rgba(37, 211, 102, 0.25);
}

.vg-btn-wa svg {
    width: 14px !important;
    height: 14px !important;
    color: #ffffff !important;
    fill: currentColor !important;
    flex-shrink: 0;
}

.vg-btn-wa:hover {
    background: #20ba59 !important;
    border-color: #1aa64e !important;
    color: #ffffff !important;
    box-shadow: 0 3px 8px rgba(37, 211, 102, 0.4);
    transform: translateY(-1px);
}

/* Bouton "Voir plus de..." sous chaque rail */
.vg-section-footer {
    text-align: center;
    margin-top: 1rem;
}

.vg-btn-see-more {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.35rem;
    border-radius: 9999px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    color: var(--color-primary);
    font-size: 0.78125rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: none;
    transition: all 0.15s ease;
}

.vg-btn-see-more:hover {
    background: var(--color-primary);
    color: #ffffff;
    border-color: var(--color-primary);
    transform: translateY(-1px);
}

/* --- 4.5 BANNIÈRE B2B & ENTREPRISES --- */
.vg-b2b-section {
    padding: 1.5rem 0;
    background: #ffffff;
}

.vg-b2b-card {
    background: #ffffff;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    padding: 1.75rem 2rem;
    box-shadow: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}

.vg-b2b-info {
    flex: 1 1 500px;
}

.vg-b2b-pill {
    display: inline-block;
    background: var(--color-primary);
    color: #ffffff;
    font-size: 0.65625rem;
    font-weight: 700;
    padding: 0.2rem 0.65rem;
    border-radius: 9999px;
    letter-spacing: 0.03em;
    margin-bottom: 0.5rem;
}

.vg-b2b-title {
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.35rem;
    line-height: 1.3;
}

.vg-b2b-desc {
    font-size: 0.8125rem;
    color: #475569;
    line-height: 1.5;
    margin: 0;
}

.vg-b2b-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.vg-btn-b2b-wa {
    background: var(--color-whatsapp);
    color: #ffffff;
    font-weight: 700;
    font-size: 0.8125rem;
    padding: 0.65rem 1.15rem;
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(37, 211, 102, 0.25);
    transition: background 0.15s ease, transform 0.15s ease;
}

.vg-btn-b2b-wa:hover {
    background: var(--color-whatsapp-hover);
    color: #ffffff;
    transform: translateY(-1px);
}

.vg-btn-b2b-tel {
    background: var(--color-primary);
    color: #ffffff;
    font-weight: 700;
    font-size: 0.8125rem;
    padding: 0.65rem 1.15rem;
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
}

.vg-btn-b2b-tel:hover {
    background: var(--color-primary-light);
    color: #ffffff;
    transform: translateY(-1px);
}

/* --- 4.6 MARQUES PARTENAIRES (Style exact dispo.sn sur fond blanc) --- */
.partners-section {
    padding: 1.5rem 0 2.5rem;
    background: #ffffff;
    border-top: none;
    position: relative;
    overflow: hidden;
}

.partners-wrap {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 1rem;
    position: relative;
    z-index: 1;
}

.partners-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    margin: -0.5rem 0 1.25rem;
}

.partners-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #475569;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 9999px;
    padding: 0.35rem 0.875rem;
    box-shadow: none;
}

.partners-stat svg {
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
    color: var(--color-primary);
}

.partners-stat strong {
    color: #374151;
    font-weight: 800;
}

.partners-slider-wrap {
    padding: 0.5rem 0;
    background: #ffffff;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

@media (min-width: 640px) {
    .partners-slider-wrap {
        padding: 0.75rem 0;
    }
}

.bslider-root {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    position: relative;
    z-index: 1;
}

@media (min-width: 640px) {
    .bslider-root {
        gap: 0.625rem;
    }
}

.bslider-viewport {
    flex: 1;
    overflow: hidden;
    border-radius: 9px;
}

.bslider-track {
    display: flex;
    gap: 0.625rem;
    transition: transform 0.48s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

@media (min-width: 640px) {
    .bslider-track {
        gap: 0.75rem;
    }
}

.bslider-card {
    flex: 0 0 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 7.5rem;
    padding: 1.125rem 0.875rem 1rem;
    border: 1px solid #e8edf3;
    border-radius: 9px;
    text-decoration: none;
    background: #ffffff;
    box-shadow: none;
    transition: border-color 0.2s, transform 0.22s;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .bslider-card {
        flex: 0 0 calc(33.333% - 0.5rem);
    }
}

@media (min-width: 1024px) {
    .bslider-card {
        flex: 0 0 calc(20% - 0.6rem);
    }
}

.bslider-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(10, 53, 109, 0.03);
    opacity: 0;
    transition: opacity 0.22s;
}

.bslider-card:hover::before {
    opacity: 1;
}

.bslider-card:hover {
    border-color: rgba(10, 53, 109, 0.28);
    box-shadow: none;
    transform: translateY(-2px);
}

.bslider-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 3.5rem;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 1;
}

.bslider-logo {
    max-height: 3rem !important;
    max-width: 7rem !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    transition: transform 0.25s ease, filter 0.25s ease;
    filter: grayscale(25%) opacity(0.9);
}

.bslider-card:hover .bslider-logo {
    transform: scale(1.06);
    filter: grayscale(0%) opacity(1);
}

.bslider-brandname {
    font-size: 0.8125rem;
    font-weight: 800;
    color: #334155;
    text-align: center;
    line-height: 1.25;
    position: relative;
    z-index: 1;
    transition: color 0.18s;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 0.25rem;
}

.bslider-card:hover .bslider-brandname {
    color: #1e293b;
}

.bslider-card-cta {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    margin-top: 0.35rem;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.2s, transform 0.2s;
    position: relative;
    z-index: 1;
}

.bslider-card:hover .bslider-card-cta {
    opacity: 1;
    transform: translateY(0);
}

.bslider-arrow {
    flex-shrink: 0;
    width: 2.25rem !important;
    height: 2.25rem !important;
    min-width: 2.25rem !important;
    min-height: 2.25rem !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 9px !important;
    color: #374151 !important;
    cursor: pointer !important;
    transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.18s !important;
    box-shadow: none !important;
}

@media (min-width: 640px) {
    .bslider-arrow {
        width: 2.5rem !important;
        height: 2.5rem !important;
        min-width: 2.5rem !important;
        min-height: 2.5rem !important;
    }
}

.bslider-arrow:hover {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: scale(1.03) !important;
}

.bslider-arrow:disabled {
    opacity: 0.25 !important;
    cursor: default !important;
    transform: none !important;
    box-shadow: none !important;
}

.bslider-dots {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 0.875rem;
    position: relative;
    z-index: 1;
}

.bslider-dot {
    width: 0.4rem !important;
    height: 0.4rem !important;
    min-width: 0.4rem !important;
    min-height: 0.4rem !important;
    border-radius: 9999px !important;
    background: #cbd5e1 !important;
    border: none !important;
    cursor: pointer !important;
    padding: 0 !important;
    transition: background 0.2s, width 0.2s !important;
}

.bslider-dot.active {
    background: var(--color-primary) !important;
    width: 1.25rem !important;
}

.partners-trust {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.625rem;
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e8edf3;
}

@media (min-width: 640px) {
    .partners-trust {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.75rem;
    }
}

.partners-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.875rem 1rem;
    background: #ffffff;
    border: 1px solid #e8edf3;
    border-radius: 9px;
    box-shadow: none;
    transition: border-color 0.2s;
}

.partners-trust-item:hover {
    border-color: rgba(10, 53, 109, 0.25);
    box-shadow: none;
}

.partners-trust-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.partners-trust-icon--blue {
    background: rgba(10, 53, 109, 0.08);
    color: var(--color-primary);
}

.partners-trust-icon--green {
    background: rgba(10, 53, 109, 0.12);
    color: var(--color-primary-dark, #062144);
}

.partners-trust-icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

.partners-trust-item strong {
    display: block;
    font-size: 0.8125rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.15rem;
    line-height: 1.3;
}

.partners-trust-item span {
    display: block;
    font-size: 0.6875rem;
    color: #334155;
    line-height: 1.4;
}

.partners-cta-wrap {
    text-align: center;
    margin-top: 1.5rem;
}

.partners-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    background: var(--color-primary);
    color: #ffffff !important;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none !important;
    border-radius: 9px;
    transition: background 0.2s, transform 0.2s;
    box-shadow: none;
}

.partners-cta:hover {
    background: var(--color-primary-dark, #062144);
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: none;
}

.partners-cta svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s;
}

.partners-cta:hover svg {
    transform: translateX(3px);
}

/* ==========================================================================
   5. FOOTER PROFESSIONNEL TECH (Style LDLC / dispo.sn)
   ========================================================================== */
.vg-footer {
    background: #0f172a;
    color: #94a3b8;
    font-size: 0.8125rem;
    margin-top: 2.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.vg-footer-inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 2.25rem 1rem 1.25rem;
    width: 100%;
    box-sizing: border-box;
}

.vg-footer-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1.15fr;
    gap: 2.25rem;
    margin-bottom: 2rem;
}

@media (max-width: 991px) {
    .vg-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1.75rem;
    }
    .vg-footer-brand-col {
        grid-column: span 2;
    }
}

@media (max-width: 640px) {
    .vg-footer-grid {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }
    .vg-footer-brand-col {
        grid-column: span 1;
    }
}

.vg-footer-col h4 {
    color: #f1f5f9;
    font-size: 0.8125rem;
    font-weight: 700;
    margin-bottom: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.vg-footer-logo-link {
    display: inline-flex !important;
    align-items: center !important;
    margin-bottom: 0.85rem !important;
    line-height: 1 !important;
}

.vg-footer-logo-img,
.vg-footer .vg-footer-logo-img,
.vg-footer img.vg-footer-logo-img {
    height: 42px !important;
    width: auto !important;
    max-height: 42px !important;
    max-width: 155px !important;
    object-fit: contain !important;
    display: block !important;
    background: transparent !important;
    transition: transform 0.15s ease !important;
}

.vg-footer-logo-img:hover {
    transform: scale(1.02);
}

.vg-footer-desc {
    line-height: 1.55;
    margin-bottom: 1rem;
    color: #94a3b8;
    font-size: 0.8125rem;
    max-width: 360px;
}

.vg-footer-payments {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.vg-footer-payments-title {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 600;
    margin-bottom: 0.45rem;
}

.vg-payment-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.vg-pay-pill {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 4px;
    padding: 0.18rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 500;
    color: #cbd5e1;
    letter-spacing: 0.01em;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.vg-pay-pill:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}

.vg-footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.vg-footer-links li {
    margin-bottom: 0.45rem;
}

.vg-footer-links a {
    color: #94a3b8;
    text-decoration: none;
    font-size: 0.8125rem;
    transition: color 0.15s ease;
    display: inline-block;
}

.vg-footer-links a:hover {
    color: #ffffff;
}

.vg-footer-link-highlight {
    color: #cbd5e1 !important;
    font-weight: 600 !important;
    margin-top: 0.25rem;
}

.vg-footer-link-highlight:hover {
    color: #ffffff !important;
    text-decoration: underline;
}

.vg-footer-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.vg-footer-contact-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    color: #94a3b8;
    transition: color 0.15s ease;
}

.vg-footer-contact-link:hover {
    color: #ffffff;
}

.vg-footer-schedule-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: #94a3b8;
}

.vg-footer-icon-wrap {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #94a3b8;
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: background 0.15s ease, color 0.15s ease;
}

.vg-footer-contact-link:hover .vg-footer-icon-wrap {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.vg-footer-icon-wrap svg {
    width: 14px;
    height: 14px;
}

.vg-icon-wrap-wa {
    background: rgba(37, 211, 102, 0.1);
    color: #25d366;
    border-color: rgba(37, 211, 102, 0.2);
}

.vg-footer-wa-link:hover .vg-icon-wrap-wa {
    background: rgba(37, 211, 102, 0.2);
}

.vg-footer-contact-text {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    font-size: 0.8125rem;
}

.vg-footer-contact-text small {
    font-size: 0.65rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}

.vg-footer-contact-text strong {
    font-size: 0.8125rem;
    color: #e2e8f0;
    font-weight: 600;
}

.vg-footer-tel-item {
    color: #e2e8f0;
    text-decoration: none;
    transition: color 0.15s ease;
}

.vg-footer-tel-item:hover {
    color: #93c5fd;
    text-decoration: underline;
}

.vg-pillar-desc a {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s ease;
}

.vg-pillar-desc a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.vg-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding-top: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.75rem;
    color: #64748b;
}

.vg-footer-bottom-links {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.vg-footer-bottom-links a {
    color: #64748b;
    text-decoration: none;
    font-size: 0.75rem;
    transition: color 0.15s ease;
}

.vg-footer-bottom-links a:hover {
    color: #cbd5e1;
}

.vg-footer-bottom-sep {
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.65rem;
}

/* Bouton flottant WhatsApp */
.vg-floating-wa {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 999;
    background: var(--color-whatsapp);
    color: #ffffff;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(37, 211, 102, 0.4);
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s;
}

.vg-floating-wa:hover {
    transform: scale(1.1);
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.5);
    color: #ffffff;
}

.vg-floating-wa svg {
    width: 2rem;
    height: 2rem;
}

/* ==========================================================================
   6. RESPONSIVE MOBILE & VOLET LATÉRAL (DRAWER)
   ========================================================================== */
.vg-burger-button {
    display: none;
    background: transparent;
    border: 1.5px solid rgba(255, 255, 255, 0.4);
    border-radius: var(--radius-sm);
    color: #ffffff;
    cursor: pointer;
    padding: 0.4rem;
}

.vg-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(4px);
    z-index: 99999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.vg-drawer-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

.vg-mobile-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 85%;
    max-width: 360px;
    background: #ffffff;
    z-index: 100000;
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.25);
}

.vg-mobile-drawer.is-open {
    transform: translateX(0);
}

.vg-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background: var(--color-primary);
}

.vg-drawer-close-btn {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    transition: opacity 0.15s, transform 0.15s !important;
    -webkit-appearance: none !important;
}

.vg-drawer-close-btn:hover {
    background: transparent !important;
    opacity: 0.8 !important;
}

.vg-drawer-close-btn:active {
    transform: scale(0.9) !important;
    opacity: 0.7 !important;
}

.vg-drawer-close-btn svg {
    width: 24px !important;
    height: 24px !important;
    stroke: #ffffff !important;
    stroke-width: 2.2 !important;
    display: block !important;
}

.vg-drawer-quick-contact {
    padding: 0.85rem 1.25rem;
    background: #f8fafc;
    border-bottom: 1px solid var(--color-card-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.vg-drawer-wa-btn {
    background: var(--color-whatsapp);
    color: #ffffff !important;
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.65rem 1rem;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
}

.vg-drawer-tel-btn {
    background: var(--color-primary);
    color: #ffffff !important;
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.65rem 1rem;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
}

.vg-drawer-body {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem;
}

.vg-drawer-title {
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-bottom: 0.5rem;
}

.vg-drawer-menu {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}

.vg-drawer-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.5rem;
    color: var(--color-text-main);
    font-size: 0.9rem;
    font-weight: 600;
    border-bottom: 1px solid #f1f5f9;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}

.vg-drawer-link .vg-cat-icon-badge {
    width: 1.95rem;
    height: 1.95rem;
    border-radius: 6px;
}

.vg-drawer-link .vg-cat-icon-badge svg {
    width: 1.05rem;
    height: 1.05rem;
}

.vg-drawer-link:hover {
    color: var(--color-primary);
    background: #f8fafc;
}

.vg-drawer-link:hover .vg-cat-icon-badge {
    background: var(--color-primary);
    color: #ffffff;
}

/* ==========================================================================
   6. RESPONSIVE TABLETTE & MOBILE (Max-Width: 1024px)
   Header Fixe 2 Rangs, Drawer, Masquage Trust Bar & Cat Bar, Bottom Dock
   ========================================================================== */
.vg-mobile-bottom-dock {
    display: none;
}

@media (max-width: 1024px) {
    /* Safe Area & Body Padding for Fixed Header & Bottom Dock */
    body {
        padding-top: 134px !important;
        padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)) !important;
    }
    body.admin-bar {
        padding-top: 166px !important;
    }
    @media (max-width: 782px) {
        body.admin-bar {
            padding-top: 180px !important;
        }
    }

    /* 1. Trust Bar masquée sur tablette et mobile pour un header épuré (Style dispo.sn) */
    .vg-trust-bar {
        display: none !important;
    }

    /* 2. Header Fixe au scroll sur tablette et mobile (Style dispo.sn) */
    #site-header,
    .vg-site-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        z-index: 9999 !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15) !important;
    }
    body.admin-bar #site-header,
    body.admin-bar .vg-site-header {
        top: 32px !important;
    }
    @media (max-width: 782px) {
        body.admin-bar #site-header,
        body.admin-bar .vg-site-header {
            top: 46px !important;
        }
    }

    .vg-hdr-subnav {
        display: none !important;
    }

    /* Header 2 Rangs : Rang 1 (Burger + Logo + Actions) & Rang 2 (Recherche Full Width) */
    .vg-hdr-main-inner {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        padding: 0.5rem 1rem !important;
        max-width: 100% !important;
    }
    .vg-burger-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 38px !important;
        height: 38px !important;
        padding: 0 !important;
        border-radius: 8px !important;
        border: 1px solid rgba(255, 255, 255, 0.25) !important;
        color: #ffffff !important;
        background: transparent !important;
        order: 1 !important;
    }
    .vg-logo-link {
        order: 2 !important;
        margin: 0 auto 0 0.75rem !important;
        display: inline-flex !important;
        align-items: center !important;
    }
    .vg-logo-img,
    #site-header .vg-logo-img,
    .woocommerce-page #site-header .vg-logo-img,
    .vg-footer-logo-img {
        height: 32px !important;
        max-height: 32px !important;
        max-width: 140px !important;
        object-fit: contain !important;
    }
    .vg-hdr-actions {
        order: 3 !important;
        display: flex !important;
        align-items: center !important;
        gap: 0.45rem !important;
        margin-left: auto !important;
    }
    /* Masquer le bouton Contact dans le header car déjà présent dans le menu volet et le footer */
    .vg-hdr-actions a[href*="contact"] {
        display: none !important;
    }
    .vg-hdr-actions .vg-icon-btn {
        padding: 0 !important;
        width: 38px !important;
        height: 38px !important;
        border-radius: 8px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: rgba(255, 255, 255, 0.08) !important;
    }
    .vg-hdr-actions .vg-icon-btn:hover {
        background: rgba(255, 255, 255, 0.16) !important;
    }
    .vg-hdr-actions .vg-icon-btn svg {
        width: 1.25rem !important;
        height: 1.25rem !important;
    }
    .vg-icon-label {
        display: none !important;
    }
    .vg-cart-badge {
        top: -4px !important;
        right: -6px !important;
        font-size: 0.625rem !important;
        min-width: 16px !important;
        height: 16px !important;
        line-height: 16px !important;
    }

    /* Barre de recherche en capsule moderne (Pill style dispo.sn) */
    .vg-hdr-search {
        order: 4 !important;
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 0.2rem !important;
    }
    .vg-search-form {
        height: 44px !important;
        border-radius: 9999px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
        background: #ffffff !important;
        overflow: hidden !important;
    }
    .vg-search-input,
    .vg-search-form input[type="search"]#vg-live-search-input {
        padding: 0 0.75rem 0 1.25rem !important;
        font-size: 0.875rem !important;
        border-radius: 9999px 0 0 9999px !important;
    }
    .vg-search-submit {
        width: 44px !important;
        height: 100% !important;
        border-radius: 0 9999px 9999px 0 !important;
        background: #ffffff !important;
        color: #0A356D !important;
    }
    .vg-search-submit svg {
        width: 18px !important;
        height: 18px !important;
    }

    /* 3. Slider d'accueil */
    .vg-slider-section {
        padding: 0.75rem 0 0.5rem !important;
    }
    .vg-slider-wrapper {
        height: auto;
        aspect-ratio: 2.4 / 1;
        border-radius: 14px;
    }

    /* Masquer la barre des catégories sous le slider sur tablette & mobile */
    #vg-catbar-nav,
    .vg-catbar-nav,
    .vg-catbar-container,
    .vg-catbar-section,
    .vg-catbar-strip,
    .vg-catbar-dropdown {
        display: none !important;
    }

    .vg-rail-section .vg-container,
    .vg-categories-section .vg-container,
    .vg-brands-section .vg-container {
        padding: 0 1rem;
    }

    /* Flèches de navigation visibles sur le slider */
    .vg-slider-nav {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
        padding: 0 !important;
        margin: 0 !important;
        background: rgba(0, 0, 0, 0.55) !important;
        border: none !important;
        border-radius: 9999px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 10 !important;
        -webkit-appearance: none !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
    }
    .vg-slider-nav svg {
        width: 18px !important;
        height: 18px !important;
        min-width: 18px !important;
        min-height: 18px !important;
        stroke: #ffffff !important;
        stroke-width: 2.5 !important;
        flex-shrink: 0 !important;
        display: block !important;
    }
    .vg-slider-prev {
        left: 10px !important;
    }
    .vg-slider-next {
        right: 10px !important;
    }

    /* 4. Grille Catégories Phares (2 Colonnes) */
    .vg-featured-cats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.85rem !important;
        margin: 0.25rem 0 0.5rem !important;
    }
    .vg-featured-cat-card {
        aspect-ratio: 16 / 10 !important;
        min-height: 110px !important;
        height: auto !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08) !important;
    }
    .vg-featured-cat-ribbon {
        font-size: 0.65rem !important;
        padding: 3px 8px !important;
        top: 8px !important;
        left: 8px !important;
        border-radius: 4px !important;
    }
    .vg-featured-cat-content {
        padding: 0.65rem 0.85rem !important;
    }
    .vg-featured-cat-content h3 {
        font-size: 0.85rem !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        margin-bottom: 0.2rem !important;
    }
    .vg-featured-cat-content .vg-featured-cat-link {
        font-size: 0.68rem !important;
        opacity: 0.95 !important;
    }

    /* 5. Les 4 Piliers de Réassurance en GRILLE 2x2 */
    .vg-pillars-card {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem !important;
        padding: 0.6rem 0.5rem !important;
        background: #ffffff !important;
        border-radius: 10px !important;
        border: 1px solid #e2e8f0 !important;
        box-shadow: 0 2px 6px rgba(10, 53, 109, 0.03) !important;
    }
    .vg-pillar-box {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 0.5rem 0.35rem !important;
        background: #f8fafc !important;
        border-radius: 7px !important;
        border: 1px solid #e2e8f0 !important;
    }
    .vg-pillar-icon-wrap {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        border-radius: 7px !important;
        background: #eff6ff !important;
        color: #0A356D !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 0 0.35rem 0 !important;
        flex-shrink: 0 !important;
    }
    .vg-pillar-icon-wrap svg {
        width: 16px !important;
        height: 16px !important;
        stroke-width: 2 !important;
    }
    .vg-pillar-title {
        font-size: 0.75rem !important;
        font-weight: 700 !important;
        color: #0f172a !important;
        line-height: 1.2 !important;
        margin: 0 0 0.15rem 0 !important;
    }
    .vg-pillar-desc {
        font-size: 0.62rem !important;
        color: #64748b !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }

    /* 6. Rails Produits de l'Accueil : Slider Horizontal (Swipe tactile fluide) */
    .vg-rail-section .vg-products-grid {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x mandatory !important;
        scroll-behavior: smooth !important;
        gap: 0.75rem !important;
        padding: 0.25rem 0.75rem 0.75rem 0.75rem !important;
        margin: 0 -0.75rem !important;
        scrollbar-width: none !important;
    }
    .vg-rail-section .vg-products-grid::-webkit-scrollbar {
        display: none !important;
    }
    .vg-rail-section .vg-products-grid .vg-product-card {
        flex: 0 0 calc(33.333% - 0.5rem) !important;
        width: calc(33.333% - 0.5rem) !important;
        max-width: calc(33.333% - 0.5rem) !important;
        min-width: calc(33.333% - 0.5rem) !important;
        scroll-snap-align: start !important;
        box-sizing: border-box !important;
    }

    /* Grille standard pour catalogue / archives / boutique */
    .vg-products-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 0.75rem !important;
    }
    .vg-product-card {
        padding: 0.65rem !important;
        border-radius: 10px !important;
        display: flex !important;
        flex-direction: column !important;
        background: #ffffff !important;
        border: 1px solid #e2e8f0 !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03) !important;
    }
    .vg-card-badges-row {
        top: 6px !important;
        left: 6px !important;
        right: 6px !important;
    }
    .vg-card-badge-stock {
        font-size: 0.62rem !important;
        padding: 2px 6px !important;
        border-radius: 4px !important;
    }
    .vg-badge-discount {
        font-size: 0.62rem !important;
        padding: 2px 6px !important;
    }
    .vg-card-thumb-wrap {
        border-radius: 8px !important;
        margin-bottom: 0.4rem !important;
        background: #f8fafc !important;
        aspect-ratio: 1 / 1 !important;
    }
    .vg-card-thumb-wrap img {
        padding: 0.4rem !important;
    }
    .vg-card-body {
        padding: 0.25rem 0 0 0 !important;
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
    }
    .vg-card-category {
        font-size: 0.65rem !important;
        color: #94a3b8 !important;
        margin-bottom: 0.15rem !important;
    }
    .vg-card-title {
        font-size: 0.8125rem !important;
        line-height: 1.3 !important;
        height: 2.6em !important;
        min-height: 2.6em !important;
        max-height: 2.6em !important;
        padding: 0 !important;
        box-sizing: content-box !important;
        flex-shrink: 0 !important;
        -webkit-line-clamp: 2 !important;
        margin-bottom: 0.25rem !important;
    }
    .vg-card-title a {
        color: #0f172a !important;
        font-weight: 600 !important;
    }
    .vg-card-rating {
        margin-bottom: 0.25rem !important;
    }
    .vg-stars {
        font-size: 0.7rem !important;
        color: #f59e0b !important;
        letter-spacing: 1px !important;
    }
    .vg-card-price-wrap {
        margin-bottom: 0.5rem !important;
    }
    .vg-card-price {
        font-size: 0.9375rem !important;
        font-weight: 800 !important;
        color: #0A356D !important;
    }
    .vg-card-price del {
        font-size: 0.75rem !important;
        color: #94a3b8 !important;
    }

    /* Actions Produits Ergonomiques (Ajout Panier + Bouton WhatsApp Carré) */
    .vg-card-actions {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 0.35rem !important;
        margin-top: auto !important;
    }
    .vg-btn-cart {
        flex: 1 1 auto !important;
        height: 36px !important;
        font-size: 0.75rem !important;
        font-weight: 700 !important;
        padding: 0 0.5rem !important;
        border-radius: 6px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        gap: 0.25rem !important;
        background: #111827 !important;
        color: #ffffff !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .vg-btn-cart svg {
        width: 14px !important;
        height: 14px !important;
        flex-shrink: 0 !important;
    }
    .vg-btn-wa {
        flex: 0 0 36px !important;
        width: 36px !important;
        height: 36px !important;
        padding: 0 !important;
        border-radius: 6px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: #25D366 !important;
        border: 1px solid #20ba59 !important;
        box-shadow: none !important;
    }
    .vg-btn-wa .vg-btn-wa-text {
        display: none !important;
    }
    .vg-btn-wa svg {
        width: 18px !important;
        height: 18px !important;
        color: #ffffff !important;
        fill: currentColor !important;
        margin: 0 !important;
    }

    /* 7. Bouton Flottant WhatsApp (décalé au-dessus du Dock) */
    .vg-floating-wa {
        bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
        right: 14px !important;
        width: 48px !important;
        height: 48px !important;
        box-shadow: 0 4px 14px rgba(37, 211, 102, 0.45) !important;
    }
    .vg-floating-wa svg {
        width: 24px !important;
        height: 24px !important;
    }

    /* Empêcher tout débordement horizontal */
    html, body {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        width: 100% !important;
    }

    /* 8. Bottom Navigation Dock Fixe (Style dispo.sn - 5 Onglets Répartis à 20%) */
    .vg-mobile-bottom-dock {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: 56px !important;
        background: #ffffff !important;
        border-top: 1px solid #e2e8f0 !important;
        box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.08) !important;
        z-index: 99998 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 !important;
        padding-bottom: env(safe-area-inset-bottom, 0px) !important;
        box-sizing: border-box !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
    }
    .vg-dock-item {
        flex: 1 1 20% !important;
        width: 20% !important;
        max-width: 20% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-decoration: none !important;
        color: #64748b !important;
        padding: 4px 2px !important;
        gap: 3px !important;
        transition: color 0.15s ease, transform 0.15s ease !important;
        -webkit-tap-highlight-color: transparent !important;
        position: relative !important;
    }
    .vg-dock-item:active {
        transform: scale(0.92) !important;
    }
    .vg-dock-item.is-active {
        color: #0A356D !important;
        font-weight: 700 !important;
    }
    .vg-dock-item.vg-dock-wa {
        color: #16a34a !important;
    }
    .vg-dock-icon {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 24px !important;
        height: 24px !important;
    }
    .vg-dock-icon svg {
        width: 22px !important;
        height: 22px !important;
        stroke-width: 2 !important;
        transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
    }
    .vg-dock-item.is-active .vg-dock-icon svg {
        transform: scale(1.08) !important;
        stroke: #0A356D !important;
    }
    .vg-dock-item.vg-dock-wa .vg-dock-icon svg {
        fill: #25D366 !important;
        stroke: none !important;
        width: 23px !important;
        height: 23px !important;
    }
    .vg-dock-label {
        font-size: 0.65rem !important;
        line-height: 1 !important;
        letter-spacing: 0.01em !important;
        font-weight: 600 !important;
    }
    .vg-dock-badge {
        position: absolute !important;
        top: -4px !important;
        right: -9px !important;
        background: #ef4444 !important;
        color: #ffffff !important;
        font-size: 0.625rem !important;
        font-weight: 800 !important;
        min-width: 17px !important;
        height: 17px !important;
        line-height: 17px !important;
        padding: 0 4px !important;
        border-radius: 9999px !important;
        text-align: center !important;
        box-shadow: 0 2px 5px rgba(239, 68, 68, 0.4) !important;
        box-sizing: border-box !important;
        border: 2px solid #ffffff !important;
    }

    /* 9. Carte B2B Devis */
    .vg-b2b-card {
        padding: 1.25rem 1rem;
        text-align: center;
        justify-content: center;
    }
    .vg-b2b-actions {
        justify-content: center;
        width: 100%;
    }
    .vg-btn-b2b-wa,
    .vg-btn-b2b-tel {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   SPECIFIQUE SMARTPHONE MOBILE (Max-Width: 767px)
   Ajustements 2 colonnes, tailles de police compactes
   ========================================================================== */
@media (max-width: 767px) {
    .vg-hdr-main-inner {
        padding: 0.5rem 0.75rem !important;
    }
    .vg-burger-button {
        width: 36px !important;
        height: 36px !important;
    }
    .vg-logo-img,
    #site-header .vg-logo-img,
    .woocommerce-page #site-header .vg-logo-img,
    .vg-footer-logo-img {
        height: 30px !important;
        max-height: 30px !important;
        max-width: 120px !important;
    }
    .vg-hdr-actions .vg-icon-btn {
        width: 36px !important;
        height: 36px !important;
    }
    .vg-search-form {
        height: 42px !important;
    }
    .vg-search-input,
    .vg-search-form input[type="search"]#vg-live-search-input {
        padding: 0 0.5rem 0 1.1rem !important;
        font-size: 0.8125rem !important;
    }
    .vg-search-submit {
        width: 42px !important;
    }
    .vg-slider-wrapper {
        aspect-ratio: 2.2 / 1 !important;
        border-radius: 12px !important;
    }
    .vg-slider-nav {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
    }
    .vg-slider-prev {
        left: 8px !important;
    }
    .vg-slider-next {
        right: 8px !important;
    }
    .vg-rail-section .vg-products-grid .vg-product-card {
        flex: 0 0 calc(50% - 0.25rem) !important;
        width: calc(50% - 0.25rem) !important;
        max-width: calc(50% - 0.25rem) !important;
        min-width: calc(50% - 0.25rem) !important;
    }
    .vg-products-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem !important;
    }
    .vg-featured-cat-card {
        aspect-ratio: 16 / 11 !important;
        min-height: 105px !important;
    }
    .vg-featured-cat-ribbon {
        font-size: 0.58rem !important;
        padding: 2px 6px !important;
        top: 6px !important;
        left: 6px !important;
    }
    .vg-featured-cat-content {
        padding: 0.5rem 0.6rem !important;
    }
    .vg-featured-cat-content h3 {
        font-size: 0.75rem !important;
    }
    .vg-featured-cat-content .vg-featured-cat-link {
        font-size: 0.6rem !important;
    }
    .vg-pillars-card {
        gap: 0.4rem !important;
        padding: 0.5rem 0.4rem !important;
    }
    .vg-pillar-box {
        padding: 0.4rem 0.25rem !important;
    }
    .vg-pillar-icon-wrap {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
    }
    .vg-pillar-icon-wrap svg {
        width: 14px !important;
        height: 14px !important;
    }
    .vg-pillar-title {
        font-size: 0.68rem !important;
    }
    .vg-pillar-desc {
        font-size: 0.56rem !important;
    }
    .vg-btn-cart {
        height: 34px !important;
        font-size: 0.72rem !important;
        padding: 0 0.4rem !important;
    }
    .vg-btn-wa {
        flex: 0 0 34px !important;
        width: 34px !important;
        height: 34px !important;
    }
}

@media (max-width: 420px) {
    .vg-btn-cart-text {
        font-size: 0 !important;
    }
    .vg-btn-cart-text::after {
        content: "Ajouter" !important;
        font-size: 0.72rem !important;
        font-weight: 700 !important;
    }
    .vg-btn-cart.is-added .vg-btn-cart-text::after {
        content: "Panier →" !important;
    }
}


/* ==========================================================================
   7. WOOCOMMERCE CATALOGUE & PAGES INTERNES (Boutique, Catégories, Recherche)
   ========================================================================== */
.woocommerce-page #primary,
.woocommerce-page #primary.content-area,
.woocommerce-page #content,
.woocommerce-page .site-main,
body.woocommerce-page:not([class*=elementor-page-]) .site-main,
body.archive.woocommerce:not([class*=elementor-page-]) .site-main,
body.search-results:not([class*=elementor-page-]) .site-main,
.woocommerce-page .vg-container {
    max-width: 1340px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 1.5rem 1rem 3.5rem !important;
    width: 100% !important;
    float: none !important;
    box-sizing: border-box !important;
}

.woocommerce-page #primary .site-main {
    padding: 0 !important;
    max-width: 100% !important;
}

/* Fil d'Ariane (Breadcrumb) épuré */
.woocommerce-breadcrumb {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 0.35rem !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    color: #64748b !important;
    margin: 0.5rem 0 1.25rem 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
}

.woocommerce-breadcrumb a {
    color: var(--color-primary) !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

.woocommerce-breadcrumb a:hover {
    color: #0369a1 !important;
    text-decoration: underline !important;
}

.vg-bc-sep {
    color: #94a3b8;
    font-size: 0.875rem;
    font-weight: 600;
}

/* Bannière d'en-tête de catégorie / boutique / résultats de recherche */
.woocommerce-products-header {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 1.5rem 2rem !important;
    margin-bottom: 1.5rem !important;
    box-shadow: 0 4px 14px rgba(10, 53, 109, 0.04) !important;
    position: relative !important;
    overflow: hidden !important;
}

.woocommerce-products-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), #38bdf8);
}

.woocommerce-products-header__title.page-title,
.woocommerce-page .page-title {
    font-size: clamp(1.4rem, 2.5vw, 1.85rem) !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 0.4rem 0 !important;
    line-height: 1.25 !important;
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
    font-size: 0.875rem !important;
    color: #64748b !important;
    margin: 0.35rem 0 0 0 !important;
    line-height: 1.55 !important;
    max-width: 900px !important;
}

/* Barre d'outils du catalogue (Compteur + Tri) */
.vg-shop-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;
    padding: 0.75rem 1.25rem !important;
    margin-bottom: 1.5rem !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02) !important;
}

.woocommerce-result-count {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #475569 !important;
    margin: 0 !important;
    float: none !important;
}

.woocommerce-ordering {
    margin: 0 !important;
    float: none !important;
}

.woocommerce-ordering select {
    padding: 0.5rem 2.25rem 0.5rem 0.85rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #1e293b !important;
    background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E") no-repeat right 0.75rem center / 0.85rem !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    outline: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(10, 53, 109, 0.08) !important;
}

/* Grille des produits catalogue (5 colonnes sur desktop) */
.woocommerce ul.products,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-4 {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 0.85rem !important;
    list-style: none !important;
    margin: 1.5rem 0 2.5rem !important;
    padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
}

.woocommerce ul.products li.product {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    box-sizing: border-box !important;
}

.woocommerce ul.products li.product .vg-product-card {
    height: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 1240px) {
    .woocommerce ul.products,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0.85rem !important;
    }
}

@media (max-width: 980px) {
    .woocommerce ul.products,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-4 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 0.75rem !important;
    }
}

@media (max-width: 767px) {
    .woocommerce ul.products,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.5rem !important;
    }
}

@media (max-width: 380px) {
    .woocommerce ul.products,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-4 {
        grid-template-columns: 1fr !important;
    }
}

/* Pagination moderne */
.woocommerce nav.woocommerce-pagination {
    margin: 3rem 0 2rem !important;
    text-align: center !important;
}

.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-block !important;
    float: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 2.4rem !important;
    height: 2.4rem !important;
    padding: 0 0.75rem !important;
    border-radius: 8px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    color: #334155 !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: #f8fafc !important;
    color: var(--color-primary) !important;
    border-color: #cbd5e1 !important;
    transform: translateY(-1px) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--color-primary) !important;
    color: #ffffff !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 4px 12px rgba(10, 53, 109, 0.25) !important;
}

/* Messages et alertes */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-left: 4px solid var(--color-primary) !important;
    border-radius: 8px !important;
    padding: 1.15rem 1.4rem !important;
    color: #334155 !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    margin-bottom: 2rem !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
}

.woocommerce-info::before {
    color: var(--color-primary) !important;
}


/* ==========================================================================
   8. WOOCOMMERCE FICHE PRODUIT DÉTAILLÉE (single-product.php)
   ========================================================================== */
.woocommerce div.product {
    max-width: 1600px;
    margin: 2rem auto;
    padding: 0 1.25rem;
}

.woocommerce div.product div.images {
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    background: #ffffff;
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}

.woocommerce div.product div.images img {
    border-radius: var(--radius-sm);
    object-fit: contain;
    max-height: 480px;
    width: 100%;
}

.woocommerce div.product div.summary .product_title {
    font-size: clamp(1.5rem, 2.5vw, 2.15rem);
    font-weight: 900;
    color: var(--color-secondary);
    line-height: 1.25;
    margin: 0 0 0.85rem;
}

.woocommerce div.product div.summary .price {
    font-size: 1.85rem;
    font-weight: 800;
    color: var(--color-primary) !important;
    margin: 0.75rem 0 1.25rem;
    display: block;
}

.woocommerce div.product div.summary .price del {
    font-size: 1.1rem;
    color: var(--color-text-muted);
    font-weight: 500;
    margin-right: 0.5rem;
}

.woocommerce div.product div.summary .price ins {
    text-decoration: none;
    color: var(--color-primary);
}

.woocommerce div.product form.cart {
    margin: 1.5rem 0;
    padding: 1.25rem;
    background: #ffffff;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
}

.woocommerce div.product form.cart .quantity input.qty {
    border: 1.5px solid var(--color-card-border);
    border-radius: var(--radius-sm);
    font-size: 1rem;
    font-weight: 700;
    padding: 0.65rem 0.5rem;
    width: 4rem;
}

.woocommerce div.product form.cart .button {
    background: var(--color-primary) !important;
    color: #ffffff !important;
    font-family: var(--font-sans);
    font-size: 0.9375rem;
    font-weight: 800;
    padding: 0.8rem 1.75rem;
    border-radius: var(--radius-sm);
    border: none;
    transition: background 0.15s ease, transform 0.15s ease;
    cursor: pointer;
}

.woocommerce div.product form.cart .button:hover {
    background: var(--color-primary-light) !important;
    transform: translateY(-1px);
}

/* Bouton WhatsApp de commande instantanée */
.evowap_btn,
.vg-btn-wa-single {
    background: var(--color-whatsapp) !important;
    color: #ffffff !important;
    font-family: var(--font-sans) !important;
    font-size: 0.9375rem !important;
    font-weight: 800 !important;
    padding: 0.85rem 1.5rem !important;
    border-radius: var(--radius-sm) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    text-decoration: none !important;
    box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: transform 0.15s, background 0.15s !important;
}

.evowap_btn:hover,
.vg-btn-wa-single:hover {
    background: var(--color-whatsapp-hover) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}

/* Badges WooCommerce en stock & catégorie uni */
.woocommerce div.product p.stock.in-stock {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #16a34a !important;
    color: #ffffff !important;
    padding: 0.3rem 0.75rem !important;
    border-radius: 4px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border: none !important;
    margin: 0.5rem 0 1rem !important;
}

.woocommerce div.product p.stock.out-of-stock {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #64748b !important;
    color: #ffffff !important;
    padding: 0.3rem 0.75rem !important;
    border-radius: 4px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border: none !important;
    margin: 0.5rem 0 1rem !important;
}

.woocommerce span.onsale {
    background: #dc2626 !important;
    color: #ffffff !important;
    border-radius: 4px !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    padding: 0.3rem 0.65rem !important;
    line-height: 1 !important;
    min-height: auto !important;
    min-width: auto !important;
}

.product_meta .posted_in a {
    display: inline-block;
    background: var(--color-primary);
    color: #ffffff !important;
    padding: 0.15rem 0.55rem;
    border-radius: 4px;
    font-size: 0.71875rem;
    font-weight: 700;
    text-transform: uppercase;
}

/* Bloc Réassurance Confiance sur fiche produit */
.vg-product-trust-box {
    background: #f8fafc;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    padding: 1.25rem;
    margin: 1.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.vg-trust-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.vg-trust-icon {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--color-primary);
    flex-shrink: 0;
    margin-top: 2px;
}

.vg-trust-row strong {
    display: block;
    font-size: 0.875rem;
    color: var(--color-secondary);
}

.vg-trust-row span {
    display: block;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.vg-trust-row a {
    color: var(--color-primary);
    font-weight: 700;
}

/* Onglets Spécifications Techniques style LDLC */
.woocommerce-tabs ul.tabs {
    border-bottom: 2px solid var(--color-card-border) !important;
    display: flex;
    gap: 1.5rem;
    padding: 0 !important;
    margin: 2rem 0 1rem !important;
    list-style: none !important;
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    padding: 0.75rem 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

.woocommerce-tabs ul.tabs li a {
    font-family: var(--font-sans) !important;
    font-weight: 800 !important;
    color: var(--color-text-muted) !important;
    font-size: 1.05rem !important;
    padding: 0.5rem 0 !important;
    border-bottom: 3px solid transparent;
}

.woocommerce-tabs ul.tabs li.active a {
    color: var(--color-primary) !important;
    border-bottom-color: var(--color-primary) !important;
}

.woocommerce-tabs .panel {
    background: #ffffff;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    color: var(--color-text-main);
    line-height: 1.6;
}

.woocommerce table.shop_attributes {
    border-collapse: collapse;
    width: 100%;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-card-border);
    font-size: 0.875rem;
}

.woocommerce table.shop_attributes th {
    background: #f8fafc;
    color: var(--color-secondary);
    font-weight: 700;
    width: 35%;
}

/* ==========================================================================
   9. TUNNEL PANIER & COMMANDE (Style Sobre, Épuré & Ultra-Interactif)
   Charte Vision Globale : Bleu #0A356D, Bleu Nuit #062144, Blanc #ffffff
   ========================================================================== */

/* Animation Bounce Badge Panier Header */
@keyframes vg-cart-bounce {
    0%   { transform: scale(1); }
    25%  { transform: scale(1.4) translateY(-3px); }
    50%  { transform: scale(0.9) translateY(0); }
    75%  { transform: scale(1.15); }
    100% { transform: scale(1); }
}

.vg-cart-badge.has-bounce {
    animation: vg-cart-bounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* -------------------------------------------------------------------------
   Bouton "Ajouter au panier" & États fluides (Catalogue / Fiche Produit)
   ------------------------------------------------------------------------- */

/* Masquage radical du lien brut "Voir le panier" injecté par WooCommerce */
.added_to_cart,
.added_to_cart.wc-forward,
.vg-card-actions .added_to_cart,
.woocommerce ul.products li.product .added_to_cart,
.vg-sp-buttons-grid .added_to_cart {
    display: none !important;
}

/* Spinner SVG animé */
@keyframes vg-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.vg-btn-spinner {
    animation: vg-spin 0.75s linear infinite;
    display: inline-block;
    flex-shrink: 0;
}

/* État 1 : Chargement (Ajout...) */
.vg-btn-cart.is-loading,
.vg-sp-btn-addtocart.is-loading {
    background: #1f2937 !important;
    color: #ffffff !important;
    opacity: 0.9 !important;
    pointer-events: none !important;
    cursor: wait !important;
    transition: all 0.2s ease;
}

/* État 2 : Succès éphémère (✓ Ajouté !) */
@keyframes vg-pulse-success {
    0% { transform: scale(0.97); }
    50% { transform: scale(1.02); }
    100% { transform: scale(1); }
}

.vg-btn-cart.is-success-pulse,
.vg-sp-btn-addtocart.is-success-pulse {
    background: #059669 !important;
    border-color: #047857 !important;
    color: #ffffff !important;
    animation: vg-pulse-success 0.35s ease;
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.3) !important;
    transition: all 0.25s ease;
}

/* État 3 : Produit dans le panier -> Bouton sobre "Voir le panier →" (Bleu Vision Globale) */
.vg-btn-cart.is-added,
a.vg-btn-cart.is-added,
.vg-btn-cart.is-view-cart,
a.vg-btn-cart.is-view-cart {
    background: #0A356D !important;
    color: #ffffff !important;
    border: 1px solid #082852 !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 6px rgba(10, 53, 109, 0.22) !important;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.vg-btn-cart.is-added:hover,
a.vg-btn-cart.is-added:hover,
.vg-btn-cart.is-view-cart:hover,
a.vg-btn-cart.is-view-cart:hover {
    background: #07234a !important;
    border-color: #051a37 !important;
    color: #ffffff !important;
    box-shadow: 0 3px 8px rgba(10, 53, 109, 0.35) !important;
    transform: translateY(-1px);
}

/* Bouton Fiche Produit Unique : État déjà ajouté / Voir le panier */
body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-addtocart.is-added,
.vg-sp-btn-addtocart.is-added,
.vg-sp-btn-addtocart.is-view-cart {
    background: #0A356D !important;
    border-color: #082852 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 14px rgba(10, 53, 109, 0.25) !important;
    transition: all 0.2s ease;
}

body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-addtocart.is-added:hover,
.vg-sp-btn-addtocart.is-added:hover,
.vg-sp-btn-addtocart.is-view-cart:hover {
    background: #07234a !important;
    border-color: #051a37 !important;
    color: #ffffff !important;
    box-shadow: 0 6px 18px rgba(10, 53, 109, 0.35) !important;
    transform: translateY(-1px);
}

/* -------------------------------------------------------------------------
   Bandeau Toast Moderne Flottant "Produit ajouté au panier"
   ------------------------------------------------------------------------- */
.vg-cart-toast {
    position: fixed;
    bottom: 30px;
    right: 90px;
    z-index: 999999;
    max-width: 440px;
    width: calc(100% - 32px);
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 12px 36px -4px rgba(10, 53, 109, 0.2), 0 4px 14px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(10, 53, 109, 0.12);
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    transform: translateY(30px) scale(0.96);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}

.vg-cart-toast.is-visible {
    transform: translateY(0) scale(1);
    opacity: 1;
    pointer-events: auto;
}

.vg-cart-toast-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ecfdf5;
    color: #059669;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.vg-cart-toast-body {
    flex: 1;
    min-width: 0;
}

.vg-cart-toast-status {
    font-size: 0.6875rem;
    font-weight: 700;
    color: #059669;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.vg-cart-toast-title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25;
}

.vg-cart-toast-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.vg-cart-toast-btn {
    background: #0A356D;
    color: #ffffff !important;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 7px 12px;
    border-radius: 8px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background 0.15s ease, transform 0.15s ease;
    white-space: nowrap;
}

.vg-cart-toast-btn:hover {
    background: #082852;
    color: #ffffff !important;
    transform: translateY(-1px);
}

.vg-cart-toast-close {
    background: transparent;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 4px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.15s ease, background 0.15s ease;
}

.vg-cart-toast-close:hover {
    color: #374151;
    background: #f3f4f6;
}

@media (max-width: 640px) {
    .vg-cart-toast {
        bottom: 85px;
        right: 16px;
        left: 16px;
        width: auto;
    }
}

/* Masquage radical de la bannière WhatsApp géante sur le panier & la commande */
body.woocommerce-cart .div_evowap_btn,
body.woocommerce-cart .evowap_btn,
body.woocommerce-cart #evowap_btn,
body.woocommerce-checkout .div_evowap_btn,
body.woocommerce-checkout .evowap_btn,
body.woocommerce-checkout #evowap_btn,
.woocommerce-cart div.div_evowap_btn,
.woocommerce-cart a.evowap_btn {
    display: none !important;
}

/* ==========================================================================
   9. TUNNEL PANIER & COMMANDE (Design Ultra-Minimaliste, Compact & Sobre)
   Charte Vision Globale : Bleu #0A356D, Gris Ardoise #0f172a, Blanc #ffffff
   ========================================================================== */

/* Conteneur global centré & compact (1060px) */
.vg-cart-checkout-container.vg-minimal-container,
.vg-minimal-container {
    max-width: 1060px !important;
    width: 100% !important;
    margin: 1.5rem auto 3.5rem !important;
    padding: 0 1rem !important;
    font-family: var(--font-sans);
    color: #0f172a;
    box-sizing: border-box !important;
}

/* Fil d'Ariane Minimaliste */
.vg-minimal-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
}

.vg-min-step {
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.15s ease;
}

.vg-min-step.is-active {
    color: #0A356D;
    font-weight: 700;
}

.vg-min-step.is-completed {
    color: #059669;
    font-weight: 600;
}

.vg-min-sep {
    color: #cbd5e1;
    font-size: 0.75rem;
    user-select: none;
}

/* Grille Panier 2 Colonnes sobre (Flexbox robuste) */
.vg-minimal-grid {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 1.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.vg-cart-main-col {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;
}

.vg-cart-sidebar-col {
    flex: 0 0 340px !important;
    width: 340px !important;
    min-width: 340px !important;
    max-width: 340px !important;
}

.vg-minimal-grid > p:empty,
.vg-minimal-grid > p:has(br:only-child) {
    display: none !important;
}

@media (max-width: 900px) {
    .vg-minimal-grid {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }
    .vg-cart-main-col,
    .vg-cart-sidebar-col {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* Carte Articles Panier */
.vg-minimal-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.vg-minimal-card-header {
    padding: 0.85rem 1.15rem;
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    background: #ffffff;
}

.vg-minimal-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    display: flex;
    align-items: baseline;
}

.vg-minimal-count {
    font-size: 0.8125rem;
    font-weight: 400;
    color: #64748b;
    margin-left: 0.35rem;
}

/* Tableau Panier Minimaliste - Suppression des bordures épaisses WC */
.woocommerce table.vg-minimal-table,
.woocommerce-page table.vg-minimal-table,
.vg-minimal-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
    border: none !important;
    background: #ffffff !important;
}

.woocommerce table.vg-minimal-table thead th,
.vg-minimal-table thead th {
    background: #f8fafc !important;
    color: #64748b !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: 0.55rem 0.75rem !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.woocommerce table.vg-minimal-table thead th.product-thumbnail { width: 56px !important; text-align: center !important; }
.woocommerce table.vg-minimal-table thead th.product-name { text-align: left !important; }
.woocommerce table.vg-minimal-table thead th.product-price { width: 95px !important; text-align: right !important; }
.woocommerce table.vg-minimal-table thead th.product-quantity { width: 105px !important; text-align: center !important; }
.woocommerce table.vg-minimal-table thead th.product-subtotal { width: 105px !important; text-align: right !important; }
.woocommerce table.vg-minimal-table thead th.product-remove { width: 44px !important; text-align: center !important; }

.woocommerce table.vg-minimal-table td,
.vg-cart-item td {
    padding: 0.85rem 0.75rem !important;
    vertical-align: middle !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid #f8fafc !important;
    background: transparent !important;
}

.woocommerce table.vg-minimal-table td::before,
.vg-cart-item td::before {
    display: none !important;
    content: none !important;
}

.vg-cart-item:hover td {
    background: #fafbfc !important;
}

/* Image miniature compacte 48px */
.vg-cart-col-thumb {
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding: 0.75rem 0 0.75rem 0.75rem !important;
    text-align: center !important;
}

.vg-cart-col-thumb img,
.vg-cart-item-img-link img {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    object-fit: contain !important;
    border-radius: 6px !important;
    border: 1px solid #f1f5f9 !important;
    background: #ffffff !important;
    padding: 2px !important;
    display: block !important;
    margin: 0 auto !important;
}

/* Titre & détails produit en bas de casse (sentence case) */
.vg-cart-col-details {
    padding-left: 0.75rem !important;
    min-width: 160px !important;
    text-align: left !important;
}

.vg-cart-item-title {
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    color: #1e293b !important;
    text-decoration: none !important;
    line-height: 1.35 !important;
    display: block !important;
    margin-bottom: 0.2rem !important;
    text-transform: none !important;
    transition: color 0.15s ease !important;
}

.vg-cart-item-title:hover {
    color: #0A356D !important;
}

.vg-min-stock-in {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    color: #16a34a;
    font-weight: 500;
}

.vg-min-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #16a34a;
    display: inline-block;
}

.vg-min-stock-out {
    font-size: 0.7rem;
    color: #d97706;
    font-weight: 500;
}

/* Prix unitaire */
.vg-cart-col-price {
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    color: #64748b !important;
    white-space: nowrap !important;
    width: 95px !important;
    min-width: 95px !important;
    max-width: 95px !important;
    text-align: right !important;
}

/* Stepper Quantité Minimaliste (28px) - Reset strict contre elementor-kit-9 */
.elementor-kit-9 .vg-min-stepper button,
.elementor-kit-9 .vg-min-stepper button.vg-min-qty-btn,
.elementor-kit-9 button.vg-min-qty-btn,
.woocommerce .vg-min-stepper button,
.woocommerce .vg-min-stepper button.vg-min-qty-btn,
.woocommerce-page .vg-min-stepper button,
button.vg-min-qty-btn,
.vg-min-qty-btn {
    width: 26px !important;
    height: 100% !important;
    min-width: 26px !important;
    min-height: 26px !important;
    max-width: 26px !important;
    max-height: 26px !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    color: #64748b !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    user-select: none !important;
    transition: background-color 0.12s ease, color 0.12s ease !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    text-transform: none !important;
    line-height: 1 !important;
    vertical-align: middle !important;
    font-family: inherit !important;
}

.vg-min-qty-btn svg {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    pointer-events: none !important;
    margin: auto !important;
    flex-shrink: 0 !important;
}

.elementor-kit-9 .vg-min-stepper button:hover,
.elementor-kit-9 button.vg-min-qty-btn:hover,
.woocommerce .vg-min-stepper button:hover,
.vg-min-qty-btn:hover {
    background: #f1f5f9 !important;
    background-color: #f1f5f9 !important;
    color: #0A356D !important;
}

.vg-min-stepper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    height: 28px !important;
    line-height: 1 !important;
    overflow: hidden !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    padding: 0 !important;
}

.vg-min-stepper p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.vg-min-stepper br {
    display: none !important;
}

.vg-min-stepper .quantity {
    display: inline-flex !important;
    align-items: center !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.elementor-kit-9 .vg-min-stepper input.vg-min-qty-input,
.woocommerce .vg-min-stepper input.vg-min-qty-input,
.vg-min-stepper input.vg-min-qty-input,
input.vg-min-qty-input {
    width: 32px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    line-height: 26px !important;
    border: none !important;
    border-left: 1px solid #e2e8f0 !important;
    border-right: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    text-align: center !important;
    font-size: 0.825rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
}

.vg-min-qty-input::-webkit-outer-spin-button,
.vg-min-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Quantité colonne */
.vg-cart-col-qty {
    width: 105px !important;
    min-width: 105px !important;
    max-width: 105px !important;
    white-space: nowrap !important;
    text-align: center !important;
}

/* Sous-total ligne */
.vg-cart-col-subtotal {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    white-space: nowrap !important;
    width: 105px !important;
    min-width: 105px !important;
    max-width: 105px !important;
    text-align: right !important;
}

/* Bouton supprimer discret (croix fine 14px centrée) */
.woocommerce table.vg-minimal-table th.product-remove,
.vg-minimal-table th.product-remove,
.woocommerce table.vg-minimal-table td.vg-cart-col-remove,
.woocommerce table.vg-minimal-table td.product-remove,
.woocommerce table.shop_table td.product-remove,
.vg-cart-col-remove {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 0.85rem 0.5rem !important;
}

.woocommerce table.vg-minimal-table td.vg-cart-col-remove a.vg-min-remove-btn,
.woocommerce table.vg-minimal-table td.product-remove a.remove,
.woocommerce table.shop_table td.product-remove a.remove,
.woocommerce table.vg-minimal-table a.remove,
.woocommerce a.remove.vg-min-remove-btn,
body.woocommerce-cart a.remove,
a.remove.vg-min-remove-btn,
.vg-min-remove-btn {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    max-width: 28px !important;
    max-height: 28px !important;
    border-radius: 50% !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    background-color: transparent !important;
    color: #94a3b8 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    cursor: pointer !important;
    text-decoration: none !important;
    line-height: 1 !important;
    font-size: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    float: none !important;
    transition: all 0.15s ease !important;
    box-sizing: border-box !important;
}

.vg-min-remove-btn svg,
a.remove.vg-min-remove-btn svg {
    display: block !important;
    width: 14px !important;
    height: 14px !important;
    pointer-events: none !important;
    margin: auto !important;
    stroke: currentColor !important;
    flex-shrink: 0 !important;
}

.vg-min-remove-btn br,
.vg-cart-col-remove br,
a.remove.vg-min-remove-btn br {
    display: none !important;
}

.woocommerce table.vg-minimal-table td.vg-cart-col-remove a.vg-min-remove-btn:hover,
.woocommerce table.vg-minimal-table td.product-remove a.remove:hover,
.woocommerce table.shop_table td.product-remove a.remove:hover,
.woocommerce table.vg-minimal-table a.remove:hover,
.woocommerce a.remove.vg-min-remove-btn:hover,
body.woocommerce-cart a.remove:hover,
.vg-min-remove-btn:hover,
a.remove.vg-min-remove-btn:hover {
    color: #ef4444 !important;
    background: #fee2e2 !important;
    background-color: #fee2e2 !important;
    border-color: #fecaca !important;
}

/* Barre d'actions inférieure épurée */
.woocommerce table.vg-minimal-table td.actions,
.woocommerce-page table.vg-minimal-table td.actions,
.vg-cart-actions-cell {
    padding: 0 !important;
    border: none !important;
    background: #fafbfc !important;
}

.vg-min-actions-wrap {
    padding: 0.65rem 1rem !important;
    background: #fafbfc !important;
    border-top: 1px solid #f1f5f9 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 0.75rem !important;
}

.vg-min-back-link {
    font-size: 0.8rem;
    color: #64748b;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.15s ease;
}

.vg-min-back-link:hover {
    color: #0A356D;
}

.vg-min-coupon-wrap {
    display: inline-flex;
    gap: 0.35rem;
}

.vg-min-coupon-input {
    height: 28px !important;
    padding: 0 0.5rem !important;
    font-size: 0.75rem !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;
    width: 120px !important;
    background: #ffffff !important;
}

.vg-min-coupon-btn {
    height: 28px !important;
    padding: 0 0.65rem !important;
    font-size: 0.72rem !important;
    border: none !important;
    border-radius: 4px !important;
    background: #0A356D !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: background 0.15s ease;
}

.vg-min-coupon-btn:hover {
    background: #082c5b !important;
}

.button[name="update_cart"],
.vg-btn-update-cart {
    display: none !important;
}

/* Annulation impérative du float et du width 48% natifs de WooCommerce sur la colonne récapitulatif */
.woocommerce .cart-collaterals,
.woocommerce-page .cart-collaterals,
.cart-collaterals {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals,
.cart-collaterals .cart_totals,
.cart_totals.vg-min-totals-card {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 1.15rem !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    text-align: left !important;
}

/* Colonne Latérale : Récapitulatif Minimaliste */
.vg-minimal-sidebar {
    position: sticky;
    top: 90px;
    width: 100% !important;
    box-sizing: border-box !important;
}

.vg-min-totals-card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 1.15rem !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.vg-min-totals-title {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 0 0.85rem 0 !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table,
.woocommerce-cart table.vg-min-totals-table,
.vg-min-totals-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 0 0.85rem 0 !important;
    border: none !important;
    background: transparent !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr,
.vg-min-totals-table tr {
    border: none !important;
    background: transparent !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th,
.vg-min-totals-table th {
    color: #64748b !important;
    font-size: 0.825rem !important;
    font-weight: 500 !important;
    padding: 0.45rem 0 !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
    white-space: nowrap !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    width: 45% !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td,
.vg-min-totals-table td {
    color: #0f172a !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    padding: 0.45rem 0 !important;
    text-align: right !important;
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
    white-space: nowrap !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td::before,
.vg-min-totals-table td::before {
    display: none !important;
    content: none !important;
}

.vg-min-totals-table .vg-min-total-row th {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.25rem !important;
}

.vg-min-totals-table .vg-min-total-row td {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.25rem !important;
}

.vg-min-totals-table .woocommerce-Price-amount {
    background: transparent !important;
    background-color: transparent !important;
    padding: 0 !important;
    font-weight: inherit !important;
}

/* Bouton Valider la commande : pleine largeur dans le récapitulatif */
.woocommerce-cart .wc-proceed-to-checkout,
.vg-proceed-wrap {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout a.vg-checkout-btn,
body.woocommerce-cart a.checkout-button,
body.woocommerce-cart a.vg-checkout-btn,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.vg-checkout-btn,
.woocommerce-cart a.checkout-button,
.woocommerce a.checkout-button,
a.checkout-button,
.vg-checkout-btn {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 1.25rem !important;
    margin: 0.5rem 0 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    vertical-align: middle !important;
    line-height: 1 !important;
    background: #0A356D !important;
    background-color: #0A356D !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background 0.15s ease !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button span,
body.woocommerce-cart .wc-proceed-to-checkout a.vg-checkout-btn span,
.woocommerce-cart a.checkout-button span,
.vg-checkout-btn span {
    display: inline-block !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button br,
body.woocommerce-cart .wc-proceed-to-checkout a.vg-checkout-btn br,
.woocommerce-cart a.checkout-button br,
a.checkout-button br,
.vg-checkout-btn br {
    display: none !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::before,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after,
.woocommerce-cart a.checkout-button::before,
.woocommerce-cart a.checkout-button::after,
a.checkout-button::before,
a.checkout-button::after {
    display: none !important;
    content: none !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
a.checkout-button:hover {
    background: #082c5b !important;
    background-color: #082c5b !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Micro-réassurance discrète */
.vg-min-trust-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    font-size: 0.7rem;
    color: #94a3b8;
}

.vg-min-trust-row .dot {
    color: #cbd5e1;
}

/* Carte Panier Vide Minimaliste */
.vg-min-empty-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 2.5rem 1.5rem;
    text-align: center;
    max-width: 480px;
    margin: 2rem auto;
}

.vg-min-empty-card .wc-empty-cart-message,
.vg-min-empty-card .cart-empty.woocommerce-info {
    display: none !important;
}

.vg-min-empty-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #f8fafc;
    color: #94a3b8;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
}

.vg-min-empty-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.35rem 0;
}

.vg-min-empty-sub {
    color: #64748b;
    font-size: 0.85rem;
    margin: 0 auto 1.25rem;
}

.vg-min-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0A356D;
    color: #ffffff !important;
    padding: 0.65rem 1.25rem;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease;
}

.vg-min-btn-primary:hover {
    background: #082c5b;
}

/* ==========================================================================
   PAGE COMMANDE / CHECKOUT (Design Harmonisé avec Panier & Ultra-Aéré)
   Typographie, Tailles & Couleurs 100% alignées sur la page Panier (/panier/)
   ========================================================================== */

/* Conteneur principal sans restriction de largeur Hello Elementor & Elementor Containers */
body.woocommerce-checkout .site-main,
body.woocommerce-checkout:not([class*=elementor-page-]) .site-main,
.elementor-9163 .elementor-element.elementor-element-905c588.e-con-boxed,
.elementor-9163 .elementor-element.elementor-element-905c588 > .e-con-inner,
body.woocommerce-checkout .elementor .e-con-boxed > .e-con-inner {
    max-width: 1240px !important;
    width: 100% !important;
}

/* Masquer le titre Elementor redondant au-dessus du fil d'Ariane (aligné sur la page Panier qui n'en a pas) */
.elementor-9163 .elementor-element.elementor-element-e6a574a,
.elementor-9163 .elementor-element.elementor-element-0cf79c8,
body.woocommerce-checkout .page-header,
body.woocommerce-checkout h1.entry-title {
    display: none !important;
}

/* Conteneur global centré (1240px) pour un équilibre parfait */
.vg-cart-checkout-container.vg-checkout-wrapper,
body.woocommerce-checkout .vg-minimal-container.vg-checkout-wrapper {
    max-width: 1240px !important;
    width: 100% !important;
    margin: 1.5rem auto 3.5rem !important;
    padding: 0 1rem !important;
    font-family: var(--font-sans);
    color: #0f172a;
    box-sizing: border-box !important;
}

/* Fil d'Ariane Minimaliste (même style que Panier) */
.vg-checkout-wrapper .vg-minimal-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin: 0 auto 1.75rem;
    font-size: 0.8125rem !important;
    font-weight: 500;
}

.vg-checkout-wrapper .vg-min-step {
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.15s ease;
}

.vg-checkout-wrapper .vg-min-step.is-completed {
    color: #059669;
    font-weight: 600;
}

.vg-checkout-wrapper .vg-min-step.is-active {
    color: #0A356D;
    font-weight: 700;
}

.vg-checkout-wrapper .vg-min-step.is-pending {
    color: #94a3b8;
}

.vg-checkout-wrapper .vg-min-sep {
    color: #cbd5e1;
    font-size: 0.75rem;
    user-select: none;
}

/* Grille Commande : Colonne Gauche compacte (410px), Colonne Droite large & très spacieuse (~780px) */
.vg-checkout-form-grid {
    display: grid !important;
    grid-template-columns: 410px minmax(0, 1fr) !important;
    gap: 1.75rem !important;
    align-items: start !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 960px) {
    .vg-checkout-form-grid {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
}

/* Cartes Commande (Même design border/radius/header que la page Panier) */
.vg-checkout-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    box-sizing: border-box;
}

.vg-order-review-card {
    position: sticky;
    top: 90px;
    padding: 1.25rem 1.5rem;
}

/* En-tête des Cartes : même taille (1.05rem) et couleur que .vg-minimal-title du Panier */
.vg-checkout-card-header {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.15rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.vg-card-step-badge {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #0A356D;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.vg-checkout-section-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 !important;
    display: flex;
    align-items: baseline;
}

.vg-checkout-section-desc {
    font-size: 0.8125rem !important;
    color: #64748b !important;
    margin: 0.15rem 0 0 0;
    font-weight: 400;
}

/* Masquage du titre redondant "Détails de facturation" */
.woocommerce-billing-fields > h3 {
    display: none !important;
}

/* Titres de sous-sections du Formulaire (ex: Informations complémentaires) */
.woocommerce-additional-fields h3 {
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: #334155 !important;
    margin: 1.15rem 0 0.75rem 0 !important;
    padding-top: 0.75rem !important;
    border-top: 1px solid #f1f5f9 !important;
}

/* Grille de champs du formulaire coordonnées */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.85rem 1rem !important;
}

.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-billing-fields__field-wrapper #billing_address_1_field,
.woocommerce-billing-fields__field-wrapper #billing_address_2_field,
.woocommerce-billing-fields__field-wrapper #billing_city_field,
.woocommerce-billing-fields__field-wrapper #billing_state_field,
.woocommerce-billing-fields__field-wrapper #billing_postcode_field,
.woocommerce-billing-fields__field-wrapper #billing_phone_field,
.woocommerce-billing-fields__field-wrapper #billing_email_field,
.woocommerce-additional-fields__field-wrapper .form-row,
.woocommerce-additional-fields__field-wrapper #order_comments_field {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-billing-fields__field-wrapper .form-row-last {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* Formulaires & Champs WooCommerce (Tailles harmonisées) */
form.checkout .form-row {
    margin-bottom: 0;
    padding: 0;
}

form.checkout .form-row label {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #334155 !important;
    margin-bottom: 0.3rem !important;
    display: block !important;
}

form.checkout .form-row label .required {
    color: #ef4444;
    text-decoration: none;
    font-weight: 700;
}

form.checkout input.input-text,
form.checkout select,
form.checkout textarea {
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0.5rem 0.75rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 0.84rem !important;
    color: #0f172a !important;
    background: #ffffff !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    box-sizing: border-box !important;
}

form.checkout textarea {
    height: auto !important;
    min-height: 75px !important;
    line-height: 1.4 !important;
    resize: vertical !important;
}

form.checkout input.input-text:focus,
form.checkout select:focus,
form.checkout textarea:focus {
    border-color: #0A356D !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(10, 53, 109, 0.12) !important;
}

/* ==========================================================================
   TABLEAU ARTICLES COMMANDE (Très Spacieux, Lisible, Même Typo que Panier)
   ========================================================================== */
.vg-checkout-review-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: none !important;
    margin: 0 0 1rem 0 !important;
    background: #ffffff !important;
}

/* En-têtes : 0.7rem majuscules, gris sobre, identique à la table Panier */
.vg-checkout-review-table thead th {
    background: #f8fafc !important;
    color: #64748b !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: 0.55rem 0.75rem !important;
    border-top: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
    border-left: none !important;
    border-right: none !important;
}

.vg-checkout-review-table thead th.product-name {
    text-align: left !important;
}

.vg-checkout-review-table thead th.product-total {
    text-align: right !important;
    width: 130px !important;
    white-space: nowrap !important;
}

/* Lignes articles */
.vg-checkout-item-row td {
    padding: 0.85rem 0.75rem !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #f8fafc !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    background: transparent !important;
}

.vg-checkout-item-row:hover td {
    background: #fafbfc !important;
}

.vg-checkout-item-inner {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

/* Miniature 56px identique à celle du panier */
.vg-checkout-item-thumb {
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    flex-shrink: 0;
}

.vg-checkout-item-thumb img,
.vg-checkout-item-img-link img {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
    object-fit: contain !important;
    border-radius: 6px !important;
    border: 1px solid #f1f5f9 !important;
    background: #ffffff !important;
    padding: 2px !important;
    display: block !important;
}

.vg-checkout-item-info {
    flex: 1;
    min-width: 0;
    text-align: left;
}

/* Titre produit : 0.84rem, font-weight 500, EXACTEMENT comme .vg-cart-item-title du panier */
.vg-checkout-item-title {
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    color: #1e293b !important;
    display: block !important;
    line-height: 1.35 !important;
    margin-bottom: 0.2rem !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

.vg-checkout-item-title:hover {
    color: #0A356D !important;
}

.vg-checkout-item-meta {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 0.6rem !important;
    font-size: 0.8125rem !important;
    margin-top: 0.15rem !important;
}

.vg-checkout-item-price-unit {
    color: #64748b !important;
    font-weight: 500 !important;
    font-size: 0.8125rem !important;
}

.vg-checkout-item-qty-badge {
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    padding: 2px 7px !important;
    border-radius: 4px !important;
    border: 1px solid #e2e8f0 !important;
    display: inline-flex !important;
    align-items: center !important;
}

.vg-checkout-item-meta .vg-min-stock-in {
    font-size: 0.72rem !important;
}

/* Sous-total produit : 0.875rem, font-weight 700, #0A356D, identique au panier */
.vg-checkout-item-total {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    text-align: right !important;
    white-space: nowrap !important;
    width: 130px !important;
}

/* ==========================================================================
   LIGNES TOTAUX (Exactement identique à .vg-min-totals-table du Panier)
   ========================================================================== */
.vg-checkout-review-table tfoot th {
    color: #64748b !important;
    font-size: 0.825rem !important;
    font-weight: 500 !important;
    padding: 0.45rem 0.75rem !important;
    border: none !important;
    background: transparent !important;
    text-align: left !important;
}

.vg-checkout-review-table tfoot td {
    color: #0f172a !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    padding: 0.45rem 0.75rem !important;
    text-align: right !important;
    border: none !important;
    background: transparent !important;
}

.vg-checkout-review-table tfoot .vg-checkout-subtotal-row th,
.vg-checkout-review-table tfoot .vg-checkout-subtotal-row td {
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 0.75rem !important;
}

/* Ligne Total : 0.95rem th / 1.05rem td, identique à .vg-min-total-row du Panier */
.vg-checkout-review-table tfoot .vg-checkout-total-row th {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.5rem !important;
}

.vg-checkout-review-table tfoot .vg-checkout-total-row td {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.5rem !important;
    text-align: right !important;
}

/* ==========================================================================
   MODES DE PAIEMENT (Cartes sobres & lisibles)
   ========================================================================== */
#payment {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

#payment ul.payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 1.15rem 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    background: transparent !important;
    border: none !important;
}

#payment ul.payment_methods li.wc_payment_method {
    padding: 0.85rem 1rem !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    background: #ffffff !important;
    transition: all 0.15s ease !important;
    margin: 0 !important;
    cursor: pointer !important;
}

#payment ul.payment_methods li.wc_payment_method:hover {
    border-color: #cbd5e1 !important;
    background: #fafbfc !important;
}

#payment ul.payment_methods li.wc_payment_method:has(input:checked) {
    border-color: #0A356D !important;
    background: #f8fbff !important;
}

#payment ul.payment_methods li label {
    font-weight: 600 !important;
    color: #0f172a !important;
    font-size: 0.85rem !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin: 0 !important;
}

#payment ul.payment_methods li input[type="radio"] {
    accent-color: #0A356D !important;
    width: 16px !important;
    height: 16px !important;
    cursor: pointer !important;
    margin: 0 !important;
}

#payment div.payment_box {
    background: #ffffff !important;
    padding: 0.75rem 0.85rem !important;
    border-radius: 6px !important;
    margin-top: 0.5rem !important;
    font-size: 0.8125rem !important;
    color: #475569 !important;
    border: 1px solid #e2e8f0 !important;
    line-height: 1.5 !important;
}

#payment div.payment_box::before {
    display: none !important;
}

/* Texte Politique et Conditions */
.woocommerce-privacy-policy-text {
    font-size: 0.8rem !important;
    color: #64748b !important;
    line-height: 1.45 !important;
    margin: 1rem 0 !important;
}

.woocommerce-privacy-policy-text a {
    color: #0A356D !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}

/* ==========================================================================
   BOUTON COMMANDER (Exactement identique à .vg-checkout-btn du Panier)
   ========================================================================== */
#place_order {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 1.25rem !important;
    margin: 0.5rem 0 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    background: #0A356D !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background 0.15s ease !important;
}

#place_order:hover {
    background: #082c5b !important;
}

/* Bas de page réassurance commande */
.vg-checkout-trust-footer {
    margin-top: 1.25rem !important;
    padding-top: 1rem !important;
    border-top: 1px solid #f1f5f9 !important;
}

.vg-checkout-badges-row {
    display: flex !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}

.vg-trust-pill {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    background: #f8fafc !important;
    color: #334155 !important;
    padding: 0.35rem 0.65rem !important;
    border-radius: 20px !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    border: 1px solid #e2e8f0 !important;
}

.vg-trust-pill svg {
    color: #0A356D !important;
}

.vg-checkout-help-note {
    font-size: 0.75rem !important;
    color: #64748b !important;
    margin-top: 0.75rem !important;
    text-align: center !important;
    line-height: 1.4 !important;
}

.vg-checkout-help-note a {
    color: #25D366 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* ==========================================================================
   RESPONSIVE MOBILE : PAGES PANIER (/panier/) & COMMANDE (/commande/)
   Breakpoints : max-width: 768px & max-width: 480px
   Ergonomie tactile, typographie calibrée, cartes structurées, aucun débordement
   ========================================================================== */

@media (max-width: 768px) {
    /* 1. Espacement global & dock mobile */
    body.woocommerce-cart,
    body.woocommerce-checkout {
        padding-bottom: 90px !important;
    }

    .vg-cart-checkout-container.vg-minimal-container,
    .vg-cart-checkout-container.vg-checkout-wrapper,
    .vg-minimal-container {
        padding: 0 0.75rem !important;
        margin: 0.85rem auto 2.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 2. Fil d'Ariane / Stepper en capsule épurée */
    .vg-minimal-stepper,
    .vg-checkout-wrapper .vg-minimal-stepper {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0.45rem !important;
        font-size: 0.72rem !important;
        margin: 0 auto 1.25rem !important;
        padding: 0.35rem 0.85rem !important;
        background: #f8fafc !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 20px !important;
        width: fit-content !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .vg-min-step,
    .vg-checkout-wrapper .vg-min-step {
        font-size: 0.72rem !important;
        white-space: nowrap !important;
    }

    .vg-min-sep,
    .vg-checkout-wrapper .vg-min-sep {
        font-size: 0.65rem !important;
        color: #cbd5e1 !important;
    }

    /* 3. Messages & Alertes WooCommerce */
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        font-size: 0.8rem !important;
        padding: 0.75rem 1rem !important;
        border-radius: 8px !important;
        line-height: 1.35 !important;
        margin-bottom: 1.25rem !important;
    }

    /* Masquer le bouton redondant "Voir le panier" sur la page panier elle-même */
    .woocommerce-cart .woocommerce-message .button.wc-forward,
    .woocommerce-cart .woocommerce-message a.button {
        display: none !important;
    }

    /* 4. ===================== PAGE PANIER ===================== */
    .vg-minimal-card {
        border-radius: 10px !important;
        border: 1px solid #e2e8f0 !important;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    }

    .vg-minimal-card-header {
        padding: 0.75rem 0.85rem !important;
    }

    .vg-minimal-title {
        font-size: 0.95rem !important;
    }

    .vg-minimal-count {
        font-size: 0.75rem !important;
    }

    /* Masquer l'en-tête de tableau rigide */
    .woocommerce table.vg-minimal-table thead,
    .woocommerce-page table.vg-minimal-table thead,
    .vg-minimal-table thead {
        display: none !important;
    }

    .woocommerce table.vg-minimal-table,
    .woocommerce-page table.vg-minimal-table,
    .vg-minimal-table,
    .vg-minimal-table tbody {
        display: block !important;
        width: 100% !important;
        border: none !important;
    }

    /* Carte produit Panier en CSS Grid 2 rangées */
    .woocommerce table.vg-minimal-table tr.vg-cart-item,
    .woocommerce-page table.vg-minimal-table tr.vg-cart-item,
    .vg-cart-item {
        display: grid !important;
        grid-template-columns: 62px 1fr auto !important;
        grid-template-rows: auto auto !important;
        grid-template-areas:
            "thumb details remove"
            "thumb actions total" !important;
        column-gap: 0.75rem !important;
        row-gap: 0.5rem !important;
        padding: 0.85rem 0.75rem !important;
        border-bottom: 1px solid #f1f5f9 !important;
        background: #ffffff !important;
        align-items: center !important;
        width: 100% !important;
        box-sizing: border-box !important;
        position: relative !important;
    }

    /* Réactivation de l'image (désactivée par défaut par WC smallscreen) */
    .woocommerce #content table.cart .product-thumbnail,
    .woocommerce table.cart .product-thumbnail,
    .woocommerce-page #content table.cart .product-thumbnail,
    .woocommerce-page table.cart .product-thumbnail,
    .woocommerce table.vg-minimal-table td.vg-cart-col-thumb,
    .vg-cart-col-thumb {
        grid-area: thumb !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 62px !important;
        min-width: 62px !important;
        max-width: 62px !important;
        height: 62px !important;
        padding: 0 !important;
        align-self: start !important;
        background: transparent !important;
        border: none !important;
    }

    .vg-cart-col-thumb img,
    .vg-cart-item-img-link img {
        width: 60px !important;
        height: 60px !important;
        min-width: 60px !important;
        min-height: 60px !important;
        max-width: 60px !important;
        max-height: 60px !important;
        object-fit: contain !important;
        border-radius: 8px !important;
        border: 1px solid #e2e8f0 !important;
        background: #f8fafc !important;
        padding: 3px !important;
        display: block !important;
    }

    /* Titre & infos */
    .woocommerce table.vg-minimal-table td.vg-cart-col-details,
    .vg-cart-col-details {
        grid-area: details !important;
        padding: 0 !important;
        min-width: 0 !important;
        align-self: start !important;
        text-align: left !important;
        border: none !important;
    }

    .vg-cart-item-title {
        font-size: 0.82rem !important;
        font-weight: 600 !important;
        color: #0f172a !important;
        line-height: 1.3 !important;
        margin: 0 0 0.2rem 0 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .vg-min-stock-in {
        font-size: 0.68rem !important;
    }

    /* Suppression de la colonne prix unitaire redondante */
    .woocommerce table.vg-minimal-table td.vg-cart-col-price,
    .vg-cart-col-price {
        display: none !important;
    }

    /* Croix de suppression en haut à droite */
    .woocommerce table.vg-minimal-table td.vg-cart-col-remove,
    .vg-cart-col-remove {
        grid-area: remove !important;
        padding: 0 !important;
        width: 28px !important;
        min-width: 28px !important;
        text-align: right !important;
        align-self: start !important;
        border: none !important;
    }

    .vg-min-remove-btn,
    a.remove.vg-min-remove-btn {
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
        border-radius: 50% !important;
        background: #f8fafc !important;
        border: 1px solid #e2e8f0 !important;
        color: #94a3b8 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .vg-min-remove-btn:hover {
        color: #ef4444 !important;
        background: #fee2e2 !important;
        border-color: #fca5a5 !important;
    }

    /* Stepper quantité en bas à gauche */
    .woocommerce table.vg-minimal-table td.vg-cart-col-qty,
    .vg-cart-col-qty {
        grid-area: actions !important;
        padding: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        text-align: left !important;
        align-self: center !important;
        border: none !important;
    }

    .vg-min-stepper {
        height: 28px !important;
        border-radius: 6px !important;
    }

    /* Prix sous-total en bas à droite (jamais rogné) */
    .woocommerce table.vg-minimal-table td.vg-cart-col-subtotal,
    .vg-cart-col-subtotal {
        grid-area: total !important;
        padding: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        text-align: right !important;
        align-self: center !important;
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        color: #0A356D !important;
        white-space: nowrap !important;
        border: none !important;
    }

    /* Barre d'actions & coupon */
    .woocommerce table.vg-minimal-table tr.vg-cart-actions-row,
    .vg-cart-actions-row {
        display: block !important;
        width: 100% !important;
        border: none !important;
    }

    .woocommerce table.vg-minimal-table td.vg-cart-actions-cell,
    .vg-cart-actions-cell {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        border: none !important;
    }

    .vg-min-actions-wrap {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.75rem !important;
        padding: 0.85rem !important;
        background: #f8fafc !important;
        border-top: 1px solid #f1f5f9 !important;
    }

    .vg-min-coupon-wrap {
        display: flex !important;
        width: 100% !important;
        gap: 0.5rem !important;
    }

    .vg-min-coupon-input {
        flex: 1 !important;
        width: 100% !important;
        height: 38px !important;
        font-size: 0.82rem !important;
        border-radius: 6px !important;
        border: 1px solid #cbd5e1 !important;
        padding: 0 0.75rem !important;
        background: #ffffff !important;
        box-sizing: border-box !important;
    }

    .vg-min-coupon-btn {
        height: 38px !important;
        padding: 0 1rem !important;
        font-size: 0.8rem !important;
        font-weight: 600 !important;
        border-radius: 6px !important;
        background: #0A356D !important;
        color: #ffffff !important;
        border: none !important;
        white-space: nowrap !important;
        cursor: pointer !important;
    }

    .vg-min-back-link {
        text-align: center !important;
        font-size: 0.8rem !important;
        color: #64748b !important;
        padding: 0.35rem 0 !important;
        display: block !important;
    }

    /* Carte Récapitulatif Panier */
    .woocommerce-cart .cart-collaterals .cart_totals,
    .cart_totals.vg-min-totals-card {
        padding: 1rem 0.85rem !important;
        border-radius: 10px !important;
        border: 1px solid #e2e8f0 !important;
        background: #ffffff !important;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    }

    .vg-min-totals-title {
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        margin-bottom: 0.75rem !important;
    }

    .vg-min-totals-table {
        width: 100% !important;
    }

    .vg-min-totals-table tr th {
        font-size: 0.82rem !important;
        color: #64748b !important;
        padding: 0.45rem 0 !important;
    }

    .vg-min-totals-table tr td {
        font-size: 0.85rem !important;
        color: #0f172a !important;
        padding: 0.45rem 0 !important;
        text-align: right !important;
    }

    .vg-min-totals-table tr.order-total th {
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        color: #0f172a !important;
        border-top: 1px solid #e2e8f0 !important;
        padding-top: 0.65rem !important;
    }

    .vg-min-totals-table tr.order-total td {
        font-size: 1.1rem !important;
        font-weight: 800 !important;
        color: #0A356D !important;
        border-top: 1px solid #e2e8f0 !important;
        padding-top: 0.65rem !important;
    }

    .woocommerce-cart .wc-proceed-to-checkout,
    .vg-proceed-wrap {
        padding-top: 0.85rem !important;
        margin-top: 0.5rem !important;
    }

    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
    .woocommerce-cart a.checkout-button {
        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        border-radius: 8px !important;
        background: #0A356D !important;
        color: #ffffff !important;
        box-shadow: 0 4px 12px rgba(10, 53, 109, 0.2) !important;
        letter-spacing: 0.01em !important;
        transition: background-color 0.15s ease !important;
    }

    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
    .woocommerce-cart a.checkout-button:hover {
        background: #082c5b !important;
    }

    /* 5. ===================== PAGE COMMANDE / CHECKOUT ===================== */
    .vg-checkout-form-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1.25rem !important;
        width: 100% !important;
    }

    /* Désactivation du sticky sur mobile pour un flux vertical naturel */
    .vg-order-review-card {
        position: static !important;
        top: auto !important;
    }

    .vg-checkout-card {
        padding: 1rem 0.85rem !important;
        border-radius: 10px !important;
        border: 1px solid #e2e8f0 !important;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    }

    .vg-checkout-card-header {
        margin-bottom: 0.85rem !important;
        padding-bottom: 0.65rem !important;
        gap: 0.5rem !important;
    }

    .vg-card-step-badge {
        width: 22px !important;
        height: 22px !important;
        min-width: 22px !important;
        min-height: 22px !important;
        font-size: 0.75rem !important;
    }

    .vg-checkout-section-title {
        font-size: 0.92rem !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        margin: 0 !important;
    }

    .vg-checkout-section-desc {
        font-size: 0.72rem !important;
        color: #64748b !important;
        line-height: 1.3 !important;
        margin-top: 0.15rem !important;
    }

    /* Champs de formulaire ergonomiques (font-size 16px contre le zoom iOS Safari) */
    .woocommerce-billing-fields__field-wrapper,
    .woocommerce-shipping-fields__field-wrapper {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.65rem !important;
    }

    .woocommerce-checkout .form-row {
        width: 100% !important;
        float: none !important;
        margin: 0 0 0.65rem 0 !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .woocommerce-checkout .form-row label {
        font-size: 0.78rem !important;
        font-weight: 600 !important;
        color: #1e293b !important;
        margin-bottom: 0.25rem !important;
        display: block !important;
    }

    .woocommerce-checkout .form-row input.input-text,
    .woocommerce-checkout .form-row select,
    .woocommerce-checkout .form-row textarea {
        height: 42px !important;
        font-size: 16px !important;
        border-radius: 6px !important;
        border: 1px solid #cbd5e1 !important;
        background: #ffffff !important;
        padding: 0 0.75rem !important;
        box-sizing: border-box !important;
        width: 100% !important;
        color: #0f172a !important;
        transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    }

    .woocommerce-checkout .form-row textarea {
        height: 75px !important;
        min-height: 75px !important;
        padding: 0.5rem 0.75rem !important;
        line-height: 1.4 !important;
    }

    .woocommerce-checkout .form-row input.input-text:focus,
    .woocommerce-checkout .form-row select:focus,
    .woocommerce-checkout .form-row textarea:focus {
        border-color: #0A356D !important;
        box-shadow: 0 0 0 2px rgba(10, 53, 109, 0.12) !important;
        outline: none !important;
    }

    /* Tableau récapitulatif articles commande */
    .vg-checkout-review-table thead {
        display: none !important;
    }

    .vg-checkout-review-table,
    .vg-checkout-review-table tbody {
        display: block !important;
        width: 100% !important;
    }

    .vg-checkout-item-row {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 0.65rem !important;
        padding: 0.75rem 0 !important;
        border-bottom: 1px solid #f1f5f9 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .vg-checkout-item-row td {
        border: none !important;
        border-bottom: none !important;
    }

    .vg-checkout-item-row:last-child {
        border-bottom: none !important;
    }

    .vg-checkout-item-cell {
        flex: 1 !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    .vg-checkout-item-inner {
        display: flex !important;
        align-items: flex-start !important;
        gap: 0.65rem !important;
    }

    .vg-checkout-item-thumb {
        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        height: 48px !important;
        flex-shrink: 0 !important;
    }

    .vg-checkout-item-thumb img,
    .vg-checkout-item-img-link img {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        object-fit: contain !important;
        border-radius: 6px !important;
        border: 1px solid #e2e8f0 !important;
        background: #f8fafc !important;
        padding: 2px !important;
        display: block !important;
    }

    .vg-checkout-item-info {
        flex: 1 !important;
        min-width: 0 !important;
        text-align: left !important;
    }

    .vg-checkout-item-title {
        font-size: 0.8rem !important;
        font-weight: 500 !important;
        line-height: 1.25 !important;
        color: #1e293b !important;
        margin: 0 0 0.2rem 0 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .vg-checkout-item-meta {
        display: flex !important;
        align-items: center !important;
        gap: 0.35rem !important;
        font-size: 0.72rem !important;
        margin-top: 0.15rem !important;
    }

    .vg-checkout-item-price-unit {
        display: none !important;
    }

    .vg-checkout-item-qty-badge {
        font-size: 0.68rem !important;
        padding: 1px 5px !important;
        border-radius: 4px !important;
        background: #f1f5f9 !important;
        color: #475569 !important;
        border: 1px solid #e2e8f0 !important;
    }

    .vg-checkout-item-total {
        flex-shrink: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 0 !important;
        text-align: right !important;
        font-size: 0.9rem !important;
        font-weight: 700 !important;
        color: #0A356D !important;
        white-space: nowrap !important;
        border: none !important;
        align-self: flex-start !important;
    }

    /* Totaux Commande */
    .vg-checkout-review-table tfoot {
        display: block !important;
        width: 100% !important;
        margin-top: 0.5rem !important;
    }

    .vg-checkout-review-table tfoot tr {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0.4rem 0 !important;
        border: none !important;
    }

    .vg-checkout-review-table tfoot th,
    .vg-checkout-review-table tfoot td,
    .vg-checkout-review-table tfoot .vg-checkout-subtotal-row th,
    .vg-checkout-review-table tfoot .vg-checkout-subtotal-row td,
    .vg-checkout-review-table tfoot .vg-checkout-total-row th,
    .vg-checkout-review-table tfoot .vg-checkout-total-row td {
        border: none !important;
        border-top: none !important;
        background: transparent !important;
    }

    .vg-checkout-review-table tfoot th {
        padding: 0 !important;
        font-size: 0.82rem !important;
        color: #64748b !important;
    }

    .vg-checkout-review-table tfoot td {
        padding: 0 !important;
        font-size: 0.85rem !important;
        color: #0f172a !important;
        text-align: right !important;
    }

    .vg-checkout-review-table tfoot .vg-checkout-subtotal-row {
        border-top: 1px solid #f1f5f9 !important;
        padding-top: 0.6rem !important;
    }

    .vg-checkout-review-table tfoot .vg-checkout-total-row {
        border-top: 1px solid #e2e8f0 !important;
        padding-top: 0.65rem !important;
        margin-top: 0.25rem !important;
    }

    .vg-checkout-review-table tfoot .vg-checkout-total-row th {
        font-size: 0.92rem !important;
        font-weight: 700 !important;
        color: #0f172a !important;
    }

    .vg-checkout-review-table tfoot .vg-checkout-total-row td {
        font-size: 1.1rem !important;
        font-weight: 800 !important;
        color: #0A356D !important;
    }

    /* Modes de Paiement */
    #payment ul.payment_methods {
        gap: 0.5rem !important;
        margin: 0.85rem 0 !important;
    }

    #payment ul.payment_methods li.wc_payment_method {
        padding: 0.75rem 0.85rem !important;
        border-radius: 8px !important;
    }

    #payment ul.payment_methods li label {
        font-size: 0.82rem !important;
    }

    #payment .payment_box {
        font-size: 0.75rem !important;
        padding: 0.65rem 0.75rem !important;
        border-radius: 6px !important;
        line-height: 1.35 !important;
    }

    /* Bouton Passer la commande */
    .woocommerce-checkout #place_order,
    #place_order {
        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        border-radius: 8px !important;
        background: #0A356D !important;
        color: #ffffff !important;
        box-shadow: 0 4px 12px rgba(10, 53, 109, 0.2) !important;
        margin-top: 1rem !important;
        cursor: pointer !important;
        transition: background-color 0.15s ease !important;
    }

    .woocommerce-checkout #place_order:hover,
    #place_order:hover {
        background: #082c5b !important;
    }

    /* Badges de réassurance */
    .vg-checkout-badges-row {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 0.4rem !important;
        margin: 1rem 0 0.5rem 0 !important;
    }

    .vg-trust-pill {
        font-size: 0.68rem !important;
        padding: 4px 9px !important;
        border-radius: 20px !important;
    }

    .vg-checkout-help-note {
        font-size: 0.72rem !important;
        margin-top: 0.75rem !important;
        line-height: 1.35 !important;
        text-align: center !important;
    }
}


/* ==========================================================================
   10. FICHE PRODUIT DÉTAILLÉE STYLE EXACT DISPO.SN (Anti-Elementor Reset & Pure Tech)
   ========================================================================== */

/* Isolation stricte et neutralisation des styles parasites Elementor Kit 9 */
body.elementor-kit-9 .vg-sp-wrapper button:not(.vg-sp-btn-addtocart):not(.vg-sp-btn-buynow),
body.elementor-kit-9 .vg-sp-wrapper input[type="button"],
body.elementor-kit-9 .vg-sp-wrapper input[type="submit"]:not(.vg-sp-btn-addtocart):not(.vg-sp-btn-buynow) {
    font-family: inherit !important;
    font-size: 14px !important;
    line-height: normal !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    background: transparent !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .site-main,
.vg-single-product-main {
    background: #ffffff !important;
    padding: 0 !important;
}

.vg-sp-page-container {
    max-width: 1340px !important;
    margin: 0 auto !important;
    padding: 1.25rem 1rem 3.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* 1. Fil d'Ariane épuré & intégré directement */
.vg-sp-breadcrumb {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    font-size: 0.8125rem !important;
    margin-bottom: 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 0.45rem !important;
    color: #64748b !important;
    box-shadow: none !important;
}

.vg-sp-breadcrumb a {
    color: #475569 !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    transition: color 0.15s ease !important;
}

.vg-sp-breadcrumb a:hover {
    color: #0A356D !important;
}

.vg-sp-breadcrumb-sep {
    color: #94a3b8 !important;
    font-size: 0.8rem !important;
    user-select: none !important;
}

.vg-sp-breadcrumb-current {
    color: #0A356D !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 540px !important;
}

/* 2. Section Produit Principale Directement Intégrée (Sans boîte/padding superflu) */
.vg-sp-card {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin-bottom: 3.5rem !important;
}

.vg-sp-grid {
    display: grid !important;
    grid-template-columns: 460px 1fr !important;
    gap: 2.5rem !important;
    align-items: start !important;
}

/* Colonne Gauche : Galerie */
.vg-sp-left-col {
    width: 100% !important;
    min-width: 0 !important;
}

.vg-sp-gallery-box {
    position: relative !important;
    width: 100% !important;
}

.vg-sp-badges-overlay {
    position: absolute !important;
    top: 0.85rem !important;
    left: 0.85rem !important;
    z-index: 5 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    align-items: flex-start !important;
}

.vg-sp-badge-new {
    background: #0f172a !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    padding: 3px 8px !important;
    border-radius: 3px !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
}

.vg-sp-badge-discount {
    background: #16a34a !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    padding: 3px 8px !important;
    border-radius: 3px !important;
}

/* Bouton zoom discret en haut à droite */
.vg-sp-zoom-btn,
body.elementor-kit-9 .vg-sp-zoom-btn {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 5 !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    color: #94a3b8 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
    transition: all 0.15s ease !important;
    padding: 0 !important;
    font-size: 14px !important;
}

.vg-sp-zoom-btn:hover {
    background: #f8fafc !important;
    color: #1e293b !important;
    border-color: #cbd5e1 !important;
}

.vg-sp-zoom-btn svg {
    width: 16px !important;
    height: 16px !important;
    stroke: currentColor !important;
}

.vg-sp-main-img-viewport {
    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    padding: 1.25rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 380px !important;
    cursor: zoom-in !important;
    overflow: hidden !important;
}

.vg-sp-main-img-viewport img {
    max-height: 100% !important;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    transition: transform 0.25s ease !important;
}

.vg-sp-main-img-viewport:hover img {
    transform: scale(1.03) !important;
}

/* Miniatures (Photos du produit) */
.vg-sp-thumbnails-section {
    margin-top: 0.85rem !important;
}

.vg-sp-thumbnails-header {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 0.45rem !important;
}

.vg-sp-thumbnails-row {
    display: flex !important;
    gap: 0.5rem !important;
    overflow-x: auto !important;
    padding-bottom: 0.25rem !important;
    align-items: center !important;
    scrollbar-width: none !important;
}

.vg-sp-thumbnails-row::-webkit-scrollbar {
    display: none !important;
}

.vg-sp-thumb-item,
body .vg-sp-card .vg-sp-thumb-item,
body.elementor-kit-9 .vg-sp-card .vg-sp-thumb-item {
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    border-radius: 6px !important;
    border: 1.5px solid #e2e8f0 !important;
    background: #ffffff !important;
    padding: 3px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.15s ease !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.vg-sp-thumb-item img,
body .vg-sp-card .vg-sp-thumb-item img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto !important;
}

.vg-sp-thumb-item.is-active,
body .vg-sp-card .vg-sp-thumb-item.is-active,
.vg-sp-thumb-item:hover {
    border-color: #0A356D !important;
    box-shadow: 0 0 0 1.5px #0A356D !important;
}

/* 4 Blocs de réassurance sous la galerie en 4 colonnes côte-à-côte */
.vg-sp-trust-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
    margin-top: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.vg-sp-trust-item {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 9px 7px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 3px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    transition: all 0.15s ease !important;
}

.vg-sp-trust-item:hover {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
}

.vg-sp-trust-icon {
    width: 18px !important;
    height: 18px !important;
    color: #0A356D !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-shrink: 0 !important;
}

.vg-sp-trust-icon svg {
    width: 16px !important;
    height: 16px !important;
}

.vg-sp-trust-content {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.25 !important;
    width: 100% !important;
    min-width: 0 !important;
}

.vg-sp-trust-content strong {
    font-size: 9.5px !important;
    color: #1e293b !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    width: 100% !important;
}

.vg-sp-trust-content span {
    font-size: 8px !important;
    color: #64748b !important;
    line-height: 1.2 !important;
    display: block !important;
    margin-top: 1px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
}

/* Colonne Droite : Infos & Achat */
.vg-sp-right-col {
    width: 100% !important;
    min-width: 0 !important;
}

.vg-sp-product-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    line-height: 1.35 !important;
    margin: 0 0 10px !important;
}

.vg-sp-price-row {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
}

.vg-sp-price-val {
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    letter-spacing: -0.01em !important;
}

.vg-sp-cfa-label {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    margin-left: 2px !important;
}

.vg-sp-price-old {
    font-size: 15px !important;
    color: #94a3b8 !important;
    text-decoration: line-through !important;
}

.vg-sp-savings-pill {
    background: #16a34a !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 9px !important;
    border-radius: 12px !important;
    letter-spacing: 0.02em !important;
}

.vg-sp-meta-bar {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    font-size: 12px !important;
    color: #64748b !important;
    margin: 8px 0 16px !important;
}

.vg-sp-meta-sep {
    color: #cbd5e1 !important;
    user-select: none !important;
}

.vg-sp-meta-ref {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.vg-sp-meta-ref strong {
    color: #1e293b !important;
}

.vg-sp-meta-stock {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-weight: 600 !important;
}

.vg-sp-stock-indicator {
    width: 7px !important;
    height: 7px !important;
    border-radius: 50% !important;
    display: inline-block !important;
}

.vg-sp-meta-seller strong {
    color: #0f172a !important;
}

/* Stepper Quantité */
.vg-sp-qty-container {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
}

.vg-sp-qty-title {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #334155 !important;
}

.vg-sp-stepper-box {
    display: inline-flex !important;
    align-items: center !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    height: 38px !important;
}

.vg-sp-stepper-btn,
body.elementor-kit-9 .vg-sp-stepper-btn {
    width: 34px !important;
    height: 38px !important;
    border: none !important;
    background: #ffffff !important;
    color: #64748b !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border-radius: 0 !important;
    user-select: none !important;
    line-height: 1 !important;
}

.vg-sp-stepper-btn svg {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    pointer-events: none !important;
    margin: auto !important;
}

.vg-sp-stepper-btn:hover {
    background: #f1f5f9 !important;
    color: #0A356D !important;
}

.vg-sp-stepper-input {
    width: 40px !important;
    height: 38px !important;
    border: none !important;
    border-left: 1.5px solid #e2e8f0 !important;
    border-right: 1.5px solid #e2e8f0 !important;
    text-align: center !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    color: #1e293b !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    -moz-appearance: textfield !important;
    box-sizing: border-box !important;
}

.vg-sp-stepper-input::-webkit-outer-spin-button,
.vg-sp-stepper-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Boutons principaux (Acheter maintenant + Ajouter au panier style Vision Globale) */
.vg-sp-buttons-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin-bottom: 12px !important;
}

body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-buynow,
body.elementor-kit-9 .vg-sp-btn-buynow,
body .vg-sp-btn-buynow,
.vg-sp-btn-buynow {
    background: #ffffff !important;
    border: 1.5px solid #0A356D !important;
    color: #0A356D !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    height: 46px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
    width: 100% !important;
    padding: 0 16px !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-buynow:hover,
.vg-sp-btn-buynow:hover {
    background: #0A356D !important;
    border-color: #0A356D !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(10, 53, 109, 0.25) !important;
    transform: translateY(-1px) !important;
}

body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-addtocart,
body.elementor-kit-9 .vg-sp-btn-addtocart,
body .vg-sp-wrapper .vg-sp-btn-addtocart,
.woocommerce div.product form.cart .vg-sp-btn-addtocart,
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart button.vg-sp-btn-addtocart,
body div.product form.cart .vg-sp-btn-addtocart,
body div.product form.cart .single_add_to_cart_button,
.vg-sp-btn-addtocart {
    background: #0A356D !important;
    background-color: #0A356D !important;
    border: 1.5px solid #0A356D !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    height: 46px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
    width: 100% !important;
    padding: 0 16px !important;
    box-shadow: 0 2px 6px rgba(10, 53, 109, 0.2) !important;
}

body.elementor-kit-9 .vg-sp-wrapper .vg-sp-btn-addtocart:hover,
body.elementor-kit-9 .vg-sp-btn-addtocart:hover,
body .vg-sp-wrapper .vg-sp-btn-addtocart:hover,
.woocommerce div.product form.cart .vg-sp-btn-addtocart:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.vg-sp-btn-addtocart:hover,
body div.product form.cart .vg-sp-btn-addtocart:hover,
body div.product form.cart .single_add_to_cart_button:hover,
.vg-sp-btn-addtocart:hover {
    background: #062144 !important;
    background-color: #062144 !important;
    border-color: #062144 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(6, 33, 68, 0.3) !important;
    transform: translateY(-1px) !important;
}

/* Boutons secondaires (WhatsApp + Favoris) */
.vg-sp-secondary-row {
    display: flex !important;
    gap: 12px !important;
    margin-bottom: 22px !important;
}

.vg-sp-btn-whatsapp {
    flex: 1 !important;
    background: #25D366 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    height: 44px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 6px rgba(37, 211, 102, 0.2) !important;
}

.vg-sp-btn-whatsapp:hover {
    background: #20ba59 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3) !important;
    transform: translateY(-1px) !important;
}

body.elementor-kit-9 .vg-sp-btn-wishlist,
.vg-sp-btn-wishlist {
    background: #ffffff !important;
    border: 1.5px solid #e2e8f0 !important;
    color: #475569 !important;
    font-weight: 600 !important;
    font-size: 12.5px !important;
    height: 44px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 0 16px !important;
    user-select: none !important;
}

.vg-sp-btn-wishlist:hover,
.vg-sp-btn-wishlist.is-favorited {
    border-color: #0A356D !important;
    color: #0A356D !important;
    background: #f0f7ff !important;
}

/* Onglets style dispo.sn - Totalement épurés (Pas de fond, texte propre) */
.vg-sp-tabs-container {
    margin-top: 18px !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 14px !important;
}

.vg-sp-tabs-nav {
    display: flex !important;
    border-bottom: 2px solid #eef2f6 !important;
    gap: 28px !important;
    margin-bottom: 16px !important;
}

body.elementor-kit-9 .vg-sp-tab-trigger,
.vg-sp-tab-trigger {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 0 10px 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #64748b !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    position: relative !important;
    text-transform: none !important;
    user-select: none !important;
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    box-shadow: none !important;
    transition: color 0.15s ease !important;
}

.vg-sp-tab-trigger:hover {
    color: #0f172a !important;
}

body.elementor-kit-9 .vg-sp-tab-trigger.is-active,
.vg-sp-tab-trigger.is-active {
    color: #0f172a !important;
    font-weight: 700 !important;
}

.vg-sp-tab-trigger.is-active::after {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -2px !important;
    height: 2.5px !important;
    background: #0A356D !important;
    border-radius: 2px !important;
}

.vg-sp-tab-panel {
    display: none !important;
}

.vg-sp-tab-panel.is-active {
    display: block !important;
}

.vg-sp-desc-content {
    max-height: 280px !important;
    overflow: hidden !important;
    position: relative !important;
    font-size: 13.5px !important;
    line-height: 1.65 !important;
    color: #334155 !important;
    transition: max-height 0.3s ease !important;
}

.vg-sp-desc-content:not(.is-expanded)::after {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 60px !important;
    background: linear-gradient(to bottom, transparent, #ffffff 90%) !important;
    pointer-events: none !important;
}

.vg-sp-desc-content.is-expanded {
    max-height: none !important;
}

.vg-sp-desc-content h2,
.vg-sp-desc-content h3 {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    margin: 14px 0 8px !important;
}

.vg-sp-desc-content p {
    margin-bottom: 10px !important;
}

.vg-sp-desc-content ul {
    margin: 8px 0 12px 18px !important;
    padding: 0 !important;
}

.vg-sp-desc-content li {
    margin-bottom: 4px !important;
}

.vg-sp-desc-content img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 6px !important;
    margin: 12px 0 !important;
}

body.elementor-kit-9 .vg-sp-expand-btn,
.vg-sp-expand-btn {
    margin-top: 10px !important;
    background: transparent !important;
    border: none !important;
    color: #0A356D !important;
    font-weight: 700 !important;
    font-size: 12.5px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 4px 0 !important;
    user-select: none !important;
    transition: color 0.15s ease !important;
}

.vg-sp-expand-btn:hover {
    color: #062144 !important;
}

.vg-sp-table-specs {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 13px !important;
}

.vg-sp-table-specs tr:nth-child(even) {
    background: #f8fafc !important;
}

.vg-sp-table-specs th {
    text-align: left !important;
    padding: 8px 10px !important;
    color: #64748b !important;
    font-weight: 600 !important;
    border-bottom: 1px solid #f1f5f9 !important;
    width: 40% !important;
}

.vg-sp-table-specs td {
    padding: 8px 10px !important;
    color: #111827 !important;
    font-weight: 500 !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.vg-sp-perks-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    font-size: 13px !important;
    color: #334155 !important;
    line-height: 1.5 !important;
}

/* 3. Produits similaires style dispo.sn */
.vg-sp-related-wrap {
    margin-top: 2.75rem !important;
}

.vg-sp-related-topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 1.25rem !important;
}

.vg-sp-related-heading {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    margin: 0 !important;
}

.vg-sp-related-link {
    color: #0A356D !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    transition: color 0.15s ease !important;
}

.vg-sp-related-link:hover {
    color: #062144 !important;
    text-decoration: underline !important;
}

.vg-sp-related-items-row {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 1rem !important;
}

/* Modal Zoom Lightbox */
.vg-sp-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
}

.vg-sp-lightbox.is-open {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.vg-sp-lightbox-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(10, 25, 47, 0.85) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    cursor: zoom-out !important;
}

.vg-sp-lightbox-container {
    position: relative !important;
    z-index: 10 !important;
    max-width: 90vw !important;
    max-height: 90vh !important;
    background: #ffffff !important;
    padding: 1.25rem !important;
    border-radius: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45) !important;
}

.vg-sp-lightbox-container img {
    max-width: 85vw !important;
    max-height: 80vh !important;
    object-fit: contain !important;
    display: block !important;
}

body.elementor-kit-9 .vg-sp-lightbox-btn-close,
body .vg-sp-lightbox-btn-close,
.vg-sp-lightbox-btn-close {
    position: absolute !important;
    top: -15px !important;
    right: -15px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border-radius: 50% !important;
    background: #0A356D !important;
    background-color: #0A356D !important;
    color: #ffffff !important;
    border: 2.5px solid #ffffff !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35) !important;
    outline: none !important;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
    z-index: 50 !important;
    line-height: 1 !important;
}

.vg-sp-lightbox-btn-close:hover {
    background: #062144 !important;
    background-color: #062144 !important;
    transform: scale(1.08) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5) !important;
}

.vg-sp-lightbox-btn-close svg {
    width: 18px !important;
    height: 18px !important;
    stroke: #ffffff !important;
    stroke-width: 2.5 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    display: block !important;
    margin: auto !important;
    pointer-events: none !important;
}

/* Responsive Single Product */
@media (max-width: 992px) {
    .vg-sp-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
    .vg-sp-card {
        padding: 1.25rem !important;
    }
    .vg-sp-trust-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .vg-sp-related-items-row {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .vg-sp-buttons-grid {
        grid-template-columns: 1fr !important;
    }
    .vg-sp-trust-grid {
        grid-template-columns: 1fr !important;
    }
    .vg-sp-related-items-row {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .vg-sp-main-img-viewport {
        height: 280px !important;
    }
    .vg-sp-lightbox-container {
        padding: 0.75rem !important;
        max-width: 95vw !important;
    }
    body.elementor-kit-9 .vg-sp-lightbox-btn-close,
    .vg-sp-lightbox-btn-close {
        top: -12px !important;
        right: -8px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
    }
}

/* ==========================================================================
   11. AUTHENTIFICATION / MON COMPTE (/mon-compte/)
   Design Sobre, Centré et Sécurisé - Charte Vision Globale (#0A356D)
   ========================================================================== */

/* Masquage des titres bruts Hello Elementor et Elementor sur la page Mon Compte */
body.woocommerce-account .page-header,
body.woocommerce-account h1.entry-title,
.elementor-9188 .elementor-element.elementor-element-19a58a8 {
    margin-top: 0 !important;
}

body.woocommerce-account .site-main {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Conteneur Auth global */
.vg-auth-wrapper {
    width: 100% !important;
    padding: 2.5rem 1rem 4.5rem !important;
    box-sizing: border-box !important;
    font-family: var(--font-sans) !important;
    color: #0f172a !important;
}

.vg-auth-container {
    max-width: 440px !important;
    margin: 0 auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Grille si inscription activée (2 colonnes) */
.vg-auth-split-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
    max-width: 900px !important;
    margin: 0 auto !important;
}

@media (max-width: 840px) {
    .vg-auth-split-grid {
        grid-template-columns: 1fr !important;
        gap: 1.75rem !important;
    }
}

/* Carte de Connexion / Inscription */
.vg-auth-card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 2.25rem 2rem !important;
    box-shadow: 0 4px 20px rgba(10, 53, 109, 0.05) !important;
    box-sizing: border-box !important;
    position: relative !important;
}

/* En-tête de la carte Auth */
.vg-auth-header {
    text-align: center !important;
    margin-bottom: 1.75rem !important;
}

.vg-auth-icon-badge {
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background: #eff6ff !important;
    color: #0A356D !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 0.85rem auto !important;
    border: 1px solid #dbeafe !important;
}

.vg-auth-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    margin: 0 0 0.35rem 0 !important;
    letter-spacing: -0.01em !important;
    text-align: center !important;
}

.vg-auth-subtitle {
    font-size: 0.8125rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.45 !important;
    text-align: center !important;
}

/* Formulaire Auth */
.vg-auth-form {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.vg-auth-field {
    margin-bottom: 1.15rem !important;
    padding: 0 !important;
}

.vg-auth-field label {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #334155 !important;
    margin-bottom: 0.35rem !important;
    display: block !important;
}

.vg-auth-field label .required {
    color: #ef4444 !important;
    text-decoration: none !important;
}

/* Champs avec icône intégrée */
.vg-input-wrap {
    position: relative !important;
    width: 100% !important;
}

.vg-input-wrap .vg-input-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #94a3b8 !important;
    pointer-events: none !important;
}

.vg-input-wrap input.input-text {
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0.5rem 0.85rem 0.5rem 38px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 0.875rem !important;
    color: #0f172a !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    transition: all 0.15s ease !important;
}

.vg-input-wrap input.input-text:focus {
    border-color: #0A356D !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(10, 53, 109, 0.12) !important;
}

/* Ligne Actions : Se souvenir de moi & Mot de passe oublié */
.vg-auth-actions-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0.35rem 0 1.25rem 0 !important;
    font-size: 0.8125rem !important;
}

.vg-remember-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    font-size: 0.8125rem !important;
    color: #475569 !important;
    cursor: pointer !important;
    margin: 0 !important;
    user-select: none !important;
}

.vg-remember-label input[type="checkbox"] {
    accent-color: #0A356D !important;
    width: 15px !important;
    height: 15px !important;
    cursor: pointer !important;
    margin: 0 !important;
}

.vg-lost-pw-link {
    color: #0A356D !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

.vg-lost-pw-link:hover {
    color: #082c5b !important;
    text-decoration: underline !important;
}

.vg-lost-pw-fallback {
    display: none !important;
}

/* Bouton principal de soumission Auth */
.vg-auth-submit-btn,
button.woocommerce-form-login__submit {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    background: #0A356D !important;
    color: #ffffff !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    transition: background 0.15s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.vg-auth-submit-btn:hover,
button.woocommerce-form-login__submit:hover {
    background: #082c5b !important;
    color: #ffffff !important;
}

/* Note informative d'inscription */
.vg-auth-note {
    font-size: 0.78rem !important;
    color: #64748b !important;
    line-height: 1.4 !important;
    margin: 0 0 1rem 0 !important;
}

/* Pied de carte Auth : Aide et assistance WhatsApp */
.vg-auth-footer {
    margin-top: 1.5rem !important;
    padding-top: 1.15rem !important;
    border-top: 1px solid #f1f5f9 !important;
    text-align: center !important;
}

.vg-auth-help-text {
    font-size: 0.78rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

.vg-auth-help-text a {
    color: #25D366 !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    margin-top: 0.25rem !important;
    text-decoration: none !important;
}

.vg-auth-help-text a:hover {
    text-decoration: underline !important;
}

/* ==========================================================================
   TABLEAU DE BORD MON COMPTE (CONNECTÉ)
   ========================================================================== */
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
    max-width: 1140px !important;
    margin: 2rem auto 4.5rem !important;
    padding: 0 1rem !important;
    display: flex !important;
    gap: 2rem !important;
    align-items: flex-start !important;
    box-sizing: border-box !important;
}

/* Navigation Mon Compte */
.woocommerce-MyAccount-navigation {
    width: 250px !important;
    min-width: 250px !important;
    max-width: 250px !important;
    float: none !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 0.65rem !important;
    box-sizing: border-box !important;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
}

.woocommerce-MyAccount-navigation li a {
    display: flex !important;
    align-items: center !important;
    padding: 0.65rem 0.85rem !important;
    border-radius: 6px !important;
    color: #334155 !important;
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
}

.woocommerce-MyAccount-navigation li a:hover {
    background: #f8fafc !important;
    color: #0A356D !important;
}

.woocommerce-MyAccount-navigation li.is-active a {
    background: #0A356D !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Contenu Principal Mon Compte */
.woocommerce-MyAccount-content {
    flex: 1 !important;
    min-width: 0 !important;
    float: none !important;
    width: auto !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 2rem !important;
    box-sizing: border-box !important;
    font-size: 0.875rem !important;
    line-height: 1.6 !important;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    margin-top: 0 !important;
    margin-bottom: 1rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.woocommerce-MyAccount-content a.button {
    background: #0A356D !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    padding: 0.5rem 1rem !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
}

@media (max-width: 840px) {
    body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }
    .woocommerce-MyAccount-navigation {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }
    .woocommerce-MyAccount-content {
        width: 100% !important;
    }
}

/* ==========================================================================
   12. PAGES LÉGALES & POLITIQUE DE CONFIDENTIALITÉ (/politique-de-confidentialite/)
   Mise en page éditoriale de prestige avec sommaire sticky et cartes aérées
   ========================================================================== */

/* Masquer le titre par défaut Hello Elementor pour les pages légales */
body.privacy-policy .page-header,
body.privacy-policy h1.entry-title {
    display: none !important;
}

body.privacy-policy .site-main {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Conteneur Global Page Légale */
.vg-legal-container {
    max-width: 1140px !important;
    margin: 2rem auto 4.5rem !important;
    padding: 0 1.25rem !important;
    box-sizing: border-box !important;
    font-family: var(--font-sans) !important;
    color: #0f172a !important;
}

/* En-tête / Hero de la page légale */
.vg-legal-header {
    text-align: center !important;
    margin-bottom: 2.5rem !important;
    padding-bottom: 1.75rem !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

.vg-legal-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    background: #eff6ff !important;
    color: #0A356D !important;
    padding: 0.35rem 0.85rem !important;
    border-radius: 20px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    margin-bottom: 0.85rem !important;
    border: 1px solid #dbeafe !important;
}

.vg-legal-title {
    font-size: 1.85rem !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    margin: 0 0 0.65rem 0 !important;
    letter-spacing: -0.02em !important;
}

.vg-legal-subtitle {
    font-size: 0.95rem !important;
    color: #475569 !important;
    max-width: 720px !important;
    margin: 0 auto 0.85rem auto !important;
    line-height: 1.55 !important;
}

.vg-legal-subtitle strong {
    color: #0A356D !important;
}

.vg-legal-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.65rem !important;
    font-size: 0.78rem !important;
    color: #94a3b8 !important;
    flex-wrap: wrap !important;
}

/* Grille 2 Colonnes Légale (Sommaire 290px + Contenu ~780px) */
.vg-legal-grid {
    display: grid !important;
    grid-template-columns: 290px minmax(0, 1fr) !important;
    gap: 2rem !important;
    align-items: start !important;
}

@media (max-width: 960px) {
    .vg-legal-grid {
        grid-template-columns: 1fr !important;
        gap: 1.75rem !important;
    }
}

/* Colonne Gauche : Sommaire Sticky & Réassurance */
.vg-legal-sidebar {
    position: sticky !important;
    top: 90px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
}

@media (max-width: 960px) {
    .vg-legal-sidebar {
        position: static !important;
    }
}

.vg-legal-sidebar-card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 1.25rem !important;
    box-sizing: border-box !important;
}

.vg-sidebar-card-title {
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    margin: 0 0 0.85rem 0 !important;
    padding-bottom: 0.45rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

/* Sommaire interactif */
.vg-legal-toc {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
}

.vg-toc-link {
    font-size: 0.8125rem !important;
    color: #475569 !important;
    text-decoration: none !important;
    padding: 0.35rem 0.5rem !important;
    border-radius: 4px !important;
    transition: all 0.15s ease !important;
    display: block !important;
    line-height: 1.35 !important;
}

.vg-toc-link:hover {
    background: #eff6ff !important;
    color: #0A356D !important;
    font-weight: 600 !important;
    padding-left: 0.75rem !important;
}

/* Liste des engagements */
.vg-commitment-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.85rem !important;
}

.vg-commitment-list li {
    display: flex !important;
    gap: 0.65rem !important;
    align-items: flex-start !important;
}

.vg-commit-icon {
    font-size: 1.15rem !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
}

.vg-commitment-list strong {
    font-size: 0.8125rem !important;
    color: #0f172a !important;
    display: block !important;
    margin-bottom: 0.15rem !important;
}

.vg-commitment-list p {
    font-size: 0.75rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.35 !important;
}

/* Carte Assistance Rapide */
.vg-legal-contact-desc {
    font-size: 0.78rem !important;
    color: #64748b !important;
    margin: 0 0 0.85rem 0 !important;
    line-height: 1.4 !important;
}

.vg-legal-whatsapp-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    width: 100% !important;
    height: 38px !important;
    background: #25D366 !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: background 0.15s ease !important;
    box-sizing: border-box !important;
}

.vg-legal-whatsapp-btn:hover {
    background: #20ba59 !important;
    color: #ffffff !important;
}

/* Colonne Droite : Cartes de Contenu */
.vg-legal-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
}

.vg-legal-card {
    position: relative !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 1.75rem 2rem !important;
    box-sizing: border-box !important;
}

.vg-legal-card-num {
    position: absolute !important;
    top: 1.5rem !important;
    right: 1.75rem !important;
    font-size: 1.75rem !important;
    font-weight: 900 !important;
    color: #f1f5f9 !important;
    font-family: monospace !important;
    user-select: none !important;
    line-height: 1 !important;
}

.vg-legal-card-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    margin: 0 0 1rem 0 !important;
    padding-bottom: 0.65rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

.vg-legal-card-body {
    font-size: 0.875rem !important;
    line-height: 1.65 !important;
    color: #334155 !important;
}

.vg-legal-card-body p {
    margin: 0 0 0.85rem 0 !important;
}

.vg-legal-card-body p:last-child {
    margin-bottom: 0 !important;
}

.vg-legal-card-body ul {
    margin: 0.5rem 0 1rem 1.25rem !important;
    padding: 0 !important;
}

.vg-legal-card-body li {
    margin-bottom: 0.4rem !important;
}

/* Encadrés de mise en avant et alertes */
.vg-legal-highlight-box {
    background: #f8fafc !important;
    border-left: 3px solid #0A356D !important;
    padding: 0.85rem 1.15rem !important;
    border-radius: 0 6px 6px 0 !important;
    margin: 1rem 0 !important;
    font-size: 0.84rem !important;
    line-height: 1.55 !important;
}

.vg-legal-highlight-box strong {
    color: #0A356D !important;
    display: block !important;
    margin-bottom: 0.35rem !important;
}

.vg-legal-highlight-box ul {
    margin: 0.35rem 0 0 1.15rem !important;
}

.vg-legal-alert.vg-alert-success {
    background: #f0fdf4 !important;
    border-left: 3px solid #16a34a !important;
    padding: 0.85rem 1.15rem !important;
    border-radius: 0 6px 6px 0 !important;
    margin: 1rem 0 !important;
    color: #166534 !important;
    font-size: 0.84rem !important;
    line-height: 1.55 !important;
}

.vg-legal-alert.vg-alert-success strong {
    color: #15803d !important;
    display: block !important;
    margin-bottom: 0.35rem !important;
}

.vg-legal-alert.vg-alert-success p {
    color: #166534 !important;
    margin: 0 !important;
}

/* Sous-grille des fonctionnalités de données */
.vg-legal-subgrid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.85rem !important;
    margin-top: 1rem !important;
}

@media (max-width: 640px) {
    .vg-legal-subgrid {
        grid-template-columns: 1fr !important;
    }
}

.vg-legal-feature {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    padding: 0.85rem 1rem !important;
}

.vg-legal-feature h4 {
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 0 0.35rem 0 !important;
}

.vg-legal-feature p {
    font-size: 0.78rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Liste à puces stylisée */
.vg-legal-checklist {
    list-style: none !important;
    margin: 0.75rem 0 1rem 0 !important;
    padding: 0 !important;
}

.vg-legal-checklist li {
    position: relative !important;
    padding-left: 1.5rem !important;
    margin-bottom: 0.65rem !important;
    line-height: 1.5 !important;
}

.vg-legal-checklist li::before {
    content: "✓" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    color: #0A356D !important;
    font-weight: 800 !important;
    font-size: 0.85rem !important;
}

/* ==========================================================================
   13. PAGE CONTACT (/contact/)
   Architecture moderne 2 colonnes avec canaux directs & formulaire interactif
   ========================================================================== */

/* Masquer le titre par défaut Hello Elementor pour la page contact */
body.page-id-10608 .page-header,
body:has(.vg-contact-container) .page-header {
    display: none !important;
}

body:has(.vg-contact-container) .site-main {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Conteneur Global */
.vg-contact-container {
    max-width: 1140px !important;
    margin: 2rem auto 4.5rem !important;
    padding: 0 1.25rem !important;
    box-sizing: border-box !important;
    font-family: var(--font-sans) !important;
    color: #0f172a !important;
}

/* En-tête / Hero Contact */
.vg-contact-header {
    text-align: center !important;
    margin-bottom: 2.5rem !important;
    padding-bottom: 1.75rem !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

.vg-contact-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    background: #eff6ff !important;
    color: #0A356D !important;
    padding: 0.35rem 0.85rem !important;
    border-radius: 20px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    margin-bottom: 0.85rem !important;
    border: 1px solid #dbeafe !important;
}

.vg-contact-title {
    font-size: 1.85rem !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    margin: 0 0 0.65rem 0 !important;
    letter-spacing: -0.02em !important;
}

.vg-contact-subtitle {
    font-size: 0.95rem !important;
    color: #475569 !important;
    max-width: 680px !important;
    margin: 0 auto 0.85rem auto !important;
    line-height: 1.55 !important;
}

.vg-contact-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.65rem !important;
    font-size: 0.8125rem !important;
    color: #64748b !important;
    flex-wrap: wrap !important;
}

.vg-meta-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    color: #475569 !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
}

.vg-meta-sep {
    color: #cbd5e1 !important;
    margin: 0 0.15rem !important;
}

.vg-svg-icon {
    width: 14px !important;
    height: 14px !important;
    color: #0A356D !important;
    flex-shrink: 0 !important;
}

/* Grille 2 Colonnes : Coordonnées 380px + Formulaire 1fr */
.vg-contact-grid {
    display: grid !important;
    grid-template-columns: 380px minmax(0, 1fr) !important;
    gap: 2rem !important;
    align-items: start !important;
}

@media (max-width: 960px) {
    .vg-contact-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

/* Colonne Gauche : Cartes de coordonnées */
.vg-contact-info-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
}

.vg-contact-card {
    position: relative !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 1.4rem !important;
    box-sizing: border-box !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
}

/* Carte WhatsApp Corporate & Sobre */
.vg-card-whatsapp-sober {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
}

.vg-contact-title-row {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
    margin-bottom: 0.2rem !important;
}

.vg-sober-tag {
    background: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #e2e8f0 !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    padding: 0.15rem 0.5rem !important;
    border-radius: 4px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
}

.vg-contact-card-header {
    display: flex !important;
    align-items: center !important;
    gap: 0.85rem !important;
    margin-bottom: 1rem !important;
}

.vg-contact-icon-box {
    width: 42px !important;
    height: 42px !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.vg-icon-wa-sober {
    background: #eff6ff !important;
    color: #0A356D !important;
    border: 1px solid #dbeafe !important;
}

.vg-icon-wa-sober svg {
    width: 22px !important;
    height: 22px !important;
}

.vg-contact-card-title {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 !important;
}

.vg-contact-card-sub {
    font-size: 0.75rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.35 !important;
}

.vg-contact-phone-display {
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: #0A356D !important;
    margin: 0 0 0.85rem 0 !important;
    letter-spacing: 0.02em !important;
}

.vg-btn-wa-sober {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    width: 100% !important;
    height: 42px !important;
    background: #0A356D !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    font-size: 0.84rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: background 0.15s ease !important;
    box-sizing: border-box !important;
}

.vg-btn-wa-sober:hover {
    background: #082c5b !important;
    color: #ffffff !important;
}

/* Liste de canaux téléphone & e-mail */
.vg-contact-channel-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.15rem !important;
}

.vg-channel-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.85rem !important;
}

.vg-channel-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 6px !important;
    background: #eff6ff !important;
    color: #0A356D !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.vg-channel-icon svg {
    width: 18px !important;
    height: 18px !important;
}

.vg-channel-label {
    display: block !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    margin-bottom: 0.2rem !important;
}

.vg-channel-val {
    display: block !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    text-decoration: none !important;
    margin-bottom: 0.2rem !important;
}

.vg-channel-val:hover {
    color: #082c5b !important;
    text-decoration: underline !important;
}

.vg-channel-desc {
    font-size: 0.75rem !important;
    color: #64748b !important;
    line-height: 1.35 !important;
    display: block !important;
}

/* Horaires d'ouverture */
.vg-schedule-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
}

.vg-schedule-list li {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 1px dashed #f1f5f9 !important;
    font-size: 0.8125rem !important;
}

.vg-schedule-list li:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.vg-sched-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    color: #64748b !important;
    font-size: 0.8125rem !important;
}

.vg-svg-mini {
    width: 14px !important;
    height: 14px !important;
    color: #0A356D !important;
    flex-shrink: 0 !important;
}

.vg-schedule-list li strong {
    color: #0f172a !important;
    font-weight: 600 !important;
}

.vg-sched-highlight {
    color: #0A356D !important;
    font-weight: 600 !important;
    background: #eff6ff !important;
    padding: 0.15rem 0.5rem !important;
    border-radius: 4px !important;
    font-size: 0.78rem !important;
}

/* Colonne Droite : Formulaire */
.vg-contact-form-col {
    min-width: 0 !important;
}

.vg-contact-form-card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 2rem !important;
    box-sizing: border-box !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
}

.vg-form-header {
    margin-bottom: 1.5rem !important;
    padding-bottom: 1.15rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.vg-form-title {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: #0A356D !important;
    margin: 0 0 0.35rem 0 !important;
    letter-spacing: -0.01em !important;
}

.vg-form-desc {
    font-size: 0.84rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.45 !important;
}

.vg-contact-form-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.15rem !important;
    margin: 0 !important;
    padding: 0 !important;
}

.vg-form-row-2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem !important;
}

@media (max-width: 640px) {
    .vg-form-row-2 {
        grid-template-columns: 1fr !important;
        gap: 1.15rem !important;
    }
}

.vg-form-group {
    display: flex !important;
    flex-direction: column !important;
}

.vg-form-group label {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #334155 !important;
    margin-bottom: 0.4rem !important;
}

.vg-form-group label .required {
    color: #ef4444 !important;
}

.vg-form-input,
.vg-form-textarea {
    width: 100% !important;
    padding: 0.65rem 0.85rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 0.875rem !important;
    color: #0f172a !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    transition: all 0.15s ease !important;
    font-family: inherit !important;
}

.vg-form-input {
    height: 42px !important;
}

.vg-form-input:focus,
.vg-form-textarea:focus {
    border-color: #0A356D !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(10, 53, 109, 0.12) !important;
}

.vg-form-actions {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    margin-top: 0.5rem !important;
}

@media (max-width: 640px) {
    .vg-form-actions {
        flex-direction: column !important;
    }
}

.vg-submit-wa-btn {
    flex: 1 !important;
    height: 44px !important;
    background: #0A356D !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    cursor: pointer !important;
    transition: background 0.15s ease !important;
    box-sizing: border-box !important;
}

.vg-submit-wa-btn:hover {
    background: #082c5b !important;
    color: #ffffff !important;
}

.vg-submit-mail-btn {
    height: 44px !important;
    padding: 0 1.25rem !important;
    background: #ffffff !important;
    color: #334155 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 0.84rem !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.45rem !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    box-sizing: border-box !important;
}

.vg-submit-mail-btn:hover {
    background: #f8fafc !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
}

/* Réassurance sous le formulaire avec Icônes SVG Professionnelles */
.vg-form-footer-guarantee {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1rem !important;
    margin-top: 1.75rem !important;
    padding-top: 1.4rem !important;
    border-top: 1px solid #f1f5f9 !important;
}

@media (max-width: 640px) {
    .vg-form-footer-guarantee {
        grid-template-columns: 1fr !important;
        gap: 0.85rem !important;
    }
}

.vg-guarantee-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.65rem !important;
}

.vg-guarantee-icon {
    width: 32px !important;
    height: 32px !important;
    border-radius: 6px !important;
    background: #eff6ff !important;
    color: #0A356D !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.vg-guarantee-icon svg {
    width: 16px !important;
    height: 16px !important;
}

.vg-guarantee-item strong {
    display: block !important;
    font-size: 0.8125rem !important;
    color: #0f172a !important;
    margin-bottom: 0.15rem !important;
}

.vg-guarantee-item small {
    display: block !important;
    font-size: 0.72rem !important;
    color: #64748b !important;
    line-height: 1.35 !important;
}





