/* Custom Cart Table Desktop Styles */
.custom_cart_table { width: 100%; border-collapse: collapse; text-align: left; margin-bottom: 20px; }
.custom_cart_table th, .custom_cart_table td { padding: 12px 10px; border-bottom: 1px solid #eee; vertical-align: middle; }

/* Product Image & Info */
.cart-product-cell { display: flex; align-items: center; gap: 12px; }
.cart-product-img img { width: 60px; height: 60px; object-fit: cover; border-radius: 6px; border: 1px solid #ddd; }
.cart-product-info { display: flex; flex-direction: column; justify-content: center; }
.cart-variation-switch { width: 100%; max-width: 220px; padding: 5px; margin-top: 5px; font-size: 13px; border: 1px solid #ccc; border-radius: 4px; }
.cart-qty-update { width: 70px; padding: 5px; text-align: center; border: 1px solid #ccc; border-radius: 4px; }

/* Hide specific billing fields globally */
.hidden-field, #billing_city_field, #billing_state_field { display: none !important; }

/* Responsive Mobile View (Max-width: 768px) */
@media (max-width: 768px) {
    .custom_cart_table thead { display: none; }
    .custom_cart_table tbody tr { display: block; border: 1px solid #e5e5e5; border-radius: 8px; margin-bottom: 15px; padding: 15px; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
    .custom_cart_table tbody td { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px dashed #eee; }
    .custom_cart_table tbody td:last-child { border-bottom: none; }
    .custom_cart_table tbody td::before { content: attr(data-title); font-weight: 600; color: #555; margin-right: 15px; }
    .custom_cart_table tbody td.product-cell { flex-direction: column; align-items: flex-start; gap: 10px; }
    .custom_cart_table tbody td.product-cell::before { display: none; }
    .cart-product-cell { width: 100%; align-items: flex-start; }
    .cart-product-img img { width: 70px; height: 70px; }
    .cart-variation-switch { max-width: 100%; }
    
    .custom_cart_table tfoot tr { display: flex; justify-content: space-between; align-items: center; padding: 15px 10px; border-bottom: 1px solid #eee; }
    .custom_cart_table tfoot th { display: none; }
    .custom_cart_table tfoot td { width: 100%; display: flex; justify-content: space-between; padding: 0; border: none; }
    .custom_cart_table tfoot .cart-subtotal td::before { content: "Subtotal:"; font-weight: 600; color: #333; }
    .custom_cart_table tfoot .order-total td::before { content: "Total:"; font-weight: 700; font-size: 18px; color: #333; }
}