/* ==========================================================================
   JDVC TOOLBOX - WOOBOX CSS
   Front des modules « Category: E-Commerce > … » (chargé par jdvc.php si WooCommerce est actif).
   ========================================================================== */

/* === LOT 01 === */
/* --- Age Gate (age-gate.php) : popup de vérification (le floutage critique reste inline, conditionnel) --- */
#jdvc-age-overlay { backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(10, 10, 12, 0.75); z-index: 9999999; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
.age-gate-box { background: #1c1c1f; color: #fff; padding: 40px 30px; border-radius: 12px; text-align: center; max-width: 400px; width: 100%; box-shadow: 0 15px 35px rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.1); }
.age-gate-box h2 { margin: 0 0 15px 0; font-size: 24px; color: #f1c40f; }
.age-gate-box p { margin: 0 0 25px 0; font-size: 14px; color: #ccc; line-height: 1.5; }
.age-gate-buttons { display: flex; gap: 15px; justify-content: center; }
.age-btn { padding: 12px 24px; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 14px; transition: all 0.2s; text-decoration: none; }
.age-btn-yes { background: #1abc9c; color: #fff; }
.age-btn-yes:hover { background: #16a085; transform: translateY(-1px); }
.age-btn-no { background: #3a3a3e; color: #bbb; }
.age-btn-no:hover { background: #c0392b; color: #fff; }

/* --- AJAX Shop (ajax-shop.php) : modale produit (scopée par #jdvc-ajax-modal pour ne plus entrer en collision avec AJAX Actus) --- */
#jdvc-ajax-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; display: none; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; }
#jdvc-ajax-modal.is-active { display: flex; opacity: 1; }
#jdvc-ajax-modal .jdvc-modal-overlay { position: absolute; width: 100%; height: 100%; background: rgba(0,0,0,0.8); backdrop-filter: blur(8px); }
#jdvc-ajax-modal .jdvc-modal-container { position: relative; background: #fff; width: 100%; height: 100vh; z-index: 10; overflow: hidden; transform: translateY(30px); transition: transform 0.3s ease; }
@media (min-width: 768px) { #jdvc-ajax-modal .jdvc-modal-container { width: 95%; max-width: 1500px; min-width: 1100px; height: 90vh; min-height: 650px; border-radius: 12px; } }
#jdvc-ajax-modal.is-active .jdvc-modal-container { transform: translateY(0); }
#jdvc-modal-body { height: 100%; overflow-y: auto; padding: 20px; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; }
#jdvc-ajax-modal .jdvc-modal-close { position: fixed !important; top: 70px !important; right: 20px !important; width: 48px; height: 48px; background: #fff !important; border-radius: 50%; font-size: 36px; line-height: 1; color: #000; cursor: pointer; z-index: 2147483647 !important; display: none; align-items: center; justify-content: center; box-shadow: 0 4px 15px rgba(0,0,0,0.4); border: 2px solid #000 !important; padding: 0; margin: 0; }
body.admin-bar #jdvc-ajax-modal .jdvc-modal-close { top: 100px !important; }
#jdvc-ajax-modal.is-active .jdvc-modal-close { display: flex; }
#jdvc-ajax-modal .jdvc-modal-close:active { transform: scale(0.9); }
#jdvc-ajax-modal .jdvc-loader { margin: auto; padding: 50px; text-align: center; font-family: sans-serif; font-weight: bold; color: #333; }
#jdvc-ajax-modal .jdvc-added-msg { background: #e3f9e5; color: #22543d; padding: 12px; margin-bottom: 15px; border-radius: 5px; text-align: center; font-weight: bold; }
body.jdvc-modal-open { overflow: hidden !important; }
/* Contenu chargé en AJAX dans la modale (ex-<style> de la réponse, désormais scopé à la modale) */
#jdvc-modal-body .elementor-template-modal-content img { opacity: 1 !important; visibility: visible !important; display: block !important; filter: blur(0) !important; }
#jdvc-modal-body .woocommerce-product-gallery { opacity: 1 !important; }
#jdvc-modal-body .jdvc-cart-loading { opacity: 0.5; pointer-events: none; }

/* === LOT 02 === */
/* --- Design Shipping (design-shipping.php) : cartes de livraison (panier / commande). Les règles utilisant la couleur choisie restent imprimées par le module --- */
/* Grille forcée à 2 colonnes */
#shipping_method { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; list-style: none !important; padding: 10px 0 !important; margin: 0 !important; }
#shipping_method li { position: relative !important; background: #ffffff !important; border: 2px solid #e2e8f0 !important; border-radius: 8px !important; padding: 12px 8px !important; transition: all 0.2s ease-in-out !important; display: flex !important; align-items: center !important; justify-content: center !important; text-align: center !important; min-height: 70px !important; margin: 0 !important; }
/* Cache du radio natif proprement sans bloquer le reste */
#shipping_method li input[type="radio"] { position: absolute !important; opacity: 0 !important; top: 0 !important; left: 0 !important; width: 12px !important; /* Taille minimale juste pour le focus / positionnement */ height: 12px !important; margin: 0 !important; z-index: 1 !important; /* Passe sous les boutons du module */ }
/* On s'assure que le label prend de la place mais ne bloque pas les boutons */
#shipping_method li label { font-size: 12px !important; font-weight: 600 !important; line-height: 1.2 !important; color: #333 !important; cursor: pointer !important; display: block !important; width: 100% !important; }
/* Optionnel : Si Packlink injecte son bouton après le label, on s'assure que le bouton repasse bien au-dessus du reste au clic */
#packlink-drop-off-picker { position: relative !important; z-index: 3 !important; }

/* --- Gift Cards (gift-card.php) : interface carte cadeau (fiches produits cadeau ; la classe body .jdvc-is-giftcard est posée en JS) --- */
.jdvc-is-giftcard .price,  .jdvc-is-giftcard .woocommerce-Price-amount,  .jdvc-is-giftcard form.cart:not(.gc-form),  .jdvc-is-giftcard .quantity { display: none !important; visibility: hidden !important; height: 0 !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; }
.jdvc-gc-ui { background:#f4f7f9 !important; padding:20px !important; border:2px solid #093161 !important; border-radius:10px !important; margin: 20px 0 !important; display: block !important; visibility: visible !important; opacity: 1 !important; clear: both; }
.gc-btns { display:flex; gap:10px; flex-wrap:wrap; margin:15px 0; }
.gc-btn { border:1px solid #093161; background:#fff; color:#093161; padding:8px 15px; border-radius:5px; cursor:pointer; font-weight:bold; }
.gc-btn.active { background:#093161; color:#fff; }
.gc-input-field { width:100% !important; margin-bottom:10px !important; border-radius:5px !important; border:1px solid #ccc !important; padding: 10px !important; }
.gc-main-submit { width:100%; background:#093161 !important; color:#fff !important; padding:15px !important; border:none !important; border-radius:5px !important; font-weight:bold !important; cursor:pointer; }
.jdvc-gc-ui .gc-title { margin-top:0 !important; color:#093161 !important; }
.jdvc-gc-ui .gc-label { margin:10px 0 5px 0 !important; font-size:13px !important; font-weight:bold !important; color:#093161 !important; }
.jdvc-gc-ui form.gc-form { margin-top:10px !important; display:block !important; visibility:visible !important; opacity:1 !important; }

/* --- Gamification (gamification.php) : espace fidélité [jdvc_gamification] --- */
.jdvc-gamification-box { background:#fff !important; border:1px solid #ddd !important; padding:25px !important; border-radius:10px !important; max-width:600px !important; box-shadow:0 4px 10px rgba(0,0,0,0.02) !important; font-family:Arial, sans-serif !important; }
.jdvc-gami-head { text-align:center !important; margin-bottom:25px !important; padding-bottom:20px !important; border-bottom:1px solid #eee !important; }
.jdvc-gami-kicker { font-size:14px !important; text-transform:uppercase !important; color:#888 !important; font-weight:bold !important; letter-spacing:1px !important; }
.jdvc-gami-balance { margin:5px 0 0 0 !important; font-size:36px !important; color:#2c3e50 !important; }
.jdvc-gami-unit { font-size:18px !important; color:#7f8c8d !important; }
.jdvc-gami-rule { margin:5px 0 0 0 !important; font-size:12px !important; color:#999 !important; font-style:italic !important; }
.jdvc-gami-msg { margin-bottom:15px !important; font-weight:bold !important; }
.jdvc-gami-msg.is-error { color:#c33 !important; }
.jdvc-gami-msg.is-success { color:#46b450 !important; }
.jdvc-gami-code { background:#f0f0f0 !important; padding:2px 6px !important; border-radius:3px !important; font-weight:bold !important; }
.jdvc-gami-code.is-large { font-size:16px !important; background:#e5f5e5 !important; padding:3px 8px !important; border-radius:4px !important; font-weight:normal !important; }
.jdvc-gami-form { margin-bottom:30px !important; background:#f9f9f9 !important; padding:15px !important; border-radius:6px !important; }
.jdvc-gami-label { display:block; margin-bottom:8px !important; font-weight:bold !important; color:#34495e !important; }
.jdvc-gami-row { display:flex; gap:10px !important; }
.jdvc-gami-input { flex:1 !important; padding:10px !important; border:1px solid #ccc !important; border-radius:4px !important; }
.jdvc-gami-btn { background:#0073aa !important; color:#fff !important; border:none !important; padding:10px 20px !important; font-weight:bold !important; border-radius:4px !important; cursor:pointer !important; }
.jdvc-gami-h { margin:0 0 10px 0 !important; color:#2c3e50 !important; }
.jdvc-gami-table { width:100% !important; text-align:left !important; border-collapse:collapse !important; font-size:13px !important; }
.jdvc-gami-table tr.is-head { border-bottom:2px solid #eee !important; color:#7f8c8d !important; }
.jdvc-gami-table th { padding:8px 0 !important; }
.jdvc-gami-table tbody tr { border-bottom:1px solid #f5f5f5 !important; }
.jdvc-gami-table td { padding:10px 0 !important; }
.jdvc-gami-table td.is-minus { font-weight:bold !important; color:#c0392b !important; }
.jdvc-gami-table td.is-plus { font-weight:bold !important; color:#27ae60 !important; }
.jdvc-gami-empty { color:#999 !important; font-style:italic !important; margin:0 !important; font-size:13px !important; }

/* --- Floating Cart (floating-cart.php) : panneau et icône. Couleurs des réglages : restent inline --- */
#jdvc-cart-overlay { position:fixed !important; top:0 !important; left:0 !important; width:100% !important; height:100% !important; z-index:9999998 !important; }
#jdvc-cart-panel { position:fixed !important; top:0 !important; width:100% !important; max-width:380px !important; height:100vh !important; z-index:9999999 !important; box-sizing:border-box !important; overflow:hidden !important; visibility:visible; }
#jdvc-cart-panel.is-right { right:-450px !important; transition:right 0.4s !important; box-shadow:rgba(0,0,0,0.2) -10px 0px 30px !important; }
#jdvc-cart-panel.is-left { left:-450px !important; transition:left 0.4s !important; box-shadow:rgba(0,0,0,0.2) 10px 0px 30px !important; }
#jdvc-cart-panel.is-right.is-open { right:0 !important; }
#jdvc-cart-panel.is-left.is-open { left:0 !important; }
body.jdvc-fc-lock { overflow:hidden !important; }
.jdvc-fc-head { position:absolute !important; top:0 !important; left:0 !important; width:100% !important; height:70px !important; padding:0 25px !important; display:flex; justify-content:space-between !important; align-items:center !important; border-bottom:1px solid #eee !important; box-sizing:border-box !important; z-index:10 !important; }
.jdvc-fc-title { margin:0 !important; font-size:18px !important; color:#333 !important; font-family:sans-serif !important; }
#jdvc-close-panel { cursor:pointer !important; font-size:30px !important; line-height:1 !important; color:#333 !important; }
#jdvc-cart-panel .jdvc-cart-items { position:absolute !important; top:70px !important; bottom:190px !important; left:0 !important; width:100% !important; overflow-y:auto !important; padding:20px 25px !important; box-sizing:border-box !important; -webkit-overflow-scrolling:touch !important; }
.jdvc-fc-foot { position:absolute !important; bottom:0 !important; left:0 !important; width:100% !important; height:190px !important; padding:20px 25px !important; border-top:1px solid #eee !important; box-sizing:border-box !important; z-index:10 !important; }
.jdvc-fc-total { display:flex; justify-content:space-between !important; font-weight:bold !important; margin-bottom:15px !important; font-family:sans-serif !important; color:#333 !important; }
.jdvc-fc-btns { display:grid; gap:10px !important; }
.jdvc-fc-btn { padding:14px !important; text-align:center !important; text-decoration:none !important; border-radius:6px !important; font-weight:bold !important; font-size:14px !important; display:block; font-family:sans-serif !important; }
.jdvc-cart-wrapper { display:inline-block; position:relative !important; z-index:9999 !important; vertical-align:middle !important; }
#jdvc-cart-trigger { width:45px !important; height:45px !important; border-radius:50% !important; display:flex; align-items:center !important; justify-content:center !important; cursor:pointer !important; position:relative !important; box-sizing:border-box !important; }
#jdvc-cart-trigger svg { width:20px !important; height:20px !important; }
#jdvc-cart-count { position:absolute !important; top:-5px !important; right:-5px !important; color:#fff !important; font-size:10px !important; font-weight:bold !important; min-width:18px !important; height:18px !important; border-radius:10px !important; align-items:center !important; justify-content:center !important; padding:0 4px !important; border:1px solid #fff !important; font-family:sans-serif !important; }
.jdvc-fc-empty { text-align:center !important; color:#999 !important; margin-top:30px !important; font-family:sans-serif !important; }
.jdvc-cart-item { display:flex; gap:12px !important; margin-bottom:15px !important; border-bottom:1px solid #f5f5f5 !important; padding-bottom:15px !important; align-items:flex-start !important; font-family:sans-serif !important; }
.jdvc-cart-item.is-removing { opacity:0.3; }
.jdvc-fc-thumb { width:60px !important; height:60px !important; object-fit:cover !important; border-radius:4px !important; }
.jdvc-fc-info { flex:1 !important; font-size:14px !important; color:#333 !important; }
.jdvc-fc-name { display:block; }
.jdvc-cart-item-meta { font-size:11px !important; color:#888 !important; margin:4px 0 !important; }
.jdvc-fc-qty { color:#666 !important; font-weight:bold !important; }
.jdvc-cart-remove { cursor:pointer !important; color:#bbb !important; font-size:20px !important; }

/* === LOT 03 === */
/* --- Hover Image (hover-image.php) : image secondaire au survol des produits (ex-<style> du <head> de toutes les pages) --- */
.jdvc-hover-container { position: relative !important; display: block !important; overflow: hidden !important; background: #fff !important; line-height: 0 !important; aspect-ratio: 1 / 1; z-index: 1 !important; }
.jdvc-hover-container .wp-post-image { position: relative !important; z-index: 2 !important; opacity: 1 !important; display: block !important; width: 100% !important; height: auto !important; transition: opacity 0.3s ease-in-out !important; }
.jdvc-hover-container .jdvc-img-secondary { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; z-index: 3 !important; opacity: 0 !important; display: block !important; object-fit: cover !important; transition: opacity 0.3s ease-in-out !important; pointer-events: none !important; }
.jdvc-hover-container:hover .jdvc-img-secondary { opacity: 1 !important; }
.jdvc-hover-container:hover .wp-post-image { opacity: 0 !important; }

/* --- Instant Search Preview (liste de résultats) --- */
.jdvc-is-anchor { position: relative; }
.jdvc-is-results { position: absolute; top: 100%; left: 0; right: 0; min-width: 260px; margin-top: 4px; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.12); z-index: 9999; max-height: 70vh; overflow-y: auto; text-align: left; }
.jdvc-is-results[hidden] { display: none; }
.jdvc-is-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; color: inherit; text-decoration: none; border-bottom: 1px solid #f1f5f9; }
.jdvc-is-item:hover, .jdvc-is-item.is-active { background: #f8fafc; }
.jdvc-is-item img { width: 44px; height: 44px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }
.jdvc-is-text { display: flex; flex-direction: column; min-width: 0; }
.jdvc-is-title { font-size: 14px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jdvc-is-price { font-size: 13px; font-weight: 600; opacity: 0.8; }
.jdvc-is-all { display: block; padding: 10px 12px; font-size: 13px; font-weight: 600; text-align: center; text-decoration: none; }
.jdvc-is-all:hover { background: #f8fafc; }
.jdvc-is-empty { margin: 0; padding: 12px; font-size: 13px; opacity: 0.7; }

/* === LOT 04 === */
/* --- New Product Badge (new-product-badge.php) --- */
.jdvc-new-badge { position:absolute !important; top:10px !important; left:10px !important; background:#2ecc71 !important; color:#fff !important; padding:4px 8px !important; font-size:10px !important; font-weight:bold !important; text-transform:uppercase !important; border-radius:3px !important; z-index:10 !important; line-height:1 !important; }

/* --- Pre-orders (pre-order.php) : compte à rebours (fiche produit) et badge panier --- */
.jdvc-preorder-countdown { background: #fff5f5 !important; border: 2px dashed #e74c3c !important; padding: 15px !important; border-radius: 8px !important; margin-bottom: 20px !important; display: block !important; color: #c0392b; font-family: sans-serif; text-align: center; }
.jdvc-po-timer { font-size: 22px; font-weight: bold; letter-spacing: 1px; margin-top: 5px; font-family: monospace; }
.jdvc-po-cart-badge { background:#e74c3c !important; color:#fff !important; font-size:11px !important; padding:3px 7px !important; border-radius:4px !important; font-weight:bold !important; margin-left:8px !important; vertical-align:middle !important; }

/* --- Mobile App Navigation (mobile-app-navigation.php) : barres, modale, panier et menu de repli (couleurs des réglages : inline) --- */
#jdvc-top-bar { position:fixed !important; top:-70px !important; left:0 !important; right:0 !important; height:65px !important; border-bottom:1px solid rgba(0,0,0,0.08) !important; display:flex; align-items:center !important; justify-content:center !important; z-index:2147483646 !important; transition:top 0.3s ease !important; box-shadow:0 5px 15px rgba(0,0,0,0.05) !important; padding:5px 20px !important; }
#jdvc-top-bar.is-visible { top:0 !important; }
#jdvc-top-bar .jd-logo { display:flex; align-items:center !important; height:100% !important; max-width:180px !important; }
#jdvc-top-bar .jd-logo img { max-height:45px !important; width:auto !important; object-fit:contain !important; }
#jdvc-top-bar .jd-site-name { font-weight:bold !important; font-family:sans-serif !important; }
#jdvc-nav-overlay { position:fixed !important; top:0 !important; left:0 !important; width:100% !important; height:100% !important; background:rgba(0,0,0,0.6) !important; z-index:2147483640 !important; backdrop-filter:blur(3px) !important; }
#jdvc-nav-modal { position:fixed !important; bottom:-100% !important; left:0 !important; width:100% !important; max-height:85vh !important; background:#fff !important; z-index:2147483641 !important; border-radius:20px 20px 0 0 !important; transition:bottom 0.3s ease !important; padding:25px 20px 90px !important; box-sizing:border-box !important; display:flex; flex-direction:column !important; }
#jdvc-nav-modal.is-open { bottom:0 !important; }
#jdvc-nav-modal .jd-handle { width:40px !important; height:4px !important; background:#ddd !important; border-radius:2px !important; margin:-5px auto 20px !important; flex-shrink:0 !important; }
#jdvc-modal-content { overflow-y:auto !important; flex:1 !important; }
#jdvc-modal-footer { margin-top:20px !important; }
#jdvc-mobile-bar { position:fixed !important; bottom:0 !important; left:0 !important; right:0 !important; height:65px !important; border-top:1px solid rgba(0,0,0,0.08) !important; display:flex !important; z-index:2147483647 !important; padding-bottom:env(safe-area-inset-bottom) !important; box-shadow:0 -5px 20px rgba(0,0,0,0.08) !important; }
#jdvc-mobile-bar svg { width:24px !important; height:24px !important; fill:currentColor !important; }
#jdvc-mobile-bar .jd-trig[data-t="cart"] { position:relative !important; }
#jd-badge { position:absolute !important; top:5px !important; right:15% !important; background:#e74c3c !important; color:#fff !important; font-size:10px !important; padding:2px 6px !important; border-radius:10px !important; }
body.jdvc-app-nav-on { padding-bottom:65px !important; overflow-x:hidden !important; width:100% !important; }
body.jdvc-app-nav-lock { overflow:hidden !important; }
body.jdvc-app-nav-on { --jdvc-app-bar-h:65px; }
body.jdvc-app-nav-on .wd-sticky-btn, body.jdvc-app-nav-on .wd-sticky-btn-cart, body.jdvc-app-nav-on .cart-checkout-button, body.jdvc-app-nav-on .sticky-add-to-cart { bottom:calc(var(--jdvc-app-bar-h) + 10px + env(safe-area-inset-bottom)) !important; }
body.jdvc-app-nav-on .jdvc-app-lift { bottom:calc(var(--jdvc-app-bar-h) + env(safe-area-inset-bottom) + var(--jdvc-lift-base, 0px)) !important; }
#jdvc-nav-modal .jd-msg { text-align:center !important; padding:20px !important; }
#jdvc-nav-modal .jd-cart-empty { text-align:center !important; padding:40px 20px !important; font-family:sans-serif !important; }
#jdvc-nav-modal .jd-cart-empty-icon { font-size:50px !important; margin-bottom:10px !important; }
#jdvc-nav-modal .jd-cart-empty p { color:#666 !important; }
#jdvc-nav-modal .jd-cart-item { display:flex; gap:15px !important; margin-bottom:20px !important; align-items:flex-start !important; border-bottom:1px solid #f0f0f0 !important; padding-bottom:15px !important; font-family:sans-serif !important; }
#jdvc-nav-modal .jd-cart-thumb { width:70px !important; height:70px !important; flex-shrink:0 !important; border-radius:8px !important; overflow:hidden !important; }
#jdvc-nav-modal .jd-cart-info { flex:1 !important; }
#jdvc-nav-modal .jd-cart-info h4 { margin:0 !important; font-size:14px !important; color:#222 !important; }
#jdvc-nav-modal .jd-cart-meta { font-size:11px !important; color:#999 !important; margin-top:4px !important; }
#jdvc-nav-modal .jd-cart-qty { margin:5px 0 0 !important; font-size:13px !important; color:#888 !important; }
.jdvc-menu-accordeon { list-style:none !important; padding:0 !important; margin:0 !important; }
.jdvc-menu-accordeon li { border-bottom: 1px solid #eee; position: relative; }
.jdvc-menu-accordeon li a { display: block; padding: 15px; text-decoration: none; color: #333; font-weight: 600; font-family: sans-serif; }
.jdvc-menu-accordeon .sub-menu { display: none; background: #f9f9f9; padding-left: 15px; list-style: none; }
.jdvc-menu-accordeon .menu-item-has-children > a::after { content: '▼'; font-size: 10px; float: right; transition: transform 0.3s; color: #888; }
.jdvc-menu-accordeon .menu-item-has-children.active > a::after { transform: rotate(180deg); }

/* === LOT 05 === */
/* --- Quick Login Checkout (quick-login-checkout.php) : encart de connexion (page de commande) --- */
.jdvc-quick-login-box { background:#f9f9f9 !important; padding:25px !important; border-radius:10px !important; border:2px dashed #2ecc71 !important; margin-bottom:30px !important; text-align:center !important; }
.jdvc-quick-login-box .jdvc-ql-icon { font-size:24px !important; display:block; margin-bottom:10px !important; }
.jdvc-quick-login-box .jdvc-ql-title { margin:0 0 10px 0 !important; color:#2c3e50 !important; }
.jdvc-quick-login-box .jdvc-ql-text { margin-bottom:20px !important; color:#7f8c8d !important; font-size:14px !important; }
.jdvc-quick-login-box .jdvc-ql-btn { background-color:#2ecc71 !important; color:white !important; border:none !important; padding:12px 25px !important; font-weight:bold !important; border-radius:5px !important; text-decoration:none !important; display:inline-block !important; }

/* --- Smart Upsell (smart-upsell.php) : suggestions de la page Panier --- */
.jdvc-upsell-cart-container { margin-top: 30px; padding: 20px; background: #fff; border: 1px solid #eee; border-radius: 8px; clear: both; }
.jdvc-upsell-title { margin-bottom: 15px; font-size: 16px; border-bottom: 2px solid var(--e-global-color-primary, #2ecc71); display: inline-block; padding-bottom: 5px; color: var(--e-global-color-text, #333); }
.jdvc-upsell-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px dashed #eee; }
.jdvc-upsell-price { color: var(--e-global-color-text, #333); font-weight: bold; font-size: 14px; }
.jdvc-upsell-btn { border: 2px solid var(--e-global-color-primary, #000); background: #fff; color: var(--e-global-color-primary, #000); padding: 6px 12px; border-radius: 4px; text-decoration: none; font-size: 11px; font-weight: bold; text-transform: uppercase; transition: all 0.3s; cursor: pointer; }
.jdvc-upsell-btn:hover { background: var(--e-global-color-primary, #000); color: #fff; }
.jdvc-var-select { font-size: 11px; padding: 5px; border: 1px solid #ddd; border-radius: 3px; margin-top: 5px; width: 100%; max-width: 160px; color: #666; }
#jdvc-upsell-list { display:flex; flex-direction:column !important; }
.jdvc-upsell-main { display:flex; align-items:center !important; gap:10px !important; }
.jdvc-upsell-name { display:block; font-size:13px !important; font-weight:bold !important; }
.jdvc-upsell-btn.is-loading { opacity:0.5; }

/* --- Subscriptions (subscriptions.php) : libellé de facturation dans le panier (protégé de la mise en capitales de WooCommerce) --- */
.jdvc-sub-label { text-transform:none !important; display:inline-block; }

/* --- Social Proof (social-proof.php) : encart sous le prix (fiche produit) --- */
.jdvc-social-proof { background:#fffcf5 !important; border:1px solid #ffeeba !important; padding:10px 15px !important; border-radius:6px !important; margin:15px 0 !important; display:inline-block; }
.jdvc-social-proof p { color:#e67e22 !important; font-weight:bold !important; margin:0 !important; font-size:14px !important; display:flex; align-items:center !important; gap:8px !important; }
.jdvc-social-proof .jdvc-sp-icon { font-size:18px !important; }

/* --- Sticky Cart (sticky-cart.php) : bandeau d'achat (affichage basculé en JS : .is-visible) --- */
#jdvc-sticky-bar { position:fixed !important; bottom:-160px !important; left:0 !important; width:100% !important; background:#ffffff !important; box-shadow:0 -5px 20px rgba(0,0,0,0.15) !important; z-index:999998 !important; transition:all 0.4s ease-in-out !important; padding:12px 0 !important; border-top:1px solid #eee !important; display:block !important; }
#jdvc-sticky-bar.is-visible { bottom:0 !important; }
#jdvc-sticky-bar .jdvc-sticky-content { max-width:1200px !important; margin:0 auto !important; display:flex; align-items:center !important; justify-content:space-between !important; padding:0 20px !important; box-sizing:border-box !important; }
#jdvc-sticky-dynamic-info { display:flex; align-items:center !important; gap:12px !important; font-family:sans-serif !important; }
#jdvc-sticky-bar .jdvc-sticky-btn { background:#000 !important; color:#fff !important; border:none !important; padding:12px 24px !important; font-weight:bold !important; text-transform:uppercase !important; cursor:pointer !important; border-radius:4px !important; font-size:13px !important; font-family:sans-serif !important; }
#jdvc-sticky-bar .jdvc-sticky-thumb { width:45px !important; height:45px !important; object-fit:cover !important; border-radius:4px !important; }
/* Optimisation mobile : on cache les infos pour laisser toute la place au bouton */
@media (max-width: 600px) {
    #jdvc-sticky-bar #jdvc-sticky-dynamic-info { display: none !important; }
    #jdvc-sticky-bar .jdvc-sticky-btn { width: 100% !important; padding: 15px !important; font-size: 14px !important; }
}

/* === LOT 06 === */
/* Aucun ajout : les modules de ce lot n'ont pas de CSS front E-Commerce à centraliser. */

/* === Catalog Generator (catalog-generator.php) === */
/* Bouton (injection automatique, widget Elementor, shortcode) */
.jdvc-catalog-btn { display: inline-block; margin: 10px 0; padding: 10px 20px; border-radius: 5px; background: #e74c3c; color: #fff; text-decoration: none; }
/* Document du catalogue : page autonome hors thème, tout est scopé par body.jdvc-catalog-doc */
@page jdvc-catalog { size: A4; margin: 12mm; }
.jdvc-catalog-doc { page: jdvc-catalog; margin: 0; font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 11pt; color: #222; background: #e5e7eb; }
.jdvc-catalog-doc * { box-sizing: border-box; }
.jdvc-catalog-doc .jc-toolbar { position: sticky; top: 0; z-index: 10; display: flex; gap: 12px; align-items: center; justify-content: center; padding: 12px; background: #111827; color: #fff; }
.jdvc-catalog-doc .jc-toolbar button { padding: 10px 18px; border: 0; border-radius: 6px; background: #e74c3c; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.jdvc-catalog-doc .jc-toolbar span { font-size: 13px; opacity: .8; }
.jdvc-catalog-doc .jc-page { max-width: 210mm; margin: 20px auto; padding: 12mm; background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.jdvc-catalog-doc .jc-cover { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 240mm; text-align: center; }
.jdvc-catalog-doc .jc-cover img { max-width: 60mm; max-height: 40mm; width: auto; height: auto; margin-bottom: 12mm; }
.jdvc-catalog-doc .jc-cover h1 { margin: 0 0 4mm; font-size: 30pt; }
.jdvc-catalog-doc .jc-cover p { margin: 0; color: #666; font-size: 13pt; }
.jdvc-catalog-doc .jc-section { break-before: page; }
.jdvc-catalog-doc .jc-section h2 { margin: 0 0 6mm; padding-bottom: 2mm; border-bottom: 2px solid #222; font-size: 18pt; }
.jdvc-catalog-doc .jc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6mm; }
.jdvc-catalog-doc .jc-card { break-inside: avoid; border: 1px solid #e5e7eb; border-radius: 3mm; padding: 3mm; }
.jdvc-catalog-doc .jc-card img { display: block; width: 100%; height: 45mm; object-fit: contain; margin-bottom: 2mm; }
.jdvc-catalog-doc .jc-card h3 { margin: 0 0 1mm; font-size: 11pt; line-height: 1.25; }
.jdvc-catalog-doc .jc-meta { margin: 0 0 1mm; color: #777; font-size: 8.5pt; }
.jdvc-catalog-doc .jc-price { font-weight: 700; font-size: 11pt; }
.jdvc-catalog-doc .jc-price del { color: #999; font-weight: 400; margin-right: 1mm; }
.jdvc-catalog-doc .jc-price ins { text-decoration: none; }
.jdvc-catalog-doc .jc-excerpt { margin-top: 1.5mm; font-size: 9pt; color: #444; }
.jdvc-catalog-doc .jc-excerpt p { margin: 0; }
.jdvc-catalog-doc .jc-single { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; align-items: start; }
.jdvc-catalog-doc .jc-single .jc-main-img img { width: 100%; height: auto; }
.jdvc-catalog-doc .jc-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2mm; margin-top: 2mm; }
.jdvc-catalog-doc .jc-gallery img { width: 100%; height: 20mm; object-fit: cover; }
.jdvc-catalog-doc .jc-single h1 { margin: 0 0 3mm; font-size: 20pt; }
.jdvc-catalog-doc .jc-single .jc-price { font-size: 16pt; margin: 3mm 0; }
.jdvc-catalog-doc .jc-desc { margin-top: 8mm; }
.jdvc-catalog-doc .jc-desc img { max-width: 100%; height: auto; }
.jdvc-catalog-doc .jc-attrs { width: 100%; margin-top: 6mm; border-collapse: collapse; font-size: 10pt; }
.jdvc-catalog-doc .jc-attrs th, .jdvc-catalog-doc .jc-attrs td { padding: 2mm 3mm; border-bottom: 1px solid #e5e7eb; text-align: left; vertical-align: top; }
.jdvc-catalog-doc .jc-attrs th { width: 35%; color: #555; }
.jdvc-catalog-doc .jc-footer { margin-top: 8mm; color: #999; font-size: 8pt; text-align: center; }
@media print {
    .jdvc-catalog-doc { background: #fff; }
    .jdvc-catalog-doc .jc-toolbar { display: none; }
    .jdvc-catalog-doc .jc-page { max-width: none; margin: 0; padding: 0; box-shadow: none; }
}
@media screen and (max-width: 700px) {
    .jdvc-catalog-doc .jc-grid { grid-template-columns: repeat(2, 1fr); }
    .jdvc-catalog-doc .jc-single { grid-template-columns: 1fr; }
}
