/* ==========================================================================
   Carrito (widget "Cart" de Elementor Pro, plantilla clásica de WooCommerce)

   Medidas del mockup "02 - Carrito1" (canvas 1366 @3x):
     columnas     productos ~715 / resumen ~505, 26px entre ambas
     tarjetas     borde 1px #E6E6E6, radio 12, padding 24
     título       "Tu carrito" Mina 700 24px, 40px hasta la tarjeta
     producto     imagen 120 x 120 radio 8, 20px hasta el texto
                  nombre Mina 700 16px, descripción Roboto 12px
                  precio Roboto 20px abajo, papelera #FF3332 arriba a la derecha
                  cantidad 130 x 45, borde 1px #9F9F9F, radio 10
                  24px arriba y abajo, separador 1px #E6E6E6
     resumen      título Mina 700 20px, filas Roboto 16px (paso 39)
                  total Roboto 22px con separador encima
                  cupón 43px alto, fondo #F0F0F0 + "Aplicar" 119px #302F35
                  "Ir al Checkout" 43px #EE8105, 20px por debajo del cupón

   El CSS del tema pisa color/background con !important y Elementor genera
   estilos del widget con mucha especificidad, así que todo va prefijado con
   el widget y con !important en las propiedades en disputa.
   ========================================================================== */

/* --- Columnas ------------------------------------------------------------- */
@media (min-width: 1025px) {
    .elementor-widget-woocommerce-cart .e-cart__container {
        grid-template-columns: minmax(0, 1fr) minmax(0, 480px) !important;
        column-gap: 26px !important;
        align-items: start;
    }
}

/* --- Título --------------------------------------------------------------- */
.elementor-widget-woocommerce-cart .gd-carrito__titulo {
    margin: 0 0 40px !important;
    padding: 0 !important;
    font-family: "Mina", sans-serif !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: #0C0C0C !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* --- Tarjetas ------------------------------------------------------------- */
.elementor-widget-woocommerce-cart .e-shop-table.e-cart-section,
.elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
    margin: 0 !important;
    border: 1px solid #E6E6E6 !important;
    border-radius: 12px !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
}

.elementor-widget-woocommerce-cart .e-shop-table.e-cart-section {
    padding: 0 24px !important;
}

.elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
    padding: 24px !important;
}

/* El cupón de Elementor se sustituye por el del resumen (.gd-cupon). */
.elementor-widget-woocommerce-cart .coupon.e-cart-section {
    display: none !important;
}

/* --- Tabla de productos -> tarjetas --------------------------------------- */
.elementor-widget-woocommerce-cart table.shop_table.cart,
.elementor-widget-woocommerce-cart table.shop_table.cart tbody {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart thead,
.elementor-widget-woocommerce-cart table.shop_table.cart td.actions,
.elementor-widget-woocommerce-cart table.shop_table.cart tr:has(> td.actions),
.elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item td.product-price {
    display: none !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    grid-template-rows: 1fr auto;
    grid-template-areas:
        "imagen nombre quitar"
        "imagen precio cantidad";
    column-gap: 20px;
    row-gap: 12px;
    padding: 24px 0 !important;
    border: 0 !important;
    background: transparent !important;
}

/* Separador solo entre productos (la última fila del tbody es la de acciones). */
.elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item + tr.cart_item {
    border-top: 1px solid #E6E6E6 !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
}

/* WooCommerce en móvil antepone "Producto:", "Cantidad:"... a cada celda. */
.elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item td::before {
    display: none !important;
    content: none !important;
}

/* Imagen */
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-thumbnail {
    grid-area: imagen;
    align-self: start;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-thumbnail a {
    display: block !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-thumbnail img {
    display: block !important;
    width: 120px !important;
    max-width: none !important;
    height: 120px !important;
    object-fit: cover;
    border-radius: 8px !important;
    box-shadow: none !important;
}

/* Nombre, variación y descripción */
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name {
    grid-area: nombre;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    font-family: "Roboto", sans-serif !important;
    color: #0C0C0C !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name > a,
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name > a:hover {
    font-family: "Mina", sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #0C0C0C !important;
    text-decoration: none !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name > a:hover {
    color: #EE8105 !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name dl.variation {
    order: 1;
    display: flex !important;
    flex-wrap: wrap;
    gap: 0 4px;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    color: #6B6B6B !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name dl.variation dt,
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name dl.variation dd,
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name dl.variation p {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font: inherit !important;
    color: inherit !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name .gd-carrito__descripcion {
    order: 2;
    max-width: 440px;
    margin: 10px 0 0 !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    color: #0C0C0C !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-name .backorder_notification {
    order: 3;
    margin: 6px 0 0 !important;
    font-size: 12px !important;
}

/* Precio (subtotal de la línea) */
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-subtotal {
    grid-area: precio;
    align-self: end;
    font-family: "Roboto", sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    color: #0C0C0C !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-subtotal .amount,
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-subtotal small,
.elementor-widget-woocommerce-cart .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
    font: inherit !important;
    color: inherit !important;
}

/* Papelera */
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-remove {
    grid-area: quitar;
    justify-self: end;
    align-self: start;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-remove a.remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 32px !important;
    height: 32px !important;
    margin: -6px -7px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #FF3332 !important;
    font-size: 0 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background-color .2s ease;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover {
    background: #FFECEC !important;
    color: #FF3332 !important;
}

.elementor-widget-woocommerce-cart table.shop_table.cart td.product-remove a.remove:focus-visible {
    outline: 2px solid #FF3332 !important;
    outline-offset: 1px;
}

/* Cantidad */
.elementor-widget-woocommerce-cart table.shop_table.cart td.product-quantity {
    grid-area: cantidad;
    justify-self: end;
    align-self: end;
}

.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 130px !important;
    height: 45px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #9F9F9F !important;
    border-radius: 10px !important;
    background: #FFFFFF !important;
    box-sizing: border-box !important;
    overflow: hidden;
}

.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity .gd-cantidad__btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #0C0C0C !important;
    box-shadow: none !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer;
}

.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity .gd-cantidad__btn:hover {
    color: #EE8105 !important;
}

.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity input.qty {
    flex: 1 1 auto !important;
    width: 40px !important;
    min-width: 0 !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #0C0C0C !important;
    box-shadow: none !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 20px !important;
    text-align: center !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity input.qty::-webkit-outer-spin-button,
.elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* --- Resumen del pedido --------------------------------------------------- */
.elementor-widget-woocommerce-cart .cart_totals {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart .cart_totals > h2 {
    margin: 0 0 14px !important;
    padding: 0 !important;
    font-family: "Mina", sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: #0C0C0C !important;
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table,
.elementor-widget-woocommerce-cart .cart_totals table.shop_table tbody {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table tr {
    display: flex !important;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 10px 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table th,
.elementor-widget-woocommerce-cart .cart_totals table.shop_table td {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    color: #0C0C0C !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table th {
    text-align: left !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table td {
    text-align: right !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table td::before {
    display: none !important;
    content: none !important;
}

.elementor-widget-woocommerce-cart .cart_totals table.shop_table td .amount,
.elementor-widget-woocommerce-cart .cart_totals table.shop_table td strong {
    font: inherit !important;
    color: inherit !important;
}

/* Descuento en naranja, con "Quitar" discreto debajo */
.elementor-widget-woocommerce-cart .cart_totals tr.cart-discount td {
    color: #EE8105 !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.cart-discount td a.woocommerce-remove-coupon {
    display: block !important;
    margin-top: 4px !important;
    font-size: 12px !important;
    color: #9F9F9F !important;
    text-decoration: underline !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.cart-discount td a.woocommerce-remove-coupon:hover {
    color: #0C0C0C !important;
}

/* Envío: WooCommerce lo pinta como lista de métodos + calculadora */
/* Envío alineado a la derecha como el subtotal. Elementor lo fuerza a "start"
   con .woocommerce ... table.shop_table_responsive tr.woocommerce-shipping-totals td,
   así que aquí va una clase más. */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table.shop_table_responsive tr.woocommerce-shipping-totals td {
    text-align: right !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td ul#shipping_method {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td .woocommerce-shipping-destination,
.elementor-widget-woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td .shipping-calculator-button {
    margin: 4px 0 0 !important;
    font-size: 12px !important;
    color: #6B6B6B !important;
}

/* Total. Lleva table.shop_table para ganarle al "border: 0" de las filas. */
.elementor-widget-woocommerce-cart .cart_totals table.shop_table tr.order-total {
    margin-top: 10px !important;
    padding-top: 20px !important;
    border-top: 1px solid #E6E6E6 !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.order-total th,
.elementor-widget-woocommerce-cart .cart_totals tr.order-total td {
    font-size: 20px !important;
}

.elementor-widget-woocommerce-cart .cart_totals tr.order-total td small.includes_tax {
    display: block !important;
    font-size: 12px !important;
    color: #6B6B6B !important;
}

/* --- Cupón ---------------------------------------------------------------- */
.elementor-widget-woocommerce-cart .gd-cupon {
    margin: 14px 0 20px !important;
}

.elementor-widget-woocommerce-cart .gd-cupon__fila {
    display: flex;
    gap: 12px;
}

.elementor-widget-woocommerce-cart .gd-cupon__campo {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 !important;
}

.elementor-widget-woocommerce-cart .gd-cupon__icono {
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    color: #8A8A8A !important;
    pointer-events: none;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__input {
    display: block !important;
    width: 100% !important;
    height: 43px !important;
    margin: 0 !important;
    padding: 0 14px 0 48px !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    background: #F0F0F0 !important;
    color: #0C0C0C !important;
    box-shadow: none !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__input::placeholder {
    color: #9A9A9A !important;
    font-size: 12px !important;
    opacity: 1;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__input:focus {
    border-color: #EE8105 !important;
    outline: 0 !important;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__aplicar {
    flex: 0 0 119px !important;
    width: 119px !important;
    height: 43px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #302F35 !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    transition: background-color .2s ease, opacity .2s ease;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__aplicar:hover {
    background: #0C0C0C !important;
}

.elementor-widget-woocommerce-cart .gd-cupon.is-cargando .gd-cupon__aplicar {
    opacity: .6 !important;
    cursor: wait;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__error {
    margin: 8px 0 0 !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    color: #E0262B !important;
}

.elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__error[hidden] {
    display: none !important;
}

/* --- Ir al Checkout ------------------------------------------------------- */
.elementor-widget-woocommerce-cart .wc-proceed-to-checkout {
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 100% !important;
    height: 43px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #EE8105 !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
    font-family: "Roboto", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    transition: background-color .2s ease;
}

.elementor-widget-woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after {
    content: "";
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    background: currentColor !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 12h17M13 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 12h17M13 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.elementor-widget-woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: #0C0C0C !important;
    color: #FFFFFF !important;
}

/* --- Tablet: una columna -------------------------------------------------- */
@media (max-width: 1024px) {
    .elementor-widget-woocommerce-cart .e-cart__column-end {
        margin-top: 24px !important;
    }
}

/* --- Móvil ---------------------------------------------------------------- */
@media (max-width: 767px) {
    .elementor-widget-woocommerce-cart .gd-carrito__titulo {
        font-size: 20px !important;
        margin-bottom: 20px !important;
    }

    .elementor-widget-woocommerce-cart .e-shop-table.e-cart-section {
        padding: 0 16px !important;
    }

    .elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
        padding: 20px 16px !important;
    }

    .elementor-widget-woocommerce-cart table.shop_table.cart tr.cart_item {
        grid-template-columns: 80px minmax(0, 1fr) auto;
        column-gap: 12px;
        row-gap: 10px;
        padding: 16px 0 !important;
    }

    .elementor-widget-woocommerce-cart table.shop_table.cart td.product-thumbnail img {
        width: 80px !important;
        height: 80px !important;
    }

    .elementor-widget-woocommerce-cart table.shop_table.cart td.product-name > a,
    .elementor-widget-woocommerce-cart table.shop_table.cart td.product-name > a:hover {
        font-size: 14px !important;
    }

    .elementor-widget-woocommerce-cart table.shop_table.cart td.product-name .gd-carrito__descripcion {
        display: none !important;
    }

    .elementor-widget-woocommerce-cart table.shop_table.cart td.product-subtotal {
        font-size: 16px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity {
        width: 104px !important;
        height: 36px !important;
        border-radius: 8px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity .gd-cantidad__btn {
        flex-basis: 32px !important;
        width: 32px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity .gd-cantidad__btn,
    .elementor-widget-woocommerce-cart .woocommerce-cart-form .quantity input.qty {
        font-size: 17px !important;
    }

    .elementor-widget-woocommerce-cart .gd-cupon .gd-cupon__aplicar {
        flex-basis: 96px !important;
        width: 96px !important;
    }
}
