{"id":2762,"date":"2025-08-25T12:36:53","date_gmt":"2025-08-25T12:36:53","guid":{"rendered":"https:\/\/sasipea.ee\/checkout\/"},"modified":"2026-01-09T07:47:54","modified_gmt":"2026-01-09T07:47:54","slug":"checkout","status":"publish","type":"page","link":"https:\/\/sasipea.ee\/en\/checkout\/","title":{"rendered":"Checkout"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2762\" class=\"elementor elementor-2762\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e5b3c1c e-flex e-con-boxed wcf-starter-animations-none e-con e-parent\" data-id=\"e5b3c1c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f6549db wcf-starter-animations-none elementor-widget elementor-widget-heading\" data-id=\"f6549db\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;wcf_starter_animations&quot;:&quot;none&quot;,&quot;wcf_anim_duration&quot;:1000,&quot;wcf_anim_delay&quot;:0,&quot;wcf_anim_ease&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Checkout<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c4d05df e-flex e-con-boxed wcf-starter-animations-none e-con e-parent\" data-id=\"c4d05df\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a6312a elementor-widget elementor-widget-sasipea_checkout\" data-id=\"4a6312a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"sasipea_checkout.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"sasipea-checkout-widget\">\n                        <!-- Custom confirm modal (replaces browser confirm()) -->\n            <div class=\"sasipea-modal-overlay\" id=\"sasipea-confirm-overlay\" aria-hidden=\"true\">\n                <div class=\"sasipea-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"sasipea-confirm-text\" aria-describedby=\"sasipea-confirm-text\" tabindex=\"-1\">\n                    <div class=\"sasipea-modal-body\">\n                        <div class=\"sasipea-modal-text\" id=\"sasipea-confirm-text\">Oled kindel?<\/div>\n                    <\/div>\n                    <div class=\"sasipea-modal-actions\">\n                        <button type=\"button\" class=\"sasipea-modal-btn sasipea-modal-btn-primary\" data-action=\"confirm\">Confirm<\/button>\n                        <button type=\"button\" class=\"sasipea-modal-btn\" data-action=\"cancel\">Cancel<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- Mobile Order Summary (Collapsible) -->\n            \n            <div class=\"checkout-container\">\n                <!-- Left Column -->\n                <div class=\"checkout-left\">\n                    <!-- Contact Information -->\n                    <div class=\"checkout-section\">\n                        <h3>Contact details<\/h3>\n                                                <div class=\"form-row\">\n                            <div class=\"form-group\">\n                                <input type=\"text\" id=\"first_name\" name=\"first_name\" placeholder=\"First name\" value=\"\" required>\n                            <\/div>\n                            <div class=\"form-group\">\n                                <input type=\"text\" id=\"last_name\" name=\"last_name\" placeholder=\"Last name *\" value=\"\" required>\n                            <\/div>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <input type=\"tel\" id=\"phone\" name=\"phone\" placeholder=\"Phone *\" value=\"\" required>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"E-mail *\" value=\"\" required>\n                        <\/div>\n\t\t\t\t\t\t<!-- Address fields (shown for courier) -->\n\t\t\t\t\t\t<div class=\"address-fields\">\n                        <div class=\"form-group\">\n                                <input type=\"text\" id=\"address_1\" name=\"address_1\" placeholder=\"Address( street, house nr) *\" value=\"\">\n                            <\/div>\n\t\t\t\t\t\t\t<div class=\"form-row\">\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n                                    <input type=\"text\" id=\"city\" name=\"city\" placeholder=\"City *\" value=\"\">\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n                                    <input type=\"text\" id=\"postcode\" name=\"postcode\" placeholder=\"Zipcode *\" value=\"\">\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n                        <div class=\"form-group\">\n\t\t\t\t\t\t\t<label class=\"checkbox-label company-toggle\">\n                                <input type=\"checkbox\" name=\"company\" id=\"company\" >\n                                <span class=\"checkmark\"><\/span>\n                                <span data-sasipea-i18n=\"buying_for_company\">I&#039;m buying for a company<\/span>\n                            <\/label>\n                        <\/div>\n\t\t\t\t\t\t<!-- Company fields -->\n\t\t\t\t\t\t<div class=\"company-fields\">\n\t\t\t\t\t\t\t<div class=\"form-group\">\n                                <input type=\"text\" id=\"company_name\" name=\"company_name\" placeholder=\"Company Name \t\" value=\"\">\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n                                <input type=\"text\" id=\"company_reg\" name=\"company_reg\" placeholder=\"Company Reg \t\" value=\"\">\n\t\t\t\t\t\t\t<\/div>\n                        <\/div>\n                    <\/div>\n                    <!-- Payment Method (moved after totals for mobile) -->\n                    <div class=\"checkout-section payment-section\">\n                        <h3>Payment method<\/h3>\n\t\t\t\t\t\t<div class=\"payment-methods\" id=\"sasipea-payment-methods\">\n                            \t\t\t\t\t\t\t\t\t<div class=\"payment-method active\" data-method=\"wc_montonio_payments\">\n\t\t\t\t\t\t\t\t\t\t<input id=\"payment_method_wc_montonio_payments\" type=\"radio\" class=\"input-radio sasipea-hidden\" name=\"payment_method\" value=\"wc_montonio_payments\" checked \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"payment-icon\"><img decoding=\"async\" class=\"montonio-payment-method-icon wc-montonio-payments-icon\" src=\"https:\/\/sasipea.ee\/wp-content\/plugins\/montonio-for-woocommerce\/assets\/images\/brand\/montonio-logo-mark.svg\" alt=\"Bank Payments\" \/><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Bank Payments<\/span>\n                        <\/div>\n                                    <div class=\"payment_box payment_method_wc_montonio_payments sasipea-hidden\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"montonio-bank-payments-form\"><select class=\"montonio-payments-country-dropdown\" name=\"montonio_payments_preferred_country\"><option selected=\"selected\" value=\"EE\">Estonia<\/option><option  value=\"FI\">Finland<\/option><option  value=\"LV\">Latvia<\/option><option  value=\"LT\">Lithuania<\/option><option  value=\"PL\">Poland<\/option><\/select><div id=\"montonio-payments-description\" class=\"montonio-bank-items montonio-bank-items--grid\"><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"HABAEE2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/swedbank.png\"  alt=\"Swedbank Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"EEUHEE2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/seb.png\"  alt=\"SEB Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"LHVBEE22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/lhv.png\"  alt=\"LHV Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"RIKOEE22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/luminor.png\"  alt=\"Luminor Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"EKRDEE22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/coop.png\"  alt=\"Coop Pank\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"PARXEE22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/citadele.png\"  alt=\"Citadele Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"RVUALT2V\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/revolut.png\"  alt=\"Revolut Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"NTSBDEB1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/n26.svg\"  alt=\"N26 Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"TRWIGB2L\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/wise.png\"  alt=\"Wise Estonia\"><\/div><div class=\"bank-region-EE montonio-bank-item\" data-bank=\"BIGKEE2B\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/bigbank.png\"  alt=\"Bigbank Estonia\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"OKOYFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/op.png\"  alt=\"OP Financial Group\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"NDEAFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/nordea.png\"  alt=\"Nordea\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"DABAFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/danske.png\"  alt=\"Danske Bank\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"ITELFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/saastopankki.png\"  alt=\"S\u00e4\u00e4st\u00f6pankki\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"POPFFI22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/pop.png\"  alt=\"POP Pankki\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"OMSAFI2S\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/omasp.png\"  alt=\"Oma S\u00e4\u00e4st\u00f6pankki\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"SBANFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/s-pankki.png\"  alt=\"S-Pankki\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"AABAFI22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/alandsbanken-fi.png\"  alt=\"Alandsbanken\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"HELSFIHH\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/aktia.svg\"  alt=\"Aktia\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"RVUALT2V\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/revolut.png\"  alt=\"Revolut Finland\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"NTSBDEB1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/n26.svg\"  alt=\"N26 Finland\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"TRWIGB2L\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/wise.png\"  alt=\"Wise Finland\"><\/div><div class=\"bank-region-FI montonio-bank-item montonio-bank-item--hidden\" data-bank=\"BIGKFIH1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/bigbank.png\"  alt=\"Bigbank Finland\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"HABALV22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/swedbank.png\"  alt=\"Swedbank Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"UNLALV2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/seb.png\"  alt=\"SEB Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"PARXLV22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/citadele.png\"  alt=\"Citadele Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"RIKOLV2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/luminor.png\"  alt=\"Luminor Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"RVUALT2V\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/revolut.png\"  alt=\"Revolut Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"IDXOLV22XXX\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/indexo.svg\"  alt=\"INDEXO\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"NTSBDEB1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/n26.svg\"  alt=\"N26 Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"TRWIGB2L\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/wise.png\"  alt=\"Wise Latvia\"><\/div><div class=\"bank-region-LV montonio-bank-item montonio-bank-item--hidden\" data-bank=\"BIGKLV21\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/bigbank.png\"  alt=\"Bigbank Latvia\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"HABALT22\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/swedbank.png\"  alt=\"Swedbank Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"CBVILT2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/seb.png\"  alt=\"SEB Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"AGBLLT2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/luminor.png\"  alt=\"Luminor Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"CBSBLT26\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/siauliu.png\"  alt=\"Artea\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"INDULT2X\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/citadele.png\"  alt=\"Citadele Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"RVUALT2V\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/revolut.png\"  alt=\"Revolut Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"NTSBDEB1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/n26.svg\"  alt=\"N26 Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"TRWIGB2L\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/wise.png\"  alt=\"Wise Lithuania\"><\/div><div class=\"bank-region-LT montonio-bank-item montonio-bank-item--hidden\" data-bank=\"BIGKLT21\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/bigbank.png\"  alt=\"Bigbank Lithuania\"><\/div><div class=\"bank-region-PL montonio-bank-item montonio-bank-item--hidden\" data-bank=\"RVUALT2V\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/revolut.png\"  alt=\"Revolut Poland\"><\/div><div class=\"bank-region-PL montonio-bank-item montonio-bank-item--hidden\" data-bank=\"NTSBDEB1\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/n26.svg\"  alt=\"N26 Poland\"><\/div><div class=\"bank-region-PL montonio-bank-item montonio-bank-item--hidden\" data-bank=\"TRWIGB2L\"><img decoding=\"async\" class=\"montonio-bank-item-img\" src=\"https:\/\/public.montonio.com\/images\/aspsps_logos\/v2\/wise.png\"  alt=\"Wise Poland\"><\/div><\/div><input type=\"hidden\" name=\"montonio_payments_preselected_bank\" id=\"montonio_payments_preselected_bank\"><\/div>                    <\/div>\n                            \t\t\t\t\t\t\t\t\t<div class=\"payment-method \" data-method=\"wc_montonio_card\">\n\t\t\t\t\t\t\t\t\t\t<input id=\"payment_method_wc_montonio_card\" type=\"radio\" class=\"input-radio sasipea-hidden\" name=\"payment_method\" value=\"wc_montonio_card\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"payment-icon\"><img decoding=\"async\" class=\"montonio-payment-method-icon wc-montonio-card-icon\" src=\"https:\/\/sasipea.ee\/wp-content\/plugins\/montonio-for-woocommerce\/assets\/images\/payments\/visa-mc-ap-gp.png\" alt=\"Card payment\" \/><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Card payment<\/span>\n                        <\/div>\n                                    <div class=\"payment_box payment_method_wc_montonio_card sasipea-hidden\">\n\t\t\t\t\t\t\t\t\t\tPay with a credit or debit card through Montonio.<div id=\"montonio-card-form\"><\/div><input type=\"hidden\" name=\"montonio_card_payment_session_uuid\" value=\"\">                    <\/div>\n                            \t\t\t\t\t\t\t\t\t<div class=\"payment-method \" data-method=\"wc_montonio_bnpl\">\n\t\t\t\t\t\t\t\t\t\t<input id=\"payment_method_wc_montonio_bnpl\" type=\"radio\" class=\"input-radio sasipea-hidden\" name=\"payment_method\" value=\"wc_montonio_bnpl\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"payment-icon\"><img decoding=\"async\" class=\"montonio-payment-method-icon wc-montonio-bnpl-icon\" src=\"https:\/\/sasipea.ee\/wp-content\/plugins\/montonio-for-woocommerce\/assets\/images\/payments\/inbank.svg\" alt=\"Maksa hiljem, lisatasudeta\" \/><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Maksa hiljem, lisatasudeta<\/span>\n                        <\/div>\n                                    <div class=\"payment_box payment_method_wc_montonio_bnpl sasipea-hidden\">\n\t\t\t\t\t\t\t\t\t\tMaksmine mitmes osas toimub koost\u00f6\u00f6s Inbankiga.<div id=\"montonio-bnpl-widget-container\" class=\"montonio-bnpl-form\" data-grand-total=\"0.00\" data-default-region=\"EE\"><div class=\"montonio-bnpl-items\"><div class=\"montonio-bnpl-item montonio-bnpl-item-1 active\" data-bnpl-period=\"1\">Pay next month<div class=\"montonio-bnpl-item-subtitle\">Add <span class=\"woocommerce-Price-amount amount\">30,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" dir=\"auto\">&euro;<\/span><\/span> more to your cart to use this payment method<\/div><\/div><div class=\"montonio-bnpl-item montonio-bnpl-item-2 montonio-bnpl-item--disabled\" data-bnpl-period=\"2\">Pay in two parts<div class=\"montonio-bnpl-item-subtitle\">Add <span class=\"woocommerce-Price-amount amount\">75,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" dir=\"auto\">&euro;<\/span><\/span> more to your cart to use this payment method<\/div><\/div><div class=\"montonio-bnpl-item montonio-bnpl-item-3 montonio-bnpl-item--disabled\" data-bnpl-period=\"3\">Pay in three parts<div class=\"montonio-bnpl-item-subtitle\">Add <span class=\"woocommerce-Price-amount amount\">75,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" dir=\"auto\">&euro;<\/span><\/span> more to your cart to use this payment method<\/div><\/div><\/div><input type=\"hidden\" name=\"montonio_bnpl_period\" id=\"montonio_bnpl_period\" value=\"1\"><input type=\"hidden\" name=\"montonio_bnpl_preferred_country\" value=\"EE\"><\/div>                    <\/div>\n                            \t\t\t\t\t\t\t\t\t<div class=\"payment-method \" data-method=\"wc_montonio_hire_purchase\">\n\t\t\t\t\t\t\t\t\t\t<input id=\"payment_method_wc_montonio_hire_purchase\" type=\"radio\" class=\"input-radio sasipea-hidden\" name=\"payment_method\" value=\"wc_montonio_hire_purchase\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"payment-icon\"><img decoding=\"async\" class=\"montonio-payment-method-icon wc-montonio-hire-purchase-icon\" src=\"https:\/\/sasipea.ee\/wp-content\/plugins\/montonio-for-woocommerce\/assets\/images\/payments\/inbank.svg\" alt=\"J\u00e4relmaks\" \/><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>J\u00e4relmaks<\/span>\n                        <\/div>\n                                    <div class=\"payment_box payment_method_wc_montonio_hire_purchase sasipea-hidden\">\n\t\t\t\t\t\t\t\t\t\t<p>J\u00e4relmaks 3-72 kuud. Taotle kiirelt, otsus koheselt.<\/p>\n<div class=\"montonio-hire-purchase-form\"><select class=\"montonio-hire-purchase-country-select\" name=\"montonio_hire_purchase_preferred_country\" aria-label=\"Country\" data-default-country=\"EE\"><option value=\"EE\" selected='selected'>Estonia<\/option><option value=\"LV\">Latvia<\/option><option value=\"LT\">Lithuania<\/option><\/select><\/div>                    <\/div>\n                            \t\t\t\t\t\t\t\t\t<div class=\"payment-method \" data-method=\"bacs\">\n\t\t\t\t\t\t\t\t\t\t<input id=\"payment_method_bacs\" type=\"radio\" class=\"input-radio sasipea-hidden\" name=\"payment_method\" value=\"bacs\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Panga\u00fclekanne<\/span>\n                        <\/div>\n                                    <div class=\"payment_box payment_method_bacs sasipea-hidden\">\n\t\t\t\t\t\t\t\t\t\t<p>Tee \u00fclekanne meie pangakontole. Palun kasuta selgituses tellimuse numbrit. Sinu tellimust ei l\u00e4hetata enne, kui raha on j\u00f5udnud meie kontole.<\/p>\n                    <\/div>\n                                                    <\/div>\n\t\t\t\t\t\t<div id=\"sasipea-payment-details\" class=\"payment-details\"><\/div>\n                    <\/div>\n\t\t\t\t\t<!-- Delivery removed from left column -->\n                    <!-- Order Summary (Discount + Totals) -->\n                    <div class=\"checkout-section totals-section\">\n                        <div class=\"discount-code\">\n                            <input type=\"text\" placeholder=\"Discount code\" name=\"discount_code\" id=\"discount_code\">\n                            <button type=\"button\" class=\"apply-btn\" id=\"apply_coupon_btn\">Apply<\/button>\n                        <\/div>\n                                                <div class=\"discount-actions sasipea-hidden\">\n                            <button type=\"button\" id=\"remove_coupon_btn\" class=\"text-link-btn\">Remove Discount<\/button>\n                        <\/div>\n\n                                                <div class=\"order-totals\">\n                            <div class=\"total-line\">\n                                <span>Total products<\/span>\n                                <span><span class=\"woocommerce-Price-amount amount\"><bdi>0,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" translate=\"no\" dir=\"auto\">&euro;<\/span><\/bdi><\/span><\/span>\n                            <\/div>\n                            <div class=\"total-line\">\n                                <span>Total delivery<\/span>\n                                                                    <span data-sasipea-i18n=\"free_shipping\">Free<\/span>\n                                                            <\/div>\n                                                                                    <div class=\"total-line total\">\n                                <span>Total amount<\/span>\n\t\t\t\t\t\t\t\t<span><span class=\"woocommerce-Price-amount amount\"><bdi>0,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" translate=\"no\" dir=\"auto\">&euro;<\/span><\/bdi><\/span><\/span>\n                            <\/div>\n                        <\/div>\n                        <!-- Hidden Woo standard checkout fields for plugin compatibility -->\n                        <div class=\"wc-standard-fields sasipea-hidden\">\n                            <input type=\"hidden\" id=\"shipping_country\" name=\"shipping_country\" value=\"EE\" \/>\n                            <input type=\"hidden\" id=\"billing_country\" name=\"billing_country\" value=\"EE\" \/>\n                            <input type=\"hidden\" id=\"shipping_postcode\" name=\"shipping_postcode\" value=\"\" \/>\n                            <input type=\"hidden\" id=\"shipping_city\" name=\"shipping_city\" value=\"\" \/>\n                            <input type=\"hidden\" id=\"shipping_address_1\" name=\"shipping_address_1\" value=\"\" \/>\n                            <input type=\"hidden\" id=\"billing_email\" name=\"billing_email\" value=\"\" \/>\n                            <input type=\"hidden\" id=\"billing_phone\" name=\"billing_phone\" value=\"\" \/>\n                        <\/div>\n                        <div class=\"checkout-debug sasipea-hidden\">\n                            <ul><\/ul>\n                        <\/div>\n\n                                                <div class=\"terms-checkbox\">\n                            <label class=\"checkbox-label terms-checkbox-circle\" for=\"terms-input\">\n                                <input type=\"checkbox\" name=\"terms\" id=\"terms-input\" required>\n                                <span class=\"checkmark\"><\/span>\n                            <\/label>\n                            <span class=\"terms-text\">I have read and agree to our  <a href=\"https:\/\/sasipea.ee\/en\/online-store-terms-and-conditions\/\" target=\"_blank\" rel=\"noopener\" class=\"terms-link\">terms and conditions.<\/a><\/span>\n                        <\/div>\n\n                        <button type=\"button\" class=\"checkout-btn\">Pay<\/button>\n                    <\/div>\n                <\/div>\n                <!-- Right Column -->\n                <div class=\"checkout-right\">\n                    <!-- Delivery -->\n                                        <!-- Order Items -->\n                                    <\/div>\n            <\/div>\n        <\/div>\n        <style>\n        .sasipea-checkout-widget {\n            font-family: 'Manrope', sans-serif;\n            background: transparent;\n            padding: 20px;\n            border-radius: 0;\n        }\n        \/* Standard WooCommerce order review used directly for shipping plugins such as Montonio *\/\n        .sasipea-checkout-widget .wc-order-review-shadow {\n            display: block !important;\n            visibility: visible !important;\n            position: static !important;\n            left: auto !important;\n            width: auto !important;\n            height: auto !important;\n            overflow: visible !important;\n        }\n        \/* Modal (custom confirm) *\/\n        .sasipea-modal-overlay {\n            display: none;\n            position: fixed;\n            inset: 0;\n            background: rgba(0,0,0,0.35);\n            z-index: 99999;\n            align-items: center;\n            justify-content: center;\n            padding: 24px;\n        }\n        .sasipea-modal-overlay.is-open { display: flex; }\n        .sasipea-modal {\n            width: min(560px, 100%);\n            background: #fff;\n            border-radius: 14px;\n            box-shadow: 0 18px 60px rgba(0,0,0,0.20);\n            padding: 22px 26px;\n        }\n        .sasipea-modal-title {\n            font-weight: 700;\n            font-size: 16px;\n            color: #111;\n            display: flex;\n            align-items: center;\n            gap: 10px;\n        }\n        .sasipea-modal-title:before {\n            content: \"\";\n            width: 16px;\n            height: 16px;\n            border: 2px solid currentColor;\n            border-radius: 50%;\n            box-sizing: border-box;\n            display: inline-block;\n        }\n        .sasipea-modal-text {\n            margin-top: 14px;\n            font-size: 15px;\n            color: #222;\n        }\n        .sasipea-modal-actions {\n            margin-top: 18px;\n            display: flex;\n            gap: 12px;\n            justify-content: flex-end;\n        }\n        .sasipea-modal-btn {\n            border: none;\n            padding: 12px 20px;\n            border-radius: 23px;\n            font-weight: 600;\n            cursor: pointer;\n        }\n        .sasipea-modal-btn:not(.sasipea-modal-btn-primary) {\n            background: #000;\n            color: #fff;\n        }\n        .sasipea-modal-btn-primary {\n            padding: 12px 20px;\n            background: #E3A742;\n            color: #fff;\n            border-radius: 23px;\n        }\n        @media (max-width: 1024px) {\n            .sasipea-checkout-widget {\n                padding: 0;\n            }\n        }\n        .checkout-container {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 30px;\n            max-width: 1200px;\n            margin: 0 auto;\n        }\n        .checkout-section {\n            background: transparent;\n            padding: 25px;\n            border-radius: 0;\n            margin-bottom: 20px;\n            box-shadow: none;\n        }\n        \/* Delivery section: hide coupon row (kupong + soodustuse summa + Remove). *\/\n        .sasipea-checkout-widget .wc-order-review-shadow tr.cart-discount {\n            display: none !important;\n        }\n        .checkout-section h3 {\n            margin: 0 0 20px 0;\n            font-size: 18px;\n            font-weight: 600;\n            color: #333;\n        }\n        .desktop-order-items .order-items {\n            padding-left: 0;\n        }\n        .form-row {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 15px;\n            margin-bottom: 15px;\n        }\n\n        .form-group:not(.form-row .form-group) {\n            width: 100%;\n            margin-bottom: 15px;\n        }\n        .form-group {\n            display: flex;\n            flex-direction: column;\n        }\n        .form-group label {\n            font-weight: 500;\n            margin-bottom: 8px;\n            color: #333;\n        }\n        .form-group input {\n            padding: 12px;\n            border: 2px solid #E3A742;\n            border-radius: 31px;\n            font-size: 14px;\n            background: transparent;\n            color: #000;\n            transition: border-color 0.3s ease;\n        }\n        .form-group input:focus {\n            outline: none;\n            border-color: #E3A742;\n        }\n        .checkbox-label {\n            display: flex;\n            align-items: center;\n            cursor: pointer;\n            font-size: 14px;\n        }\n        .checkbox-label input[type=\"checkbox\"] {\n            margin-right: 10px;\n            width: 18px;\n            height: 18px;\n        }\n        .payment-methods {\n            display: flex;\n            gap: 12px;\n            align-items: stretch;\n            flex-wrap: nowrap;\n            overflow-x: auto;\n            padding-bottom: 6px;\n        }\n        .payment-method {\n            display: flex;\n            flex-direction: row;\n            align-items: center;\n            padding: 0px 26px;\n            border: 2px solid #000;\n            border-radius: 64px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            min-width: 96px;\n            gap: 10px;\n        }\n        .payment-method.active {\n            border-color: #E3A742;\n            background: transparent;\n        }\n        .payment-method input[type=\"radio\"] {\n            display: none !important;\n        }\n        .payment-method img,\n        .payment-icon {\n            width: 40px;\n            height: 40px;\n            object-fit: contain;\n            margin: 0;\n            flex-shrink: 0;\n        }\n\n        .payment-icon {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .payment-icon img {\n            max-width: 100%;\n            max-height: 100%;\n        }\n        .payment-method span {\n            font-size: 12px;\n            font-weight: 500;\n            margin-left: auto;\n        }\n        \/* Hide native boxes; we'll render selected one in our container *\/\n        .payment_box { display: none !important; }\n        .payment-details { margin-top: 14px; }\n        .payment-details .payment_box { display: block !important; padding: 12px; border: 1px dashed #e0e0e0; border-radius: 8px; }\n        .discount-code {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 20px;\n            align-items: center;\n        }\n        .discount-code input {\n            width: 60%;\n            padding: 12px;\n            border: 2px solid #E3A742;\n            border-radius: 23px;\n        }\n        .apply-btn {\n            padding: 12px 20px;\n            background: #E3A742;\n            color: #fff;\n            border: none;\n            border-radius: 23px;\n            font-weight: 600;\n            cursor: pointer;\n            margin-left: auto;\n        }\n        .text-link-btn {\n            background: none;\n            border: none;\n            padding: 0;\n            color: #95917E;\n            text-decoration: underline;\n            cursor: pointer;\n            font-size: 14px;\n        }\n        .order-totals {\n            margin-bottom: 20px;\n        }\n        .total-line {\n            display: flex;\n            justify-content: space-between;\n            padding: 8px 0;\n            border-bottom: none;\n        }\n        .total-line.total {\n            font-weight: 700;\n            font-size: 18px;\n            border-bottom: none;\n            padding-top: 15px;\n        }\n        .terms-checkbox {\n            margin-bottom: 20px;\n            text-align: left;\n            display: flex;\n            align-items: flex-start;\n            justify-content: center;\n            flex-wrap: nowrap;\n            gap: 10px;\n        }\n\n        .terms-checkbox .terms-checkbox-circle {\n            flex-shrink: 0;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            margin: 0;\n        }\n\n        .terms-checkbox .terms-checkbox-circle .checkmark { margin-right: 0; }\n\n        .terms-checkbox .terms-text {\n            display: inline;\n            flex: 1;\n            min-width: 0;\n        }\n\n        .terms-checkbox .terms-link {\n            font-weight: 700;\n            color: inherit;\n            text-decoration: underline;\n        }\n\n        .terms-checkbox .terms-link:hover {\n            text-decoration: underline;\n        }\n\n        .terms-checkbox input[type=\"checkbox\"] {\n            width: 18px;\n            height: 18px;\n            border: 2px solid #000;\n            border-radius: 50%;\n            margin-right: 0;\n            appearance: none;\n            background: transparent;\n            cursor: pointer;\n        }\n\n        .terms-checkbox input[type=\"checkbox\"]:checked {\n            background: #000;\n        }\n        \/* Debug box *\/\n        .checkout-debug { margin: 12px 0; padding: 12px; border-radius: 8px; font-size: 14px; }\n        .checkout-debug.debug-error { border: 1px solid #dc3545; background: #fff5f6; color: #7a1b24; }\n        .checkout-debug.debug-info { border: 1px solid #0c5460; background: #e2f3f5; color: #0c5460; }\n        .checkout-debug ul { margin: 0; padding-left: 18px; }\n        \/* Address\/Company groups - hidden by default, revealed conditionally *\/\n        .address-fields,\n        .company-fields { display: none; }\n        .address-fields.show,\n        .company-fields.show { display: block; }\n        .company-toggle { margin-top: 8px; }\n        .checkout-btn {\n            width: 33%;\n            padding: 15px;\n            background: #E3A742;\n            color: #000;\n            border: none;\n            border-radius: 23px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: background-color 0.3s ease, color 0.3s ease;\n            text-align: center;\n            margin: 0 auto;\n            display: block;\n        }\n        .checkout-btn:hover {\n            background: #000;\n            color: #fff;\n        }\n        .delivery-options {\n            display: flex;\n            flex-direction: column;\n            gap: 15px;\n        }\n        .delivery-option {\n            display: flex;\n            align-items: center;\n            padding: 18px 0;\n            border: none;\n            border-top: 2px solid #e0e0e0;\n            border-radius: 0;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        .delivery-option:hover {\n            border-color: #E3A742;\n        }\n        .delivery-option { position: relative; }\n        .delivery-option input[type=\"radio\"] {\n            position: absolute;\n            opacity: 0;\n        }\n        .radio-mark {\n            width: 22px;\n            height: 22px;\n            border: 2px solid #E3A742;\n            border-radius: 4px;\n            margin-right: 15px;\n            display: inline-block;\n            flex-shrink: 0;\n        }\n        .delivery-option input[type=\"radio\"]:checked + .radio-mark {\n            background: #E3A742;\n        }\n        .delivery-text {\n            flex: 1;\n            font-weight: 500;\n        }\n        .delivery-price {\n            font-weight: 600;\n            color: #000;\n        }\n        .delivery-extra { padding: 10px 0 18px; margin-left: 37px; }\n        .delivery-extra-label { font-size: 14px; color: #6b6b6b; margin-bottom: 6px; }\n        .delivery-select {\n            width: 100%;\n            padding: 10px 12px;\n            border: 1px solid #e0e0e0;\n            border-radius: 6px;\n            background: #fff;\n        }\n        \/* Hide Woo info notice asking for address inside our shipping list (pakiautomaatide puhul pole vaja) *\/\n        .sasi-shipping-list .woocommerce-info { display: none !important; }\n        \/* Montonio controls pickup-point visibility itself. *\/\n        \/* Pakipunkt stiil kohe k\u00fcljes (v\u00e4ltib stiilita esialgset kuvamist) *\/\n        .sasipea-checkout-widget .montonio-pickup-point-select-wrapper select,\n        .sasipea-checkout-widget .montonio-shipping-pickup-point-dropdown,\n        .sasipea-checkout-widget .wc-order-review-shadow .montonio-pickup-point-select-wrapper select,\n        .sasipea-checkout-widget .wc-order-review-shadow select.montonio-shipping-pickup-point-dropdown {\n            width: 100% !important;\n            min-height: 48px !important;\n            padding: 12px 36px 12px 14px !important;\n            border: 2px solid #E3A742 !important;\n            border-radius: 0 !important;\n            background: #fff !important;\n            font-size: 14px !important;\n            line-height: 1.4 !important;\n            box-sizing: border-box !important;\n        }\n        \/* Montonio native pakiautomaadi valik j\u00e4\u00e4b kasutusse. *\/\n        .sasipea-checkout-widget .montonio-pickup-point-select-wrapper,\n        .sasipea-checkout-widget select.montonio-shipping-pickup-point-dropdown,\n        .sasipea-checkout-widget select.montonio-pickup-point-select {\n            position: relative;\n            z-index: 20;\n            pointer-events: auto !important;\n        }\n        .order-items {\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n        \/* Cart item image styling *\/\n        .sasipea-cart-item-image-wrap {\n            margin-right: 20px;\n            margin-left: 0;\n            flex-shrink: 0;\n            position: relative;\n        }\n        .sasipea-cart-item-image-inner {\n            position: relative;\n        }\n        \/* Desktop image styling *\/\n        .sasipea-cart-item-image-inner img {\n            width: 154px;\n            height: 194px !important;\n            object-fit: cover;\n            border-radius: 6px !important;\n        }\n        .sasipea-checkout-widget .sasipea-remove-item {\n            position: absolute;\n            top: 6px;\n            right: 5px;\n            background: #E3A742;\n            color: #000;\n            border: none;\n            border-radius: 50%;\n            width: 24px;\n            height: 24px;\n            font-size: 16px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 9;\n            line-height: 1;\n            padding: 0;\n        }\n        .sasipea-checkout-widget .sasipea-remove-item:hover {\n            background: #d1962e;\n        }\n        .sasipea-checkout-widget .sasipea-cart-item-title a,\n        .sasipea-checkout-widget .sasipea-cart-item-title a:link,\n        .sasipea-checkout-widget .sasipea-cart-item-title a:visited {\n            color: #000 !important;\n        }\n        \/* Desktop: hide quantity text, show quantity controls *\/\n        .sasipea-cart-item-quantity-mobile {\n            display: none;\n        }\n        \/* Mobile cart item layout *\/\n        @media (max-width: 1024px) {\n            .sasipea-cart-item {\n                display: flex;\n                align-items: flex-start;\n                gap: 15px;\n            }\n            .sasipea-cart-item-image-wrap {\n                margin-right: 15px;\n                margin-left: 0;\n                position: relative;\n            }\n            .sasipea-cart-item-image-inner {\n                width: 83px;\n                height: 83px;\n                margin-left: -6px;\n                position: static;\n            }\n            .sasipea-cart-item-image-inner img {\n                width: 83px;\n                height: 83px !important;\n            }\n            .sasipea-checkout-widget .sasipea-remove-item {\n                position: absolute;\n                top: -8px;\n                right: -8px;\n                background: #E3A742;\n                color: #000;\n                border: none;\n                border-radius: 50%;\n                width: 24px;\n                height: 24px;\n                font-size: 16px;\n                cursor: pointer;\n                display: flex !important;\n                align-items: center;\n                justify-content: center;\n                z-index: 9;\n                line-height: 1;\n                padding: 0;\n            }\n            .sasipea-cart-item-content {\n                flex: 1;\n                display: flex;\n                flex-direction: column;\n                justify-content: space-between;\n            }\n            .sasipea-cart-item-title {\n                margin: 0 0 5px 0;\n                font-size: 14px;\n                font-weight: 600;\n            }\n            .sasipea-checkout-widget .sasipea-cart-item-title a,\n            .sasipea-checkout-widget .sasipea-cart-item-title a:link,\n            .sasipea-checkout-widget .sasipea-cart-item-title a:visited {\n                color: #000 !important;\n            }\n            .sasipea-checkout-widget .sasipea-cart-item-desc,\n            .sasipea-checkout-widget .sasipea-cart-item-meta {\n                display: none;\n            }\n            .sasipea-cart-item-quantity-mobile {\n                display: none;\n            }\n            .sasipea-cart-item-footer {\n                display: flex;\n                align-items: center;\n                justify-content: flex-start;\n                margin-top: 16px;\n                gap: 12px;\n            }\n            .sasipea-cart-item-footer .sasipea-qty-wrapper {\n                display: flex;\n            }\n            .sasipea-cart-item-footer .sasipea-cart-item-price {\n                margin-left: auto;\n            }\n        }\n        .order-item {\n            display: flex;\n            gap: 15px;\n            padding: 15px;\n            border: 1px solid #e0e0e0;\n            border-radius: 8px;\n            position: relative;\n        }\n        .remove-item {\n            position: absolute;\n            top: 10px;\n            right: 10px;\n            background: none;\n            border: none;\n            font-size: 20px;\n            cursor: pointer;\n            color: #999;\n        }\n        .item-image {\n            width: 80px;\n            height: 80px;\n            flex-shrink: 0;\n        }\n        .item-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n            border-radius: 8px;\n        }\n        .item-details {\n            flex: 1;\n        }\n        .item-title {\n            margin: 0 0 5px 0;\n            font-size: 14px;\n            font-weight: 600;\n        }\n        .item-description {\n            margin: 0 0 5px 0;\n            font-size: 12px;\n            color: #666;\n        }\n        .item-brand {\n            margin: 0 0 10px 0;\n            font-size: 12px;\n            color: #999;\n        }\n        .item-quantity {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            margin-bottom: 10px;\n        }\n        .qty-btn {\n            width: 30px;\n            height: 30px;\n            border: 1px solid #e0e0e0;\n            background: #fff;\n            border-radius: 4px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n        .qty-value {\n            font-weight: 600;\n            min-width: 20px;\n            text-align: center;\n        }\n        .item-prices {\n            display: flex;\n            gap: 10px;\n        }\n        .item-price {\n            font-weight: 600;\n            color: #E3A742;\n        }\n        \/* Mobile Order Summary (Collapsible) *\/\n        .mobile-order-summary {\n            display: none;\n            margin-bottom: 20px;\n            background: #f5f5f5;\n            border-radius: 0;\n        }\n        .mobile-order-summary-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: 15px;\n            cursor: pointer;\n            background: #E3A742;\n            border-radius: 0;\n            margin-bottom: 20px;\n            box-shadow: none;\n        }\n        .mobile-order-summary-header h3 {\n            margin: 0;\n            font-size: 18px;\n            font-weight: 600;\n            color: #333;\n        }\n        .mobile-order-summary-toggle {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: transform 0.3s ease;\n            color: #000;\n        }\n        .mobile-order-summary-toggle svg {\n            width: 16px;\n            height: 16px;\n        }\n        .mobile-order-summary.active .mobile-order-summary-toggle {\n            transform: rotate(180deg);\n        }\n        .mobile-order-summary-content {\n            display: none;\n            padding: 20px;\n            background: #fff;\n        }\n        .mobile-order-summary.active .mobile-order-summary-content {\n            display: block;\n        }\n        .mobile-order-summary .order-items {\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n        @media (max-width: 1024px) {\n            .sasipea-checkout-widget .checkout-section {\n                padding: 0;\n            }\n            .sasipea-checkout-widget .montonio-bank-payments-form .montonio-bank-items .montonio-bank-item {\n                width: 30%;\n            }\n            .terms-checkbox input[type=\"checkbox\"] {\n                width: 18px !important;\n            }\n            .mobile-order-summary {\n                display: block;\n            }\n            .checkout-container {\n                grid-template-columns: 1fr;\n                gap: 20px;\n                display: flex;\n                flex-direction: column;\n            }\n            \/* Hide desktop order items section in right column on mobile *\/\n            .checkout-right .desktop-order-items {\n                display: none !important;\n            }\n\n            .form-row {\n                grid-template-columns: 1fr;\n            }\n\n            .payment-methods {\n                flex-wrap: wrap;\n            }\n            \/* Reorder sections for mobile using display order *\/\n            .checkout-left,\n            .checkout-right {\n                display: contents;\n            }\n            \/* Order: 1. Mobile Order Summary (outside container, order: 0)\n                       2. Contact (checkout-left first section, order: 1)\n                       3. Delivery (checkout-right first section, order: 2)\n                       4. Totals (checkout-left totals-section, order: 3)\n                       5. Payment (checkout-left payment-section, order: 4)\n                       6. Terms + Button (checkout-left last section, order: 5) *\/\n\n            .checkout-left > .checkout-section:nth-of-type(1) {\n                order: 1; \/* Contact *\/\n            }\n            .checkout-right > .checkout-section:nth-of-type(1) {\n                order: 2; \/* Delivery *\/\n            }\n            .checkout-left > .totals-section {\n                order: 3; \/* Discount + Totals *\/\n            }\n            .checkout-left > .payment-section {\n                order: 4; \/* Payment *\/\n            }\n            .checkout-left > .checkout-section:last-of-type {\n                order: 5; \/* Terms + Button *\/\n            }\n        }\n\t\t\/* Peida Woo tarnerida, kuva sasipea-hidden tarnerida *\/\n\t\t\/* Tarnerida ja list j\u00e4ta n\u00e4htavale \u2013 \u00e4ra peida woocommerce-shipping-totals *\/\n\t\t\/* Shipping methods styling (shadow \/ other contexts) *\/\n\t\t.woocommerce-shipping-totals th {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.woocommerce-shipping-totals {\n\t\t\twidth: 100%;\n\t\t}\n\t\t.woocommerce-shipping-totals td {\n\t\t\twidth: 100%;\n\t\t}\n\t\t.checkout-right .checkout-section h3 {\n\t\t\tmargin-bottom: 16px;\n\t\t}\n\t\t\/* K\u00f5ik tarneviisid sama laiusega nagu \"Tulen ise j\u00e4rgi\" *\/\n\t\t.sasipea-checkout-widget .woocommerce-shipping-totals td,\n\t\t.sasipea-checkout-widget #shipping_method,\n\t\t.sasipea-checkout-widget .woocommerce-shipping-methods {\n\t\t\twidth: 100% !important;\n\t\t\tmax-width: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t#shipping_method {\n\t\t\tlist-style: none;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\t#shipping_method li {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tpadding: 18px 0;\n\t\t\tborder-top: 2px solid #E3A742;\n\t\t\twidth: 100% !important;\n\t\t\tmin-width: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t#shipping_method li:first-child {\n\t\t\tborder-top: none;\n\t\t}\n\t\t#shipping_method input[type=\"radio\"] {\n\t\t\twidth: 22px;\n\t\t\theight: 22px;\n\t\t\tborder-radius: 0;\n\t\t\tborder: 2px solid #E3A742;\n\t\t\tappearance: none;\n\t\t\tmargin: 0 16px 0 0;\n\t\t\tflex-shrink: 0;\n\t\t\tcursor: pointer;\n\t\t\tposition: relative;\n\t\t}\n\t\t#shipping_method input[type=\"radio\"]:checked {\n\t\t\tbackground: #E3A742;\n\t\t\tborder-color: #E3A742;\n\t\t}\n\t\t#shipping_method input[type=\"radio\"]:checked::after {\n\t\t\tcontent: '\u2713';\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t\t#shipping_method label {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmin-width: 0;\n\t\t\tflex: 1;\n\t\t\tcursor: pointer;\n\t\t\tmargin: 0;\n\t\t}\n\t\t#shipping_method .montonio-shipping-label {\n\t\t\tflex: 1;\n\t\t\tmin-width: 0;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\t\t#shipping_method .montonio-shipping-carrier-logo {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t#shipping_method .woocommerce-Price-amount,\n\t\t#shipping_method .sasipea-shipping-free-right {\n\t\t\tmargin-left: auto;\n\t\t\tflex-shrink: 0;\n\t\t\tfont-weight: 600;\n\t\t}\n\t\t#shipping_method .woocommerce-Price-currencySymbol {\n\t\t\tmargin-left: 2px;\n\t\t}\n\t\t\/* WooCommerce checkout review order table - 100% width *\/\n\t\t.woocommerce-checkout-review-order-table {\n\t\t\twidth: 100% !important;\n\t\t}\n        <\/style>\n        <script>\n        (function($) {\n            const sasipeaShopUrl = 'https:\/\/sasipea.ee\/en\/shop\/';\n            function sasipeaCheckoutLang() {\n                var path = (window.location && window.location.pathname) ? window.location.pathname : '';\n                if (path.indexOf('\/en') === 0 || path.indexOf('\/en\/') !== -1) return 'en';\n                var fromBody = (document.body && document.body.className) ? document.body.className.match(\/\\blang-([a-z]{2})\\b\/) : null;\n                if (fromBody) return fromBody[1];\n                return 'en';\n            }\n            const sasipeaCheckoutI18n = {\"confirm_default\":\"Oled kindel?\",\"confirm_ok\":\"Confirm\",\"confirm_cancel\":\"Cancel\",\"confirm_remove_cart_item\":\"Are you sure you want to remove this product from your cart?\",\"shipping_update_failed\":\"Tarne meetodi uuendamine eba\\u00f5nnestus. Proovi uuesti.\",\"enter_discount_code\":\"Sisesta sooduskood\",\"coupon_applied\":\"Discount added!\",\"coupon_apply_failed\":\"Sooduskoodi rakendamine eba\\u00f5nnestus\",\"discount_removed\":\"Discount removed!\",\"qty_update_error_prefix\":\"Viga koguse uuendamisel: \",\"remove_error_prefix\":\"Viga toote eemaldamisel: \",\"unknown_error\":\"Tundmatu viga\",\"ajax_error_try_again\":\"AJAX viga - proovige uuesti\",\"fill_required_fields\":\"Palun t\\u00e4itke k\\u00f5ik kohustuslikud v\\u00e4ljad: eesnimi, perenimi, telefon, e-post\",\"accept_terms\":\"Palun n\\u00f5ustuge kasutustingimustega\",\"buying_for_company\":\"I'm buying for a company\"};\n            const sasipeaChosenShipping = [];\n            var sasipeaCheckoutTranslations = {\n                et: { buying_for_company: 'Ostan ettev\u00f5ttele', free_shipping: 'Tasuta' },\n                en: { buying_for_company: 'Buying For Company', free_shipping: 'Free' }\n            };\n            function sasipeaAuditLog(runId, hypothesisId, location, message, data) {\n                \/\/ #region agent log\n                fetch('http:\/\/127.0.0.1:7369\/ingest\/e6aecc02-e882-46f8-a308-9b51c5fa39c3',{method:'POST',headers:{'Content-Type':'application\/json','X-Debug-Session-Id':'7139de'},body:JSON.stringify({sessionId:'7139de',runId:runId,hypothesisId:hypothesisId,location:location,message:message,data:data,timestamp:Date.now()})}).catch(()=>{});\n                \/\/ #endregion\n            }\n            var sasipeaAuditState = {\n                updatedShippingEventCount: 0,\n                checkoutTotalsCallCount: 0,\n                orderReviewCallCount: 0,\n                saveFieldsCallCount: 0\n            };\n            function sasipeaApplyCheckoutTranslations() {\n                var lang = typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : 'et';\n                var t = sasipeaCheckoutTranslations[lang];\n                if (t) {\n                    $('.sasipea-checkout-widget [data-sasipea-i18n]').each(function() {\n                        var k = $(this).attr('data-sasipea-i18n');\n                        if (t[k]) $(this).text(t[k]);\n                    });\n                }\n                if (lang === 'en') {\n                    $('.wc-order-review-shadow #shipping_method label').each(function() {\n                        var $l = $(this);\n                        var html = $l.html();\n                        if (html.indexOf('Tasuta') !== -1) { $l.html(html.replace(\/\\bTasuta\\b\/g, 'Free')); }\n                    });\n                }\n            }\n            $(function() {\n                sasipeaApplyCheckoutTranslations();\n                [200, 500, 1000, 2000].forEach(function(ms) {\n                    setTimeout(sasipeaApplyCheckoutTranslations, ms);\n                });\n            });\n            window.addEventListener('load', function() {\n                var nav = (performance.getEntriesByType && performance.getEntriesByType('navigation') || [])[0];\n                sasipeaAuditLog('initial-audit', 'H5', 'inc\/elementor-checkout-widget.php:1490', 'page load metrics', {\n                    domContentLoadedMs: nav ? Math.round(nav.domContentLoadedEventEnd) : null,\n                    loadEventMs: nav ? Math.round(nav.loadEventEnd) : null,\n                    type: nav ? nav.type : 'unknown',\n                    lang: (typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : '')\n                });\n            });\n            function sasipeaConfirm(message){\n                const $overlay = $('#sasipea-confirm-overlay');\n                const $dialog = $overlay.find('.sasipea-modal').first();\n                const $text = $('#sasipea-confirm-text');\n                const prevActive = document.activeElement;\n                $(document).off('keydown.sasipeaConfirm');\n                $overlay.off('click.sasipeaConfirm');\n                $overlay.find('[data-action]').off('click.sasipeaConfirm');\n                $text.text(message || sasipeaCheckoutI18n.confirm_default || 'Oled kindel?');\n                $overlay.addClass('is-open').attr('aria-hidden', 'false');\n                setTimeout(function(){ $dialog.trigger('focus'); }, 0);\n                return new Promise(function(resolve){\n                    function close(result){\n                        $overlay.removeClass('is-open').attr('aria-hidden', 'true');\n                        $(document).off('keydown.sasipeaConfirm');\n                        $overlay.off('click.sasipeaConfirm');\n                        $overlay.find('[data-action]').off('click.sasipeaConfirm');\n                        if (prevActive && prevActive.focus) {\n                            try { prevActive.focus(); } catch(e) {}\n                        }\n                        resolve(result);\n                    }\n                    $overlay.on('click.sasipeaConfirm', '[data-action=\"confirm\"]', function(e){\n                        e.preventDefault();\n                        e.stopPropagation();\n                        close(true);\n                    });\n                    $overlay.on('click.sasipeaConfirm', '[data-action=\"cancel\"]', function(e){\n                        e.preventDefault();\n                        e.stopPropagation();\n                        close(false);\n                    });\n                    $overlay.on('click.sasipeaConfirm', function(e){\n                        if (e.target === this) close(false);\n                    });\n                    $(document).on('keydown.sasipeaConfirm', function(e){\n                        if (e.key === 'Escape') close(false);\n                    });\n                });\n            }\n            \/\/ Mobile order summary toggle\n            $(document).on('click', '.mobile-order-summary-header', function() {\n                $(this).closest('.mobile-order-summary').toggleClass('active');\n            });\n            \/\/ Auto-save fields on change\/blur\n            const saveFields = function(cb){\n                const saveFieldsStartedAt = performance.now();\n                sasipeaAuditState.saveFieldsCallCount += 1;\n                const payload = {\n                    action: 'sasipea_save_checkout_fields',\n                    nonce: '93c4c85f3f',\n                    wpml_lang: sasipeaCheckoutLang(),\n                    first_name: $('#first_name').val() || '',\n                    last_name: $('#last_name').val() || '',\n                    phone: $('#phone').val() || '',\n                    email: $('#email').val() || '',\n                    address_1: $('#address_1').val() || '',\n                    city: $('#city').val() || '',\n                    postcode: $('#postcode').val() || '',\n                    company: $('#company').is(':checked') ? 1 : 0,\n                    company_name: $('#company_name').val() || '',\n                    company_reg: $('#company_reg').val() || ''\n                };\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', payload, function(response){\n                    sasipeaAuditLog('initial-audit', 'H4', 'inc\/elementor-checkout-widget.php:1568', 'saveFields completed', {\n                        callCount: sasipeaAuditState.saveFieldsCallCount,\n                        durationMs: Math.round(performance.now() - saveFieldsStartedAt),\n                        success: !!(response && response.success),\n                        filledFieldCount: Object.keys(payload).filter(function(key){\n                            return ['first_name','last_name','phone','email','address_1','city','postcode','company_name','company_reg'].indexOf(key) !== -1 && !!payload[key];\n                        }).length,\n                        company: payload.company\n                    });\n                    if (response && response.success && response.data && response.data.totals_html){\n                        $('.order-totals').replaceWith(response.data.totals_html);\n                        if (typeof sasipeaApplyCheckoutTranslations === 'function') sasipeaApplyCheckoutTranslations();\n                    }\n                    \/\/ Mirror to hidden Woo fields for plugin compatibility\n                    $('#billing_email').val(payload.email);\n                    $('#billing_phone').val(payload.phone);\n                    $('#shipping_address_1').val(payload.address_1);\n                    $('#shipping_city').val(payload.city);\n                    $('#shipping_postcode').val(payload.postcode);\n                    \/\/ Trigger WooCommerce standard event so shipping\/payment plugins can react\n                    try { $(document.body).trigger('update_checkout'); } catch(e) {}\n                    if (typeof cb === 'function') cb();\n                });\n            };\n            $(document).on('change blur', '#first_name,#last_name,#phone,#email,#address_1,#city,#postcode,#company,#company_name,#company_reg', function(){\n                sasipeaAuditLog('initial-audit', 'H4', 'inc\/elementor-checkout-widget.php:1585', 'saveFields triggered', {\n                    eventType: arguments[0] && arguments[0].type ? arguments[0].type : 'unknown',\n                    fieldId: this.id || '',\n                    hasValue: !!$(this).val()\n                });\n                saveFields();\n            });\n            \/\/ Payment method selection: show the gateway fields for the chosen method.\n            \/\/ IMPORTANT: do NOT destroy previously moved nodes (e.g. via $container.empty()),\n            \/\/ otherwise switching back to a previously selected gateway will stop working.\n            function showPaymentBox(methodId){\n                const $container = $('#sasipea-payment-details');\n                if (!$container.length) return;\n                let $stash = $('#sasipea-payment-box-stash');\n                if (!$stash.length) {\n                    $stash = $('<div id=\"sasipea-payment-box-stash\" style=\"display:none;\"><\/div>');\n                    $stash.insertAfter($container);\n                }\n                \/\/ Move currently shown box back to stash (preserve DOM + event handlers)\n                $container.find('.payment_box').each(function(){\n                    $(this).hide().appendTo($stash);\n                });\n                \/\/ Find requested box anywhere (stash first, then document)\n                let $box = $stash.find('.payment_box.payment_method_' + methodId).first();\n                if (!$box.length) {\n                    $box = $('.payment_box.payment_method_' + methodId).first();\n                }\n                if ($box.length){\n                    $box.appendTo($container).show();\n                }\n            }\n            $(document).on('click', '.payment-method', function() {\n                const methodId = $(this).data('method');\n                $('.payment-method').removeClass('active');\n                $(this).addClass('active');\n                \/\/ check hidden radio\n                $('#payment_method_' + methodId).prop('checked', true).trigger('change');\n                \/\/ Move selected payment box under logos\n                showPaymentBox(methodId);\n                \/\/ Persist chosen payment method to WC session via core event\n                $(document.body).trigger('payment_method_selected');\n            });\n            \/\/ Do NOT hide elements that contain the shipping method list (tarnevalikud)\n            function isPickupOnlyBlock($el) {\n                if (!$el || !$el.length) return false;\n                if ($el.find('#shipping_method, .woocommerce-shipping-methods').length) return false;\n                return true;\n            }\n            \/\/ All pickup-point blocks: only Pakipunkt dropdown area, never the list of shipping options\n            function getAllPickupBlocks($scope) {\n                var $s = $scope && $scope.length ? $scope : $('.wc-order-review-shadow');\n                if (!$s.length) $s = $(document);\n                var $blocks = $();\n                $s.find('.delivery-extra, .sasi-shipping-extra').each(function(){ if (isPickupOnlyBlock($(this))) $blocks = $blocks.add(this); });\n                \/\/ Per-rate: next sibling of each li or child div (only if it doesn't contain the full list)\n                $s.find('#shipping_method li, .woocommerce-shipping-methods li').each(function(){\n                    var $li = $(this);\n                    var $next = $li.next();\n                    if ($next.length && isPickupOnlyBlock($next) && ($next.find('select').length || $next.is('div'))) $blocks = $blocks.add($next);\n                    $li.children('div').each(function(){ if (isPickupOnlyBlock($(this))) $blocks = $blocks.add(this); });\n                });\n                \/\/ Shared block: only divs that contain select but do NOT contain #shipping_method\n                var $shipCell = $s.find('#shipping_method, .woocommerce-shipping-methods').closest('td');\n                if ($shipCell.length) {\n                    $shipCell.find('#shipping_method ~ div, .woocommerce-shipping-methods ~ div').each(function(){ if (isPickupOnlyBlock($(this))) $blocks = $blocks.add(this); });\n                    $shipCell.find('div').filter(function(){\n                        var $d = $(this);\n                        return $d.find('select').length && isPickupOnlyBlock($d) && !$d.find('#shipping_method, .woocommerce-shipping-methods').length;\n                    }).each(function(){ $blocks = $blocks.add(this); });\n                }\n                \/\/ Fallback: div with Pakipunkt label\/select, never one that contains shipping list\n                $s.find('div').filter(function(){\n                    var $d = $(this);\n                    if (!$d.find('select').length || !isPickupOnlyBlock($d)) return false;\n                    if ($d.find('label').filter(function(){ return \/pakipunkt|pickup|parcel\/i.test($(this).text()); }).length) return true;\n                    return \/pakipunkt|pickup|parcel|terminal|montonio\/i.test(($d.find('select').attr('id') || '') + ($d.find('select').attr('name') || ''));\n                }).each(function(){ $blocks = $blocks.add(this); });\n                return $blocks;\n            }\n            function hideAllPickupBlocks($scope) {\n                var $all = getAllPickupBlocks($scope);\n                $all.addClass('sasipea-pickup-hidden').hide().css('display', 'none');\n            }\n            function getRateExtra($rate) {\n                var $extra = $rate.find('.delivery-extra, .sasi-shipping-extra');\n                if (!$extra.length) $extra = $rate.next();\n                if (!$extra.length) $extra = $rate.children('div').first();\n                return $extra;\n            }\n            \/\/ Single shared pickup block (when plugin uses one dropdown for all parcel methods)\n            function getSharedPickupBlock($scope) {\n                var $s = $scope && $scope.length ? $scope : $('.wc-order-review-shadow');\n                if (!$s.length) $s = $(document);\n                var $cell = $s.find('#shipping_method, .woocommerce-shipping-methods').closest('td');\n                if ($cell.length) {\n                    var $after = $cell.find('#shipping_method ~ div, .woocommerce-shipping-methods ~ div').filter(function(){ return isPickupOnlyBlock($(this)) && $(this).find('select').length; });\n                    if ($after.length) return $after.first();\n                    var $divs = $cell.find('div').filter(function(){ var $d = $(this); return $d.find('select').length && isPickupOnlyBlock($d); });\n                    if ($divs.length) return $divs.first();\n                }\n                return $s.find('.delivery-extra, .sasi-shipping-extra').filter(function(){ return isPickupOnlyBlock($(this)); }).first();\n            }\n            function showPickupBlock($extra) {\n                if ($extra.length) {\n                    $extra.removeClass('sasipea-pickup-hidden').show().css({ display: 'block', visibility: 'visible', opacity: 1 });\n                }\n            }\n            \/\/ Montonio: getRateExtra often returns empty wrapper; use block index when blocks match rate order\n            function getPickupBlockForRate($rate, $scope) {\n                var $scope = $scope && $scope.length ? $scope : $('.wc-order-review-shadow');\n                var $ex = getRateExtra($rate);\n                var $sel = $ex.find('select');\n                var hasSelect = $sel.length && ($sel.attr('id') || $sel.attr('name') || $sel.find('option').length > 0);\n                if ($ex.length && hasSelect) return $ex;\n                var $list = $rate.closest('.woocommerce-shipping-methods, #shipping_method');\n                var $rates = $list.length ? $list.find('li, .delivery-option') : $scope.find('.woocommerce-shipping-methods li, #shipping_method li, .delivery-option');\n                var $allBlocks = getAllPickupBlocks($scope);\n                var rateIndex = $rates.index($rate);\n                if ($allBlocks.length && rateIndex >= 0 && rateIndex < $allBlocks.length) {\n                    return $allBlocks.eq(rateIndex);\n                }\n                return getSharedPickupBlock($scope);\n            }\n            \/\/ WooCommerce blockUI helper. Core checkout blocks form.checkout during update_checkout\n            \/\/ (adds .processing class + a semi-transparent\/white overlay via jQuery blockUI). If an\n            \/\/ AJAX request fails, is aborted, or its JSON response gets corrupted by another plugin's\n            \/\/ debug output, WooCommerce's own success handler (which normally calls unblock()) never\n            \/\/ runs, and the overlay is left covering the shipping section forever (\"white box, can't\n            \/\/ select anything\"). This clears it defensively at every point our own code touches the\n            \/\/ checkout lifecycle.\n            function clearCheckoutBlockingOverlay() {\n                var $targets = $('.sasipea-checkout-widget form.checkout.woocommerce-checkout, .wc-order-review-shadow form.checkout.woocommerce-checkout, #order_review, .woocommerce-checkout-review-order');\n                $targets.removeClass('processing').each(function(){\n                    try { $(this).unblock(); } catch(e) {}\n                });\n                \/\/ Fallback for stale jQuery blockUI nodes left inside our checkout only.\n                $('.sasipea-checkout-widget .blockUI.blockOverlay, .sasipea-checkout-widget .blockUI.blockMsg').remove();\n            }\n            \/\/ Delivery option selection.\n            \/\/ Montonio\/WooCommerce own the pickup-point list. We only mark the selected\n            \/\/ shipping method and trigger WooCommerce's normal checkout refresh.\n            \/\/ Scoped to .wc-order-review-shadow, which is now the ONLY order-review copy on the page.\n            $(document).on('change', '.wc-order-review-shadow input[name^=\"shipping_method\"]', function() {\n                const $input = $(this);\n                const methodId = $input.val() || '';\n                const $rate = $input.closest('li').length ? $input.closest('li') : $input.closest('.delivery-option');\n                const label = $rate.find('label').first().text() || $rate.find('.delivery-text').first().text() || '';\n                const $scope = $('.wc-order-review-shadow');\n                $scope.find('.woocommerce-shipping-methods li, #shipping_method li, .delivery-option').removeClass('selected');\n                $rate.addClass('selected');\n                \/\/ Clear previous carrier's selected pickup point, but do not alter or hide\n                \/\/ Montonio's select\/options. Montonio will repopulate it after update_checkout.\n                $scope.find('select.montonio-shipping-pickup-point-dropdown, select.montonio-pickup-point-select').val('');\n                updateContactFieldVisibility(methodId, label || '');\n                \/\/ Core frontend lifecycle: this is what makes Montonio rebuild the pickup list\n                \/\/ for Omniva \/ SmartPost \/ DPD.\n                $(document.body).trigger('shipping_method_selected');\n                $(document.body).trigger('update_checkout');\n            });\n            function providerFromMethodId(methodId){\n                const id = (methodId || '').toLowerCase();\n                if (id.includes('omniva')) return 'omniva';\n                if (id.includes('itella') || id.includes('smartpost')) return 'itella';\n                if (id.includes('dpd') || id.includes('dpd_pt') || id.includes('dpd-parcel') || id.includes('dpd_parcel')) return 'dpd';\n                if (id.includes('venipak')) return 'venipak';\n                return '';\n            }\n            \/\/ Montonio native pickup selector is intentionally left untouched.\n            \/\/ Company checkbox toggles company fields when courier is selected\n            $(document).on('change', '#company', function() {\n                \/\/ Scoped to .wc-order-review-shadow: with the duplicate hidden order-review removed,\n                \/\/ this is now the only place shipping_method radios live, but we keep the scope\n                \/\/ explicit so a future duplicate can't silently break this again.\n                const $checkedShip = $('.wc-order-review-shadow input[name^=\"shipping_method\"]:checked');\n                const selectedMethod = $checkedShip.val() || '';\n                const $opt = $checkedShip.closest('li').length ? $checkedShip.closest('li') : $checkedShip.closest('.delivery-option');\n                const label = $opt.find('.delivery-text, label').first().text() || '';\n                toggleCompanyFields(selectedMethod, label);\n            });\n            \/\/ Helpers to determine method type (label helps when method ID does not contain \"kuller\")\n            function isParcelMachine(methodId, label){\n                if (!methodId) return false;\n                const l = (label || '').toLowerCase();\n                if (\/(kuller|courier)\/i.test(l)) return false;\n                return \/(parcel|pakiaut|terminal|locker|pakiautomaat|omniva|smartpost|itella|dpd|dpd-pt|dpd_pt|dpd-parcel)\/i.test(methodId) && !\/(courier|kuller)\/i.test(methodId);\n            }\n            function isCourier(methodId, label){\n                const l = (label || '').toLowerCase();\n                if (l && \/(kuller|courier)\/i.test(l)) return true;\n                if (!methodId) return false;\n                return \/(courier|kuller|home.?delivery)\/i.test(methodId);\n            }\n            function isLocalPickup(methodId, label){\n                var l = (label || '').toLowerCase();\n                if (\/(ise\\s*j\u00e4rgi|tulen\\s*ise|jargi|j\\xE4rgi)\/i.test(l)) return true;\n                if (!methodId) return false;\n                return \/(local[_-]?pickup|pickup|ise|jargi|j\\xE4rgi)\/i.test(methodId);\n            }\n            \/\/ Address: show only for courier. \"Tulen ise j\u00e4rgi\" and pakiautomaat: no address needed.\n            \/\/ Company toggle stays visible for all shipping methods.\n            function updateContactFieldVisibility(methodId, label){\n                const $address = $('.address-fields');\n                const $companyToggle = $('.company-toggle');\n                $companyToggle.show();\n                if (isCourier(methodId, label)) {\n                    $address.addClass('show');\n                    toggleCompanyFields(methodId, label);\n                } else if (isLocalPickup(methodId, label)) {\n                    $address.removeClass('show');\n                    toggleCompanyFields(methodId, label);\n                } else if (isParcelMachine(methodId, label)) {\n                    $address.removeClass('show');\n                    toggleCompanyFields(methodId, label);\n                } else {\n                    $address.removeClass('show');\n                    toggleCompanyFields(methodId, label);\n                }\n            }\n            function toggleCompanyFields(methodId, label){\n                const $companyFields = $('.company-fields');\n                const companyChecked = $('#company').is(':checked');\n                if (companyChecked){\n                    $companyFields.addClass('show');\n                } else {\n                    $companyFields.removeClass('show');\n                }\n            }\n\t\t\t\t\/\/ Initialize visibility on load based on preselected method (if any)\n            $(function(){\n                \/\/ Scoped to .wc-order-review-shadow \u2013 the only order-review copy on the page.\n                const $checked = $('.wc-order-review-shadow input[name^=\"shipping_method\"]:checked');\n                const preselected = $checked.val() || '';\n                const $preOpt = $checked.closest('li').length ? $checked.closest('li') : $checked.closest('.delivery-option');\n                const preLabel = $preOpt.find('.delivery-text, label').first().text() || '';\n                sasipeaAuditLog('initial-audit', 'H1', 'inc\/elementor-checkout-widget.php:1948', 'checkout init state', {\n                    lang: (typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : ''),\n                    hasPreselectedMethod: !!$checked.length,\n                    preselectedMethod: preselected,\n                    hasPreselectedLabel: !!preLabel,\n                    chosenShippingCount: Array.isArray(sasipeaChosenShipping) ? sasipeaChosenShipping.length : 0\n                });\n                updateContactFieldVisibility(preselected, preLabel);\n                if ($preOpt.length) {\n                    $preOpt.addClass('selected');\n                }\n                \/\/ show selected payment method box on load\n                const selectedGateway = $('input[name=\"payment_method\"]:checked').val();\n                if (selectedGateway){ showPaymentBox(selectedGateway); }\n                \/\/ Also re-show box after any checkout updates from gateways\n                $(document.body).on('updated_checkout payment_method_selected', function(){\n                    const gw = $('input[name=\"payment_method\"]:checked').val();\n                    if (gw){ showPaymentBox(gw); }\n                });\n                \/\/ Let WooCommerce perform the initial checkout refresh. Montonio hooks into\n                \/\/ this lifecycle and renders the correct provider's pickup-point selector.\n                $(document.body).trigger('update_checkout');\n            });\n            $(document.body).on('updated_checkout', function(){\n                sasipeaAuditState.updatedShippingEventCount += 1;\n                sasipeaAuditLog('initial-audit', 'H1', 'inc\/elementor-checkout-widget.php:updated_checkout', 'updated_checkout event fired', {\n                    count: sasipeaAuditState.updatedShippingEventCount,\n                    checkedMethod: $('.wc-order-review-shadow input[name^=\"shipping_method\"]:checked').val() || ''\n                });\n                wrapShippingFreeRight();\n                const $scope = $('.wc-order-review-shadow');\n                const $checked = $scope.find('input[name^=\"shipping_method\"]:checked').first();\n                if ($checked.length) {\n                    const $rate = $checked.closest('li').length ? $checked.closest('li') : $checked.closest('.delivery-option');\n                    const methodId = $checked.val() || '';\n                    const lab = $rate.find('label').first().text() || $rate.find('.delivery-text').first().text() || '';\n                    $scope.find('.woocommerce-shipping-methods li, #shipping_method li, .delivery-option').removeClass('selected');\n                    $rate.addClass('selected');\n                    updateContactFieldVisibility(methodId, lab);\n                }\n                clearCheckoutBlockingOverlay();\n            });\n            \/\/ Paremale joonda \"Tasuta\"\/\"Free\" tarnevaliku labelis (kui server escape'ib HTMLi)\n            function wrapShippingFreeRight() {\n                $('.wc-order-review-shadow #shipping_method label').each(function(){\n                    var $label = $(this);\n                    if ($label.find('.sasipea-shipping-free-right').length) return;\n                    var text = $label.html();\n                    var sep = ': ';\n                    var i = text.lastIndexOf(sep);\n                    if (i === -1) return;\n                    var after = text.slice(i + sep.length).trim();\n                    if (!after || after.indexOf('<') !== -1) return;\n                    var before = text.slice(0, i + sep.length);\n                    $label.html(before + '<span class=\"sasipea-shipping-free-right\">' + after + '<\/span>');\n                });\n            }\n            $(function(){ setTimeout(wrapShippingFreeRight, 200); });\n            \/\/ Esimesel laadimisel \/en\/ (v\u00f5i muu keel): uuenda totals ja tarnevalikud \u00f5ige keelega\n            $(function(){\n                var lang = typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : '';\n                if (lang && lang !== 'et') {\n                    sasipeaAuditLog('initial-audit', 'H2', 'inc\/elementor-checkout-widget.php:2025', 'non-default language refresh scheduled', {\n                        lang: lang\n                    });\n                    setTimeout(function(){ refreshCheckoutTotals('non-default-language'); refreshOrderReview('non-default-language'); }, 300);\n                }\n            });\n            \/\/ Apply coupon\n            $(document).on('click', '#apply_coupon_btn', function(){\n                const code = $('#discount_code').val().trim();\n                if (!code) { showDebug([sasipeaCheckoutI18n.enter_discount_code || 'Sisesta sooduskood']); return; }\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_apply_coupon',\n                    code: code,\n                    nonce: '93c4c85f3f',\n                    wpml_lang: sasipeaCheckoutLang()\n                }, function(response){\n                    if (response.success) {\n                        if (response.data && response.data.totals_html) {\n                            $('.order-totals').replaceWith(response.data.totals_html);\n                            if (typeof sasipeaApplyCheckoutTranslations === 'function') sasipeaApplyCheckoutTranslations();\n                            $('.discount-actions').show();\n                            showDebug([sasipeaCheckoutI18n.coupon_applied || 'Sooduskood rakendatud'], 'info');\n                        }\n                    } else {\n                        showDebug([response.data || (sasipeaCheckoutI18n.coupon_apply_failed || 'Sooduskoodi rakendamine eba\u00f5nnestus')]);\n                    }\n                });\n            });\n            $(document).on('keydown', '#discount_code', function(e){\n                if (e.key === 'Enter') {\n                    e.preventDefault();\n                    $('#apply_coupon_btn').trigger('click');\n                }\n            });\n            \/\/ Remove coupon(s)\n            $(document).on('click', '#remove_coupon_btn', function(){\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_remove_coupon',\n                    nonce: '93c4c85f3f',\n                    wpml_lang: sasipeaCheckoutLang()\n                }, function(response){\n                    if (response.success && response.data.totals_html){\n                        $('.order-totals').replaceWith(response.data.totals_html);\n                        if (typeof sasipeaApplyCheckoutTranslations === 'function') sasipeaApplyCheckoutTranslations();\n                        $('#discount_code').val('');\n                        $('.discount-actions').hide();\n                        showDebug([sasipeaCheckoutI18n.discount_removed || 'Soodustus eemaldatud'], 'info');\n                    }\n                });\n            });\n            function refreshCheckoutTotals(source){\n                var auditSource = source || 'unknown';\n                var refreshStartedAt = performance.now();\n                sasipeaAuditState.checkoutTotalsCallCount += 1;\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_get_checkout_totals',\n                    nonce: '93c4c85f3f',\n                    wpml_lang: sasipeaCheckoutLang()\n                }, function(response){\n                    clearCheckoutBlockingOverlay();\n                    sasipeaAuditLog('initial-audit', 'H3', 'inc\/elementor-checkout-widget.php:2070', 'refreshCheckoutTotals completed', {\n                        callCount: sasipeaAuditState.checkoutTotalsCallCount,\n                        source: auditSource,\n                        durationMs: Math.round(performance.now() - refreshStartedAt),\n                        success: !!(response && response.success),\n                        hasTotalsHtml: !!(response && response.data && response.data.totals_html)\n                    });\n                    if (response.success && response.data.totals_html){\n                        $('.order-totals').replaceWith(response.data.totals_html);\n                        if (typeof sasipeaApplyCheckoutTranslations === 'function') sasipeaApplyCheckoutTranslations();\n                        \/\/ Toggle remove coupon link based on applied coupons\n                                            }\n                });\n            }\n            \/\/ Re-apply pickup point \/ delivery-extra visibility (used only when full HTML replace fallback runs)\n            function reinitShippingPickupInVisible(){\n                const $scope = $('.wc-order-review-shadow');\n                if (!$scope.length) return;\n                hideAllPickupBlocks($scope);\n                const $checked = $scope.find('input[name^=\"shipping_method\"]:checked');\n                if ($checked.length) {\n                    const $rate = $checked.closest('li').length ? $checked.closest('li') : $checked.closest('.delivery-option');\n                    const methodId = $checked.val() || '';\n                    const lab = $rate.find('label').first().text() || $rate.find('.delivery-text').first().text() || '';\n                    $rate.addClass('selected');\n                    if (isParcelMachine(methodId, lab)) {\n                        var $exR = getPickupBlockForRate($rate, $scope);\n                        showPickupBlock($exR);\n                    }\n                    $scope.find('.woocommerce-shipping-methods li, #shipping_method li').removeClass('selected');\n                    $rate.addClass('selected');\n                }\n                $(document.body).trigger('updated_shipping_method');\n            }\n            \/\/ Refresh only shipping prices and totals (keeps Montonio pickup point styling \u2013 no full HTML replace)\n            function refreshOrderReview(source){\n                var auditSource = source || 'unknown';\n                var refreshStartedAt = performance.now();\n                sasipeaAuditState.orderReviewCallCount += 1;\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_get_order_review_updates',\n                    nonce: '93c4c85f3f',\n                    wpml_lang: sasipeaCheckoutLang()\n                }, function(response){\n                    clearCheckoutBlockingOverlay();\n                    sasipeaAuditLog('initial-audit', 'H3', 'inc\/elementor-checkout-widget.php:2115', 'refreshOrderReview completed', {\n                        callCount: sasipeaAuditState.orderReviewCallCount,\n                        source: auditSource,\n                        durationMs: Math.round(performance.now() - refreshStartedAt),\n                        success: !!(response && response.success),\n                        shippingRateCount: response && response.data && response.data.shipping_rates ? response.data.shipping_rates.length : 0,\n                        hasTotalsHtml: !!(response && response.data && response.data.totals_html)\n                    });\n                    if (!response.success || !response.data) return;\n                    const data = response.data;\n                    const $scope = $('.wc-order-review-shadow');\n                    if (data.totals_html) {\n                        $('.order-totals').replaceWith(data.totals_html);\n                        if (typeof sasipeaApplyCheckoutTranslations === 'function') sasipeaApplyCheckoutTranslations();\n                    }\n                    if (data.shipping_rates && data.shipping_rates.length && $scope.length) {\n                        data.shipping_rates.forEach(function(rate){\n                            const id = rate.id;\n                            const costHtml = rate.cost_html || '';\n                            const $input = $scope.find('input[name^=\"shipping_method\"]').filter(function(){ return $(this).val() === id; });\n                            if ($input.length) {\n                                const $li = $input.closest('li');\n                                const $label = $li.find('label').first();\n                                const $price = $li.find('.woocommerce-Price-amount, .sasipea-shipping-free-right').first();\n                                if ($price.length) {\n                                    $price.replaceWith(costHtml);\n                                } else if ($label.length && costHtml) {\n                                    $label.append(' ' + costHtml);\n                                }\n                            }\n                        });\n                    }\n                });\n            }\n            \/\/ Quantity controls (same as sidebar cart) \u2013 use attr('data-cart-key') so key matches in update\n            $(document).on('click', '.sasipea-qty-plus', function(e) {\n                e.preventDefault();\n                const $wrapper = $(this).closest('.sasipea-qty-wrapper');\n                const $input = $wrapper.find('.sasipea-qty-input');\n                const cartKey = $input.attr('data-cart-key');\n                if (!cartKey) return;\n                let value = parseInt($input.val(), 10) || 1;\n                let max = parseInt($input.attr('max'), 10) || 999;\n                if (max <= 0) max = 999;\n\n                if (value < max) {\n                    updateCartItem(cartKey, value + 1);\n                }\n            });\n            $(document).on('click', '.sasipea-qty-minus', function(e) {\n                e.preventDefault();\n                const $wrapper = $(this).closest('.sasipea-qty-wrapper');\n                const $input = $wrapper.find('.sasipea-qty-input');\n                const cartKey = $input.attr('data-cart-key');\n                if (!cartKey) return;\n                let value = parseInt($input.val(), 10) || 1;\n\n                if (value > 1) {\n                    updateCartItem(cartKey, value - 1);\n                }\n            });\n            \/\/ Remove item (same as sidebar cart)\n            $(document).on('click', '.sasipea-remove-item', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                e.stopImmediatePropagation();\n                const cartKey = $(this).attr('data-cart-key');\n                sasipeaConfirm(sasipeaCheckoutI18n.confirm_remove_cart_item || 'Oled kindel, et soovid selle toote ostukorvist eemaldada?').then(function(ok){\n                    if (ok === true) removeCartItem(cartKey);\n                });\n            });\n            \/\/ Update cart item quantity\n            function updateCartItem(key, quantity) {\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_update_cart_item',\n                    cart_item_key: key,\n                    quantity: quantity,\n                    nonce: '29235e5dc4',\n                    wpml_lang: typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : ''\n                }, function(response) {\n                    if (response.success) {\n                        var html = response.data.checkout_order_items_html;\n                        var itemPrice = response.data.item_price;\n                        var quantitySet = response.data.quantity_set;\n                        \/\/ Replace both mobile and desktop order item blocks so kogus\/hind uuenevad m\u00f5lemas vaates\n                        if (html !== undefined && html !== null && String(html).trim() !== '') {\n                            $('.sasipea-checkout-widget .mobile-order-summary-content .order-items').html(html);\n                            $('.sasipea-checkout-widget .desktop-order-items .order-items').html(html);\n                        } else if (itemPrice !== undefined && quantitySet !== undefined && key) {\n                            \/\/ Fallback: update only this item's quantity and price (fixes mobile when full HTML missing)\n                            var keyStr = String(key);\n                            $('.sasipea-checkout-widget .sasipea-cart-item').filter(function() {\n                                return $(this).find('.sasipea-qty-input').attr('data-cart-key') === keyStr;\n                            }).each(function() {\n                                $(this).find('.sasipea-qty-input').val(quantitySet);\n                                $(this).find('.sasipea-cart-item-quantity-mobile').text(quantitySet + ' tk');\n                                $(this).find('.sasipea-cart-item-price span').html(itemPrice);\n                            });\n                        }\n\n                        \/\/ Update order summary totals\n                        if (response.data.totals) {\n                            $('.order-totals').html(response.data.totals);\n                        }\n\n                        \/\/ Update cart icon count\n                        if (response.data.cart_count !== undefined) {\n                            $('.sasipea-cart-count').text(response.data.cart_count);\n                            $('.sasipea-cart-badge').text(response.data.cart_count);\n                        }\n\n                        \/\/ Sync sidebar \/ cart popup if on same page\n                        if (response.data.cart_items) {\n                            $('.sasipea-cart-items').html(response.data.cart_items);\n                        }\n                        if (response.data.cart_total) {\n                            $('.sasipea-cart-total-section').html(response.data.cart_total);\n                        }\n\n                        \/\/ Refresh shipping (tarne) so free delivery over 70\u20ac updates\n                        refreshOrderReview();\n                    } else {\n                        alert((sasipeaCheckoutI18n.qty_update_error_prefix || 'Viga koguse uuendamisel: ') + (response.data || (sasipeaCheckoutI18n.unknown_error || 'Tundmatu viga')));\n                    }\n                }).fail(function() {\n                    alert(sasipeaCheckoutI18n.ajax_error_try_again || 'AJAX viga - proovige uuesti');\n                });\n            }\n            \/\/ Remove cart item\n            function removeCartItem(key) {\n                $.post('https:\/\/sasipea.ee\/wp-admin\/admin-ajax.php', {\n                    action: 'sasipea_remove_cart_item',\n                    cart_item_key: key,\n                    nonce: '29235e5dc4',\n                    wpml_lang: typeof sasipeaCheckoutLang !== 'undefined' ? sasipeaCheckoutLang() : ''\n                }, function(response) {\n                    if (response.success) {\n                        var orderHtml = response.data.checkout_order_items_html;\n                        if (orderHtml !== undefined && orderHtml !== null && String(orderHtml).trim() !== '') {\n                            $('.sasipea-checkout-widget .mobile-order-summary-content .order-items').html(orderHtml);\n                            $('.sasipea-checkout-widget .desktop-order-items .order-items').html(orderHtml);\n                        } else {\n                            var keyStr = String(key);\n                            $('.sasipea-checkout-widget .sasipea-cart-item').filter(function() {\n                                return $(this).find('.sasipea-qty-input').attr('data-cart-key') === keyStr;\n                            }).remove();\n                        }\n\n                        if (response.data.totals) {\n                            $('.order-totals').html(response.data.totals);\n                        } else {\n                            refreshCheckoutTotals();\n                        }\n\n                        if (response.data.cart_count !== undefined) {\n                            $('.sasipea-cart-count').text(response.data.cart_count);\n                            $('.sasipea-cart-badge').text(response.data.cart_count);\n                        }\n\n                        if (response.data.cart_items) {\n                            $('.sasipea-cart-items').html(response.data.cart_items);\n                        }\n                        if (response.data.cart_total) {\n                            $('.sasipea-cart-total-section').html(response.data.cart_total);\n                        }\n\n                        \/\/ Redirect to shop only when last item removed (cart truly empty)\n                        const cartCount = (response.data.cart_count !== undefined) ? parseInt(response.data.cart_count, 10) : -1;\n                        if (cartCount === 0) {\n                            window.location.href = sasipeaShopUrl || 'https:\/\/sasipea.ee\/en\/pood';\n                            return;\n                        }\n                        refreshOrderReview();\n                    } else {\n                        alert((sasipeaCheckoutI18n.remove_error_prefix || 'Viga toote eemaldamisel: ') + (response.data || (sasipeaCheckoutI18n.unknown_error || 'Tundmatu viga')));\n                    }\n                }).fail(function() {\n                    alert(sasipeaCheckoutI18n.ajax_error_try_again || 'AJAX viga - proovige uuesti');\n                });\n            }\n            \/\/ Checkout button\n\t\t\t\t$(document).on('click', '.checkout-btn', function(e) {\n                e.preventDefault();\n                e.stopImmediatePropagation();\n                const $btn = $(this);\n                if ($btn.data('submitting')) { return; }\n                \/\/ Validate form\n                const firstName = $('#first_name').val();\n                const lastName = $('#last_name').val();\n                const phone = $('#phone').val();\n                const email = $('#email').val();\n                const terms = $('input[name=\"terms\"]').is(':checked');\n                if (!firstName || !lastName || !phone || !email) {\n                    showDebug([sasipeaCheckoutI18n.fill_required_fields || 'Palun t\u00e4itke k\u00f5ik kohustuslikud v\u00e4ljad: eesnimi, perenimi, telefon, e-post']);\n                    return;\n                }\n                if (!terms) {\n                    showDebug([sasipeaCheckoutI18n.accept_terms || 'Palun n\u00f5ustuge kasutustingimustega']);\n                    return;\n                }\n                \/\/ Save fields to session then redirect\/submit checkout with fallback\n                $btn.data('submitting', true).prop('disabled', true);\n                const redirectUrl = 'https:\/\/sasipea.ee\/en\/checkout-2\/';\n                let redirected = false;\n                \/\/ Only one order-review copy exists now (.wc-order-review-shadow), so no fallback selector needed.\n                const $checkoutForm = $('.wc-order-review-shadow form.checkout').first();\n                const isOnCheckout = $checkoutForm.length > 0 || $('body').hasClass('woocommerce-checkout');\n                \/\/ Ensure Woo's checkout form has required fields before submitting\n                function ensureCheckoutField(name, value){\n                    if (!$checkoutForm.length) return;\n                    let $f = $checkoutForm.find('[name=\"'+name+'\"]');\n                    if (!$f.length) {\n                        $f = $('<input type=\"hidden\" \/>').attr('name', name).appendTo($checkoutForm);\n                    }\n                    $f.val(value);\n                }\n                const go = function(){\n                    if (redirected) return;\n                    redirected = true;\n                    if (isOnCheckout) {\n                        \/\/ Mirror our custom inputs into Woo standard checkout fields\n                        ensureCheckoutField('billing_first_name', $('#first_name').val() || '');\n                        ensureCheckoutField('billing_last_name',  $('#last_name').val()  || '');\n                        ensureCheckoutField('billing_phone',      $('#phone').val()      || '');\n                        ensureCheckoutField('billing_email',      $('#email').val()      || '');\n\n                        \/\/ Check if parcel machine or local pickup - if so, don't require address fields\n                        const $ship = $('.wc-order-review-shadow input[name^=\"shipping_method\"]:checked');\n                        const selectedMethodId = $ship.length ? $ship.val() : '';\n                        const $preOpt = $ship.closest('li').length ? $ship.closest('li') : $ship.closest('.delivery-option');\n                        const preLabel = $preOpt.find('.delivery-text, label').first().text() || '';\n                        const isParcelMachineSelected = isParcelMachine(selectedMethodId);\n                        const isLocalPickupSelected = isLocalPickup(selectedMethodId, preLabel);\n\n                        \/\/ Address as billing - only set if courier is selected (not parcel machine or \"tulen ise j\u00e4rgi\")\n                        if (!isParcelMachineSelected && !isLocalPickupSelected) {\n                            ensureCheckoutField('billing_address_1',  $('#address_1').val()  || '');\n                            ensureCheckoutField('billing_city',       $('#city').val()       || '');\n                            ensureCheckoutField('billing_postcode',   $('#postcode').val()   || '');\n                        } else {\n                            \/\/ For parcel machine or \"tulen ise j\u00e4rgi\", set empty values to avoid validation errors\n                            ensureCheckoutField('billing_address_1',  '');\n                            ensureCheckoutField('billing_city',       '');\n                            ensureCheckoutField('billing_postcode',   '');\n                        }\n\n                        \/\/ Payment method\n                        const gw = $('input[name=\"payment_method\"]:checked').val();\n                        if (gw) ensureCheckoutField('payment_method', gw);\n                        \/\/ Terms\n                        if ($('input[name=\"terms\"]').is(':checked')) {\n                            ensureCheckoutField('terms', 'on');\n                        }\n                        \/\/ Countries (fallback to EE)\n                        ensureCheckoutField('billing_country', 'EE');\n                        ensureCheckoutField('shipping_country', 'EE');\n                        \/\/ Selected shipping method (mirror into form)\n                        if ($ship.length){\n                            const idx = ($ship.attr('name').match(\/\\[(\\d+)\\]\/) || [,'0'])[1];\n                            ensureCheckoutField('shipping_method['+idx+']', $ship.val());\n                        }\n                        \/\/ WooCommerce processing nonce\n                        ensureCheckoutField('woocommerce-process-checkout-nonce', '0938e9d33c');\n                        if ($checkoutForm.length && !$checkoutForm.hasClass('processing')) {\n                            try { $checkoutForm.trigger('submit'); } catch(e) {}\n                        }\n                    } else {\n                        window.location.href = redirectUrl;\n                    }\n                };\n                \/\/ Fallback redirect after 1500ms even if AJAX fails\n\t\t\t\t\tconst fallbackTimer = setTimeout(function(){\n\t\t\t\t\t\tgo();\n\t\t\t\t\t}, 1500);\n\t\t\t\t\tsaveFields(function(){\n                    clearTimeout(fallbackTimer);\n                    go();\n                });\n            });\n\t\t\t\t\/\/ Clear any stale WooCommerce checkout overlay after AJAX completion\/error, no matter\n\t\t\t\t\/\/ which code path triggered the request (this is what catches the case where a\n\t\t\t\t\/\/ third-party plugin's corrupted JSON response stops WooCommerce's own success\n\t\t\t\t\/\/ handler, and therefore its own unblock(), from ever running).\n\t\t\t\t$(document).ajaxComplete(function(){\n\t\t\t\t\tsetTimeout(clearCheckoutBlockingOverlay, 0);\n\t\t\t\t});\n\t\t\t\t\/\/ Global AJAX error: skip status 0 (aborted\/cancelled requests, common on checkout)\n\t\t\t\t$(document).ajaxError(function(event, jqxhr){\n\t\t\t\t\tclearCheckoutBlockingOverlay();\n\t\t\t\t\tif (jqxhr && jqxhr.status === 0) return;\n\t\t\t\t});\n            \/\/ Debug helper\n            function showDebug(messages, type){\n                const $box = $('.checkout-debug');\n                const $ul = $box.find('ul');\n                $ul.empty();\n                (messages || []).forEach(function(msg){\n                    $ul.append('<li>' + (msg || '') + '<\/li>');\n                });\n                $box.removeClass('debug-info debug-error');\n                $box.addClass(type === 'info' ? 'debug-info' : 'debug-error');\n                $box.show();\n            }\n        })(jQuery);\n        <\/script>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong! Oled kindel? Sobib Loobu Tellimuse kokkuv\u00f5te \u00d7 NORMALISANTE Shampoo Hydrotoxa \u0161ampoon liigniiskele peanahale 5 tk &#8211; + 95,00&nbsp;&euro;&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2762","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Checkout - Sasipea Salong<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sasipea.ee\/en\/checkout\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Checkout - Sasipea Salong\" \/>\n<meta property=\"og:description\" content=\"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong! Oled kindel? Sobib Loobu Tellimuse kokkuv\u00f5te \u00d7 NORMALISANTE Shampoo Hydrotoxa \u0161ampoon liigniiskele peanahale 5 tk &#8211; + 95,00&nbsp;&euro;...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sasipea.ee\/en\/checkout\/\" \/>\n<meta property=\"og:site_name\" content=\"Sasipea Salong\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SasipeaSalongTartus\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-09T07:47:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sasipea.ee\/wp-content\/uploads\/woocommerce-placeholder-150x150.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/\",\"url\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/\",\"name\":\"Checkout - Sasipea Salong\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sasipea.ee\\\/wp-content\\\/uploads\\\/woocommerce-placeholder-150x150.webp\",\"datePublished\":\"2025-08-25T12:36:53+00:00\",\"dateModified\":\"2026-01-09T07:47:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sasipea.ee\\\/wp-content\\\/uploads\\\/woocommerce-placeholder-150x150.webp\",\"contentUrl\":\"https:\\\/\\\/sasipea.ee\\\/wp-content\\\/uploads\\\/woocommerce-placeholder-150x150.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/checkout\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Shop\",\"item\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/shop\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Checkout\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/\",\"name\":\"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!\",\"description\":\"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!\",\"publisher\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#organization\",\"name\":\"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!\",\"url\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sasipea.ee\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/sasipea-logo.svg\",\"contentUrl\":\"https:\\\/\\\/sasipea.ee\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/sasipea-logo.svg\",\"caption\":\"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!\"},\"image\":{\"@id\":\"https:\\\/\\\/sasipea.ee\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SasipeaSalongTartus\",\"https:\\\/\\\/www.instagram.com\\\/sasipeasalong\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Checkout - Sasipea Salong","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sasipea.ee\/en\/checkout\/","og_locale":"en_US","og_type":"article","og_title":"Checkout - Sasipea Salong","og_description":"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong! Oled kindel? Sobib Loobu Tellimuse kokkuv\u00f5te \u00d7 NORMALISANTE Shampoo Hydrotoxa \u0161ampoon liigniiskele peanahale 5 tk &#8211; + 95,00&nbsp;&euro;...","og_url":"https:\/\/sasipea.ee\/en\/checkout\/","og_site_name":"Sasipea Salong","article_publisher":"https:\/\/www.facebook.com\/SasipeaSalongTartus","article_modified_time":"2026-01-09T07:47:54+00:00","og_image":[{"url":"https:\/\/sasipea.ee\/wp-content\/uploads\/woocommerce-placeholder-150x150.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sasipea.ee\/en\/checkout\/","url":"https:\/\/sasipea.ee\/en\/checkout\/","name":"Checkout - Sasipea Salong","isPartOf":{"@id":"https:\/\/sasipea.ee\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sasipea.ee\/en\/checkout\/#primaryimage"},"image":{"@id":"https:\/\/sasipea.ee\/en\/checkout\/#primaryimage"},"thumbnailUrl":"https:\/\/sasipea.ee\/wp-content\/uploads\/woocommerce-placeholder-150x150.webp","datePublished":"2025-08-25T12:36:53+00:00","dateModified":"2026-01-09T07:47:54+00:00","breadcrumb":{"@id":"https:\/\/sasipea.ee\/en\/checkout\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sasipea.ee\/en\/checkout\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sasipea.ee\/en\/checkout\/#primaryimage","url":"https:\/\/sasipea.ee\/wp-content\/uploads\/woocommerce-placeholder-150x150.webp","contentUrl":"https:\/\/sasipea.ee\/wp-content\/uploads\/woocommerce-placeholder-150x150.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/sasipea.ee\/en\/checkout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Shop","item":"https:\/\/sasipea.ee\/en\/shop\/"},{"@type":"ListItem","position":2,"name":"Checkout"}]},{"@type":"WebSite","@id":"https:\/\/sasipea.ee\/en\/#website","url":"https:\/\/sasipea.ee\/en\/","name":"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!","description":"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!","publisher":{"@id":"https:\/\/sasipea.ee\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sasipea.ee\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sasipea.ee\/en\/#organization","name":"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!","url":"https:\/\/sasipea.ee\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sasipea.ee\/en\/#\/schema\/logo\/image\/","url":"https:\/\/sasipea.ee\/wp-content\/uploads\/2025\/08\/sasipea-logo.svg","contentUrl":"https:\/\/sasipea.ee\/wp-content\/uploads\/2025\/08\/sasipea-logo.svg","caption":"Tartu kesklinnas paiknev stiilne ja hubane juuksurisalong!"},"image":{"@id":"https:\/\/sasipea.ee\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SasipeaSalongTartus","https:\/\/www.instagram.com\/sasipeasalong\/"]}]}},"_links":{"self":[{"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/pages\/2762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/comments?post=2762"}],"version-history":[{"count":0,"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/pages\/2762\/revisions"}],"wp:attachment":[{"href":"https:\/\/sasipea.ee\/en\/wp-json\/wp\/v2\/media?parent=2762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}