/* ====================================================
   CARRITO MONDELINN - WHITE PREMIUM (GLASSMORPHISM)
==================================================== */
:root {
    --mondelinn-purple: #667eea;
    --mondelinn-purple-glow: rgba(102, 126, 234, 0.25);
    --glass-bg: rgba(255, 255, 255, 0.92); /* Blanco translúcido limpio */
    --glass-border: rgba(102, 126, 234, 0.25); /* Borde sutil morado */
    --glass-shadow: 0 10px 40px rgba(0, 0, 0, 0.04), 0 4px 20px rgba(102, 126, 234, 0.1);
    --text-dark: #1e293b;
    --text-muted: #64748b;
    --border-color: rgba(0, 0, 0, 0.06); /* Borde interno muy suave */
}

body { background-color: #f8fafc; }

.mondelinn-carrito-layout { 
    max-width: 850px; 
    margin: 50px auto; 
    padding: 0 20px; 
}

.carrito-header { text-align: center; margin-bottom: 40px; }
.carrito-title { color: var(--text-dark); font-size: 32px; font-weight: 800; margin: 0 0 5px 0; }
.carrito-subtitle { color: var(--text-muted); font-size: 15px; }

/* ====================================================
   NOTIFICACIONES
==================================================== */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid var(--glass-border) !important;
    border-top: 4px solid var(--mondelinn-purple) !important;
    color: var(--text-dark) !important;
    border-radius: 12px !important;
    padding: 16px 20px 16px 55px !important; 
    box-shadow: var(--glass-shadow) !important;
    margin-bottom: 30px !important;
    font-weight: 500 !important;
    position: relative !important;
    display: block !important;
}

.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
    position: absolute !important;
    left: 20px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    color: var(--mondelinn-purple) !important;
}

.woocommerce-message a { color: var(--mondelinn-purple) !important; text-decoration: none !important; font-weight: bold !important; }

/* ====================================================
   FLEXBOX: APILAMIENTO VERTICAL
==================================================== */
.mondelinn-cart-grid .woocommerce::before,
.mondelinn-cart-grid .woocommerce::after { display: none !important; }

.mondelinn-cart-grid .woocommerce {
    display: flex !important;
    flex-direction: column !important; 
    gap: 30px !important;
    width: 100% !important;
}

.woocommerce-cart-form, .cart-collaterals {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* ====================================================
   TARJETAS DE PRODUCTOS
==================================================== */
.woocommerce-cart-form table.shop_table { border: none !important; margin: 0 !important; width: 100% !important; display: block !important; }
.woocommerce-cart-form table.shop_table thead { display: none !important; }
.woocommerce-cart-form table.shop_table tbody { display: block !important; width: 100% !important; }

.woocommerce-cart-form table.shop_table tbody tr.cart_item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px) !important;
    padding: 20px 25px !important;
    margin-bottom: 20px !important;
    border-radius: 16px !important;
    border: 1px solid var(--glass-border) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
}

.woocommerce-cart-form table.shop_table tbody tr.cart_item:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--glass-shadow) !important;
    border-color: rgba(102, 126, 234, 0.4) !important;
}

.product-thumbnail { width: 90px !important; padding: 0 !important; border: none !important; flex-shrink: 0 !important; }
.product-thumbnail img { width: 80px !important; height: 80px !important; object-fit: cover !important; border-radius: 10px !important; }

.product-name { flex-grow: 1 !important; padding: 0 20px !important; border: none !important; text-align: left !important; }
.product-name a { color: var(--text-dark) !important; font-weight: 600 !important; font-size: 16px !important; text-decoration: none !important; display: block !important; margin-bottom: 5px !important; transition: color 0.2s ease !important;}
.product-name a:hover { color: var(--mondelinn-purple) !important; }
.product-price, .product-subtotal { display: none !important; }

/* ====================================================
   NUEVOS CONTROLES DE CANTIDAD
==================================================== */
.product-quantity { border: none !important; padding: 0 !important; flex-shrink: 0 !important; margin-right: 20px !important; }

.quantity {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #ffffff !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 30px !important; 
    height: 38px !important;
    width: 110px !important; 
    padding: 0 5px !important;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.01) !important;
    position: relative !important;
    overflow: hidden !important;
}

/* 1. REGLA NUCLEAR: Ocultar todo lo que el tema intente poner aquí */
.quantity > * {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    z-index: -1 !important;
}

/* 2. LISTA BLANCA: Mostrar ÚNICAMENTE nuestros elementos */
.quantity > input.qty,
.quantity > .mondelinn-btn-minus,
.quantity > .mondelinn-btn-plus {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 10 !important;
}

/* 3. ESTILOS DE NUESTROS BOTONES */
.mondelinn-btn-minus, .mondelinn-btn-plus {
    color: var(--mondelinn-purple) !important;
    background: transparent !important;
    font-size: 20px !important;
    font-weight: bold !important;
    width: 35px !important;
    height: 100% !important;
    cursor: pointer !important;
    justify-content: center !important; 
    align-items: center !important;
    user-select: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    transition: background 0.2s ease !important;
}

.mondelinn-btn-minus:hover, .mondelinn-btn-plus:hover { background: rgba(102, 126, 234, 0.1) !important; }

.quantity input.qty {
    width: 30px !important;
    height: 100% !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    color: var(--text-dark) !important;
    font-size: 15px !important;
    padding: 0 !important;
    margin: 0 !important;
    -moz-appearance: textfield !important;
}
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none !important; }

/* Basurero */
.product-remove { border: none !important; padding: 0 !important; flex-shrink: 0 !important; }
.product-remove a.remove { color: var(--text-muted) !important; font-size: 22px !important; transition: color 0.2s ease !important; display: block !important; }
.product-remove a.remove:hover { color: #e53e3e !important; }

/* ====================================================
   BLOQUE INFERIOR: TOTALES Y DIRECCIÓN
==================================================== */
.cart_totals {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(16px) !important;
    border-radius: 16px !important;
    border: 1px solid var(--glass-border) !important;
    padding: 30px 40px !important; 
    box-shadow: var(--glass-shadow) !important;
    box-sizing: border-box !important;
}

.cart_totals h2 { display: none !important; }

.cart_totals table { width: 100% !important; border-collapse: collapse !important; }
.cart_totals th, .cart_totals td { padding: 15px 0 !important; border-bottom: 1px dashed var(--border-color) !important; }
.cart_totals th { text-align: left !important; font-weight: 600 !important; color: var(--text-dark) !important; font-size: 15px !important; vertical-align: middle !important; width: 40% !important; }
.cart_totals td { color: var(--text-muted) !important; font-size: 15px !important; text-align: right !important; vertical-align: middle !important; }

.custom-shipping-row th, .custom-shipping-row td { border-bottom: none !important; padding-bottom: 10px !important; }
.custom-shipping-block { text-align: right !important; padding: 0 !important; }
.shipping-address-text { font-size: 15px !important; color: var(--text-dark) !important; line-height: 1.4 !important; margin-bottom: 8px !important; }
.btn-cambiar-dir { background: transparent !important; border: none !important; color: var(--mondelinn-purple) !important; font-weight: 600 !important; font-size: 14px !important; cursor: pointer !important; padding: 0 !important; text-decoration: underline !important; transition: color 0.2s ease !important; }
.btn-cambiar-dir:hover { color: #4c63d2 !important; }

.selector-direcciones { margin-top: 15px; border-top: 1px solid var(--border-color); padding-top: 15px; text-align: left !important; }
.dir-opcion { background: #ffffff; padding: 12px; border-radius: 8px; margin-bottom: 8px; font-size: 13px; cursor: pointer; border: 1px solid var(--glass-border); transition: 0.2s; }
.dir-opcion:hover { border-color: var(--mondelinn-purple); box-shadow: 0 4px 12px var(--mondelinn-purple-glow); }

.cart_totals .order-total th, .cart_totals .order-total td { 
    border-top: 1px solid var(--border-color) !important;
    border-bottom: none !important; 
    padding-top: 25px !important; 
    font-size: 20px !important; 
    font-weight: 800 !important; 
    color: var(--text-dark) !important; 
}

/* ====================================================
   BOTÓN FINALIZAR COMPRA
==================================================== */
.wc-proceed-to-checkout { margin-top: 25px !important; padding: 0 !important; }

.checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    background: var(--mondelinn-purple) !important; 
    color: white !important;
    padding: 18px !important;
    border-radius: 12px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}
.checkout-button:hover { 
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 8px 20px var(--mondelinn-purple-glow) !important;
}

/* Ocultar nativos */
.coupon, .actions, button[name="update_cart"], .shipping-calculator-button { display: none !important; }

/* RESPONSIVE */
@media (max-width: 768px) {
    .woocommerce-cart-form table.shop_table tbody tr.cart_item { flex-wrap: wrap; justify-content: center; padding: 25px 20px !important; }
    .product-thumbnail { margin-bottom: 15px; }
    .product-name { width: 100%; text-align: center !important; padding: 0 !important; margin-bottom: 15px; }
    .product-quantity { margin: 0 auto; }
    .cart_totals { padding: 25px 20px !important; }
    .cart_totals th, .cart_totals td { font-size: 14px !important; display: block !important; text-align: center !important; width: 100% !important; }
    .custom-shipping-block { text-align: center !important; }
}

/* ====================================================
   ESTADO DE CARRITO VACÍO (White Premium)
==================================================== */

/* 1. Nuestro contenedor personalizado (Carga inicial) */
.carrito-vacio-premium {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 20px !important;
    padding: 60px 40px !important;
    text-align: center !important;
    box-shadow: var(--glass-shadow) !important;
    margin: 20px auto !important;
    max-width: 600px !important;
}

.carrito-vacio-premium .icon-vacio {
    font-size: 64px !important;
    margin-bottom: 20px !important;
    display: inline-block !important;
    animation: floatCart 3s ease-in-out infinite !important;
    color: var(--mondelinn-purple) !important;
}

.carrito-vacio-premium h2 {
    color: var(--text-dark) !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    margin-bottom: 30px !important;
    border: none !important;
}

/* 2. Clases nativas de WooCommerce (Por si vacían el carrito por AJAX) */
.woocommerce-cart-form + .cart-empty, 
p.cart-empty {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(16px) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 20px !important;
    padding: 60px 40px !important;
    text-align: center !important;
    box-shadow: var(--glass-shadow) !important;
    margin: 20px auto !important;
    max-width: 600px !important;
    font-size: 24px !important;
    color: var(--text-dark) !important;
    font-weight: 700 !important;
}

p.cart-empty::before { display: none !important; }

p.return-to-shop {
    text-align: center !important;
    margin-top: 30px !important;
}

/* 3. El botón para ir a la tienda (Ambos casos) */
.carrito-vacio-premium .btn-ir-tienda,
p.return-to-shop a.button.wc-backward {
    display: inline-block !important;
    background: var(--mondelinn-purple) !important;
    color: white !important;
    padding: 14px 35px !important;
    border-radius: 12px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    border: none !important;
}

.carrito-vacio-premium .btn-ir-tienda:hover,
p.return-to-shop a.button.wc-backward:hover {
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 8px 20px var(--mondelinn-purple-glow) !important;
    color: white !important;
}

/* Animación sutil para el carrito */
@keyframes floatCart {
    0% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0); }
}

/* ====================================================
   OCULTAR BOTÓN REDUNDANTE DE "VER CARRITO"
==================================================== */
.woocommerce-message a.button.wc-forward,
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    pointer-events: none !important;
}