/**
 * Quantity Input Styles
 *
 * Styles for the custom WooCommerce quantity input
 *
 * @package Solmetex_Custom_Functionality
 */

/* Main quantity container */
.woocommerce .quantity,
.woocommerce-page .quantity,
.quantity {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    max-width: 130px;
    margin-bottom: 1rem;
    border: 1px solid #c6c6c6;
    border-radius: 10px;
    overflow: hidden;
    box-sizing: border-box;
}

/* Fix for Flexbox overrides */
.woocommerce form .quantity .quantity-change,
.woocommerce-page form .quantity .quantity-change,
.quantity .quantity-change {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 50px !important;
    color: #555;
    background-color: #f8f8f8;
    text-decoration: none;
    border: none;
    box-shadow: none;
    transition: all 0.2s ease;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    z-index: 10 !important; /* Ensure buttons are clickable */
    cursor: pointer !important;
}

.quantity .quantity-change:hover {
    background-color: #f0f0f0;
    color: #333;
}

.quantity .quantity-change:focus {
    outline: none;
}

.quantity .icon-minus:before {
    content: "-";
    font-weight: bold;
    font-size: 16px;
    pointer-events: none; /* Make sure the icon doesn't interfere with clicks */
}

.quantity .icon-plus:before {
    content: "+";
    font-weight: bold;
    font-size: 16px;
    pointer-events: none; /* Make sure the icon doesn't interfere with clicks */
}

/* Input field */
 .woocommerce .quantity input.qty,
.woocommerce-page .quantity input.qty,
.quantity input.qty {
    width: 3em !important;
    padding: 0px 0 !important;
    height: 50px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #e1e1e133 !important;
    border-right: 1px solid #e1e1e133 !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    margin: 0 !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    float: none !important;
    display: block !important;
    min-height: 0 !important;
    flex: 1 !important;
    color: #747276;
} 

.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Cart page specific styling */
.woocommerce-cart table.cart .quantity {
    margin: 0 auto;
}

/* Product page specific styling */
.woocommerce-variation-add-to-cart .quantity,
.woocommerce div.product form.cart .quantity,
.single-product div.product form.cart .quantity {
    margin-right: 1em;
    margin-bottom: 0;
    flex-direction: row !important;
    display: flex !important;
}

/* Fix for potential absolute positioning in theme */
.woocommerce .quantity .quantity-change.plus,
.woocommerce-page .quantity .quantity-change.plus,
.quantity .quantity-change.plus {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    order: 3 !important;
    border-radius: 0 !important;
}

.woocommerce .quantity .quantity-change.minus,
.woocommerce-page .quantity .quantity-change.minus,
.quantity .quantity-change.minus {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    bottom: auto !important;
    order: 1 !important;
    border-radius: 0 !important;
}

.woocommerce .quantity input.qty,
.woocommerce-page .quantity input.qty,
.quantity input.qty {
    order: 2 !important;
    border-radius: 0 !important;
}

/* Additional specific class for our quantity inputs */
.solmetex-quantity-input {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 130px !important;
}

.solmetex-quantity-input .quantity-change.minus {
    order: 1 !important;
}

.solmetex-quantity-input input.qty {
    order: 2 !important;
}

.solmetex-quantity-input .quantity-change.plus {
    order: 3 !important;
}

/* Critical fixes for button interactions */
.quantity .quantity-change i {
    pointer-events: none; /* Ensure clicks go through to the button */
    display: inline-block;
    font-style: normal;
}

/* Force horizontal layout regardless of theme */
.quantity {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    grid-template-areas: "minus input plus" !important;
}

.quantity .quantity-change.minus {
    grid-area: minus !important;
}

.quantity input.qty {
    grid-area: input !important;
}

.quantity .quantity-change.plus {
    grid-area: plus !important;
}

/* Reset any potential theme table layout that might break our layout */
table.cart td.product-quantity .quantity {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
}

/* Theme Compatibility */
body .quantity:not(.hidden):not(.buttons_added) [type=button],
.woocommerce form .quantity:not(.hidden):not(.buttons_added) [type=button],
.woocommerce-page form .quantity:not(.hidden):not(.buttons_added) [type=button] {
    display: none !important;
}

/* Reset any absolute positioning that might be applied by the theme */
.woocommerce div.product form.cart div.quantity,
.woocommerce-page div.product form.cart div.quantity {
    float: left;
    position: relative;
    display: flex !important;
}

/* Quantity wrapper styles for fixing potential theme conflicts */
.woocommerce div.product form.cart div.quantity,
.woocommerce .quantity,
.woocommerce-page .quantity {
    margin: 0 15px 0 0;
    max-height: 50px;
}

/* Mobile styling */
@media (max-width: 768px) {
    .quantity {
        max-width: 120px;
    }
}

/* Additional priority overrides to ensure our buttons work properly */
.quantity .quantity-change.plus,
.quantity .quantity-change.minus,
button.quantity-change.plus,
button.quantity-change.minus {
    -webkit-appearance: none !important;
    background-color: #f8f8f8 !important;
    border: none !important;
    border-radius: 0 !important;
    color: #555 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: bold !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
    text-decoration: none !important;
    width: 36px !important;
    z-index: 10 !important;
}

.quantity .quantity-change.plus:hover,
.quantity .quantity-change.minus:hover,
button.quantity-change.plus:hover,
button.quantity-change.minus:hover {
    background-color: #f0f0f0 !important;
    color: #333 !important;
} 

body .quantity:not(.hidden):not(.buttons_added) [type=button], .woocommerce form .quantity:not(.hidden):not(.buttons_added) [type=button], .woocommerce-page form .quantity:not(.hidden):not(.buttons_added) [type=button] {
    display: block !important;
}

.wp-block-woocommerce-add-to-cart-form .variations_button, .wp-block-woocommerce-add-to-cart-form form.cart {
    align-items: center;
}
