{"id":159282,"date":"2025-10-10T02:48:20","date_gmt":"2025-10-10T00:48:20","guid":{"rendered":"https:\/\/www.cuttalo.com\/?page_id=159282"},"modified":"2025-10-17T04:54:59","modified_gmt":"2025-10-17T02:54:59","slug":"free-online-image-vectorizer","status":"publish","type":"page","link":"https:\/\/www.cuttalo.com\/en\/free-online-image-vectorizer\/","title":{"rendered":"Free Online Image Vectorizer &#8211; Image to Vector Converter"},"content":{"rendered":"<!--themify_builder_content-->\n<div id=\"themify_builder_content-159282\" data-postid=\"159282\" class=\"themify_builder_content themify_builder_content-159282 themify_builder tf_clear\">\n                    <div  data-css_id=\"0bea478\" data-lazy=\"1\" class=\"module_row themify_builder_row fullwidth_row_container tb_0bea478 tb_first tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_rx36478 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_p7et884 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n            <div class=\"vectorizer-app\">\n            <div class=\"vectorizer-header\">\n                <h1 class=\"vectorizer-title\">\n                    Vectorizer Images                <\/h1>\n                <p class=\"vectorizer-subtitle\">\n                    Convert your images into black and white vectors                <\/p>\n            <\/div>\n            \n            <div class=\"upload-area\" id=\"upload-area\">\n                <div class=\"upload-icon\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                        <path d=\"M21 15V19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <path d=\"M12 15V3\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/div>\n                <label for=\"image-upload\" class=\"upload-label\">\n                    Select or drag an image                <\/label>\n                <input type=\"file\" id=\"image-upload\" accept=\"image\/jpeg,image\/jpg,image\/png,image\/bmp,image\/tiff,image\/svg+xml\" \/>\n                <p style=\"margin-top: 1rem; color: var(--imv-text-secondary); font-size: 0.875rem;\">\n                    Supported formats: JPG, PNG, BMP, TIFF, SVG                <\/p>\n            <\/div>\n            \n            <div class=\"vectorizer-main\" id=\"vectorizer-main\">\n                <div class=\"controls-panel\">\n                    <h3 class=\"controls-title\">Vectorization controls<\/h3>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"control-label\" for=\"threshold-slider\">\n                            Black\/White Threshold                        <\/label>\n                        <input type=\"range\" class=\"range-slider\" id=\"threshold-slider\" min=\"0\" max=\"255\" value=\"128\" \/>\n                        <span class=\"range-value\" id=\"threshold-value\">128<\/span>\n                    <\/div>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"control-label\" for=\"path-omit\">\n                             Path Simplification                        <\/label>\n                        <input type=\"range\" class=\"range-slider\" id=\"path-omit\" min=\"0\" max=\"100\" value=\"8\" \/>\n                        <span class=\"range-value\" id=\"path-omit-value\">8<\/span>\n                    <\/div>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"control-label\" for=\"ltres\">\n                            Linear Precision                        <\/label>\n                        <input type=\"range\" class=\"range-slider\" id=\"ltres\" min=\"0.1\" max=\"10\" value=\"1\" step=\"0.1\" \/>\n                        <span class=\"range-value\" id=\"ltres-value\">1<\/span>\n                    <\/div>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"control-label\" for=\"qtres\">\n                            Curve Precision                        <\/label>\n                        <input type=\"range\" class=\"range-slider\" id=\"qtres\" min=\"0.1\" max=\"10\" value=\"1\" step=\"0.1\" \/>\n                        <span class=\"range-value\" id=\"qtres-value\">1<\/span>\n                    <\/div>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"control-label\" for=\"stroke-width\">\n                            Track Width                        <\/label>\n                        <input type=\"range\" class=\"range-slider\" id=\"stroke-width\" min=\"0\" max=\"10\" value=\"1\" step=\"0.1\" \/>\n                        <span class=\"range-value\" id=\"stroke-width-value\">1<\/span>\n                    <\/div>\n                    \n                    <div class=\"control-group\">\n                        <label class=\"checkbox-wrapper\">\n                            <input type=\"checkbox\" id=\"right-angle-enhance\" \/>\n                            <span>Optimize right angles<\/span>\n                        <\/label>\n                    <\/div>\n                    \n                    <div class=\"action-buttons\">\n                        <button id=\"download-svg\" class=\"btn btn-primary\">\n                            <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\n                                <polyline points=\"7 10 12 15 17 10\"><\/polyline>\n                                <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\n                            <\/svg>\n                            DOWNLOAD SVG                        <\/button>\n                        <button id=\"reset-btn\" class=\"btn btn-secondary\">\n                            New Image                        <\/button>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"preview-panel\">\n                    <h3 class=\"preview-title\">Vector Preview<\/h3>\n                    \n                    <div id=\"preview\">\n                        <p class=\"preview-empty\">Preview not available<\/p>\n                    <\/div>\n                    \n                    <div class=\"loading-spinner\" id=\"loading-spinner\"><\/div>\n                    \n                    <div class=\"stats-bar\">\n                        <div class=\"stat-item\">\n                            <div class=\"stat-label\">Original size<\/div>\n                            <div class=\"stat-value\" id=\"stat-original-size\">-<\/div>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <div class=\"stat-label\">SVG Dimensions<\/div>\n                            <div class=\"stat-value\" id=\"stat-svg-size\">-<\/div>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <div class=\"stat-label\">Paths<\/div>\n                            <div class=\"stat-value\" id=\"stat-paths\">-<\/div>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <div class=\"stat-label\">Dimensions<\/div>\n                            <div class=\"stat-value\" id=\"stat-dimensions\">-<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <div class=\"toast\" id=\"toast\"><\/div>\n            <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_p498184 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_7am6184 first\">\n                    <!-- module template_part -->\n<div  class=\"module module-layout-part tb_697g184 \">\n    <div class=\"tb_layout_part_wrap tf_w\"><!--themify_builder_content-->\n    <div  class=\"themify_builder_content themify_builder_content-160908 themify_builder not_editable_builder in_the_loop\" data-postid=\"160908\">\n                        <div  data-css_id=\"n54c616\" data-lazy=\"1\" class=\"module_row themify_builder_row fullwidth_row_container tb_n54c616 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_0qjv616 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_mxxh616 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n        <style>\n    .cuttalo-chatonly-container {\n        margin: 40px 0;\n        background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 50%, #ffffff 100%);\n        border: 1px solid #e5e7eb;\n        border-radius: 16px;\n        padding: 32px 36px;\n        box-shadow:\n            0 4px 6px -1px rgba(0, 0, 0, 0.05),\n            0 2px 4px -1px rgba(0, 0, 0, 0.03),\n            0 0 0 1px rgba(99, 102, 241, 0.08);\n        position: relative;\n        overflow: hidden;\n        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    .cuttalo-chatonly-container::before {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        height: 4px;\n        background: linear-gradient(90deg, #5fd36c 0%, #5fd36ccc 50%, #5fd36c 100%);\n        background-size: 200% 100%;\n        animation: gradient-shift 3s ease infinite;\n    }\n\n    @keyframes gradient-shift {\n        0%, 100% { background-position: 0% 50%; }\n        50% { background-position: 100% 50%; }\n    }\n\n    .cuttalo-chatonly-container:hover {\n        transform: translateY(-2px);\n        box-shadow:\n            0 10px 15px -3px rgba(0, 0, 0, 0.08),\n            0 4px 6px -2px rgba(0, 0, 0, 0.04),\n            0 0 0 1px rgba(99, 102, 241, 0.12);\n    }\n\n    .cuttalo-chatonly-header {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        margin-bottom: 20px;\n        cursor: pointer;\n        user-select: none;\n        transition: margin-bottom 0.3s;\n    }\n\n    .cuttalo-chatonly-container.collapsed .cuttalo-chatonly-header {\n        margin-bottom: 0;\n    }\n\n    .cuttalo-chatonly-title {\n        font-size: 20px;\n        font-weight: 700;\n        color: #1f2937;\n        display: flex;\n        align-items: center;\n        gap: 10px;\n    }\n\n    .cuttalo-chatonly-title::before {\n        content: '\ud83d\udcac';\n        font-size: 24px;\n    }\n\n    .cuttalo-chatonly-toggle {\n        background: transparent;\n        color: #9ca3af;\n        border: none;\n        width: 32px;\n        height: 32px;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: all 0.3s;\n        flex-shrink: 0;\n        padding: 0;\n    }\n\n    .cuttalo-chatonly-toggle:hover {\n        color: #6b7280;\n        transform: scale(1.15);\n    }\n\n    .cuttalo-chatonly-toggle span {\n        display: inline-block;\n        transition: transform 0.3s;\n    }\n\n    .cuttalo-chatonly-container.collapsed .cuttalo-chatonly-toggle span {\n        transform: rotate(180deg);\n    }\n\n    .cuttalo-chatonly-content {\n        max-height: 600px;\n        overflow: visible;\n        transition: max-height 0.3s ease-out, opacity 0.3s ease-out;\n    }\n\n    .cuttalo-chatonly-container.collapsed .cuttalo-chatonly-content {\n        max-height: 0;\n        opacity: 0;\n        overflow: hidden;\n    }\n\n    \/* Email Request Modal *\/\n    .cuttalo-chatonly-email-overlay {\n        position: fixed;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(0, 0, 0, 0.5);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        z-index: 10000;\n        backdrop-filter: blur(4px);\n        animation: fadeIn 0.3s ease;\n    }\n\n    .cuttalo-chatonly-email-modal {\n        background: white;\n        border-radius: 16px;\n        padding: 32px;\n        max-width: 400px;\n        width: 90%;\n        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n        animation: slideUp 0.3s ease;\n        position: relative;\n    }\n\n    @keyframes fadeIn {\n        from { opacity: 0; }\n        to { opacity: 1; }\n    }\n\n    @keyframes slideUp {\n        from {\n            opacity: 0;\n            transform: translateY(20px);\n        }\n        to {\n            opacity: 1;\n            transform: translateY(0);\n        }\n    }\n\n    .cuttalo-chatonly-email-header {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        margin-bottom: 20px;\n    }\n\n    .cuttalo-chatonly-email-icon {\n        width: 48px;\n        height: 48px;\n        background: #5fd36c20;\n        border-radius: 12px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        color: #5fd36c;\n        flex-shrink: 0;\n    }\n\n    .cuttalo-chatonly-email-title {\n        font-size: 20px;\n        font-weight: 700;\n        color: #1f2937;\n        margin: 0;\n    }\n\n    .cuttalo-chatonly-email-subtitle {\n        font-size: 14px;\n        color: #6b7280;\n        margin: 0 0 20px 0;\n        line-height: 1.5;\n    }\n\n    .cuttalo-chatonly-email-input {\n        width: 100%;\n        padding: 12px 16px;\n        border: 2px solid #e5e7eb;\n        border-radius: 8px;\n        font-size: 14px;\n        transition: all 0.2s;\n        margin-bottom: 16px;\n        font-family: inherit;\n    }\n\n    .cuttalo-chatonly-email-input:focus {\n        outline: none;\n        border-color: #5fd36c;\n        box-shadow: 0 0 0 3px #5fd36c20;\n    }\n\n    .cuttalo-chatonly-email-actions {\n        display: flex;\n        gap: 10px;\n    }\n\n    .cuttalo-chatonly-email-btn {\n        flex: 1;\n        padding: 12px 20px;\n        border: none;\n        border-radius: 8px;\n        font-weight: 600;\n        cursor: pointer;\n        transition: all 0.2s;\n        font-size: 14px;\n    }\n\n    .cuttalo-chatonly-email-btn-primary {\n        background: #5fd36c;\n        color: white;\n    }\n\n    .cuttalo-chatonly-email-btn-primary:hover {\n        background: #5fd36cdd;\n        transform: translateY(-1px);\n        box-shadow: 0 4px 8px rgba(0,0,0,0.15);\n    }\n\n    .cuttalo-chatonly-email-btn-secondary {\n        background: #f3f4f6;\n        color: #6b7280;\n    }\n\n    .cuttalo-chatonly-email-btn-secondary:hover {\n        background: #e5e7eb;\n    }\n\n    .cuttalo-chatonly-email-error {\n        color: #dc2626;\n        font-size: 12px;\n        margin-top: -12px;\n        margin-bottom: 16px;\n        display: none;\n    }\n\n    .cuttalo-chatonly-email-error.show {\n        display: block;\n    }\n\n    .cuttalo-chatonly-chat-form {\n        display: flex;\n        gap: 8px;\n        align-items: center;\n        margin-top: 20px;\n        transition: margin-top 0.3s;\n    }\n\n    .cuttalo-chatonly-container.collapsed .cuttalo-chatonly-chat-form {\n        margin-top: 0;\n    }\n\n    .cuttalo-chatonly-input-wrapper {\n        flex: 1;\n        display: flex;\n        align-items: center;\n        gap: 8px;\n    }\n\n    .cuttalo-chatonly-chat-input {\n        flex: 1;\n        resize: none;\n        min-height: 40px;\n        max-height: 40px;\n        line-height: 1.4;\n        font-family: inherit;\n        padding: 10px 14px;\n        border: 2px solid #e5e7eb;\n        border-radius: 8px;\n        font-size: 14px;\n        transition: all 0.2s;\n    }\n\n    .cuttalo-chatonly-chat-input:focus {\n        outline: none;\n        border-color: #5fd36c;\n        box-shadow: 0 0 0 3px #5fd36c20;\n    }\n\n    .cuttalo-chatonly-char-counter {\n        font-size: 10px;\n        color: #999;\n        white-space: nowrap;\n        min-width: 45px;\n    }\n\n    .cuttalo-chatonly-char-counter.warning {\n        color: #ff5722;\n        font-weight: 600;\n    }\n\n    .cuttalo-chatonly-buttons {\n        display: flex;\n        gap: 8px;\n    }\n\n    .cuttalo-chatonly-chat-send,\n    .cuttalo-chatonly-contact-btn {\n        padding: 10px 16px;\n        border: none;\n        border-radius: 8px;\n        font-weight: 600;\n        cursor: pointer;\n        transition: all 0.2s;\n        font-size: 13px;\n        white-space: nowrap;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 6px;\n    }\n\n    .cuttalo-chatonly-chat-send svg,\n    .cuttalo-chatonly-contact-btn svg {\n        flex-shrink: 0;\n    }\n\n    .cuttalo-chatonly-chat-send {\n        background: #5fd36c;\n        color: white;\n    }\n\n    .cuttalo-chatonly-chat-send:hover:not(:disabled) {\n        background: #5fd36cdd;\n        transform: translateY(-1px);\n        box-shadow: 0 4px 8px rgba(0,0,0,0.15);\n    }\n\n    .cuttalo-chatonly-chat-send:disabled {\n        opacity: 0.5;\n        cursor: not-allowed;\n    }\n\n    .cuttalo-chatonly-contact-btn {\n        background: #6366f1;\n        color: white;\n    }\n\n    .cuttalo-chatonly-contact-btn:hover {\n        background: #4f46e5;\n        transform: translateY(-1px);\n        box-shadow: 0 4px 8px rgba(99, 102, 241, 0.3);\n    }\n\n    .cuttalo-chatonly-input-hint {\n        font-size: 10px;\n        color: #999;\n        text-align: center;\n        font-style: italic;\n    }\n\n    .cuttalo-chatonly-conversation {\n        margin-bottom: 20px;\n        min-height: 50px;\n        max-height: 400px;\n        overflow-y: auto;\n        padding: 10px 0;\n    }\n\n    .cuttalo-chatonly-conversation:empty {\n        min-height: 0;\n        padding: 0;\n        margin-bottom: 0;\n    }\n\n    .cuttalo-chatonly-conversation:not(:empty) {\n        border-bottom: 2px solid #e5e7eb;\n        padding-bottom: 20px;\n        margin-bottom: 20px;\n    }\n\n    \/* Messaggi con avatar e timestamp *\/\n    .cuttalo-chatonly-message {\n        display: flex;\n        gap: 10px;\n        align-items: flex-start;\n        margin-bottom: 16px;\n    }\n\n    .cuttalo-chatonly-message-user {\n        flex-direction: row-reverse;\n    }\n\n    .cuttalo-chatonly-message-avatar {\n        flex-shrink: 0;\n        color: #666;\n        width: 32px;\n        height: 32px;\n    }\n\n    .cuttalo-chatonly-message-content {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n        gap: 4px;\n        min-width: 0;\n    }\n\n    .cuttalo-chatonly-message-text {\n        padding: 12px 16px;\n        border-radius: 12px;\n        line-height: 1.5;\n        font-size: 14px;\n        word-wrap: break-word;\n        white-space: pre-wrap;\n        overflow-wrap: break-word;\n    }\n\n    .cuttalo-chatonly-message-bot .cuttalo-chatonly-message-text {\n        background: #5fd36c15;\n        border-bottom-left-radius: 4px;\n    }\n\n    .cuttalo-chatonly-message-user .cuttalo-chatonly-message-text {\n        background: #f3f4f6;\n        border-bottom-right-radius: 4px;\n    }\n\n    .cuttalo-chatonly-message-time {\n        font-size: 10px;\n        color: #999;\n        padding: 0 4px;\n    }\n\n    .cuttalo-chatonly-message-user .cuttalo-chatonly-message-time {\n        text-align: right;\n    }\n\n    \/* Typing indicator *\/\n    .cuttalo-chatonly-typing {\n        display: flex;\n        gap: 10px;\n        align-items: flex-start;\n        margin-bottom: 16px;\n    }\n\n    .cuttalo-chatonly-typing .cuttalo-chatonly-message-avatar {\n        animation: pulse 2s ease-in-out infinite;\n    }\n\n    @keyframes pulse {\n        0%, 100% { opacity: 1; }\n        50% { opacity: 0.5; }\n    }\n\n    .cuttalo-chatonly-typing-wrapper {\n        padding: 14px 18px;\n        background: #5fd36c15;\n        border-radius: 12px;\n        border-bottom-left-radius: 4px;\n        display: flex;\n        flex-direction: column;\n        gap: 8px;\n        max-width: 250px;\n    }\n\n    .cuttalo-chatonly-typing-dots {\n        display: flex;\n        gap: 4px;\n    }\n\n    .cuttalo-chatonly-typing-dots span {\n        width: 8px;\n        height: 8px;\n        border-radius: 50%;\n        background: #5fd36c;\n        animation: typing-bounce 1.4s infinite ease-in-out;\n    }\n\n    .cuttalo-chatonly-typing-dots span:nth-child(1) { animation-delay: 0s; }\n    .cuttalo-chatonly-typing-dots span:nth-child(2) { animation-delay: 0.2s; }\n    .cuttalo-chatonly-typing-dots span:nth-child(3) { animation-delay: 0.4s; }\n\n    @keyframes typing-bounce {\n        0%, 60%, 100% { transform: translateY(0); }\n        30% { transform: translateY(-8px); }\n    }\n\n    .cuttalo-chatonly-typing-text {\n        font-size: 12px;\n        color: #666;\n        font-style: italic;\n    }\n\n    .cuttalo-chatonly-typing-progress {\n        width: 100%;\n        height: 3px;\n        background: #E9ECEF;\n        border-radius: 2px;\n        overflow: hidden;\n    }\n\n    .cuttalo-chatonly-typing-progress-bar {\n        height: 100%;\n        background: linear-gradient(90deg, #5fd36c, #5fd36cdd);\n        border-radius: 2px;\n        animation: progressGrow 12s ease-out forwards;\n    }\n\n    @keyframes progressGrow {\n        from { width: 0%; }\n        to { width: 90%; }\n    }\n    <\/style>\n\n    <div class=\"cuttalo-chatonly-container collapsed\" data-post-id=\"159282\">\n        <!-- Header con titolo e pulsante toggle -->\n        <div class=\"cuttalo-chatonly-header\">\n            <div class=\"cuttalo-chatonly-title\">Hai domande? Chiedimi pure!<\/div>\n            <button class=\"cuttalo-chatonly-toggle\" type=\"button\" aria-label=\"Toggle chat\">\n                <span style=\"font-size: 20px;\">\u25bc<\/span>\n            <\/button>\n        <\/div>\n\n        <!-- Contenuto collassabile (solo conversazione) -->\n        <div class=\"cuttalo-chatonly-content\">\n            <div class=\"cuttalo-chatonly-conversation\" role=\"log\" aria-live=\"polite\" aria-atomic=\"false\"><\/div>\n        <\/div>\n\n        <!-- Chat Form SEMPRE VISIBILE (fuori dal collassabile) -->\n        <div class=\"cuttalo-chatonly-chat-form\">\n            <div class=\"cuttalo-chatonly-input-wrapper\">\n                <textarea\n                    class=\"cuttalo-chatonly-chat-input\"\n                    placeholder=\"Scrivi la tua domanda...\"\n                    aria-label=\"Message\"\n                    rows=\"1\"\n                    maxlength=\"500\"><\/textarea>\n                <span class=\"cuttalo-chatonly-char-counter\" aria-live=\"polite\">\n                    <span class=\"cuttalo-chatonly-char-current\">0<\/span>\/<span class=\"cuttalo-chatonly-char-max\">500<\/span>\n                <\/span>\n            <\/div>\n            <div class=\"cuttalo-chatonly-buttons\">\n                <button class=\"cuttalo-chatonly-chat-send\" type=\"button\" disabled>\n                    <span style=\"font-size: 16px;\">\ud83e\udd16<\/span>\n                    Chiedi all&#039;AI                <\/button>\n                <button class=\"cuttalo-chatonly-contact-btn\" type=\"button\">\n                    <span style=\"font-size: 16px;\">\ud83d\udc64<\/span>\n                    Chiedi a un esperto                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    (function() {\n        const container = document.querySelector('.cuttalo-chatonly-container[data-post-id=\"159282\"]');\n        if (!container) return;\n\n        const input = container.querySelector('.cuttalo-chatonly-chat-input');\n        const sendBtn = container.querySelector('.cuttalo-chatonly-chat-send');\n        const contactBtn = container.querySelector('.cuttalo-chatonly-contact-btn');\n        const conversation = container.querySelector('.cuttalo-chatonly-conversation');\n        const charCurrent = container.querySelector('.cuttalo-chatonly-char-current');\n        const charCounter = container.querySelector('.cuttalo-chatonly-char-counter');\n        const toggleBtn = container.querySelector('.cuttalo-chatonly-toggle');\n        const header = container.querySelector('.cuttalo-chatonly-header');\n\n        \/\/ Info utente loggato\n        const isLoggedIn = false;\n        const loggedInEmail = '';\n        const loggedInUserId = 0;\n\n        \/\/ Gestione session_id e user_email\n        let sessionId = localStorage.getItem('cuttalo_chatonly_session_id');\n        if (!sessionId) {\n            sessionId = 'session_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);\n            localStorage.setItem('cuttalo_chatonly_session_id', sessionId);\n        }\n\n        \/\/ Se loggato, usa email dell'account\n        let userEmail = isLoggedIn ? loggedInEmail : (localStorage.getItem('cuttalo_chatonly_user_email') || '');\n        let emailRequired = false; \/\/ Blocca chat se email richiesta ma non fornita (solo per non loggati)\n        let messageCount = 0;\n        let typingStartTime = 0;\n\n        \/\/ Toggle collapsible\n        function toggleChat() {\n            container.classList.toggle('collapsed');\n            const isCollapsed = container.classList.contains('collapsed');\n            localStorage.setItem('cuttalo_chatonly_collapsed', isCollapsed ? '1' : '0');\n        }\n\n        toggleBtn.addEventListener('click', function(e) {\n            e.stopPropagation();\n            toggleChat();\n        });\n\n        header.addEventListener('click', function(e) {\n            if (e.target !== toggleBtn && !toggleBtn.contains(e.target)) {\n                toggleChat();\n            }\n        });\n\n        \/\/ Ripristina stato collassato\n        const savedCollapsed = localStorage.getItem('cuttalo_chatonly_collapsed');\n        if (savedCollapsed === '0') {\n            container.classList.remove('collapsed');\n        }\n\n        \/\/ Update character counter\n        function updateCharCounter() {\n            const current = input.value.length;\n            const max = input.getAttribute('maxlength') || 500;\n            charCurrent.textContent = current;\n\n            if (current >= max * 0.9) {\n                charCounter.classList.add('warning');\n            } else {\n                charCounter.classList.remove('warning');\n            }\n\n            \/\/ Update send button state\n            sendBtn.disabled = current === 0;\n        }\n\n        \/\/ Event listeners for textarea\n        input.addEventListener('input', updateCharCounter);\n\n        input.addEventListener('keydown', function(e) {\n            if (e.key === 'Enter' && !e.shiftKey) {\n                e.preventDefault();\n                if (input.value.trim()) {\n                    sendMessage();\n                }\n            }\n        });\n\n        \/\/ Carica conversazione storica\n        loadConversationHistory();\n\n        \/\/ Send message\n        sendBtn.addEventListener('click', sendMessage);\n\n        \/\/ Contact button - save message and redirect\n        contactBtn.addEventListener('click', function() {\n            const message = input.value.trim();\n            if (message) {\n                \/\/ Save message to localStorage\n                localStorage.setItem('cuttalo_contact_prefill', message);\n            }\n            \/\/ Redirect to contact page\n            window.location.href = 'https:\/\/www.cuttalo.com\/en\/contatti\/';\n        });\n\n        function sendMessage() {\n            \/\/ Blocca se email richiesta ma non fornita\n            if (emailRequired) {\n                addMessage('Per continuare a utilizzare l\\'assistente \u00e8 necessario fornire un indirizzo email valido.', 'bot');\n                return;\n            }\n\n            const message = input.value.trim();\n            if (!message) return;\n\n            \/\/ Verifica se il box \u00e8 chiuso\n            const wasCollapsed = container.classList.contains('collapsed');\n\n            \/\/ Apri il box se \u00e8 chiuso\n            if (wasCollapsed) {\n                container.classList.remove('collapsed');\n                localStorage.setItem('cuttalo_chatonly_collapsed', '0');\n            }\n\n            \/\/ Incrementa contatore messaggi\n            messageCount++;\n\n            \/\/ Add user message\n            addMessage(message, 'user');\n\n            \/\/ Clear input\n            input.value = '';\n            updateCharCounter();\n\n            \/\/ Show typing indicator (con delay se il box era chiuso per dare tempo alla transizione CSS)\n            if (wasCollapsed) {\n                setTimeout(() => {\n                    showTyping();\n                    console.log('Typing mostrato dopo apertura box');\n                }, 400);\n            } else {\n                showTyping();\n                console.log('Typing mostrato immediatamente');\n            }\n\n            \/\/ Richiedi email al secondo messaggio se non loggato\n            if (messageCount === 2 && !userEmail && !isLoggedIn) {\n                requestEmail();\n            }\n\n            \/\/ Send AJAX request\n            const postId = container.getAttribute('data-post-id') || '0';\n\n            fetch('https:\/\/www.cuttalo.com\/wp-admin\/admin-ajax.php', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/x-www-form-urlencoded',\n                },\n                body: new URLSearchParams({\n                    action: 'cuttalo_ai25_continue_chat',\n                    post_id: postId,\n                    message: message,\n                    session_id: sessionId,\n                    user_email: userEmail\n                })\n            })\n            .then(response => response.json())\n            .then(data => {\n                hideTyping();\n\n                if (data.success) {\n                    addMessage(data.data.response, 'bot');\n                } else {\n                    addMessage(data.data.message || 'Errore nella risposta', 'bot');\n                }\n            })\n            .catch(error => {\n                hideTyping();\n                addMessage('Si \u00e8 verificato un errore. Riprova.', 'bot');\n                console.error('Error:', error);\n            });\n        }\n\n        function addMessage(text, type) {\n            const messageDiv = document.createElement('div');\n            messageDiv.className = 'cuttalo-chatonly-message cuttalo-chatonly-message-' + type;\n\n            const avatar = document.createElement('div');\n            avatar.className = 'cuttalo-chatonly-message-avatar';\n            avatar.innerHTML = type === 'bot' ? getBotAvatarSVG() : getUserAvatarSVG();\n\n            const content = document.createElement('div');\n            content.className = 'cuttalo-chatonly-message-content';\n\n            const textDiv = document.createElement('div');\n            textDiv.className = 'cuttalo-chatonly-message-text';\n            textDiv.innerHTML = type === 'bot' ? text : escapeHtml(text);\n\n            const time = document.createElement('time');\n            time.className = 'cuttalo-chatonly-message-time';\n            time.textContent = getFormattedTime();\n\n            content.appendChild(textDiv);\n            content.appendChild(time);\n\n            if (type === 'bot') {\n                messageDiv.appendChild(avatar);\n                messageDiv.appendChild(content);\n            } else {\n                messageDiv.appendChild(content);\n                messageDiv.appendChild(avatar);\n            }\n\n            conversation.appendChild(messageDiv);\n            scrollToBottom();\n        }\n\n        function showTyping() {\n            \/\/ Registra quando il typing viene mostrato\n            typingStartTime = Date.now();\n\n            \/\/ Rimuovi typing esistente se presente\n            const existingTyping = document.getElementById('chatonly-typing-indicator');\n            if (existingTyping) {\n                existingTyping.remove();\n            }\n\n            const typing = document.createElement('div');\n            typing.className = 'cuttalo-chatonly-typing';\n            typing.id = 'chatonly-typing-indicator';\n            typing.style.display = 'flex'; \/\/ Forza display\n\n            const avatar = document.createElement('div');\n            avatar.className = 'cuttalo-chatonly-message-avatar';\n            avatar.innerHTML = getBotAvatarSVG();\n\n            const wrapper = document.createElement('div');\n            wrapper.className = 'cuttalo-chatonly-typing-wrapper';\n\n            const dots = document.createElement('div');\n            dots.className = 'cuttalo-chatonly-typing-dots';\n            dots.innerHTML = '<span><\/span><span><\/span><span><\/span>';\n\n            const text = document.createElement('div');\n            text.className = 'cuttalo-chatonly-typing-text';\n            text.textContent = 'Sto elaborando...';\n\n            const progress = document.createElement('div');\n            progress.className = 'cuttalo-chatonly-typing-progress';\n            const progressBar = document.createElement('div');\n            progressBar.className = 'cuttalo-chatonly-typing-progress-bar';\n            progress.appendChild(progressBar);\n\n            wrapper.appendChild(dots);\n            wrapper.appendChild(text);\n            wrapper.appendChild(progress);\n\n            typing.appendChild(avatar);\n            typing.appendChild(wrapper);\n\n            conversation.appendChild(typing);\n\n            \/\/ Scroll forzato con timeout per dare tempo al browser di renderizzare\n            setTimeout(() => {\n                conversation.scrollTop = conversation.scrollHeight;\n            }, 50);\n        }\n\n        function hideTyping() {\n            \/\/ Calcola quanto tempo \u00e8 passato da quando il typing \u00e8 stato mostrato\n            const elapsed = Date.now() - typingStartTime;\n            const minDisplayTime = 600; \/\/ minimo 600ms di visualizzazione\n\n            const doHide = () => {\n                const typing = document.getElementById('chatonly-typing-indicator');\n                if (typing) {\n                    typing.remove();\n                }\n            };\n\n            \/\/ Se \u00e8 passato meno del tempo minimo, aspetta prima di nascondere\n            if (elapsed < minDisplayTime) {\n                setTimeout(doHide, minDisplayTime - elapsed);\n            } else {\n                doHide();\n            }\n        }\n\n        function scrollToBottom() {\n            conversation.scrollTop = conversation.scrollHeight;\n        }\n\n        function getBotAvatarSVG() {\n            return '<span style=\"font-size: 32px;\">\ud83e\udd16<\/span>';\n        }\n\n        function getUserAvatarSVG() {\n            return '<span style=\"font-size: 32px;\">\ud83d\udc64<\/span>';\n        }\n\n        function escapeHtml(text) {\n            const div = document.createElement('div');\n            div.textContent = text;\n            return div.innerHTML;\n        }\n\n        function getFormattedTime() {\n            const now = new Date();\n            const hours = String(now.getHours()).padStart(2, '0');\n            const minutes = String(now.getMinutes()).padStart(2, '0');\n            return hours + ':' + minutes;\n        }\n\n        function requestEmail() {\n            \/\/ Crea overlay\n            const overlay = document.createElement('div');\n            overlay.className = 'cuttalo-chatonly-email-overlay';\n\n            \/\/ Crea modal\n            const modal = document.createElement('div');\n            modal.className = 'cuttalo-chatonly-email-modal';\n\n            modal.innerHTML = `\n                <div class=\"cuttalo-chatonly-email-header\">\n                    <div class=\"cuttalo-chatonly-email-icon\">\n                        <span style=\"font-size: 28px;\">\ud83d\udce7<\/span>\n                    <\/div>\n                    <div>\n                        <h3 class=\"cuttalo-chatonly-email-title\">Inserisci la tua email<\/h3>\n                    <\/div>\n                <\/div>\n                <p class=\"cuttalo-chatonly-email-subtitle\">Per continuare la conversazione e ricevere le risposte, abbiamo bisogno del tuo indirizzo email.<\/p>\n                <input type=\"email\" class=\"cuttalo-chatonly-email-input\" placeholder=\"tuo@email.com\" autocomplete=\"email\" \/>\n                <div class=\"cuttalo-chatonly-email-error\">Inserisci un indirizzo email valido<\/div>\n                <div class=\"cuttalo-chatonly-email-actions\">\n                    <button class=\"cuttalo-chatonly-email-btn cuttalo-chatonly-email-btn-secondary\" data-action=\"skip\">\n                        Salta\n                    <\/button>\n                    <button class=\"cuttalo-chatonly-email-btn cuttalo-chatonly-email-btn-primary\" data-action=\"submit\">\n                        Continua\n                    <\/button>\n                <\/div>\n            `;\n\n            overlay.appendChild(modal);\n            document.body.appendChild(overlay);\n\n            const emailInput = modal.querySelector('.cuttalo-chatonly-email-input');\n            const errorMsg = modal.querySelector('.cuttalo-chatonly-email-error');\n            const submitBtn = modal.querySelector('[data-action=\"submit\"]');\n            const skipBtn = modal.querySelector('[data-action=\"skip\"]');\n\n            \/\/ Focus sull'input\n            setTimeout(() => emailInput.focus(), 100);\n\n            \/\/ Validazione email\n            function validateEmail(email) {\n                return email && email.includes('@') && email.includes('.');\n            }\n\n            \/\/ Submit\n            submitBtn.addEventListener('click', () => {\n                const email = emailInput.value.trim();\n                if (validateEmail(email)) {\n                    userEmail = email;\n                    localStorage.setItem('cuttalo_chatonly_user_email', email);\n                    overlay.remove();\n                } else {\n                    errorMsg.classList.add('show');\n                    emailInput.focus();\n                }\n            });\n\n            \/\/ Enter key\n            emailInput.addEventListener('keydown', (e) => {\n                if (e.key === 'Enter') {\n                    submitBtn.click();\n                }\n            });\n\n            \/\/ Remove error on input\n            emailInput.addEventListener('input', () => {\n                errorMsg.classList.remove('show');\n            });\n\n            \/\/ Skip - blocca la chat\n            skipBtn.addEventListener('click', () => {\n                overlay.remove();\n                emailRequired = true;\n                addMessage('Per continuare a utilizzare l\\'assistente \u00e8 necessario fornire un indirizzo email valido. Ricarica la pagina per riprovare.', 'bot');\n                input.disabled = true;\n                sendBtn.disabled = true;\n            });\n\n            \/\/ Click fuori per chiudere - blocca la chat\n            overlay.addEventListener('click', (e) => {\n                if (e.target === overlay) {\n                    overlay.remove();\n                    emailRequired = true;\n                    addMessage('Per continuare a utilizzare l\\'assistente \u00e8 necessario fornire un indirizzo email valido. Ricarica la pagina per riprovare.', 'bot');\n                    input.disabled = true;\n                    sendBtn.disabled = true;\n                }\n            });\n        }\n\n        function loadConversationHistory() {\n            fetch('https:\/\/www.cuttalo.com\/wp-admin\/admin-ajax.php', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/x-www-form-urlencoded',\n                },\n                body: new URLSearchParams({\n                    action: 'cuttalo_ai25_get_history',\n                    session_id: sessionId\n                })\n            })\n            .then(response => response.json())\n            .then(data => {\n                if (data.success && data.data.messages && data.data.messages.length > 0) {\n                    \/\/ Carica messaggi storici\n                    data.data.messages.forEach(msg => {\n                        addMessage(msg.content, msg.type === 'user' ? 'user' : 'bot');\n                        messageCount++;\n                    });\n                }\n            })\n            .catch(error => {\n                console.error('Error loading history:', error);\n            });\n        }\n    })();\n    <\/script>\n        <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n            <\/div>\n<!--\/themify_builder_content--><\/div>\n<\/div>\n<!-- \/module template_part -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-css_id=\"3rra355\" data-lazy=\"1\" class=\"module_row themify_builder_row fullwidth tb_3rra355 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_ns6a355 first\">\n                    <!-- module template_part -->\n<div  class=\"module module-layout-part tb_c5hp355 \">\n    <div class=\"tb_layout_part_wrap tf_w\"><!--themify_builder_content-->\n    <div  class=\"themify_builder_content themify_builder_content-62689 themify_builder not_editable_builder in_the_loop\" data-postid=\"62689\">\n                        <div  data-css_id=\"exi9406\" data-lazy=\"1\" class=\"module_row themify_builder_row fullwidth_row_container tb_exi9406 tf_w\">\n            <span class=\"tb_row_frame_wrap tf_overflow tf_abs\" data-lazy=\"1\"><span class=\"tb_row_frame tb_row_frame_bottom  tf_abs tf_hide tf_overflow tf_w\"><\/span><\/span>            <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_9g0o406 first\">\n                            <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_middle gutter-none tb_col_count_3 tb_kss5406\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col3-1 tb_pi72406 first\">\n                    <!-- module image -->\n<div  class=\"module module-image tb_nplp406 image-center   tf_mw hide-mobile\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-200x200.jpg\" width=\"200\" height=\"200\" class=\"wp-post-image wp-image-62095\" title=\"Progetto 2d taglio laser\" alt=\"TAGLIO LASER online\" srcset=\"https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-200x200.jpg 200w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-300x300.jpg 300w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-100x100.jpg 100w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-600x600.jpg 600w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-150x150.jpg 150w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-768x768.jpg 768w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser-47x48.jpg 47w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/progetto-taglio-laser.jpg 842w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <\/div>\n                    <div  data-lazy=\"1\" class=\"module_column sub_column col3-1 tb_51ka406\">\n                    <!-- module text -->\n<div  class=\"module module-text tb_7opb406   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: center;\">Do you have a project to laser cut?<\/h3>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_1y24406   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4 style=\"text-align: center;\">ONLINE LASER CUTTING AND ENGRAVING SERVICE FROM FILE<\/h4>\n<p style=\"text-align: center;\">You will immediately be able to see\u00a0Preview, Dimensions, Materials, Costs and Delivery Times.<\/p>    <\/div>\n<\/div>\n<!-- \/module text -->        <\/div>\n                    <div  data-lazy=\"1\" class=\"module_column sub_column col3-1 tb_h9zn406 last\">\n                    <!-- module image -->\n<div  class=\"module module-image tb_fs46406 image-center   tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-200x200.jpg\" width=\"200\" height=\"200\" class=\"wp-post-image wp-image-61560\" title=\"costo del taglio laser\" alt=\"TAGLIO LASER legno\" srcset=\"https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-200x200.jpg 200w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-300x300.jpg 300w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-100x100.jpg 100w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-150x150.jpg 150w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-350x350.jpg 350w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-47x48.jpg 47w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-250x250.jpg 250w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser-600x600.jpg 600w, https:\/\/www.cuttalo.com\/wp-content\/uploads\/2022\/03\/costo-del-taglio-laser.jpg 400w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <\/div>\n                    <\/div>\n                <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_r9js406\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_sm21406 first\">\n                    <!-- module buttons -->\n<div  class=\"module module-buttons tb_296n406 buttons-horizontal outline  large circle buttons-fullwidth tb_gs285715ec\" data-lazy=\"1\">\n        <div class=\"module-buttons-item tf_in_flx\">\n                        <a href=\"https:\/\/www.cuttalo.com\/en\/tools-customization\/laser-cutting-engraving-online\/\" class=\"ui builder_button tf_in_flx tb_default_color\" >\n                                                Upload YOUR VECTOR file                                        <\/a>\n                <\/div>\n            <\/div>\n<!-- \/module buttons -->\n        <\/div>\n                    <\/div>\n                <\/div>\n                        <\/div>\n        <\/div>\n            <\/div>\n<!--\/themify_builder_content--><\/div>\n<\/div>\n<!-- \/module template_part -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-css_id=\"ku57510\" data-lazy=\"1\" class=\"module_row themify_builder_row fullwidth tb_ku57510 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_tmje510 first\">\n                            <\/div>\n                        <\/div>\n        <\/div>\n        <\/div>\n<!--\/themify_builder_content-->","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-159282","page","type-page","status-publish","hentry","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"_links":{"self":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/comments?post=159282"}],"version-history":[{"count":10,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159282\/revisions"}],"predecessor-version":[{"id":160960,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159282\/revisions\/160960"}],"wp:attachment":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/media?parent=159282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}