/* WooCommerce Single Product Custom Styles - Dark Theme */

/* 1. Selector de tipo de boleto (Select) */
.woocommerce div.product form.cart select {
    background-color: #0a0a0a !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    padding: 0.75rem 2.5rem 0.75rem 1rem !important;
    font-size: 0.875rem !important;
    width: 100% !important;
    max-width: 100% !important;
    outline: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem top 50% !important;
    background-size: 0.65rem auto !important;
    transition: all 0.2s ease-in-out !important;
    box-shadow: none !important;
}
.woocommerce div.product form.cart select:hover {
    border-color: rgba(255, 255, 255, 0.3) !important;
}
.woocommerce div.product form.cart select:focus {
    border-color: #E91E8C !important; 
    box-shadow: 0 0 0 1px #E91E8C !important;
}

/* 2. Botones y acciones principales */
/* Botón Limpiar */
.woocommerce div.product form.cart .reset_variations {
    display: inline-block;
    margin-top: 0.5rem;
    color: #aaaaaa !important;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: color 0.2s;
}
.woocommerce div.product form.cart .reset_variations:hover {
    color: #E91E8C !important;
}

/* Botón Reservar / Add to cart */
.woocommerce div.product form.cart .button.single_add_to_cart_button,
.woocommerce div.product form.cart button[type="submit"] {
    background-color: #E91E8C !important;
    color: #ffffff !important;
    border-radius: 0.5rem !important;
    padding: 0.875rem 2rem !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    border: none !important;
    transition: opacity 0.2s, transform 0.1s !important;
    margin-top: 1.5rem !important;
    width: 100% !important;
    text-align: center !important;
    display: block !important;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart button[type="submit"]:hover {
    opacity: 0.9 !important;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:active,
.woocommerce div.product form.cart button[type="submit"]:active {
    transform: scale(0.98) !important;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart button[type="submit"]:disabled {
    background-color: #333333 !important;
    color: #888888 !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

/* Quantity input */
.woocommerce div.product form.cart div.quantity {
    margin-right: 1rem !important;
    margin-top: 1rem !important;
}
.woocommerce div.product form.cart div.quantity input.qty {
    background-color: #0a0a0a !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    padding: 0.75rem !important;
    width: 4.5rem !important;
    text-align: center !important;
    font-weight: bold;
}

/* 3. Información del producto */
/* Título */
.woocommerce div.product .product_title {
    font-size: 2rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    margin-bottom: 0.75rem !important;
    color: #ffffff !important;
}

/* Precios */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: #E91E8C !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    margin-bottom: 1.25rem !important;
    display: block;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    color: #aaaaaa !important;
    font-size: 1.125rem !important;
    font-weight: 400 !important;
    opacity: 0.7 !important;
    margin-right: 0.5rem !important;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
    background: transparent !important;
    color: #E91E8C !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

/* Descripción Corta */
.woocommerce div.product .woocommerce-product-details__short-description {
    color: #cccccc !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    margin-bottom: 2rem !important;
}

/* Disponibilidad (Stock) */
.woocommerce div.product p.stock {
    display: inline-block !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    padding: 0.35rem 0.85rem !important;
    border-radius: 999px !important;
    margin-bottom: 1rem !important;
}
.woocommerce div.product p.stock.in-stock {
    background-color: rgba(34, 197, 94, 0.15) !important;
    color: #4ade80 !important;
}
.woocommerce div.product p.stock.out-of-stock {
    background-color: rgba(239, 68, 68, 0.15) !important;
    color: #f87171 !important;
}

/* 4. SKU */
.woocommerce div.product .product_meta .sku_wrapper {
    display: none !important;
}

/* Other meta */
.woocommerce div.product .product_meta {
    color: #aaaaaa !important;
    font-size: 0.85rem !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding-top: 1.5rem !important;
    margin-top: 2rem !important;
}
.woocommerce div.product .product_meta a {
    color: #ffffff !important;
    transition: color 0.2s !important;
}
.woocommerce div.product .product_meta a:hover {
    color: #E91E8C !important;
}

/* 5. Tabs de contenido */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 4rem !important;
    background: #111111;
    border-radius: 1rem;
    padding: 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    margin: 0 0 2rem 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: none !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block !important;
    padding: 0.75rem 1.25rem !important;
    color: #aaaaaa !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    border-bottom: 2px solid transparent !important;
    transition: all 0.2s !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: #ffffff !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: #E91E8C !important;
    border-bottom-color: #E91E8C !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
    color: #cccccc !important;
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
    color: #ffffff !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    margin-bottom: 1.25rem !important;
}

/* Estructura general variaciones */
.woocommerce div.product form.cart .variations {
    width: 100% !important;
    margin-bottom: 1.5rem !important;
    border: none !important;
}
.woocommerce div.product form.cart .variations th {
    text-align: left !important;
    padding: 0 0 0.5rem 0 !important;
    color: #ffffff !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
}
.woocommerce div.product form.cart .variations td {
    padding: 0 0 1rem 0 !important;
    display: block !important;
    vertical-align: middle !important;
}
.woocommerce div.product form.cart .variations .value {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* WooCommerce overrides fixes */
.woocommerce-variation-price {
    margin-bottom: 1.5rem !important;
}
.woocommerce-variation-price .price {
    font-size: 1.25rem !important;
}

@media (min-width: 768px) {
    .woocommerce div.product form.cart .variations td {
        display: table-cell !important;
        padding: 0 1rem 1rem 0 !important;
    }
    .woocommerce div.product form.cart .variations th {
        padding: 0 1rem 1rem 0 !important;
        white-space: nowrap !important;
    }
    .woocommerce div.product form.cart .variations .value {
        flex-direction: row;
        align-items: center;
        gap: 1rem;
    }
    .woocommerce div.product form.cart .reset_variations {
        margin-top: 0;
    }
    .woocommerce div.product .woocommerce-tabs {
        padding: 2.5rem;
    }
}

/* ---------------------------------------------------- */
/* 6. FooEvents Seating Popup - Dark Theme Overrides    */
/* ---------------------------------------------------- */

/* Popup Container Wrapper */
.ui-dialog[aria-describedby="fooevents_seating_dialog"] {
    background-color: #0a0a0a !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 1.5rem !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.75) !important;
    padding: 0 !important;
    overflow: hidden !important;
    z-index: 99999 !important;
}

/* Title Bar Container */
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-titlebar {
    background-color: #1a1a1a !important;
    border: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding: 1.25rem 1.5rem !important;
    border-radius: 0 !important;
}
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-title {
    color: #ffffff !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
}

/* Close Button */
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-titlebar-close {
    background: transparent !important;
    border: none !important;
    right: 1.5rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    width: 2rem !important;
    height: 2rem !important;
    border-radius: 50% !important;
    transition: background-color 0.2s !important;
}
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-titlebar-close:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
}
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-titlebar-close::before,
.ui-dialog[aria-describedby="fooevents_seating_dialog"] .ui-dialog-titlebar-close::after {
    display: none !important;
}

/* Dialog Content Body */
#fooevents_seating_dialog {
    background-color: transparent !important;
    padding: 1.5rem !important;
}

/* Legend Area */
#fooevents_seating_dialog .fooevents_seating_chart_legend {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    justify-content: center !important;
    margin-bottom: 2rem !important;
    background: #111111 !important;
    padding: 1rem !important;
    border-radius: 1rem !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
}
#fooevents_seating_dialog .fooevents_seating_chart_legend div {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    color: #aaaaaa !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
}

/* Stage Area ('FRONT') */
#fooevents_seating_dialog .fooevents_seating_chart_front {
    background: linear-gradient(135deg, #1a1a1a, #2a2a2a) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0.5rem !important;
    padding: 0.75rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.2em !important;
    margin-bottom: 2rem !important;
}

/* Scrollable Seat Container */
#fooevents_seating_dialog .seat_container {
    padding: 1rem 0 !important;
}

/* Row Title */
#fooevents_seating_dialog .fooevents_seating_chart_view_row_name {
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    margin-right: 1rem !important;
}

/* Base Seat Button */
#fooevents_seating_dialog .fooevents_seating_chart_view_row span {
    border-radius: 0.25rem !important;
    font-weight: bold !important;
    font-size: 0.75rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0.15rem !important;
    transition: all 0.2s ease-in-out !important;
}

/* Seat States */
#fooevents_seating_dialog .fooevents_seating_chart_view_row span.available {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
}
#fooevents_seating_dialog .fooevents_seating_chart_view_row span.available:hover {
    background-color: rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    transform: scale(1.1) !important;
}
#fooevents_seating_dialog .fooevents_seating_chart_view_row span.unavailable {
    background-color: rgba(239, 68, 68, 0.15) !important;
    color: #f87171 !important;
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}
#fooevents_seating_dialog .fooevents_seating_chart_view_row span.fe-blocked {
    background-color: #333333 !important;
    color: #666666 !important;
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}
#fooevents_seating_dialog .fooevents_seating_chart_view_row span.selected {
    background-color: #E91E8C !important;
    color: #ffffff !important;
    border: 1px solid #E91E8C !important;
    box-shadow: 0 0 10px rgba(233, 30, 140, 0.5) !important;
    transform: scale(1.1) !important;
}

/* Legend colors override */
#fooevents_seating_available { background-color: rgba(255, 255, 255, 0.2) !important; border: 1px solid rgba(255, 255, 255, 0.4) !important; }
#fooevents_seating_unavailable { background-color: rgba(239, 68, 68, 0.3) !important; }
#fooevents_seating_blocked { background-color: #333333 !important; }
#fooevents_seating_selected { background-color: #E91E8C !important; }

/* Confirm Selection Button */
#fooevents_seating_select_seats {
    background-color: #E91E8C !important;
    color: #ffffff !important;
    border-radius: 0.75rem !important;
    padding: 0.875rem 2rem !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    border: none !important;
    transition: opacity 0.2s, transform 0.1s !important;
    margin-top: 1.5rem !important;
    width: 100% !important;
    text-align: center !important;
}
#fooevents_seating_select_seats:hover {
    opacity: 0.9 !important;
}
#fooevents_seating_select_seats:active {
    transform: scale(0.98) !important;
}

/* ---------------------------------------------------- */
/* 7. Forms, Inputs (Checkout, My Account, General)     */
/* ---------------------------------------------------- */

.woocommerce form .form-row input.input-text, 
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row select,
.woocommerce form.checkout_coupon input.input-text,
.woocommerce form.login input.input-text,
.woocommerce form.register input.input-text,
.woocommerce form.lost_reset_password input.input-text,
.woocommerce form.edit-account input.input-text,
.woocommerce-checkout form input.input-text,
.woocommerce-checkout form select,
.woocommerce-checkout form textarea {
    background-color: #0a0a0a !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.95rem !important;
    width: 100% !important;
    outline: none !important;
    box-shadow: none !important;
    transition: all 0.2s ease-in-out !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce form.login input.input-text:focus,
.woocommerce form.register input.input-text:focus,
.woocommerce-checkout form input.input-text:focus,
.woocommerce-checkout form select:focus,
.woocommerce-checkout form textarea:focus {
    border-color: #E91E8C !important;
    box-shadow: 0 0 0 1px #E91E8C !important;
    background-color: #111111 !important;
}

.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder,
.woocommerce-checkout form input.input-text::placeholder,
.woocommerce-checkout form textarea::placeholder {
    color: #777777 !important;
}

/* Specific styling for selects (using custom arrow) */
.woocommerce form .form-row select,
.woocommerce-checkout form select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem top 50% !important;
    background-size: 0.65rem auto !important;
    padding-right: 2.5rem !important;
}

/* Select2 Dropdowns (often used by WooCommerce for countries) */
.select2-container--default .select2-selection--single {
    background-color: #0a0a0a !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    height: 3.1rem !important;
}
.select2-container--default .select2-selection--single:focus {
    border-color: #E91E8C !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #ffffff !important;
    line-height: 3rem !important;
    padding-left: 1rem !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 3rem !important;
    right: 0.5rem !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #ffffff transparent transparent transparent !important;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #ffffff transparent !important;
}
.select2-dropdown {
    background-color: #1a1a1a !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
}
.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #333333 !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #E91E8C !important;
    color: white !important;
}
.select2-search--dropdown .select2-search__field {
    background-color: #0a0a0a !important;
    color: white !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.25rem !important;
}

/* Form Labels */
.woocommerce form .form-row label,
.woocommerce-checkout form label {
    color: #ffffff !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    margin-bottom: 0.5rem !important;
    display: block !important;
}
.woocommerce form .form-row .required,
.woocommerce-checkout form .required {
    color: #E91E8C !important;
    text-decoration: none !important;
}

/* Checkout Payment Box */
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment {
    background: #111111 !important;
    border-radius: 1rem !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
}
#add_payment_method #payment div.payment_box, .woocommerce-cart #payment div.payment_box, .woocommerce-checkout #payment div.payment_box {
    background-color: #0a0a0a !important;
    color: #aaaaaa !important;
    border-radius: 0.5rem !important;
}
#add_payment_method #payment div.payment_box::before, .woocommerce-cart #payment div.payment_box::before, .woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: #0a0a0a !important;
}

/* Checkout Place Order Button */
#place_order {
    background-color: #E91E8C !important;
    color: #ffffff !important;
    border-radius: 0.75rem !important;
    padding: 1rem 2rem !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    width: 100% !important;
    margin-top: 1.5rem !important;
    transition: opacity 0.2s, transform 0.1s !important;
    border: none !important;
}
#place_order:hover {
    opacity: 0.9 !important;
}
#place_order:active {
    transform: scale(0.98) !important;
}

/* ---------------------------------------------------- */
/* 8. WooCommerce Notices (Success, Error, Info)        */
/* ---------------------------------------------------- */

.woocommerce-error, 
.woocommerce-info, 
.woocommerce-message {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    border-radius: 0.75rem !important;
    padding: 1.25rem 1.5rem 1.25rem 3.5rem !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3) !important;
    margin-bottom: 2rem !important;
    position: relative !important;
}

.woocommerce-error::before, 
.woocommerce-info::before, 
.woocommerce-message::before {
    position: absolute !important;
    top: 1.25rem !important;
    left: 1.25rem !important;
    font-size: 1.25rem !important;
}

/* Success Notice */
.woocommerce-message {
    border-left: 4px solid #4ade80 !important; /* Green */
}
.woocommerce-message::before {
    color: #4ade80 !important;
}

/* Error Notice */
.woocommerce-error {
    border-left: 4px solid #f87171 !important; /* Red */
    list-style: none !important;
}
.woocommerce-error::before {
    color: #f87171 !important;
}
.woocommerce-error li {
    margin: 0 !important;
}

/* Info Notice */
.woocommerce-info {
    border-left: 4px solid #3b82f6 !important; /* Blue */
}
.woocommerce-info::before {
    color: #3b82f6 !important;
}

/* Notice Buttons (e.g. "View Cart") */
.woocommerce-error .button, 
.woocommerce-info .button, 
.woocommerce-message .button {
    background-color: transparent !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 0.5rem !important;
    padding: 0.5rem 1rem !important;
    font-weight: 600 !important;
    float: right !important;
    transition: all 0.2s !important;
    margin-top: -0.25rem !important;
}
.woocommerce-error .button:hover, 
.woocommerce-info .button:hover, 
.woocommerce-message .button:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
}

/* ---------------------------------------------------- */
/* 9. WooCommerce BLOCKS Checkout - Dark Theme          */
/* ---------------------------------------------------- */

/* Text Inputs */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input input[type="url"],
.wc-block-components-text-input input[type="search"],
.wc-block-components-textarea textarea,
.wc-block-components-address-form input,
.wc-block-checkout__contact-fields input {
    background-color: #0a0a0a !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    padding: 1.5rem 1rem 0.5rem 1rem !important;
    font-size: 0.95rem !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease-in-out !important;
    -webkit-appearance: none !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus,
.wc-block-checkout__contact-fields input:focus,
.wc-block-components-textarea textarea:focus {
    border-color: #E91E8C !important;
    box-shadow: 0 0 0 1px #E91E8C !important;
    background-color: #111111 !important;
}

/* Floating Labels */
.wc-block-components-text-input label,
.wc-block-components-address-form label,
.wc-block-components-combobox label {
    color: #777777 !important;
    font-size: 0.85rem !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input:focus-within label {
    color: #aaaaaa !important;
}

/* Combobox / Select Dropdowns (Country, State) */
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-combobox input[type="text"] {
    background-color: #0a0a0a !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    padding: 1.5rem 2.5rem 0.5rem 1rem !important;
    font-size: 0.95rem !important;
    outline: none !important;
    box-shadow: none !important;
}
.wc-block-components-combobox .wc-block-components-combobox-control input:focus {
    border-color: #E91E8C !important;
    box-shadow: 0 0 0 1px #E91E8C !important;
}

/* Combobox dropdown list */
.wc-block-components-combobox .components-form-token-field__suggestions-list,
.wc-block-components-combobox-control .components-form-token-field__suggestions-list {
    background-color: #1a1a1a !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 0.5rem !important;
    max-height: 250px !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5) !important;
}
.wc-block-components-combobox .components-form-token-field__suggestion,
.wc-block-components-combobox-control .components-form-token-field__suggestion {
    color: #cccccc !important;
    padding: 0.5rem 1rem !important;
}
.wc-block-components-combobox .components-form-token-field__suggestion:hover,
.wc-block-components-combobox-control .components-form-token-field__suggestion:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
}
.wc-block-components-combobox .components-form-token-field__suggestion.is-selected,
.wc-block-components-combobox-control .components-form-token-field__suggestion.is-selected {
    background-color: #E91E8C !important;
    color: #ffffff !important;
}

/* Checkbox */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
    background-color: #0a0a0a !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 0.25rem !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
    background-color: #E91E8C !important;
    border-color: #E91E8C !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__label {
    color: #cccccc !important;
}

/* Section Headings */
.wc-block-checkout .wc-block-components-checkout-step__heading,
.wc-block-checkout .wc-block-components-title,
.wc-block-checkout h2,
.wp-block-woocommerce-checkout-order-summary-block h2,
.wc-block-components-totals-wrapper h2 {
    color: #ffffff !important;
    font-weight: 800 !important;
}
.wc-block-checkout .wc-block-components-checkout-step__description {
    color: #aaaaaa !important;
}

/* Dividers / Borders */
.wc-block-components-checkout-step {
    border-color: rgba(255, 255, 255, 0.1) !important;
}
.wc-block-checkout .wc-block-components-checkout-step::after {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Order Summary Sidebar */
.wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block {
    background-color: #111111 !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    border-radius: 1rem !important;
    color: #ffffff !important;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__description,
.wc-block-components-order-summary .wc-block-components-order-summary-item__description p {
    color: #aaaaaa !important;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__total-price {
    color: #ffffff !important;
}
.wc-block-components-order-summary .wc-block-components-product-name {
    color: #ffffff !important;
}

/* Totals (Subtotal, Total) */
.wc-block-components-totals-item,
.wc-block-components-totals-footer-item {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}
.wc-block-components-totals-item .wc-block-components-totals-item__value {
    color: #ffffff !important;
    font-weight: 700 !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: #ffffff !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
}
.wc-block-components-totals-item__label {
    color: #aaaaaa !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    color: #ffffff !important;
    font-weight: 700 !important;
}

/* Coupon Toggle */
.wc-block-components-totals-coupon a,
.wc-block-components-panel__button {
    color: #aaaaaa !important;
}
.wc-block-components-totals-coupon a:hover,
.wc-block-components-panel__button:hover {
    color: #E91E8C !important;
}

/* Payment Method Section */
.wc-block-checkout__payment-method .wc-block-components-radio-control__option,
.wc-block-checkout__payment-method .wc-block-components-radio-control {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input {
    border-color: rgba(255, 255, 255, 0.3) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
    border-color: #E91E8C !important;
    background-color: #E91E8C !important;
}
.wc-block-checkout__payment-method .wc-block-components-radio-control__label {
    color: #ffffff !important;
}
.wc-block-components-payment-method-label {
    color: #ffffff !important;
}

/* Stripe Card Fields */
.wc-block-gateway-container {
    background-color: #0a0a0a !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0.5rem !important;
    padding: 1rem !important;
}
#payment .payment_methods li .payment_box fieldset,
.wc-block-checkout__payment-method .payment_box {
    background-color: #0a0a0a !important;
    color: #aaaaaa !important;
}

/* Place Order Button (Blocks) */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions_row .wc-block-components-button {
    background-color: #E91E8C !important;
    color: #ffffff !important;
    border-radius: 0.75rem !important;
    padding: 1rem 2rem !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    border: none !important;
    width: 100% !important;
    transition: opacity 0.2s, transform 0.1s !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions_row .wc-block-components-button:hover {
    opacity: 0.9 !important;
}
.wc-block-components-checkout-place-order-button:active,
.wc-block-checkout__actions_row .wc-block-components-button:active {
    transform: scale(0.98) !important;
}

/* Return to cart / additional links */
.wc-block-components-checkout-return-to-cart-button {
    color: #aaaaaa !important;
}
.wc-block-components-checkout-return-to-cart-button:hover {
    color: #E91E8C !important;
}

/* Block Notices (Blocks variation) */
.wc-block-components-notice-banner {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    border-radius: 0.75rem !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.wc-block-components-notice-banner.is-error {
    border-left: 4px solid #f87171 !important;
}
.wc-block-components-notice-banner.is-success {
    border-left: 4px solid #4ade80 !important;
}
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning {
    border-left: 4px solid #3b82f6 !important;
}
.wc-block-components-notice-banner .wc-block-components-notice-banner__content {
    color: #ffffff !important;
}
.wc-block-components-notice-banner svg {
    fill: #ffffff !important;
}

/* General Block Checkout wrapper text */
.wp-block-woocommerce-checkout,
.wc-block-checkout {
    color: #ffffff !important;
}
.wc-block-checkout p,
.wc-block-checkout span {
    color: inherit !important;
}

/* Validation errors */
.wc-block-components-validation-error p {
    color: #f87171 !important;
    font-size: 0.8rem !important;
}

/* Address card summary (after filling) */
.wc-block-components-address-card {
    background-color: #111111 !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0.75rem !important;
    color: #cccccc !important;
}
.wc-block-components-address-card__address-section span {
    color: #cccccc !important;
}
.wc-block-components-address-card__edit {
    color: #E91E8C !important;
}
