/*
 * Niffty Readable WooCommerce
 * High-contrast fixes for WooCommerce checkout and product option fields.
 */

:root {
    --niffty-field-bg: #ffffff;
    --niffty-field-text: #171219;
    --niffty-field-muted: #5f5663;
    --niffty-field-border: #7d6b82;
    --niffty-focus: #8c49b5;
    --niffty-option-hover: #ece5f1;
    --niffty-option-selected: #594e5d;
}

/* Standard WooCommerce form fields */
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-cart input[type="text"],
.woocommerce-cart input[type="number"],
.woocommerce div.product form.cart select,
.woocommerce div.product form.variations_form select {
    background-color: var(--niffty-field-bg) !important;
    color: var(--niffty-field-text) !important;
    border-color: var(--niffty-field-border) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--niffty-field-text) !important;
}

/* Placeholder text on checkout */
.woocommerce-checkout input::placeholder,
.woocommerce-checkout textarea::placeholder,
.wc-block-checkout input::placeholder,
.wc-block-checkout textarea::placeholder,
.wp-block-woocommerce-checkout input::placeholder,
.wp-block-woocommerce-checkout textarea::placeholder {
    color: var(--niffty-field-muted) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--niffty-field-muted) !important;
}

/* WooCommerce Blocks checkout fields */
.wc-block-checkout input,
.wc-block-checkout textarea,
.wc-block-checkout select,
.wp-block-woocommerce-checkout input,
.wp-block-woocommerce-checkout textarea,
.wp-block-woocommerce-checkout select,
.wc-block-components-text-input input,
.wc-block-components-combobox input {
    background: var(--niffty-field-bg) !important;
    color: var(--niffty-field-text) !important;
    border-color: var(--niffty-field-border) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--niffty-field-text) !important;
}

.wc-block-components-text-input label,
.wc-block-components-combobox label,
.wc-block-checkout label,
.wp-block-woocommerce-checkout label {
    color: var(--niffty-field-text) !important;
    opacity: 1 !important;
}

/* Autofill can otherwise restore pale text */
.woocommerce-checkout input:-webkit-autofill,
.wc-block-checkout input:-webkit-autofill,
.wp-block-woocommerce-checkout input:-webkit-autofill {
    -webkit-text-fill-color: var(--niffty-field-text) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--niffty-field-bg) inset !important;
    box-shadow: 0 0 0 1000px var(--niffty-field-bg) inset !important;
}

/* Product variation dropdown itself */
.woocommerce div.product form.cart .variations select,
.woocommerce div.product form.variations_form .variations select {
    color-scheme: light !important;
}

.woocommerce div.product form.cart .variations select option,
.woocommerce div.product form.variations_form .variations select option {
    background: var(--niffty-field-bg) !important;
    color: var(--niffty-field-text) !important;
}

/* Select2 / SelectWoo controls used by WooCommerce */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-search--dropdown .select2-search__field,
.select2-container--default .select2-search--inline .select2-search__field,
.select2-dropdown,
.select2-results,
.select2-results__options,
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
    background-color: var(--niffty-field-bg) !important;
    color: var(--niffty-field-text) !important;
    border-color: var(--niffty-field-border) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-results__option,
.select2-container--default .select2-search--dropdown .select2-search__field,
.select2-container--default .select2-search--inline .select2-search__field {
    color: var(--niffty-field-text) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--niffty-field-text) !important;
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
    background-color: var(--niffty-option-hover) !important;
    color: var(--niffty-field-text) !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
    background-color: var(--niffty-option-selected) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--niffty-field-muted) !important;
    opacity: 1 !important;
}

/* Focus state for keyboard and mobile users */
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce div.product form.cart select:focus,
.wc-block-checkout input:focus,
.wc-block-checkout textarea:focus,
.wc-block-checkout select:focus,
.wp-block-woocommerce-checkout input:focus,
.wp-block-woocommerce-checkout textarea:focus,
.wp-block-woocommerce-checkout select:focus,
.select2-container--focus .select2-selection,
.select2-container--open .select2-selection {
    border-color: var(--niffty-focus) !important;
    box-shadow: 0 0 0 2px rgba(140, 73, 181, 0.28) !important;
    outline: none !important;
}

/* Disabled fields should still be readable */
.woocommerce-checkout input:disabled,
.woocommerce-checkout select:disabled,
.wc-block-checkout input:disabled,
.wc-block-checkout select:disabled {
    color: #4c4650 !important;
    background-color: #eeeaf0 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #4c4650 !important;
}

/* Shipping and payment option wording on dark checkout backgrounds */
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__description,
.wc-block-components-radio-control-accordion-option label,
.wc-block-components-radio-control-accordion-option__label,
.wc-block-components-radio-control-accordion-option__description,
.wc-block-checkout__shipping-option .wc-block-components-radio-control__label,
.wc-block-checkout__payment-method .wc-block-components-radio-control__label,
.wp-block-woocommerce-checkout-shipping-method-block .wc-block-components-radio-control__label,
.wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__label,
.wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__label,
.wc-block-components-payment-method-label,
.wc-block-components-payment-methods__item label {
    color: #fff8e8 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #fff8e8 !important;
}

/* Keep secondary prices and descriptions readable too */
.wc-block-components-radio-control__secondary-label,
.wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__secondary-label,
.wc-block-components-payment-method-label__description,
.wc-block-components-payment-methods__item .wc-block-components-radio-control__description {
    color: #e6ddec !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #e6ddec !important;
}

/* Some themes dim unselected radio choices; prevent that */
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-payment-methods__item {
    opacity: 1 !important;
}

/* Order note checkbox and terms wording */
.wc-block-components-checkbox__label,
.wc-block-components-checkbox label,
.wc-block-checkout__add-note .wc-block-components-checkbox__label,
.wc-block-checkout__terms,
.wc-block-checkout__terms a,
.wp-block-woocommerce-checkout .wc-block-components-checkbox__label,
.wp-block-woocommerce-checkout .wc-block-checkout__terms,
.wp-block-woocommerce-checkout .wc-block-checkout__terms a {
    color: #fff8e8 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #fff8e8 !important;
}

/* Place order button: ensure the button and its wording are visible */
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button,
.woocommerce-checkout #place_order {
    background-color: #6f3a8d !important;
    color: #ffffff !important;
    border-color: #8c49b5 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
}

.wc-block-components-checkout-place-order-button span,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button span,
.woocommerce-checkout #place_order span {
    color: #ffffff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus,
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus {
    background-color: #8247a3 !important;
    color: #ffffff !important;
}

/* Keep disabled/loading order buttons readable rather than blank */
.wc-block-components-checkout-place-order-button:disabled,
.wc-block-components-checkout-place-order-button[aria-disabled="true"],
.woocommerce-checkout #place_order:disabled {
    background-color: #5a5260 !important;
    color: #ffffff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
}
