/* ==========================================================================
   Refonte Complète des Styles du Panier (Desktop, Tablette, Mobile)
   ========================================================================== */

/* --- 1. Conteneur Principal & Titres --- */
.pvl-panier-container h2 { font-family: var(--pvl-font-serif); font-size: 2.8rem; text-align: center; margin-bottom: 3rem; border-bottom: 1px solid var(--pvl-border-color); padding-bottom: 1.5rem; }

/* --- 2. Structure de la Table (Desktop) --- */
.pvl-panier-table { width: 100%; border-collapse: collapse; margin: 0; }
.pvl-panier-table thead { border-bottom: 2px solid var(--pvl-text-color-dark); }
.pvl-panier-table th { font-weight: 600; font-size: 0.8rem; padding: 1rem; color: var(--pvl-text-color-light); text-transform: uppercase; letter-spacing: 0.05em; text-align: left; }
.pvl-panier-table th.product-quantity, .pvl-panier-table th.product-subtotal, .pvl-panier-table td.product-quantity, .pvl-panier-table td.product-subtotal { text-align: center; }
.pvl-panier-table tbody tr { border-bottom: 1px solid var(--pvl-border-color); transition: background-color 0.2s ease; }
.pvl-panier-table tbody tr:hover { background-color: var(--pvl-background-light); }
.pvl-panier-table td { padding: 1.5rem 1rem; vertical-align: middle; }

/* --- 3. Cellules de la Table (Contenu) --- */
.pvl-panier-table .product-thumbnail img { width: 90px; height: 90px; object-fit: cover; border-radius: var(--pvl-border-radius); box-shadow: var(--pvl-shadow-md); }
.pvl-panier-table .product-name a { font-weight: 600; font-size: 1.15rem; text-decoration: none; color: var(--pvl-text-color-dark); transition: color 0.2s; }
.pvl-panier-table .product-name a:hover { color: var(--pvl-primary-color); }

/* --- 4. Actions (Quantité & Suppression) --- */
.pvl-panier-table .pvl-qty-input { width: 80px; padding: 10px; text-align: center; font-weight: 600; font-size: 1rem; border: 1px solid var(--pvl-border-color); border-radius: var(--pvl-border-radius); transition: var(--pvl-transition); }
.pvl-panier-table .pvl-qty-input:focus { border-color: var(--pvl-primary-color); box-shadow: 0 0 0 3px rgba(44, 82, 130, 0.1); outline: none; }
.pvl-panier-table .pvl-remove-from-cart-btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid transparent; background-color: transparent; color: var(--pvl-text-color-light); font-size: 1.5rem; line-height: 1; cursor: pointer; transition: var(--pvl-transition); }
.pvl-panier-table .pvl-remove-from-cart-btn:hover { background-color: var(--pvl-promo-color); color: #fff; transform: scale(1.1); }

/* --- 5. Section du Total (Pied de page) --- */
.pvl-panier-table tfoot td, .pvl-panier-table tfoot th { padding-top: 2rem; padding-bottom: 1rem; border-top: 2px solid var(--pvl-text-color-dark); font-weight: 600; font-size: 1.2rem; }
.pvl-panier-table tfoot th { text-align: right; padding-right: 1.5rem; color: var(--pvl-text-color-dark); }
.pvl-panier-table tfoot td { font-size: 1.8rem; font-weight: 700; color: var(--pvl-primary-color); text-align: right; width: 25%; }

/* --- 6. Panier Flottant --- */
.pvl-floating-cart-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; background-color: var(--pvl-primary-color); color: white; border-radius: 50%; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); text-decoration: none; transform: scale(0); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s; opacity: 0; cursor: pointer; }
.pvl-floating-cart-container.is-visible { transform: scale(1); opacity: 1; }
@media (hover: none) { .pvl-floating-cart-container { cursor: grab; } .pvl-floating-cart-container.is-dragging { cursor: grabbing; } }
.pvl-cart-icon { font-size: 28px; line-height: 1; }
.pvl-cart-count { position: absolute; top: -5px; right: -5px; background-color: var(--pvl-promo-color); color: white; border-radius: 50%; width: 24px; height: 24px; font-size: 14px; line-height: 24px; text-align: center; font-weight: bold; border: 2px solid var(--pvl-primary-color); }

/* --- 7. Responsive Panier (Tablette & Mobile) --- */
@media (max-width: 768px) {
    .pvl-panier-container h2 { font-size: 2.2rem; margin-bottom: 2rem; }
    .pvl-panier-table thead { display: none; }
    .pvl-panier-table tr.pvl-panier-item { display: block; padding: 1rem; border: 1px solid var(--pvl-border-color); border-radius: var(--pvl-border-radius); position: relative; margin-bottom: 1.5rem; box-shadow: var(--pvl-shadow-md); }
    .pvl-panier-table td { display: flex; justify-content: space-between; align-items: center; padding: 0.8rem 0; text-align: right; border-bottom: 1px dashed var(--pvl-border-color); }
    .pvl-panier-table tr.pvl-panier-item td:last-child { border-bottom: none; }
    .pvl-panier-table td::before { content: attr(data-title); font-weight: 600; text-align: left; margin-right: 1rem; color: var(--pvl-text-color-dark); }
    .pvl-panier-table td.product-thumbnail { display: block; border-bottom: none; padding: 0 0 1rem 0; text-align: center; }
    .pvl-panier-table td.product-thumbnail::before { display: none; }
    .pvl-panier-table .product-thumbnail img { width: 120px; height: 120px; }
    .pvl-panier-table td.product-name { display: block; text-align: center; padding-bottom: 1rem; }
    .pvl-panier-table td.product-name::before { display: none; }
    .pvl-panier-table .product-name a { font-size: 1.3rem; }
    .pvl-panier-table td.product-remove { position: absolute; top: 0px; right: 0px; border: none; padding: 0; background: transparent; }
    .pvl-panier-table td.product-remove::before { display: none; }
    .pvl-panier-table tfoot td, .pvl-panier-table tfoot th { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.2rem; padding: 1.5rem 1rem; border-top: 2px solid var(--pvl-text-color-dark); }
    .pvl-panier-table tfoot td { font-size: 1.6rem; }
}