{"id":6283,"date":"2024-10-15T18:30:06","date_gmt":"2024-10-15T18:30:06","guid":{"rendered":"https:\/\/www.enterprint.com.ua\/?page_id=6283"},"modified":"2025-09-30T19:51:49","modified_gmt":"2025-09-30T19:51:49","slug":"6283-2","status":"publish","type":"page","link":"https:\/\/www.enterprint.com.ua\/uk\/6283-2\/","title":{"rendered":"\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u043d\u0430\u043a\u043b\u0435\u0435\u043a"},"content":{"rendered":"<\/p>\n\n\n<!DOCTYPE html>\n<html lang=\"uk\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0412\u0430\u0440\u0442\u0456\u0441\u0442\u0456 \u0414\u0440\u0443\u043a\u0443 \u041d\u0430\u043b\u0456\u043f\u043e\u043a<\/title>\n    <!-- \u041f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f Tailwind CSS \u0434\u043b\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0434\u0438\u0437\u0430\u0439\u043d\u0443 -->\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <style>\n        \/* \u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456 \u0441\u0442\u0438\u043b\u0456 \u0434\u043b\u044f \u0448\u0440\u0438\u0444\u0442\u0443 \u0442\u0430 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 *\/\n        :root {\n            --primary-color: #004d99;\n        }\n        body {\n            font-family: 'Inter', sans-serif;\n        }\n        .container-wrapper {\n            background-color: #f4f7f9;\n            padding: 20px;\n            border-radius: 1rem;\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\n            max-width: 900px;\n            margin: 20px auto;\n        }\n        .input-group label {\n            font-weight: 600;\n            color: #333;\n        }\n        .result-box {\n            border: 2px solid var(--primary-color);\n            border-radius: 0.75rem;\n            background-color: #e6f0ff;\n            padding: 1.5rem;\n        }\n        \/* \u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0456\u044f \u0440\u0430\u0434\u0456\u043e\u043a\u043d\u043e\u043f\u043e\u043a *\/\n        .form-radio {\n            appearance: none;\n            -webkit-appearance: none;\n            -moz-appearance: none;\n            width: 1rem;\n            height: 1rem;\n            border: 2px solid #9ca3af;\n            border-radius: 50%;\n            transition: all 0.15s ease-in-out;\n            cursor: pointer;\n            position: relative;\n        }\n        .form-radio:checked {\n            border-color: var(--primary-color);\n        }\n        .form-radio:checked::after {\n            content: '';\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            width: 0.5rem;\n            height: 0.5rem;\n            border-radius: 50%;\n            background-color: var(--primary-color);\n        }\n        \/* \u0421\u0442\u0438\u043b\u044c \u0434\u043b\u044f \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u043f\u0440\u043e \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f *\/\n        #copy-message {\n            transition: opacity 0.3s ease-in-out;\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div id=\"sticker-calculator-app\" class=\"container-wrapper\">\n        <h1 class=\"text-3xl font-bold mb-6 text-center text-gray-800\">\n            \u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0412\u0430\u0440\u0442\u0456\u0441\u0442\u0456 \u0414\u0440\u0443\u043a\u0443 \u041d\u0430\u043b\u0456\u043f\u043e\u043a\n        <\/h1>\n        <div class=\"grid md:grid-cols-2 gap-8\">\n            <!-- \u0421\u0435\u043a\u0446\u0456\u044f \u0412\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0456\u0432 -->\n            <div class=\"space-y-6\">\n                \n                <!-- 0. \u0420\u0435\u0436\u0438\u043c \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u0443 (Mode Selector) -->\n                <div class=\"input-group bg-white p-3 rounded-lg border border-blue-100 shadow-sm\">\n                    <label class=\"block mb-2 text-sm\">\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u0443<\/label>\n                    <div class=\"flex space-x-6\" id=\"mode-selector\">\n                        <label class=\"flex items-center\">\n                            <input type=\"radio\" name=\"mode\" value=\"individual\" checked class=\"form-radio text-blue-600\">\n                            <span class=\"ml-2 text-sm font-medium\">\u0406\u043d\u0434\u0438\u0432\u0456\u0434\u0443\u0430\u043b\u044c\u043d\u0456 \u043d\u0430\u043b\u0456\u043f\u043a\u0438<\/span>\n                        <\/label>\n                        <label class=\"flex items-center\">\n                            <input type=\"radio\" name=\"mode\" value=\"pack\" class=\"form-radio text-blue-600\">\n                            <span class=\"ml-2 text-sm font-medium\">\u0421\u0442\u0456\u043a\u0435\u0440-\u043f\u0430\u043a \/ \u0421\u0442\u0456\u043a\u0435\u0440-\u0431\u0443\u043a<\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n\n                <!-- \u0411\u041b\u041e\u041a 1: \u0406\u041d\u0414\u0418\u0412\u0406\u0414\u0423\u0410\u041b\u042c\u041d\u0406 \u041d\u0410\u041b\u0406\u041f\u041a\u0418 -->\n                <div id=\"individual-mode-inputs\" class=\"space-y-6\">\n                    <!-- 1. \u0422\u0438\u0440\u0430\u0436 -->\n                    <div class=\"input-group\">\n                        <label for=\"quantity\" class=\"block mb-2 text-sm\">\u0422\u0438\u0440\u0430\u0436 (\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c, \u0448\u0442.)<\/label>\n                        <input type=\"number\" id=\"quantity\" value=\"1000\" min=\"1\"\n                               class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <p class=\"text-xs text-gray-500 mt-1\">\u0427\u0438\u043c \u0431\u0456\u043b\u044c\u0448\u0438\u0439 \u0442\u0438\u0440\u0430\u0436, \u0442\u0438\u043c \u043d\u0438\u0436\u0447\u0430 \u0446\u0456\u043d\u0430 \u0437\u0430 \u0448\u0442\u0443\u043a\u0443.<\/p>\n                    <\/div>\n\n                    <!-- 2. \u0420\u043e\u0437\u043c\u0456\u0440 (\u0428\u0438\u0440\u0438\u043d\u0430 \u0442\u0430 \u0412\u0438\u0441\u043e\u0442\u0430) -->\n                    <div>\n                        <label class=\"block mb-2 text-sm\">\u0420\u043e\u0437\u043c\u0456\u0440 \u043d\u0430\u043b\u0456\u043f\u043a\u0438 (\u043c\u043c)<\/label>\n                        <div class=\"flex space-x-4\">\n                            <input type=\"number\" id=\"width\" value=\"50\" min=\"1\" placeholder=\"\u0428\u0438\u0440\u0438\u043d\u0430 (\u043c\u043c)\"\n                                   class=\"w-1\/2 p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                            <input type=\"number\" id=\"height\" value=\"50\" min=\"1\" placeholder=\"\u0412\u0438\u0441\u043e\u0442\u0430 (\u043c\u043c)\"\n                                   class=\"w-1\/2 p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u0411\u041b\u041e\u041a 2: \u0421\u0422\u0406\u041a\u0415\u0420-\u041f\u0410\u041a -->\n                <div id=\"pack-mode-inputs\" class=\"space-y-6 hidden\">\n                    <!-- 1. \u0424\u043e\u0440\u043c\u0430\u0442 \u0410\u0440\u043a\u0443\u0448\u0430 \u0443 \u041f\u0430\u043a\u0443 -->\n                    <div class=\"input-group\">\n                        <label for=\"pack_format\" class=\"block mb-2 text-sm\">\u0424\u043e\u0440\u043c\u0430\u0442 \u0430\u0440\u043a\u0443\u0448\u0430 \u0443 \u043f\u0430\u043a\u0443\/\u0431\u0443\u043a\u0443<\/label>\n                        <select id=\"pack_format\"\n                                class=\"w-full p-3 border border-gray-300 rounded-lg bg-white focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                            <option value=\"A5\">A5 (148&#215;210 \u043c\u043c)<\/option>\n                            <option value=\"A6\">A6 (105&#215;148 \u043c\u043c)<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <!-- 2. \u0410\u0440\u043a\u0443\u0448\u0456\u0432 \u0432 1 \u0421\u0442\u0456\u043a\u0435\u0440-\u041f\u0430\u043a\u0443\/\u0411\u0443\u043a\u0443 (\u041a\u0420\u0410\u0422\u041d\u041e 4) -->\n                    <div class=\"input-group\">\n                        <label for=\"sheets_per_item\" class=\"block mb-2 text-sm\">\u0410\u0440\u043a\u0443\u0448\u0456\u0432 \u0432 1 \u0421\u0442\u0456\u043a\u0435\u0440-\u041f\u0430\u043a\u0443\/\u0411\u0443\u043a\u0443, \u0448\u0442. (\u041a\u0440\u0430\u0442\u043d\u043e 4)<\/label>\n                        <input type=\"number\" id=\"sheets_per_item\" value=\"4\" min=\"4\" step=\"4\"\n                               class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <p class=\"text-xs text-gray-500 mt-1\">\u041c\u0456\u043d\u0456\u043c\u0430\u043b\u044c\u043d\u0430 \u043a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u2014 4 \u0430\u0440\u043a\u0443\u0448\u0456.<\/p>\n                    <\/div>\n                    \n                    <!-- 3. \u0422\u0438\u0440\u0430\u0436 \u0433\u043e\u0442\u043e\u0432\u0438\u0445 \u041f\u0430\u043a\u0456\u0432\/\u0411\u0443\u043a\u0456\u0432 -->\n                    <div class=\"input-group\">\n                        <label for=\"item_quantity\" class=\"block mb-2 text-sm\">\u0422\u0438\u0440\u0430\u0436 \u0433\u043e\u0442\u043e\u0432\u0438\u0445 \u041f\u0430\u043a\u0456\u0432\/\u0411\u0443\u043a\u0456\u0432, \u0448\u0442.<\/label>\n                        <input type=\"number\" id=\"item_quantity\" value=\"10\" min=\"1\" step=\"1\"\n                               class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <p class=\"text-xs text-gray-500 mt-1\">\u041d\u0430\u043f\u0440\u0438\u043a\u043b\u0430\u0434, 10 \u0441\u0442\u0456\u043a\u0435\u0440-\u0431\u0443\u043a\u0456\u0432 \u043f\u043e 4 \u0430\u0440\u043a\u0443\u0448\u0456 \u04105.<\/p>\n                    <\/div>\n                <\/div>\n\n\n                <!-- \u0417\u0410\u0413\u0410\u041b\u042c\u041d\u0406 \u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420\u0418 -->\n\n                <!-- 3. \u041c\u0430\u0442\u0435\u0440\u0456\u0430\u043b -->\n                <div class=\"input-group\">\n                    <label for=\"material\" class=\"block mb-2 text-sm\">\u041c\u0430\u0442\u0435\u0440\u0456\u0430\u043b<\/label>\n                    <select id=\"material\"\n                            class=\"w-full p-3 border border-gray-300 rounded-lg bg-white focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <option value=\"paper\">\u041f\u0430\u043f\u0456\u0440 \u0441\u0430\u043c\u043e\u043a\u043b\u0435\u044e\u0447\u0438\u0439 (\u041d\u0430\u043f\u0456\u0432\u0433\u043b\u044f\u043d\u0435\u0446\u044c)<\/option>\n                        <option value=\"vinyl_white\">\u041f\u043b\u0456\u0432\u043a\u0430 \u0432\u0456\u043d\u0456\u043b\u043e\u0432\u0430 \u0431\u0456\u043b\u0430 (\u041f\u0412\u0425)<\/option>\n                        <option value=\"vinyl_clear\">\u041f\u043b\u0456\u0432\u043a\u0430 \u0432\u0456\u043d\u0456\u043b\u043e\u0432\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0430<\/option>\n                    <\/select>\n                <\/div>\n                \n                <!-- 4. \u041a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0456\u0441\u0442\u044c \u0434\u0440\u0443\u043a\u0443 -->\n                <div class=\"input-group\">\n                    <label for=\"color_scheme\" class=\"block mb-2 text-sm\">\u041a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0456\u0441\u0442\u044c \u0434\u0440\u0443\u043a\u0443<\/label>\n                    <select id=\"color_scheme\"\n                            class=\"w-full p-3 border border-gray-300 rounded-lg bg-white focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <option value=\"4c\">4+0 (CMYK, \u043f\u043e\u0432\u043d\u043e\u043a\u043e\u043b\u0456\u0440)<\/option>\n                        <option value=\"1c\">1+0 (\u0427\u043e\u0440\u043d\u0438\u0439)<\/option>\n                        <option value=\"5c\">5+0 (CMYK + \u0411\u0456\u043b\u0438\u0439)<\/option>\n                    <\/select>\n                    <p class=\"text-xs text-gray-500 mt-1\">5+0 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u043f\u043b\u0456\u0432\u043a\u0438.<\/p>\n                <\/div>\n\n            <\/div>\n\n            <!-- \u0421\u0435\u043a\u0446\u0456\u044f \u041f\u0456\u0441\u043b\u044f\u0434\u0440\u0443\u043a\u0430\u0440\u0441\u044c\u043a\u043e\u0457 \u041e\u0431\u0440\u043e\u0431\u043a\u0438 \u0442\u0430 \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 -->\n            <div class=\"space-y-6\">\n                <!-- 5. \u041f\u0456\u0441\u043b\u044f\u0434\u0440\u0443\u043a\u0430\u0440\u0441\u044c\u043a\u0430 \u041e\u0431\u0440\u043e\u0431\u043a\u0430 (\u041b\u0430\u043c\u0456\u043d\u0430\u0446\u0456\u044f) -->\n                <div class=\"input-group\">\n                    <label for=\"lamination\" class=\"block mb-2 text-sm\">\u041b\u0430\u043c\u0456\u043d\u0430\u0446\u0456\u044f<\/label>\n                    <select id=\"lamination\"\n                            class=\"w-full p-3 border border-gray-300 rounded-lg bg-white focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <option value=\"none\">\u0411\u0435\u0437 \u043b\u0430\u043c\u0456\u043d\u0430\u0446\u0456\u0457<\/option>\n                        <option value=\"glossy\">\u0413\u043b\u044f\u043d\u0446\u0435\u0432\u0430<\/option>\n                        <option value=\"matte\">\u041c\u0430\u0442\u043e\u0432\u0430<\/option>\n                    <\/select>\n                <\/div>\n\n                <!-- 6. \u0422\u0438\u043f \u0440\u0456\u0437\u043a\u0438 (\u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u0456\u043d\u0434\u0438\u0432\u0456\u0434\u0443\u0430\u043b\u044c\u043d\u0438\u0445 \u043d\u0430\u043b\u0456\u043f\u043e\u043a) -->\n                <div class=\"input-group\" id=\"cut-type-group\">\n                    <label for=\"cut_type\" class=\"block mb-2 text-sm\">\u0422\u0438\u043f \u0440\u0456\u0437\u043a\u0438\/\u0412\u0438\u0441\u0456\u0447\u043a\u0438<\/label>\n                    <select id=\"cut_type\"\n                            class=\"w-full p-3 border border-gray-300 rounded-lg bg-white focus:ring-2 focus:ring-blue-500 transition duration-150\">\n                        <option value=\"square_manual\">\u041f\u0440\u044f\u043c\u043e\u043a\u0443\u0442\u043d\u0430\/\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0430 \u0440\u0456\u0437\u043a\u0430 (\u0440\u0456\u0437\u0430\u043a)<\/option>\n                        <option value=\"contour\">\u041f\u043b\u043e\u0442\u0435\u0440\u043d\u0430 \u0440\u0456\u0437\u043a\u0430 (\u043f\u043e \u0441\u043a\u043b\u0430\u0434\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0443\u0440\u0443)<\/option>\n                    <\/select>\n                    <p class=\"text-xs text-gray-500 mt-1\">\u041f\u0440\u044f\u043c\u043e\u043a\u0443\u0442\u043d\u0430 \u0440\u0456\u0437\u043a\u0430 \u043d\u0430 \u0440\u0456\u0437\u0430\u043a\u0443 \u043c\u0430\u0454 \u043e\u043a\u0440\u0435\u043c\u0443, \u043d\u0438\u0436\u0447\u0443 \u0432\u0430\u0440\u0442\u0456\u0441\u0442\u044c \u0430\u0440\u043a\u0443\u0448\u0430.<\/p>\n                <\/div>\n\n                <!-- \u0421\u0435\u043a\u0446\u0456\u044f \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 -->\n                <div class=\"result-box mt-8\">\n                    <h2 class=\"text-xl font-semibold mb-4 text-center text-gray-800\">\n                        \u0424\u0456\u043d\u0430\u043b\u044c\u043d\u0430 \u0412\u0430\u0440\u0442\u0456\u0441\u0442\u044c\n                    <\/h2>\n                    <div id=\"result-message\" class=\"text-center text-sm text-red-600 mb-4 hidden\">\n                        \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043e\u0440\u0435\u043a\u0442\u043d\u0456 \u0434\u0430\u043d\u0456 \u0430\u0431\u043e \u043e\u0431\u0435\u0440\u0456\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443 \u043a\u043e\u043c\u0431\u0456\u043d\u0430\u0446\u0456\u044e.\n                    <\/div>\n                    <p class=\"text-4xl font-extrabold text-center text-gray-800 mb-4\" id=\"total-price\">\n                        0.00 \u20b4\n                    <\/p>\n                    <p class=\"text-md text-center text-gray-700\">\n                        <span id=\"unit-label\">\u0426\u0456\u043d\u0430 \u0437\u0430 1 \u0448\u0442.<\/span>: <span id=\"price-per-unit\" class=\"font-semibold text-lg text-green-700\">0.00 \u20b4<\/span>\n                    <\/p>\n                    <div id=\"calculation-details\" class=\"mt-4 text-xs text-gray-600 space-y-1\">\n                        <!-- \u0414\u0435\u0442\u0430\u043b\u0456 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u0443 \u0431\u0443\u0434\u0443\u0442\u044c \u0442\u0443\u0442 -->\n                    <\/div>\n                    \n                    <!-- \u041a\u041d\u041e\u041f\u041a\u0410 \u0417\u0410\u041c\u041e\u0412\u041b\u0415\u041d\u041d\u042f (\u0422\u0415\u041f\u0415\u0420 \u041a\u041e\u041f\u0406\u042e\u0412\u0410\u041d\u041d\u042f) -->\n                    <button id=\"order-button\" disabled\n                            class=\"w-full mt-4 p-3 bg-gray-400 text-white font-bold rounded-lg transition duration-150 hover:bg-gray-500 disabled:opacity-50 disabled:cursor-not-allowed\">\n                        \u0421\u0444\u043e\u0440\u043c\u0443\u0432\u0430\u0442\u0438 \u0417\u0430\u043f\u0438\u0442 \u043d\u0430 \u0417\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f (\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438)\n                    <\/button>\n\n                    <!-- \u041f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u043f\u0440\u043e \u0443\u0441\u043f\u0456\u0448\u043d\u0435 \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f -->\n                    <div id=\"copy-message\" class=\"text-sm text-green-700 mt-2 text-center opacity-0\">\n                        \u0414\u0435\u0442\u0430\u043b\u0456 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0441\u043a\u043e\u043f\u0456\u0439\u043e\u0432\u0430\u043d\u043e!\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- \u0412\u0410\u0416\u041d\u041e: \u0412\u0435\u0441\u044c JS-\u043a\u043e\u0434 \u0437\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0456 HTML-\u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u0456\u0432, \u0449\u043e\u0431 \u043e\u0431\u0456\u0439\u0442\u0438 \u0444\u0456\u043b\u044c\u0442\u0440\u0438 WordPress. -->\n    <script>\n    <!--\n        \/\/ ==============================================================================\n        \/\/ \u041a\u041e\u041d\u0421\u0422\u0410\u041d\u0422\u0418 \u0406 \u0422\u0410\u0411\u041b\u0418\u0426\u042f \u0426\u0406\u041d\n        \/\/ ==============================================================================\n        \n        const CURRENCY = '\u20b4';\n        \n        const USABLE_AREA = {\n            square: { width: 475, height: 318, label: '\u041f\u0440\u044f\u043c\u043e\u043a\u0443\u0442\u043d\u0430\/\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0430 \u0440\u0456\u0437\u043a\u0430 (\u0440\u0456\u0437\u0430\u043a)' },\n            contour: { width: 457, height: 304, label: '\u041f\u043b\u043e\u0442\u0435\u0440\u043d\u0430 \u0440\u0456\u0437\u043a\u0430 (\u043f\u043e \u0441\u043a\u043b\u0430\u0434\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0443\u0440\u0443)' }\n        };\n\n        const PACK_CONFIG = {\n            A5: { sheetsPerSRA3: 4, label: 'A5 (148x210 \u043c\u043c)', quantityStep: 4 },\n            A6: { sheetsPerSRA3: 8, label: 'A6 (105x148 \u043c\u043c)', quantityStep: 8 }\n        };\n\n        const PRICE_TABLE = {\n            print_and_cut_cost: {\n                paper: { base_price: [48, 38], material_label: '\u041f\u0430\u043f\u0456\u0440' },\n                vinyl: { base_price: [60, 54], material_label: '\u041f\u043b\u0456\u0432\u043a\u0430' }\n            },\n            square_manual_cost: {\n                paper: { price_per_sheet: 30, setup_fee: 100 },\n                vinyl: { price_per_sheet: 35, setup_fee: 100 }\n            },\n            color_multipliers: {\n                '4c': 1.0, '1c': 0.7, '5c': 2.7,\n            },\n            pack_markup: 0.20, \n            lamination_cost_per_sheet: {\n                none: 0, glossy: 4, matte: 5,\n            },\n            default_setup_fee: 250, \n        };\n        \n        \/\/ ------------------------- \u0414\u043e\u043f\u043e\u043c\u0456\u0436\u043d\u0456 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 -------------------------\n\n        function getSelectedMode() {\n            const selected = document.querySelector('input[name=\"mode\"]:checked');\n            return selected ? selected.value : 'individual';\n        }\n\n        function getBasePriceBySheetCount(materialType, totalSheets) {\n            const prices = PRICE_TABLE.print_and_cut_cost[materialType].base_price;\n            \n            if (totalSheets < 50) return prices[0];\n            return prices[1]; \n        }\n\n        function calculateStickersPerSheet(width_mm, height_mm, cut_type_key) {\n            const area = USABLE_AREA[cut_type_key];\n            const sheetW = area.width;\n            const sheetH = area.height;\n            \n            const numFitW1 = Math.floor(sheetW \/ width_mm);\n            const numFitH1 = Math.floor(sheetH \/ height_mm);\n            const totalFit1 = numFitW1 * numFitH1;\n\n            const numFitW2 = Math.floor(sheetW \/ height_mm);\n            const numFitH2 = Math.floor(sheetH \/ width_mm);\n            const totalFit2 = numFitW2 * numFitH2;\n            \n            return Math.max(totalFit1, totalFit2);\n        }\n\n        function formatPrice(price) {\n            return price.toFixed(2).replace('.', ',') + ' ' + CURRENCY;\n        }\n\n        \/\/ \u0424\u0443\u043d\u043a\u0446\u0456\u044f \u0434\u043b\u044f \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f \u0442\u0435\u043a\u0441\u0442\u0443 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0456\u043d\u0443\n        function copyToClipboard(text) {\n            const copyMessage = document.getElementById('copy-message');\n            \/\/ \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e navigator.clipboard.writeText (\u0441\u0443\u0447\u0430\u0441\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434)\n            if (navigator.clipboard && window.isSecureContext) {\n                navigator.clipboard.writeText(text).then(() => {\n                    showCopyMessage(copyMessage);\n                }).catch(err => {\n                    console.error('\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 navigator.clipboard: ', err);\n                    \/\/ \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e \u0437\u0430\u043f\u0430\u0441\u043d\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043d\u0442\n                    fallbackCopyToClipboard(text, copyMessage);\n                });\n            } else {\n                \/\/ \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e \u0437\u0430\u043f\u0430\u0441\u043d\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043d\u0442 \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0438\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456\u0432\/iframe\n                fallbackCopyToClipboard(text, copyMessage);\n            }\n        }\n\n        function fallbackCopyToClipboard(text, copyMessage) {\n            const textArea = document.createElement(\"textarea\");\n            textArea.value = text;\n            textArea.style.position = \"fixed\"; \n            textArea.style.opacity = 0;\n            document.body.appendChild(textArea);\n            textArea.focus();\n            textArea.select();\n            try {\n                document.execCommand('copy');\n                showCopyMessage(copyMessage);\n            } catch (err) {\n                console.error('\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 execCommand: ', err);\n                \/\/ \u0417\u0430\u043c\u0456\u0441\u0442\u044c alert() \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u044f\u043a \u043e\u0431\u0433\u043e\u0432\u043e\u0440\u044e\u0432\u0430\u043b\u043e\u0441\u044f \u0440\u0430\u043d\u0456\u0448\u0435.\n                console.log(\"\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u043a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0434\u0435\u0442\u0430\u043b\u0456. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0441\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0457\u0445 \u0432\u0440\u0443\u0447\u043d\u0443:\", text);\n            }\n            document.body.removeChild(textArea);\n        }\n        \n        function showCopyMessage(el) {\n            el.style.opacity = '1';\n            setTimeout(() => {\n                el.style.opacity = '0';\n            }, 3000);\n        }\n        \n        \/\/ ------------------------- \u041b\u043e\u0433\u0456\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0456\u0432 -------------------------\n\n        function toggleMode() {\n            const mode = getSelectedMode();\n            const individualInputs = document.getElementById('individual-mode-inputs');\n            const packInputs = document.getElementById('pack-mode-inputs');\n            const cutTypeGroup = document.getElementById('cut-type-group');\n            const unitLabel = document.getElementById('unit-label');\n\n            if (mode === 'individual') {\n                individualInputs.classList.remove('hidden');\n                packInputs.classList.add('hidden');\n                cutTypeGroup.classList.remove('hidden');\n                unitLabel.textContent = '\u0426\u0456\u043d\u0430 \u0437\u0430 1 \u0448\u0442.';\n            } else {\n                individualInputs.classList.add('hidden');\n                packInputs.classList.remove('hidden');\n                cutTypeGroup.classList.add('hidden');\n                unitLabel.textContent = '\u0426\u0456\u043d\u0430 \u0437\u0430 1 \u0421\u0442\u0456\u043a\u0435\u0440-\u041f\u0430\u043a\/\u0411\u0443\u043a'; \n            }\n            calculatePrice();\n        }\n\n        function calculateIndividualPrice(material, color_scheme, lamination, cut_type) {\n            const quantity = parseInt(document.getElementById('quantity').value) || 0;\n            const width_mm = parseFloat(document.getElementById('width').value) || 0;\n            const height_mm = parseFloat(document.getElementById('height').value) || 0;\n\n            let details = {};\n            let final_total_price = 0;\n            let price_per_unit = 0;\n\n            if (quantity <= 0 || width_mm <= 0 || height_mm <= 0) {\n                return { final_total_price, price_per_unit, details };\n            }\n\n            const materialTypeForPricing = material === 'paper' ? 'paper' : 'vinyl';\n            let setup_fee = 0;\n            let basePricePerSheet = 0;\n\n            const areaKey = cut_type === 'square_manual' ? 'square' : 'contour';\n            const stickersPerSheet = calculateStickersPerSheet(width_mm, height_mm, areaKey);\n\n            if (stickersPerSheet === 0) {\n                return { final_total_price: 0, price_per_unit: 0, details: { error: '\u041d\u0430\u043b\u0456\u043f\u043a\u0430 \u0437\u0430\u043d\u0430\u0434\u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u043a\u0443.' } };\n            }\n\n            const totalSheets = Math.ceil(quantity \/ stickersPerSheet);\n\n            if (cut_type === 'square_manual') {\n                const pricing = PRICE_TABLE.square_manual_cost[materialTypeForPricing];\n                basePricePerSheet = pricing.price_per_sheet;\n                setup_fee = pricing.setup_fee; \n            } else { \n                basePricePerSheet = getBasePriceBySheetCount(materialTypeForPricing, totalSheets); \n                setup_fee = PRICE_TABLE.default_setup_fee; \n            }\n\n            const colorMultiplier = PRICE_TABLE.color_multipliers[color_scheme] || 1.0;\n            const finalPrintAndCutPricePerSheet = basePricePerSheet * colorMultiplier;\n\n            const print_and_cut_cost = totalSheets * finalPrintAndCutPricePerSheet;\n            const lamination_cost_per_sheet = PRICE_TABLE.lamination_cost_per_sheet[lamination] || 0;\n            const lamination_cost = totalSheets * lamination_cost_per_sheet;\n            \n            final_total_price = print_and_cut_cost + lamination_cost + setup_fee;\n            price_per_unit = final_total_price \/ quantity;\n\n            details = {\n                stickersPerSheet: stickersPerSheet,\n                totalSheets: totalSheets,\n                pricePerSheet: finalPrintAndCutPricePerSheet,\n                cutTypeLabel: USABLE_AREA[areaKey].label,\n                quantity: quantity\n            };\n\n            return { final_total_price, price_per_unit, details };\n        }\n\n        function calculatePackPrice(material, color_scheme, lamination) {\n            const packFormat = document.getElementById('pack_format').value;\n            const sheetsPerItem = parseInt(document.getElementById('sheets_per_item').value) || 0;\n            const itemQuantity = parseInt(document.getElementById('item_quantity').value) || 0;\n\n            let details = {};\n            let final_total_price = 0;\n            let price_per_unit_pack_item = 0;\n\n            if (sheetsPerItem <= 0 || itemQuantity <= 0) {\n                return { final_total_price: 0, price_per_unit: 0, details };\n            }\n\n            if (sheetsPerItem % 4 !== 0 || sheetsPerItem < 4) {\n                 return { final_total_price: 0, price_per_unit: 0, details: { error: '\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0430\u0440\u043a\u0443\u0448\u0456\u0432 \u0443 \u0441\u0442\u0456\u043a\u0435\u0440-\u043f\u0430\u043a\u0443 \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u043a\u0440\u0430\u0442\u043d\u0430 4 (\u043c\u0456\u043d\u0456\u043c\u0443\u043c 4).' } };\n            }\n            \n            const totalPackSheets = sheetsPerItem * itemQuantity;\n            const config = PACK_CONFIG[packFormat];\n            \n            const totalSRA3Sheets = Math.ceil(totalPackSheets \/ config.sheetsPerSRA3);\n            \n            const materialTypeForPricing = material === 'paper' ? 'paper' : 'vinyl';\n            \n            const basePriceSRA3 = getBasePriceBySheetCount(materialTypeForPricing, totalSRA3Sheets);\n            \n            const colorMultiplier = PRICE_TABLE.color_multipliers[color_scheme] || 1.0;\n            const packMarkup = PRICE_TABLE.pack_markup;\n            \n            const packPrintAndCutPricePerSRA3 = basePriceSRA3 * (1 + packMarkup) * colorMultiplier;\n            const setup_fee = PRICE_TABLE.default_setup_fee; \n\n            const print_and_cut_cost = totalSRA3Sheets * packPrintAndCutPricePerSRA3;\n            const lamination_cost_per_sheet = PRICE_TABLE.lamination_cost_per_sheet[lamination] || 0;\n            const lamination_cost = totalSRA3Sheets * lamination_cost_per_sheet;\n            \n            final_total_price = print_and_cut_cost + lamination_cost + setup_fee;\n            price_per_unit_pack_item = final_total_price \/ itemQuantity;\n\n            details = {\n                packFormat: config.label,\n                sheetsPerItem: sheetsPerItem,\n                itemQuantity: itemQuantity,\n                totalPackSheets: totalPackSheets,\n                totalSRA3Sheets: totalSRA3Sheets,\n                pricePerSRA3: packPrintAndCutPricePerSRA3,\n                packMarkup: packMarkup,\n            };\n\n            return { final_total_price, price_per_unit: price_per_unit_pack_item, details };\n        }\n\n        \/\/ \u041d\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f: \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0456\u044f \u0442\u0435\u043a\u0441\u0442\u0443 \u0437\u0430\u043f\u0438\u0442\u0443 \u043d\u0430 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f\n        function generateOrderSummary(result, mode) {\n            const materialText = document.getElementById('material').options[document.getElementById('material').selectedIndex].text;\n            const colorSchemeText = document.getElementById('color_scheme').options[document.getElementById('color_scheme').selectedIndex].text;\n            const laminationText = document.getElementById('lamination').options[document.getElementById('lamination').selectedIndex].text;\n\n            let summary = `*** \u0417\u0410\u041f\u0418\u0422 \u041d\u0410 \u0417\u0410\u041c\u041e\u0412\u041b\u0415\u041d\u041d\u042f \u041d\u0410\u041b\u0406\u041f\u041e\u041a ***\\n\\n`;\n            summary += `----------------------------------------\\n`;\n            summary += `\u0424\u0406\u041d\u0410\u041b\u042c\u041d\u0410 \u0412\u0410\u0420\u0422\u0406\u0421\u0422\u042c: ${formatPrice(result.final_total_price)}\\n`;\n            summary += `\u0426\u0456\u043d\u0430 \u0437\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044e: ${formatPrice(result.price_per_unit)}\\n`;\n            summary += `----------------------------------------\\n`;\n            summary += `\u0417\u0410\u0413\u0410\u041b\u042c\u041d\u0406 \u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420\u0418:\\n`;\n            summary += `\u041c\u0430\u0442\u0435\u0440\u0456\u0430\u043b: ${materialText}\\n`;\n            summary += `\u041a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0456\u0441\u0442\u044c: ${colorSchemeText}\\n`;\n            summary += `\u041b\u0430\u043c\u0456\u043d\u0430\u0446\u0456\u044f: ${laminationText}\\n`;\n            summary += `----------------------------------------\\n`;\n\n            if (mode === 'individual') {\n                const quantity = document.getElementById('quantity').value;\n                const width = document.getElementById('width').value;\n                const height = document.getElementById('height').value;\n                const cutTypeText = document.getElementById('cut_type').options[document.getElementById('cut_type').selectedIndex].text;\n                \n                summary += `\u0420\u0415\u0416\u0418\u041c: \u0406\u041d\u0414\u0418\u0412\u0406\u0414\u0423\u0410\u041b\u042c\u041d\u0406 \u041d\u0410\u041b\u0406\u041f\u041a\u0418\\n`;\n                summary += `\u0422\u0438\u0440\u0430\u0436: ${quantity} \u0448\u0442.\\n`;\n                summary += `\u0420\u043e\u0437\u043c\u0456\u0440: ${width}x${height} \u043c\u043c\\n`;\n                summary += `\u0422\u0438\u043f \u0440\u0456\u0437\u043a\u0438: ${cutTypeText}\\n`;\n                summary += `\u0420\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043e\u043a: ${result.details.totalSheets} \u0430\u0440\u043a\u0443\u0448\u0456\u0432 SRA3+\\n`;\n            } else {\n                const sheetsPerItem = document.getElementById('sheets_per_item').value;\n                const itemQuantity = document.getElementById('item_quantity').value;\n                const packFormatText = document.getElementById('pack_format').options[document.getElementById('pack_format').selectedIndex].text;\n                \n                summary += `\u0420\u0415\u0416\u0418\u041c: \u0421\u0422\u0406\u041a\u0415\u0420-\u041f\u0410\u041a \/ \u0421\u0422\u0406\u041a\u0415\u0420-\u0411\u0423\u041a\\n`;\n                summary += `\u0422\u0438\u0440\u0430\u0436 \u041f\u0430\u043a\u0456\u0432: ${itemQuantity} \u0448\u0442.\\n`;\n                summary += `\u0424\u043e\u0440\u043c\u0430\u0442 \u0430\u0440\u043a\u0443\u0448\u0430: ${packFormatText}\\n`;\n                summary += `\u0410\u0440\u043a\u0443\u0448\u0456\u0432 \u0432 1 \u041f\u0430\u043a\u0443: ${sheetsPerItem} \u0448\u0442.\\n`;\n                summary += `\u0420\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043e\u043a: ${result.details.totalSRA3Sheets} \u0430\u0440\u043a\u0443\u0448\u0456\u0432 SRA3+\\n`;\n            }\n            \n            summary += `----------------------------------------\\n`;\n            summary += `*** \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0434\u043e\u0434\u0430\u0439\u0442\u0435 \u0432\u0430\u0448\u0456 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0456 \u0434\u0430\u043d\u0456, \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e \u043f\u0440\u043e \u043c\u0430\u043a\u0435\u0442 \u0442\u0430 \u043d\u0430\u0434\u0456\u0448\u043b\u0456\u0442\u044c \u0437\u0430\u043f\u0438\u0442. ***`;\n            return summary;\n        }\n\n        \/\/ \u041e\u0431\u0440\u043e\u0431\u043d\u0438\u043a \u043a\u043b\u0456\u043a\u0443 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f (\u0442\u0435\u043f\u0435\u0440 \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f)\n        function handleOrderButtonClick(result, mode) {\n            const summaryText = generateOrderSummary(result, mode);\n            copyToClipboard(summaryText);\n        }\n\n        function updateUI(result, mode) {\n            const resultEl = document.getElementById('total-price');\n            const unitEl = document.getElementById('price-per-unit');\n            const detailsEl = document.getElementById('calculation-details');\n            const messageEl = document.getElementById('result-message');\n            const orderButton = document.getElementById('order-button');\n            \n            resultEl.textContent = formatPrice(0);\n            unitEl.textContent = formatPrice(0);\n            detailsEl.innerHTML = '';\n            messageEl.classList.add('hidden');\n            \n            \/\/ \u0421\u043a\u0438\u0434\u0430\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f\n            orderButton.disabled = true;\n            orderButton.classList.replace('bg-blue-600', 'bg-gray-400');\n            orderButton.classList.replace('hover:bg-blue-700', 'hover:bg-gray-500');\n            orderButton.onclick = null;\n            \n            if (result.final_total_price === 0 && result.details.error) {\n                 messageEl.classList.remove('hidden');\n                 messageEl.textContent = result.details.error;\n                 return;\n            }\n            \n            if (result.final_total_price <= 0) {\n                 return;\n            }\n\n            resultEl.textContent = formatPrice(result.final_total_price);\n            unitEl.textContent = formatPrice(result.price_per_unit);\n\n            const d = result.details;\n            let detailsHTML = '';\n\n            if (mode === 'individual') {\n                detailsHTML = `\n                    <p>\u2014 \u0422\u0438\u0440\u0430\u0436: ${d.quantity} \u0448\u0442.<\/p>\n                    <p>\u2014 \u041d\u0430\u043b\u0456\u043f\u043e\u043a \u043d\u0430 1 \u0430\u0440\u043a\u0443\u0448\u0456 SRA3+: ${d.stickersPerSheet} \u0448\u0442.<\/p>\n                    <p>\u2014 \u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0430 \u043a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0430\u0440\u043a\u0443\u0448\u0456\u0432 SRA3+: ${d.totalSheets} \u0448\u0442.<\/p>\n                    <p>\u2014 \u0426\u0456\u043d\u0430 \u0414\u0440\u0443\u043a\/\u0420\u0456\u0437\u043a\u0430 \u0437\u0430 1 \u0430\u0440\u043a\u0443\u0448: ${formatPrice(d.pricePerSheet)}<\/p>\n                    <p>\u2014 \u0422\u0438\u043f \u0440\u0456\u0437\u043a\u0438: ${d.cutTypeLabel}<\/p> <!-- FIX: \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e \u0433\u043e\u0442\u043e\u0432\u0438\u0439 label \u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 -->\n                `;\n            } else { \/\/ mode === 'pack'\n                 detailsHTML = `\n                    <p>\u2014 \u0422\u0438\u0440\u0430\u0436 \u041f\u0430\u043a\u0456\u0432\/\u0411\u0443\u043a\u0456\u0432: ${d.itemQuantity} \u0448\u0442.<\/p>\n                    <p>\u2014 \u0424\u043e\u0440\u043c\u0430\u0442: ${d.packFormat}<\/p>\n                    <p>\u2014 \u0410\u0440\u043a\u0443\u0448\u0456\u0432 \u0432 1 \u041f\u0430\u043a\u0443\/\u0411\u0443\u043a\u0443: ${d.sheetsPerItem} \u0448\u0442.<\/p>\n                `;\n            }\n            detailsEl.innerHTML = detailsHTML;\n            \n            \/\/ \u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0456\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f\n            orderButton.disabled = false;\n            orderButton.classList.replace('bg-gray-400', 'bg-blue-600');\n            orderButton.classList.replace('hover:bg-gray-500', 'hover:bg-blue-700');\n            \/\/ \u041f\u0440\u0438\u0432'\u044f\u0437\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 \u043a\u043e\u043f\u0456\u044e\u0432\u0430\u043d\u043d\u044f\n            orderButton.onclick = () => handleOrderButtonClick(result, mode);\n        }\n\n        function calculatePrice() {\n            const mode = getSelectedMode();\n            const material = document.getElementById('material').value;\n            const color_scheme = document.getElementById('color_scheme').value;\n            const lamination = document.getElementById('lamination').value;\n            const cut_type = document.getElementById('cut_type').value;\n\n            let result = { final_total_price: 0, price_per_unit: 0, details: {} };\n            \n            \/\/ \u0412\u0430\u043b\u0456\u0434\u0430\u0446\u0456\u044f 5+0\n            if (color_scheme === '5c' && material === 'paper') {\n                result.details.error = '\u041a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0456\u0441\u0442\u044c 5+0 (CMYK + \u0411\u0456\u043b\u0438\u0439) \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u043f\u043b\u0456\u0432\u043a\u0438.';\n                updateUI(result, mode);\n                return;\n            }\n\n            if (mode === 'individual') {\n                result = calculateIndividualPrice(material, color_scheme, lamination, cut_type);\n            } else { \n                result = calculatePackPrice(material, color_scheme, lamination);\n            }\n            \n            updateUI(result, mode);\n        }\n\n        \/\/ ------------------------- \u0406\u041d\u0406\u0426\u0406\u0410\u041b\u0406\u0417\u0410\u0426\u0406\u042f \u0422\u0410 \u041f\u0420\u0418\u0412'\u042f\u0417\u041a\u0410 \u041f\u041e\u0414\u0406\u0419 -------------------------\n        function initializeCalculator() {\n            \/\/ \u0421\u043b\u0443\u0445\u0430\u0447\u0456 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0443 \u0442\u0430 \u0432\u0438\u0431\u043e\u0440\u0443\n            const inputs = document.querySelectorAll('#sticker-calculator-app input[type=\"number\"], #sticker-calculator-app select');\n            \n            inputs.forEach(input => {\n                input.addEventListener('input', calculatePrice);\n                input.addEventListener('change', calculatePrice);\n            });\n            \n            \/\/ \u0421\u043b\u0443\u0445\u0430\u0447\u0456 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0438\u043a\u0430\u043d\u043d\u044f \u0440\u0435\u0436\u0438\u043c\u0456\u0432\n            const modeRadios = document.querySelectorAll('input[name=\"mode\"]');\n            modeRadios.forEach(radio => {\n                radio.addEventListener('change', toggleMode);\n            });\n\n            toggleMode();\n        }\n\n        document.addEventListener('DOMContentLoaded', initializeCalculator);\n    \/\/ -->\n    <\/script>\n\n<\/body>\n<\/html>\n\n\n\n<h2 class=\"wp-block-heading has-luminous-vivid-amber-background-color has-background\">\u042f\u043a \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043f\u0456\u0441\u043b\u044f \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u0443 \u0432 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0456<\/h2>\n\n\n\n<p>\u0412\u0456\u0442\u0430\u0454\u043c\u043e, \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043e\u043a \u0432\u0430\u0440\u0442\u043e\u0441\u0442\u0456 \u0434\u0440\u0443\u043a\u0443 \u0433\u043e\u0442\u043e\u0432\u0438\u0439! \u0429\u043e\u0431 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0448\u0432\u0438\u0434\u043a\u043e \u0442\u0430 \u0431\u0435\u0437 \u043f\u043e\u043c\u0438\u043b\u043e\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u0432\u0430\u0448\u0435 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0432 \u0440\u043e\u0431\u043e\u0442\u0443, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u043a\u043e\u043d\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0456 \u043a\u0440\u043e\u043a\u0438:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u041a\u0440\u043e\u043a 1: \u0421\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0434\u0435\u0442\u0430\u043b\u0456 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f<\/h3>\n\n\n\n<p>\u041f\u0456\u0441\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u043f\u0456\u0434\u0441\u0443\u043c\u043a\u043e\u0432\u043e\u0457 \u0432\u0430\u0440\u0442\u043e\u0441\u0442\u0456 \u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0456 \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 <strong>\u00ab\u0421\u0444\u043e\u0440\u043c\u0443\u0432\u0430\u0442\u0438 \u0417\u0430\u043f\u0438\u0442 \u043d\u0430 \u0417\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f (\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438)\u00bb<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u043a\u043e\u043f\u0456\u044e\u0454 \u0434\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0456\u043d\u0443 \u0432\u0441\u0456 \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0456 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438: \u0442\u0438\u0440\u0430\u0436, \u0440\u043e\u0437\u043c\u0456\u0440, \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b, \u0442\u0438\u043f \u0440\u0456\u0437\u0430\u043d\u043d\u044f \u0442\u0430 \u0444\u0456\u043d\u0430\u043b\u044c\u043d\u0443 \u0432\u0430\u0440\u0442\u0456\u0441\u0442\u044c.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u041a\u0440\u043e\u043a 2: \u041d\u0430\u0434\u0456\u0448\u043b\u0456\u0442\u044c \u0437\u0430\u043f\u0438\u0442 \u0442\u0430 \u0434\u043e\u0434\u0430\u0439\u0442\u0435 \u043c\u0430\u043a\u0435\u0442\u0438<\/h3>\n\n\n\n<p>\u0421\u0442\u0432\u043e\u0440\u0456\u0442\u044c \u043d\u043e\u0432\u0435 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f (\u043d\u0430 \u043f\u043e\u0448\u0442\u0443, \u0443 Telegram \u0447\u0438 Viber) \u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u0442\u0435 \u0441\u043a\u043e\u043f\u0456\u0439\u043e\u0432\u0430\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 (Ctrl+V \u0430\u0431\u043e &#8220;\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438&#8221;). \u0414\u043e \u0446\u044c\u043e\u0433\u043e \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f <strong>\u043e\u0431\u043e\u0432&#8217;\u044f\u0437\u043a\u043e\u0432\u043e \u043f\u0440\u0438\u043a\u0440\u0456\u043f\u0456\u0442\u044c<\/strong> \u0444\u0430\u0439\u043b\u0438 \u0437 \u043c\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u0432\u0430\u0448\u0438\u0445 \u043d\u0430\u043a\u043b\u0435\u0439\u043e\u043a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u0430\u0436\u043b\u0438\u0432\u0456 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0456\u0457 \u0449\u043e\u0434\u043e \u043c\u0430\u043a\u0435\u0442\u0456\u0432<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. \u0406\u043d\u0434\u0438\u0432\u0456\u0434\u0443\u0430\u043b\u044c\u043d\u0456 \u043d\u0430\u043a\u043b\u0435\u0439\u043a\u0438 (\u043e\u0434\u043d\u0430\u043a\u043e\u0432\u0456)<\/h4>\n\n\n\n<p class=\"has-background\" style=\"background-color:#e6e6e6\"><strong>\u0412\u0430\u043c \u043d\u0435 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u0456\u0439\u043d\u043e \u0440\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u0442\u0438 \u043d\u0430\u043a\u043b\u0435\u0439\u043a\u0438 \u043d\u0430 \u0430\u0440\u043a\u0443\u0448\u0456!<\/strong><\/p>\n\n\n\n<p>\u041c\u0438 \u0437\u0440\u043e\u0431\u0438\u043c\u043e \u0440\u043e\u0437\u043a\u043b\u0430\u0434\u043a\u0443 \u0441\u0430\u043c\u0456, \u0449\u043e\u0431 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0435\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u0442\u0438 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b \u0442\u0430 \u0433\u0430\u0440\u0430\u043d\u0442\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435 \u0440\u0456\u0437\u0430\u043d\u043d\u044f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0434\u0456\u0448\u043b\u0456\u0442\u044c \u043d\u0430\u043c <strong>\u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b<\/strong> \u043d\u0430\u043a\u043b\u0435\u0439\u043a\u0438 \u0443 \u0440\u043e\u0437\u043c\u0456\u0440\u0456 <strong>1:1<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. \u0421\u0442\u0456\u043a\u0435\u0440-\u043f\u0430\u043a\u0438 \/ \u0421\u0442\u0456\u043a\u0435\u0440-\u0431\u0443\u043a\u0438 (\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u043d\u0430\u043a\u043b\u0435\u0439\u043e\u043a \u043d\u0430 \u043e\u0434\u043d\u043e\u043c\u0443 \u0430\u0440\u043a\u0443\u0448\u0456)<\/h4>\n\n\n\n<p>\u042f\u043a\u0449\u043e \u0432\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u044f\u0454\u0442\u0435 \u0441\u0442\u0456\u043a\u0435\u0440-\u043f\u0430\u043a\u0438 \u0430\u0431\u043e \u0441\u0442\u0456\u043a\u0435\u0440-\u0431\u0443\u043a\u0438, \u044f\u043a\u0456 \u043c\u0456\u0441\u0442\u044f\u0442\u044c \u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0440\u0456\u0437\u043d\u0438\u0445 \u043d\u0430\u043a\u043b\u0435\u0439\u043e\u043a \u043d\u0430 \u043e\u0434\u043d\u043e\u043c\u0443 \u0430\u0440\u043a\u0443\u0448\u0456, \u043c\u0430\u043a\u0435\u0442 \u0430\u0440\u043a\u0443\u0448\u0430 \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043d\u0438\u0439 <strong>\u0440\u0430\u0437\u043e\u043c \u0456\u0437 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u043e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u0456\u0437\u0430\u043d\u043d\u044f (\u0432\u0438\u0441\u0456\u043a\u0430\u043d\u043d\u044f)<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0412\u0438\u043c\u043e\u0433\u0438 \u0434\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0443:<\/strong> \u041e\u0437\u043d\u0430\u0439\u043e\u043c\u0442\u0435\u0441\u044f \u0437 \u043d\u0430\u0448\u0438\u043c\u0438 [\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0456\u044f\u043c\u0438 \u0449\u043e\u0434\u043e \u043f\u0456\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043c\u0430\u043a\u0435\u0442\u0456\u0432 \u0434\u043b\u044f \u043f\u043b\u043e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u0456\u0437\u0430\u043d\u043d\u044f].<\/li>\n<\/ul>\n\n\n\n<p>\u041f\u0456\u0441\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0432\u0430\u0448\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0442\u0443 \u0442\u0430 \u043c\u0430\u043a\u0435\u0442\u0456\u0432 \u043c\u0438 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u043c\u043e \u0432\u0441\u0456 \u0434\u0430\u043d\u0456 \u0442\u0430 \u0437\u0432&#8217;\u044f\u0436\u0435\u043c\u043e\u0441\u044f \u0437 \u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0444\u0456\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f. \u0414\u044f\u043a\u0443\u0454\u043c\u043e \u0437\u0430 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f!<\/p>\n\n\n<p>","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0412\u0430\u0440\u0442\u0456\u0441\u0442\u0456 \u0414\u0440\u0443\u043a\u0443 \u041d\u0430\u043b\u0456\u043f\u043e\u043a \u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0412\u0430\u0440\u0442\u0456\u0441\u0442\u0456 \u0414\u0440\u0443\u043a\u0443 \u041d\u0430\u043b\u0456\u043f\u043e\u043a \u041e\u0431\u0435\u0440\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u0443 \u0406\u043d\u0434\u0438\u0432\u0456\u0434\u0443\u0430\u043b\u044c\u043d\u0456 \u043d\u0430\u043b\u0456\u043f\u043a\u0438 \u0421\u0442\u0456\u043a\u0435\u0440-\u043f\u0430\u043a \/ \u0421\u0442\u0456\u043a\u0435\u0440-\u0431\u0443\u043a \u0422\u0438\u0440\u0430\u0436 (\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c, \u0448\u0442.) \u0427\u0438\u043c \u0431\u0456\u043b\u044c\u0448\u0438\u0439 \u0442\u0438\u0440\u0430\u0436, \u0442\u0438\u043c \u043d\u0438\u0436\u0447\u0430 \u0446\u0456\u043d\u0430 \u0437\u0430 \u0448\u0442\u0443\u043a\u0443. \u0420\u043e\u0437\u043c\u0456\u0440 \u043d\u0430\u043b\u0456\u043f\u043a\u0438 (\u043c\u043c) \u0424\u043e\u0440\u043c\u0430\u0442 \u0430\u0440\u043a\u0443\u0448\u0430 \u0443 \u043f\u0430\u043a\u0443\/\u0431\u0443\u043a\u0443 A5 (148&#215;210 \u043c\u043c)A6 (105&#215;148 \u043c\u043c) \u0410\u0440\u043a\u0443\u0448\u0456\u0432 \u0432 1 \u0421\u0442\u0456\u043a\u0435\u0440-\u041f\u0430\u043a\u0443\/\u0411\u0443\u043a\u0443, \u0448\u0442. (\u041a\u0440\u0430\u0442\u043d\u043e 4) \u041c\u0456\u043d\u0456\u043c\u0430\u043b\u044c\u043d\u0430 \u043a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u2014 4 \u0430\u0440\u043a\u0443\u0448\u0456. \u0422\u0438\u0440\u0430\u0436 \u0433\u043e\u0442\u043e\u0432\u0438\u0445 \u041f\u0430\u043a\u0456\u0432\/\u0411\u0443\u043a\u0456\u0432, \u0448\u0442&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"jetpack_post_was_ever_published":false,"footnotes":""},"tags":[942,407,941,940,373],"class_list":["post-6283","page","type-page","status-publish","hentry","tag-942","tag-407","tag-941","tag-940","tag---2"],"translation":{"provider":"WPGlobus","version":"2.10.4","language":"uk","enabled_languages":["ru","uk"],"languages":{"ru":{"title":false,"content":true,"excerpt":false},"uk":{"title":true,"content":true,"excerpt":false}}},"aioseo_notices":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/pages\/6283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/comments?post=6283"}],"version-history":[{"count":28,"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/pages\/6283\/revisions"}],"predecessor-version":[{"id":7796,"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/pages\/6283\/revisions\/7796"}],"wp:attachment":[{"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/media?parent=6283"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enterprint.com.ua\/uk\/wp-json\/wp\/v2\/tags?post=6283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}