@charset "UTF-8";
/* ==========================================================================
   Cvetochka Checkout Customizer — Wizard Styles
   Match the sleek visual UX of premium competitor checkouts (Pink Theme)
   ========================================================================== */

/* Prevent FOUC */
form.checkout {
    opacity: 0;
    transition: opacity 0.3s ease;
}

form.checkout.cvetochka-ready {
    opacity: 1;
}

/* Theme Override to prevent 50% width floats from parent */
form.checkout .woocommerce-checkout-review-order {
    width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
}

/* Layout & Grid */
.cvetochka-wizard-layout {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 20px;
    align-items: flex-start;
}

.cvetochka-wizard-left {
    flex: 1 1 60%;
    background: #ffffff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    border: 1px solid #f0f0f0;
}



.wizard-main-title {
    font-size: 1.4em;
    font-weight: 700;
    color: #1a1a1a;
    margin-top: 0;
    margin-bottom: 25px;
}

/* Custom UI Method & Point Cards */
#custom-methods-ui,
#pickup-points-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cvetochka-method-card,
.cvetochka-point-card {
    border: 2px solid #eaeaea;
    border-radius: 12px;
    padding: 30px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    background: #fff;
    position: relative;
}

.cvetochka-method-card.active,
.cvetochka-point-card.active {
    border-color: #e91e63;
    background: #fdf0f4;
}

.cvetochka-method-card.active::after,
.cvetochka-point-card.active::after {
    content: "";
    position: absolute;
    top: 15px;
    right: 15px;
    width: 24px;
    height: 24px;
    background: #e91e63 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") center no-repeat;
    background-size: 14px;
    border-radius: 50%;
    display: block;
}

.cm-icon,
.cp-icon {
    font-size: 3em;
    margin-bottom: 10px;
}

.cm-title {
    font-weight: 600;
    font-size: 1.1em;
    color: #333;
}

.cp-title {
    font-weight: 500;
    font-size: 1em;
    color: #4a4a4a;
}

.cvetochka-map-link {
    display: inline-block;
    font-size: 13px;
    text-decoration: underline;
    position: relative;
    z-index: 5;
}

.cvetochka-map-link:hover {
    color: #e91e63;
}

/* Form Fields Customization */
.form-row-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
}

.form-row {
    margin-bottom: 20px;
    width: 100% !important;
    float: none !important;
    padding: 13px !important;
}

/* Field Icons & Autofill Fixes */
.woocommerce form .form-row input.input-text:-webkit-autofill,
.woocommerce form .form-row input.input-text:-webkit-autofill:hover,
.woocommerce form .form-row input.input-text:-webkit-autofill:focus,
.woocommerce form .form-row input.input-text:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #fbfbfb inset !important;
    -webkit-text-fill-color: #444 !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-user,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-phone,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-mail,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-home,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-zip,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-user:-webkit-autofill,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-phone:-webkit-autofill,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-mail:-webkit-autofill,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-home:-webkit-autofill,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-zip:-webkit-autofill {
    background-repeat: no-repeat !important;
    background-position: 16px center !important;
    padding-left: 45px !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-user,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-user:-webkit-autofill {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E") !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-phone,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-phone:-webkit-autofill {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E") !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-mail,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-mail:-webkit-autofill {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E") !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-home,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-home:-webkit-autofill {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E") !important;
}

.woocommerce form .form-row input.input-text.cvetochka-input-icon-zip,
.woocommerce form .form-row input.input-text.cvetochka-input-icon-zip:-webkit-autofill {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E") !important;
}

.form-row label {
    font-size: 0.9em;
    color: #666;
    margin-bottom: 6px;
    display: block;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select.state_select,
.woocommerce form .form-row select.city_select,
.woocommerce form .form-row select {
    width: 100%;
    background-color: #fbfbfb;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 14px 16px !important;
    transition: all 0.3s ease;
    font-size: 1em;
    height: auto !important;
}

.woocommerce form .form-row select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px !important;
    cursor: pointer;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
    background-color: #fff;
    border-color: #e91e63;
    box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.1);
    outline: none;
}

/* Custom Div Dropdown Styles */
.cvetochka-custom-select-wrapper {
    position: relative;
    user-select: none;
    width: 100%;
}

.cvetochka-custom-select-trigger {
    background-color: #fbfbfb;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 14px 40px 14px 16px !important;
    cursor: pointer;
    color: #444;
    font-size: 1em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    transition: all 0.3s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cvetochka-custom-select-wrapper.open .cvetochka-custom-select-trigger {
    border-color: #e91e63;
    box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.1);
    background-color: #fff;
}

.cvetochka-custom-select-options {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    display: none;
    z-index: 999;
    max-height: 250px;
    overflow-y: auto;
    padding: 8px 0;
}

.cvetochka-custom-select-options .custom-option {
    padding: 12px 16px;
    cursor: pointer;
    color: #444;
    transition: background 0.2s;
    font-size: 0.95em;
}

.cvetochka-custom-select-options .custom-option:hover {
    background: #fdf0f4;
    color: #e91e63;
}

.cvetochka-custom-select-options .custom-option.selected {
    background: #e91e63;
    color: #fff;
    font-weight: 500;
}

.cvetochka-hint-small {
    margin-top: 5px;
    font-size: 0.8em;
    color: #888;
    line-height: 1.4;
    padding-left: 30px;
}

/* Wizard Navigation Row */
.cvetochka-wizard-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #f0f0f0;
}

.wizard-progress {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 30%;
}

.step-counter {
    font-weight: 700;
    color: #333;
    font-size: 0.9em;
}

.progress-bar {
    flex: 1;
    height: 6px;
    background: #eaeaea;
    border-radius: 3px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: #e91e63;
    transition: width 0.4s ease;
}

.wizard-buttons {
    display: flex;
    gap: 15px;
}

.cvetochka-btn,
.btn-next,
.btn-prev {
    padding: 12px 28px;
    border-radius: 40px;
    font-weight: 600;
    font-size: 1em;
    cursor: pointer;
    transition: all 0.3s;
    border: none;
}

.btn-next {
    background: #e91e63;
    color: #fff;
    box-shadow: 0 4px 15px rgba(233, 30, 99, 0.3);
}

.btn-next:hover {
    background: #c2185b;
    transform: translateY(-2px);
}

.btn-next.disabled,
.btn-next:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

.btn-prev {
    background: #fff;
    color: #e91e63;
    border: 2px solid #e91e63;
}

.btn-prev:hover {
    background: #fdf0f4;
}

/* Checkout final buttons matching modal style */
#cvetochka-wizard-container #place_order,
#cvetochka-wizard-container .cpsw-express-checkout-button,
#place_order,
.cpsw-express-checkout-button {
    text-align: center !important;
    padding: 15px 10px !important;
    border-radius: 12px !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    width: 100% !important;
    border: none !important;
    background: linear-gradient(135deg, #a3617b 0%, #d889a7 50%, #a3617b 100%) !important;
    background-size: 200% auto !important;
    background-position: 0 0 !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(163, 97, 123, 0.3) !important;
    transition: background-position 0.5s ease, box-shadow 0.3s ease, transform 0.3s ease !important;
}

#cvetochka-wizard-container #place_order:hover,
#cvetochka-wizard-container .cpsw-express-checkout-button:hover,
#place_order:hover,
.cpsw-express-checkout-button:hover {
    background-position: 100% 0 !important;
    box-shadow: 0 12px 28px rgba(163, 97, 123, 0.4) !important;
    transform: translateY(-2px) !important;
}

#place_order:active,
.cpsw-express-checkout-button:active {
    transform: translateY(0) !important;
    box-shadow: 0 6px 16px rgba(163, 97, 123, 0.3) !important;
}

#place_order:disabled,
.cpsw-express-checkout-button:disabled,
.cpsw-express-checkout-button.disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Ensure the CPSW "Buy Now" inner text stays white */
.cpsw-express-checkout-button .cpsw-express-checkout-button-content {
    color: #fff !important;
}

/* Loading state while pickup points are being fetched */
.cvetochka-points-loading {
    padding: 45px 0;
    text-align: center;
    color: #888;
    font-size: 0.95em;
}

.cvetochka-points-loading::after {
    content: "";
    display: block;
    margin: 12px auto 0;
    width: 24px;
    height: 24px;
    border: 3px solid rgba(233, 30, 99, 0.25);
    border-top-color: rgba(233, 30, 99, 0.7);
    border-radius: 50%;
    animation: cvetochka-spin 0.8s linear infinite;
}

@keyframes cvetochka-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Right Column (Totals) styling */
.cvetochka-wizard-right {
    flex: 1 1 35%;
    background: #ffffff;
    border-radius: 12px;
    padding: 35px;
    position: sticky;
    top: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.04);
}

/* Totals Box Layout Normalize */
#cvetochka-totals-wrapper {
    font-size: 0.9em;
    color: #666;
    margin-bottom: 6px;
    display: block;
}

.totals-title {
    font-size: 1.6em;
    font-weight: 700;
    margin: 0 0 25px;
    color: #e91e63;
}

#order_review_heading {
    display: none;
}

/* Force Table normalization for clean row renders globally */
#order_review table.shop_table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    background: transparent !important;
}

#order_review table.shop_table tbody td,
#order_review table.shop_table tfoot td,
#order_review table.shop_table tbody th,
#order_review table.shop_table tfoot th {
    background: transparent !important;
    padding: 16px 0 !important;
    border: none !important;
    border-bottom: 1px solid #eaeaea !important;
}

#order_review table.shop_table tr:last-child th,
#order_review table.shop_table tr:last-child td {
    border-bottom: none !important;
}

#order_review table.shop_table tr.cart-subtotal,
#order_review table.shop_table tr.woocommerce-shipping-totals,
#order_review table.shop_table tr.shipping,
#order_review table.shop_table tr.order-total,
#order_review table.shop_table tr {
    box-shadow: none !important;
}

table.shop_table {
    width: 100%;
    border-collapse: collapse;
    border: none;
}

table.shop_table thead {
    display: none;
}

/* Hide headers */

table.shop_table tbody td,
table.shop_table tfoot td,
table.shop_table tfoot th {
    padding: 18px 0;
    border-bottom: 1px solid #f2f2f2;
    text-align: left;
    background: transparent !important;
}

/* Product Row */
table.shop_table td.product-name {
    font-size: 0.95em;
    color: #4a4a4a;
    line-height: 1.4;
}

table.shop_table td.product-name strong {
    font-weight: 600;
    color: #1a1a1a;
    margin-left: 5px;
}

table.shop_table td.product-total {
    text-align: right;
    color: #d18d9b;
    /* Muted pink from screenshot */
    font-weight: 600;
}

/* Footer Rows (Subtotal, Shipping) */
table.shop_table tfoot th {
    font-weight: 600;
    color: #b5989e;
    /* Muted text from screenshot */
    font-size: 14px;
    /* Default logic, but ensure 14px specifically */
}

table.shop_table tfoot td {
    text-align: right;
    color: #d18d9b;
    /* Fallback for other rows */
    font-weight: 600;
    font-size: 14px;
}

table.shop_table tfoot tr.cart-subtotal th,
table.shop_table tfoot tr.cart-subtotal td,
table.shop_table tfoot tr.woocommerce-shipping-totals th,
table.shop_table tfoot tr.woocommerce-shipping-totals td {
    font-size: 14px !important;
}

/* Final Order Total Row */
table.shop_table tr.order-total th {
    font-size: 1.2em;
    color: #b5989e;
    border-bottom: none;
    padding-top: 25px;
}

table.shop_table tr.order-total td {
    font-size: 1.25em;
    color: #d18d9b;
    border-bottom: none;
    padding-top: 25px;
}

/* Hide Delivery Row in Totals unless on Step 4 Payment */
tr.woocommerce-shipping-totals {
    display: none !important;
}

body.cvetochka-show-shipping tr.woocommerce-shipping-totals {
    display: table-row !important;
}

/* Hide hidden shipping form (radio buttons / duplicate labels) that is needed for WooCommerce bookkeeping but should not show in our sidebar */
#hidden-shipping-container {
    display: none !important;
}

/* Mask Grand Total prematurely while on Delivery Setup steps */
body.cvetochka-flow-delivery:not(.cvetochka-show-shipping) tr.order-total {
    display: none !important;
}

/* Hide WooCommerce default payment block styles to keep clean */
#payment {
    background: transparent !important;
}

/* Hide Pi-DTT floating artifacts if they inject under order review */
#order_review~* {
    display: none !important;
}

.clear {
    display: block !important;
}

/* Recipient & Checkbox UI */
.cvetochka-recipient-toggle,
.cvetochka-toggle-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: #333;
    margin: 0;
}

.cvetochka-toggle-label {
    gap: 12px;
    font-weight: 600;
    font-size: 1em;
}

.cvetochka-toggle-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: #e91e63;
    cursor: pointer;
}

.cvetochka-recipient-toggle {
    margin: 20px 0;
    padding: 18px 20px;
    background: #fdfdfd;
    border: 1px solid #eaeaea;
    border-radius: 12px;
    transition: all 0.2s;
}

.cvetochka-recipient-toggle:hover {
    border-color: #d1d1d1;
}

.cvetochka-hint {
    display: none;
}

.cvetochka-recipient-fields {
    background: #fff;
    padding-top: 15px;
}

/* Time & Date specific layout in Step 3 */
#cvetochka-datetime-section {
    margin-top: 30px;
    border-top: 1px solid #f0f0f0;
    padding-top: 25px;
}

.cvetochka-datetime-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: end;
}

.cvetochka-section-title {
    font-size: 1.1em;
    font-weight: 600;
    margin-bottom: 15px;
    color: #1a1a1a;
}

/* Fix woo core absolute escaping wrapper constraints */
.woocommerce-input-wrapper {
    position: relative;
    display: block;
}

.cvetochka-calendar-icon {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    display: inline-block;
}

.cvetochka-icon-date {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

.cvetochka-icon-time {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Validation styling */
.cvetochka-field-error {
    border-color: #e74c3c !important;
    background-color: #fdf2f2 !important;
}

.cvetochka-error-msg {
    display: none !important;
}

/* Custom WooCommerce Overrides inside Step 4 */
#payment {
    background: transparent !important;
}

#payment ul.payment_methods {
    border: 1px solid #eaeaea;
    border-radius: 12px;
    padding: 20px;
    background: #fbfbfb;
}

/* Mobile Responsiveness */
@media (max-width: 900px) {
    .cvetochka-wizard-layout {
        flex-direction: column;
    }

    .cvetochka-wizard-right {
        order: 2;
        /* Display totals below wizard on mobile */
        width: 100%;
        position: static;
        margin-top: 20px;
    }

    .form-row-group,
    .cvetochka-datetime-grid,
    #custom-methods-ui,
    #pickup-points-container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .cvetochka-wizard-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
    }

    .wizard-progress {
        width: 100%;
        margin-bottom: 5px;
    }

    .wizard-buttons {
        width: 100%;
        justify-content: space-between;
    }

    .cvetochka-btn,
    .btn-next,
    .btn-prev {
        flex: 1;
        text-align: center;
        padding: 14px 10px;
        margin: 0 5px;
    }

    .btn-prev {
        margin-left: 0;
    }

    .btn-next {
        margin-right: 0;
    }
}

/* Cart Page Specifics */
.woocommerce-cart .woocommerce-shipping-totals,
.woocommerce-cart .shipping-calculator-form,
.woocommerce-cart .shipping-calculator-button {
    display: none !important;
}

/* =========================================================
   ====== REVIEW ORDER TABLE (CHECKOUT STEP 4) AESTHETICS ==
   ========================================================= */

.woocommerce-checkout-review-order-table {
    width: 100% !important;
}

.woocommerce-checkout-review-order-table tbody {
    display: table-row-group !important;
    width: 100% !important;
}

/* Make Checkout Order items native rows */
.woocommerce-checkout-review-order-table tbody tr.cart_item {
    display: table-row !important;
    width: 100% !important;
}

.woocommerce-checkout-review-order-table tbody tr.cart_item td {
    padding: 15px 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

/* Make name/image column flex container to align the image/text horizontally */
.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    border-bottom: none !important;
    /* Avoid double borders if browser applies flex awkwardly */
}

/* Flex wrapper around injected thumbnail & item text */
.checkout-product-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}

/* Thumbnail specific styling */
img.checkout-thumbnail {
    border-radius: 8px !important;
    width: 50px !important;
    height: 50px !important;
    object-fit: cover !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05) !important;
}

/* Push the 'x 1' text strictly to the right side of the item name cell */
.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name strong.product-quantity {
    font-size: 14px !important;
    color: #888 !important;
    margin-left: auto !important;
    padding-right: 25px !important;
}

/* Format the price cell cleanly */
.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
    border: none !important;
    padding: 0 !important;
    font-weight: 700 !important;
    color: #a3617b !important;
    /* Premium brand pink */
    white-space: nowrap !important;
}


/* ==========================================================
   ====== 7. STRIPE PAYMENT GATEWAY PREMIUM REDESIGN ========
   ========================================================== */
#payment .payment_methods {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
}

#payment .payment_methods li.wc_payment_method {
    background: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 12px !important;
    margin-bottom: 15px !important;
    padding: 15px 20px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02) !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

#payment .payment_methods li.wc_payment_method input[type="radio"]:checked+label {
    font-weight: 700 !important;
    color: #a3617b !important;
}

#payment .payment_methods li.wc_payment_method:focus-within {
    border-color: #a3617b !important;
    box-shadow: 0 4px 15px rgba(163, 97, 123, 0.1) !important;
}

#payment .payment_methods li.wc_payment_method>label {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #333 !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    display: inline-block !important;
    vertical-align: middle !important;
    width: auto !important;
}

#payment .payment_methods li.wc_payment_method>label img {
    max-height: 24px !important;
    margin-left: 10px !important;
    vertical-align: middle !important;
    background: transparent !important;
}

/* Remove weird pink background highlights imposed by the theme or Stripe */
#payment .payment_methods li.wc_payment_method>label,
#payment .payment_methods li.wc_payment_method>p,
#payment .payment_methods li.wc_payment_method>div:not(.stripe-button-el) {
    background-color: transparent;
}

#payment .payment_methods li.wc_payment_method .payment_box {
    background: #fdfdfd !important;
    border: 1px solid #eee !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin-top: 15px !important;
    color: #555 !important;
    box-shadow: none !important;
}

#payment .payment_methods li.wc_payment_method .payment_box p {
    margin-bottom: 12px !important;
    font-size: 14px !important;
    color: #666 !important;
    background: transparent !important;
}

#payment .payment_methods li.wc_payment_method .payment_box fieldset {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

/* Ensure Stripe iframe input fields keep a white background though */
#payment .payment_methods li.wc_payment_method .payment_box .StripeElement,
#payment .payment_methods li.wc_payment_method .payment_box input:not([type="radio"]):not([type="checkbox"]) {
    background-color: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    padding: 12px !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02) !important;
    transition: border-color 0.3s !important;
}

#payment .payment_methods li.wc_payment_method .payment_box .StripeElement:focus-within,
#payment .payment_methods li.wc_payment_method .payment_box input:focus {
    border-color: #a3617b !important;
}

/* Specific fix for checkout strange background texts */
#payment .stripe-source-errors {
    color: #e91e63 !important;
}

/* Strip generic #payment pink backgrounds set by the core theme */
#payment,
#payment .form-row {
    background: transparent !important;
}



/* Offscreen visibility trick to keep Stripe Express Checkout frames alive while panel is inactive */
.cvetochka-panel:not(.active-panel) {
    position: absolute !important;
    left: -9999px !important;
    top: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

.cvetochka-panel.active-panel {
    position: relative !important;
    left: 0 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transition: opacity 0.3s ease !important;
}

/* Ensure CPSW Express Checkout section is always visible when payment panel is active */
.cvetochka-panel.active-panel #cpsw-payment-request-wrapper {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* ==========================================================
   ====== 8. TOTALS TABLE MOBILE L&R ALIGNMENT FIX ==========
   ========================================================== */

/* Change mobile stacked rows back to horizontal left/right */
@media (max-width: 768px) {

    #order_review table.shop_table tbody td,
    #order_review table.shop_table tfoot td,
    #order_review table.shop_table tbody th,
    #order_review table.shop_table tfoot th {
        border-bottom: 0px solid #eaeaea !important;
    }


    #order_review table.shop_table tfoot tr.cart-subtotal,
    #order_review table.shop_table tfoot tr.woocommerce-shipping-totals,
    #order_review table.shop_table tfoot tr.order-total,
    #order_review table.shop_table tfoot tr.fee {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 5px 0 0 !important;
        width: 100% !important;
    }

    #order_review table.shop_table tfoot th,
    #order_review table.shop_table tfoot td {
        display: block !important;
        width: auto !important;
        flex: 0 1 auto !important;
        padding: 10px 0 !important;
        border: none !important;
    }

    #order_review table.shop_table tfoot th {
        text-align: left !important;
    }

    #order_review table.shop_table tfoot td {
        text-align: right !important;
        max-width: 60% !important;
    }
}

/* Hide Shipping Method Name text, leaving only the price visible */
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td ul#shipping_method {
    margin: 0 !important;
    padding: 0 !important;
}

#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td label,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td .shipping_method {
    font-size: 0 !important;
    margin: 0 !important;
}

#order_review table.shop_table tfoot tr.cart-subtotal th,
#order_review table.shop_table tfoot tr.cart-subtotal td,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals th,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td .woocommerce-Price-amount {
    font-size: 14px !important;
}

/* Specific Shipping Row Price Color (#ffc0cb) */
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td span,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td bdi,
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td strong {
    color: #ffc0cb !important;
}

/* Enforce step hiding logic with high specificity to override mobile flex display */
body:not(.cvetochka-show-shipping) #order_review table.shop_table tfoot tr.woocommerce-shipping-totals,
body.cvetochka-flow-delivery:not(.cvetochka-show-shipping) #order_review table.shop_table tfoot tr.order-total {
    display: none !important;
}