{"id":16244,"date":"2026-04-20T13:35:21","date_gmt":"2026-04-20T13:35:21","guid":{"rendered":"https:\/\/palmieri.w3d.it\/ai-assistant\/"},"modified":"2026-09-28T10:33:57","modified_gmt":"2026-09-28T10:33:57","slug":"ai-assistant","status":"publish","type":"page","link":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/","title":{"rendered":"AI Assistant"},"content":{"rendered":"<div>Technische Ressourcen<\/div>\n<h1>A.I. <span class=\"uk-text-stroke\">A<\/span>ssistant<\/h1>\n<div>\n<p>Haben Sie eine Frage zu den Materialien, den Produktionsprozessen oder den Dienstleistungen von Fonderie Palmieri? <br \/>Unser <strong>KI-Assistent<\/strong> steht Ihnen rund um die Uhr zur Verf\u00fcgung, um in Echtzeit zu antworten, ohne Wartezeit. <br \/>Er kennt die gesamte Palette der produzierten Gusseisensorten, die Anwendungsbereiche, die Zertifizierungen und die angebotenen Dienstleistungen &#8211; und wenn Sie direkt mit unserem Team sprechen m\u00f6chten, verweist er Sie an den richtigen Ansprechpartner.<\/p>\n<\/div>\n<hr>\n<div>        <div id=\"atp-17015-6abd04217ddc1\" \n             class=\"atp-container atp-theme-custom atp-effect-typing atp-bg-transparent atp-has-particles\"\n             data-phrases='[&quot;Welcome to Fonderie Palmieri!&quot;,&quot;Ask us anything, we&#039;ll answer right away!&quot;]'\n             data-settings='{&quot;effect&quot;:&quot;typing&quot;,&quot;speed&quot;:100,&quot;pause&quot;:2000,&quot;loop&quot;:&quot;yes&quot;,&quot;keep_last&quot;:&quot;yes&quot;,&quot;cursor&quot;:&quot;yes&quot;,&quot;cursor_char&quot;:&quot;|&quot;,&quot;particles&quot;:&quot;yes&quot;,&quot;particles_type&quot;:&quot;dots&quot;,&quot;particle_color&quot;:&quot;#d34817&quot;}'\n             data-colors='{&quot;primary&quot;:&quot;#d34817&quot;,&quot;secondary&quot;:&quot;#d34817&quot;,&quot;accent&quot;:&quot;#d34817&quot;}'\n             data-text-color='{&quot;type&quot;:&quot;solid&quot;,&quot;color&quot;:&quot;#37454b&quot;}'\n             style=\"--atp-font-size:32px;--atp-font-weight:700;--atp-text-align:center;--atp-color-primary:#d34817;--atp-color-secondary:#d34817;--atp-color-accent:#d34817;\">\n                        <canvas class=\"atp-particles-canvas\" data-type=\"dots\" data-color=\"#d34817\"><\/canvas>\n                        <div class=\"atp-text-wrapper\">\n                <span class=\"atp-text \"><\/span>\n                                <span class=\"atp-cursor\" style=\"opacity:0;\">|<\/span>\n                            <\/div>\n        <\/div>\n                <\/div>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/AI-ASSISTANT_img.svg\" alt=\"\"><\/p>\n<div>\n<div class=\"ai-searchbar-container\" \n     data-hide-floating=\"true\"\n     data-theme=\"light\"\n     data-layout=\"input-bottom\"\n     data-scroll-offset=\"20\"\n     data-privacy-enabled=\"true\"\n     style=\"--ai-primary-color: #d34817; --searchbar-width: 100%; --searchbar-max-width: 700px;\">\n    \n    <!-- Privacy Notice -->\n        <div class=\"ai-searchbar-privacy\" style=\"display: none;\">\n        <div class=\"ai-searchbar-privacy-content\">\n            <p>\n                Dieser Chat nutzt k\u00fcnstliche Intelligenz. Nachrichten werden von externen Diensten (Google Gemini, Groq, OpenAI) verarbeitet und k\u00f6nnen zur Verbesserung des Dienstes gespeichert werden. Geben Sie keine sensiblen personenbezogenen Daten ein. Indem Sie fortfahren, akzeptieren Sie unsere                                    <a href=\"https:\/\/www.fonderiepalmieri.it\/dichiarazione-sulla-privacy-ue\/\" target=\"_blank\" rel=\"noopener noreferrer\">Datenschutzerkl\u00e4rung<\/a>\n                            <\/p>\n            <button type=\"button\" class=\"ai-searchbar-privacy-accept\">\n                Akzeptieren und fortfahren            <\/button>\n        <\/div>\n    <\/div>\n        \n    <!-- Particles Background -->\n    <div class=\"ai-searchbar-particles\">\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n        <div class=\"particle\"><\/div>\n    <\/div>\n    \n    <!-- Main Searchbar -->\n    <div class=\"ai-searchbar-wrapper\">\n        <div class=\"ai-searchbar\">\n            <div class=\"ai-searchbar-icon\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2z\"><\/path>\n                    <path d=\"M12 8v4M12 16h.01\"><\/path>\n                <\/svg>\n                <div class=\"ai-searchbar-icon-glow\"><\/div>\n            <\/div>\n            <input type=\"text\" \n                   class=\"ai-searchbar-input\" \n                   placeholder=\"Wie kann ich Ihnen heute helfen?\"\n                   autocomplete=\"off\">\n            <button type=\"button\" class=\"ai-searchbar-submit\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"><\/line>\n                    <polygon points=\"22 2 15 22 11 13 2 9 22 2\"><\/polygon>\n                <\/svg>\n            <\/button>\n        <\/div>\n        \n        <!-- Typing indicator -->\n        <div class=\"ai-searchbar-typing\" style=\"display: none;\">\n            <div class=\"typing-dots\">\n                <span><\/span><span><\/span><span><\/span>\n            <\/div>\n            <span class=\"typing-text\">Sto pensando...<\/span>\n        <\/div>\n        \n        <!-- Suggerimenti -->\n                <div class=\"ai-searchbar-suggestions\">\n                                            <button type=\"button\" class=\"ai-searchbar-suggestion\" data-question=\"Ich m\u00f6chte wissen, welche Gusseisenmaterialien Sie mir liefern k\u00f6nnen.\">\n                    Ich m\u00f6chte wissen, welche Gusseisenmaterialien Sie mir liefern k\u00f6nnen.                <\/button>\n                                                            <button type=\"button\" class=\"ai-searchbar-suggestion\" data-question=\"Ich m\u00f6chte ein Angebot f\u00fcr mein Projekt.\">\n                    Ich m\u00f6chte ein Angebot f\u00fcr mein Projekt.                <\/button>\n                                    <\/div>\n            <\/div>\n    \n    <!-- Response Area -->\n    <div class=\"ai-searchbar-response\" style=\"display: none;\">\n        <div class=\"ai-searchbar-question-display\">\n            <div class=\"ai-searchbar-question-label\">Hai chiesto:<\/div>\n            <div class=\"ai-searchbar-question-text\"><\/div>\n        <\/div>\n        <div class=\"ai-searchbar-response-header\">\n            <div class=\"ai-searchbar-response-avatar\">\n                <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                    <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\/>\n                <\/svg>\n            <\/div>\n            <span class=\"ai-searchbar-response-title\">Risposta<\/span>\n            <button type=\"button\" class=\"ai-searchbar-close\" title=\"Chiudi\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n                    <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n                <\/svg>\n            <\/button>\n        <\/div>\n        <div class=\"ai-searchbar-response-content\"><\/div>\n        <div class=\"ai-searchbar-response-footer\">\n            <button type=\"button\" class=\"ai-searchbar-restart\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <polyline points=\"1 4 1 10 7 10\"><\/polyline>\n                    <path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"><\/path>\n                <\/svg>\n                Ricomincia da capo            <\/button>\n            <button type=\"button\" class=\"ai-searchbar-history\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <path d=\"M12 8v4l3 3\"><\/path>\n                    <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\n                <\/svg>\n                Cronologia            <\/button>\n            <button type=\"button\" class=\"ai-searchbar-download\">\n                <svg 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                Scarica            <\/button>\n        <\/div>\n    <\/div>\n    \n    <!-- History Modal -->\n    <div class=\"ai-searchbar-history-modal\" style=\"display: none;\">\n        <div class=\"ai-searchbar-history-header\">\n            <h4>Cronologia conversazione<\/h4>\n            <button type=\"button\" class=\"ai-searchbar-history-close\">&times;<\/button>\n        <\/div>\n        <div class=\"ai-searchbar-history-content\"><\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* Searchbar Container *\/\n\/* Searchbar Container *\/\n.ai-searchbar-container {\n    position: relative;\n    width: var(--searchbar-width, calc(100% - 40px));\n    max-width: var(--searchbar-max-width, 700px);\n    margin: 0 auto;\n    padding: 40px 20px;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n}\n\n\/* Layout: Input Bottom (risposta sopra, input sotto) *\/\n.ai-searchbar-container[data-layout=\"input-bottom\"] {\n    display: flex !important;\n    flex-direction: column !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-particles {\n    position: absolute !important;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    pointer-events: none;\n    order: 0 !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-privacy {\n    order: 1 !important;\n    margin-bottom: 20px;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-response {\n    order: 2 !important;\n    margin-top: 0 !important;\n    margin-bottom: 20px !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-wrapper {\n    order: 3 !important;\n    position: relative;\n    z-index: 2;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-history-modal {\n    order: 4 !important;\n}\n\n\/* Privacy Notice *\/\n.ai-searchbar-privacy {\n    position: relative;\n    z-index: 2;\n    margin-bottom: 20px;\n}\n\n.ai-searchbar-privacy-content {\n    background: #fff;\n    border-radius: 16px;\n    padding: 20px;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n    text-align: center;\n}\n\n.ai-searchbar-privacy-content p {\n    font-size: 14px;\n    color: #666;\n    line-height: 1.6;\n    margin: 0 0 15px 0;\n}\n\n.ai-searchbar-privacy-content a {\n    color: var(--ai-primary-color);\n    text-decoration: underline;\n}\n\n.ai-searchbar-privacy-accept {\n    background: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n    color: #fff;\n    border: none;\n    padding: 12px 30px;\n    border-radius: 25px;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.ai-searchbar-privacy-accept:hover {\n    transform: scale(1.05);\n    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-privacy-content {\n    background: #1a1a2e;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-privacy-content p {\n    color: #aaa;\n}\n\n\/* Particles *\/\n.ai-searchbar-particles {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    overflow: hidden;\n    pointer-events: none;\n    z-index: 0;\n}\n\n.ai-searchbar-particles .particle {\n    position: absolute;\n    width: 6px;\n    height: 6px;\n    background: var(--ai-primary-color);\n    border-radius: 50%;\n    opacity: 0;\n    animation: particle-float 4s ease-in-out infinite;\n}\n\n.ai-searchbar-particles .particle:nth-child(1) { left: 10%; top: 20%; animation-delay: 0s; }\n.ai-searchbar-particles .particle:nth-child(2) { left: 20%; top: 80%; animation-delay: 0.5s; }\n.ai-searchbar-particles .particle:nth-child(3) { left: 40%; top: 10%; animation-delay: 1s; }\n.ai-searchbar-particles .particle:nth-child(4) { left: 60%; top: 90%; animation-delay: 1.5s; }\n.ai-searchbar-particles .particle:nth-child(5) { left: 80%; top: 30%; animation-delay: 2s; }\n.ai-searchbar-particles .particle:nth-child(6) { left: 90%; top: 70%; animation-delay: 2.5s; }\n.ai-searchbar-particles .particle:nth-child(7) { left: 30%; top: 50%; animation-delay: 3s; }\n.ai-searchbar-particles .particle:nth-child(8) { left: 70%; top: 50%; animation-delay: 3.5s; }\n\n@keyframes particle-float {\n    0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }\n    25% { opacity: 0.4; }\n    50% { opacity: 0.2; transform: translateY(-20px) scale(1); }\n    75% { opacity: 0.4; }\n}\n\n\/* Searchbar Wrapper *\/\n.ai-searchbar-wrapper {\n    position: relative;\n    z-index: 1;\n}\n\n\/* Main Searchbar *\/\n.ai-searchbar {\n    display: flex;\n    align-items: center;\n    background: #fff;\n    border-radius: 50px;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05);\n    padding: 8px 8px 8px 20px;\n    transition: all 0.3s ease;\n}\n\n.ai-searchbar:hover {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15), 0 0 0 1px var(--ai-primary-color);\n}\n\n.ai-searchbar:focus-within {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15), 0 0 0 2px var(--ai-primary-color);\n}\n\n\/* Icon *\/\n.ai-searchbar-icon {\n    position: relative;\n    flex-shrink: 0;\n    width: 28px;\n    height: 28px;\n    margin-right: 15px;\n    color: var(--ai-primary-color);\n}\n\n.ai-searchbar-icon svg {\n    width: 100%;\n    height: 100%;\n}\n\n.ai-searchbar-icon-glow {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 40px;\n    height: 40px;\n    background: var(--ai-primary-color);\n    border-radius: 50%;\n    transform: translate(-50%, -50%);\n    opacity: 0;\n    filter: blur(10px);\n    animation: icon-pulse 2s ease-in-out infinite;\n}\n\n@keyframes icon-pulse {\n    0%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }\n    50% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); }\n}\n\n\/* Input *\/\n.ai-searchbar-input {\n    flex: 1;\n    border: none;\n    background: transparent;\n    font-size: 16px;\n    padding: 12px 20px 12px 0;\n    outline: none;\n    color: #333;\n}\n\n.ai-searchbar-input::placeholder {\n    color: #999;\n}\n\n\/* Submit Button *\/\n.ai-searchbar-submit {\n    flex-shrink: 0;\n    width: 48px;\n    height: 48px;\n    border: none;\n    border-radius: 50%;\n    background: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n    color: #fff;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: all 0.3s ease;\n}\n\n.ai-searchbar-submit svg {\n    width: 20px;\n    height: 20px;\n}\n\n.ai-searchbar-submit:hover {\n    transform: scale(1.05);\n    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-submit:active {\n    transform: scale(0.95);\n}\n\n.ai-searchbar-submit:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n    transform: none;\n}\n\n\/* Typing Indicator *\/\n.ai-searchbar-typing {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 15px;\n    color: #666;\n    font-size: 14px;\n}\n\n.typing-dots {\n    display: flex;\n    gap: 4px;\n    margin-right: 10px;\n}\n\n.typing-dots span {\n    width: 8px;\n    height: 8px;\n    background: var(--ai-primary-color);\n    border-radius: 50%;\n    animation: typing-bounce 1.4s ease-in-out infinite;\n}\n\n.typing-dots span:nth-child(2) { animation-delay: 0.2s; }\n.typing-dots span:nth-child(3) { animation-delay: 0.4s; }\n\n@keyframes typing-bounce {\n    0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }\n    30% { transform: translateY(-8px); opacity: 1; }\n}\n\n\/* Suggerimenti *\/\n.ai-searchbar-suggestions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 8px;\n    margin-top: 15px;\n    padding: 0 10px;\n}\n\n.ai-searchbar-suggestion {\n    background: rgba(255, 255, 255, 0.9);\n    border: 1px solid rgba(0, 0, 0, 0.1);\n    padding: 8px 16px;\n    border-radius: 20px;\n    font-size: 13px;\n    color: #333;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    backdrop-filter: blur(10px);\n    white-space: nowrap;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n.ai-searchbar-suggestion:hover {\n    background: var(--ai-primary-color);\n    color: #fff;\n    border-color: var(--ai-primary-color);\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-suggestion {\n    background: rgba(255, 255, 255, 0.1);\n    border-color: rgba(255, 255, 255, 0.2);\n    color: #fff;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-suggestion:hover {\n    background: var(--ai-primary-color);\n    border-color: var(--ai-primary-color);\n}\n\n\/* Nascondi suggerimenti quando c'\u00e8 una risposta *\/\n.ai-searchbar-container.has-response .ai-searchbar-suggestions {\n    display: none;\n}\n\n\/* Response Area *\/\n.ai-searchbar-response {\n    position: relative;\n    z-index: 1;\n    margin-top: 20px;\n    background: #fff;\n    border-radius: 20px;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n    overflow: hidden;\n    animation: response-slide-in 0.4s ease;\n    transition: opacity 0.3s ease, transform 0.3s ease;\n}\n\n.ai-searchbar-response.fade-out {\n    opacity: 0;\n    transform: translateY(-10px) scale(0.98);\n}\n\n@keyframes response-slide-in {\n    from { opacity: 0; transform: translateY(-10px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes response-slide-in-bottom {\n    from { opacity: 0; transform: translateY(10px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-response {\n    animation: response-slide-in-bottom 0.4s ease !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] .ai-searchbar-response.fade-out {\n    opacity: 0;\n    transform: translateY(10px) scale(0.98);\n}\n\n\/* Question Display *\/\n.ai-searchbar-question-display {\n    padding: 15px 20px;\n    background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n    border-bottom: 1px solid #dee2e6;\n}\n\n.ai-searchbar-question-label {\n    font-size: 11px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    color: #6c757d;\n    margin-bottom: 6px;\n    font-weight: 600;\n}\n\n.ai-searchbar-question-text {\n    font-size: 15px;\n    color: #333;\n    line-height: 1.5;\n    font-style: italic;\n}\n\n.ai-searchbar-response-header {\n    display: flex;\n    align-items: center;\n    padding: 15px 20px;\n    background: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n    color: #fff;\n}\n\n.ai-searchbar-response-avatar {\n    width: 32px;\n    height: 32px;\n    background: rgba(255, 255, 255, 0.2);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin-right: 12px;\n}\n\n.ai-searchbar-response-avatar svg {\n    width: 20px;\n    height: 20px;\n}\n\n.ai-searchbar-response-title {\n    flex: 1;\n    font-weight: 600;\n    font-size: 14px;\n}\n\n.ai-searchbar-close {\n    background: rgba(255, 255, 255, 0.2);\n    border: none;\n    border-radius: 50%;\n    width: 32px;\n    height: 32px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    color: #fff;\n    transition: background 0.2s;\n}\n\n.ai-searchbar-close:hover {\n    background: rgba(255, 255, 255, 0.3);\n}\n\n.ai-searchbar-close svg {\n    width: 16px;\n    height: 16px;\n}\n\n.ai-searchbar-response-content {\n    padding: 20px;\n    font-size: 15px;\n    line-height: 1.7;\n    color: #333;\n    max-height: 400px;\n    overflow-y: auto;\n}\n\n.ai-searchbar-response-content p {\n    margin: 0 0 10px 0;\n}\n\n.ai-searchbar-response-content p:last-child {\n    margin-bottom: 0;\n}\n\n.ai-searchbar-response-footer {\n    padding: 15px 20px;\n    border-top: 1px solid #eee;\n    display: flex;\n    justify-content: center;\n    gap: 10px;\n    flex-wrap: wrap;\n}\n\n.ai-searchbar-restart,\n.ai-searchbar-history,\n.ai-searchbar-download {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 10px 16px;\n    background: #f5f5f5;\n    border: none;\n    border-radius: 25px;\n    color: #666;\n    font-size: 13px;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.ai-searchbar-restart:hover,\n.ai-searchbar-history:hover,\n.ai-searchbar-download:hover {\n    background: #eee;\n    color: var(--ai-primary-color);\n}\n\n.ai-searchbar-restart svg,\n.ai-searchbar-history svg,\n.ai-searchbar-download svg {\n    width: 16px;\n    height: 16px;\n}\n\n\/* History Modal *\/\n.ai-searchbar-history-modal {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    width: 90%;\n    max-width: 500px;\n    max-height: 80vh;\n    background: #fff;\n    border-radius: 16px;\n    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);\n    z-index: 100001;\n    overflow: hidden;\n    display: flex;\n    flex-direction: column;\n}\n\n.ai-searchbar-history-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 15px 20px;\n    background: #f5f5f5;\n    border-bottom: 1px solid #eee;\n}\n\n.ai-searchbar-history-header h4 {\n    margin: 0;\n    font-size: 16px;\n    color: #333;\n}\n\n.ai-searchbar-history-close {\n    background: none;\n    border: none;\n    font-size: 24px;\n    color: #999;\n    cursor: pointer;\n    padding: 0;\n    line-height: 1;\n}\n\n.ai-searchbar-history-close:hover {\n    color: #333;\n}\n\n.ai-searchbar-history-content {\n    padding: 20px;\n    overflow-y: auto;\n    flex: 1;\n}\n\n.ai-searchbar-history-item {\n    margin-bottom: 20px;\n    padding-bottom: 20px;\n    border-bottom: 1px solid #eee;\n}\n\n.ai-searchbar-history-item:last-child {\n    margin-bottom: 0;\n    padding-bottom: 0;\n    border-bottom: none;\n}\n\n.ai-searchbar-history-question {\n    background: var(--ai-primary-color);\n    color: #fff;\n    padding: 10px 15px;\n    border-radius: 12px 12px 12px 0;\n    margin-bottom: 10px;\n    font-size: 14px;\n}\n\n.ai-searchbar-history-answer {\n    background: #f5f5f5;\n    color: #333;\n    padding: 10px 15px;\n    border-radius: 12px 12px 0 12px;\n    font-size: 14px;\n    line-height: 1.5;\n}\n\n.ai-searchbar-history-empty {\n    text-align: center;\n    color: #999;\n    padding: 40px 20px;\n}\n\n\/* History Modal Backdrop *\/\n.ai-searchbar-backdrop {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(0, 0, 0, 0.5);\n    z-index: 100000;\n}\n\n\/* Dark Theme *\/\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar {\n    background: #1a1a2e;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-input {\n    color: #fff;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-input::placeholder {\n    color: #888;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response {\n    background: #1a1a2e;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response-content {\n    color: #ddd;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response-footer {\n    border-top-color: #333;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-restart,\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-history,\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-download {\n    background: #2a2a3e;\n    color: #aaa;\n}\n\n\/* Responsive *\/\n@media (max-width: 600px) {\n    .ai-searchbar-container {\n        padding: 20px 15px;\n    }\n    \n    .ai-searchbar {\n        padding: 6px 6px 6px 15px;\n    }\n    \n    .ai-searchbar-input {\n        font-size: 14px;\n        padding: 10px 0;\n    }\n    \n    .ai-searchbar-submit {\n        width: 42px;\n        height: 42px;\n    }\n    \n    .ai-searchbar-icon {\n        width: 22px;\n        height: 22px;\n        margin-right: 10px;\n    }\n    \n    .ai-searchbar-response-footer {\n        gap: 8px;\n    }\n    \n    .ai-searchbar-restart,\n    .ai-searchbar-history,\n    .ai-searchbar-download {\n        padding: 8px 12px;\n        font-size: 12px;\n    }\n}\n\n\/* Pulsante Continua - Risposta Troncata *\/\n.ai-searchbar-continue-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-top: 15px;\n    padding: 10px 20px;\n    background: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 80%, black));\n    color: #fff;\n    border: none;\n    border-radius: 25px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-continue-btn:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);\n}\n\n.ai-searchbar-continue-btn:disabled {\n    opacity: 0.7;\n    cursor: wait;\n    transform: none;\n}\n\n.ai-searchbar-continue-btn::before {\n    content: '\u2192';\n    font-size: 16px;\n}\n\n.ai-searchbar-continue-btn:disabled::before {\n    content: '';\n    width: 14px;\n    height: 14px;\n    border: 2px solid #fff;\n    border-top-color: transparent;\n    border-radius: 50%;\n    animation: searchbarContinueSpin 0.8s linear infinite;\n}\n\n@keyframes searchbarContinueSpin {\n    to {\n        transform: rotate(360deg);\n    }\n}\n<\/style>\n\n<script>\n(function($) {\n    'use strict';\n    \n    \/\/ Fetch nonce fresco (evita problemi con pagine cachate)\n    function fetchFreshNonce() {\n        return $.ajax({\n            url: aiAssistant.ajaxUrl,\n            method: 'POST',\n            data: { action: 'ai_assistant_refresh_nonce' }\n        }).then(function(response) {\n            if (response.success && response.data.nonce) {\n                aiAssistant.nonce = response.data.nonce;\n                return true;\n            }\n            return false;\n        }).catch(function() {\n            return false;\n        });\n    }\n    \n    $(document).ready(function() {\n        var container = $('.ai-searchbar-container');\n        var input = container.find('.ai-searchbar-input');\n        var submitBtn = container.find('.ai-searchbar-submit');\n        var typing = container.find('.ai-searchbar-typing');\n        var response = container.find('.ai-searchbar-response');\n        var responseContent = container.find('.ai-searchbar-response-content');\n        var closeBtn = container.find('.ai-searchbar-close');\n        var restartBtn = container.find('.ai-searchbar-restart');\n        var historyBtn = container.find('.ai-searchbar-history');\n        var downloadBtn = container.find('.ai-searchbar-download');\n        var historyModal = container.find('.ai-searchbar-history-modal');\n        var historyContent = container.find('.ai-searchbar-history-content');\n        var historyCloseBtn = container.find('.ai-searchbar-history-close');\n        var privacyNotice = container.find('.ai-searchbar-privacy');\n        var privacyAcceptBtn = container.find('.ai-searchbar-privacy-accept');\n        \n        var isProcessing = false;\n        var sessionId = '';\n        var chatHistory = [];\n        var pendingQuestion = null;\n        var privacyAccepted = false;\n        var isInputBottom = container.data('layout') === 'input-bottom';\n        var scrollOffset = parseInt(container.data('scroll-offset')) || 20;\n        \n        \/\/ Funzione per smooth scroll (per layout input-bottom)\n        function scrollToTop() {\n            if (isInputBottom) {\n                \/\/ Scrolla all'inizio del container (dove appare la risposta)\n                var targetOffset = container.offset().top - scrollOffset;\n                $('html, body').animate({\n                    scrollTop: Math.max(0, targetOffset)\n                }, 400);\n            }\n        }\n        \n        \/\/ Check privacy consent\n        var privacyEnabled = container.data('privacy-enabled') === true || container.data('privacy-enabled') === 'true';\n        \n        if (privacyEnabled) {\n            var consentData = localStorage.getItem('ai_assistant_privacy_consent');\n            if (consentData) {\n                try {\n                    var data = JSON.parse(consentData);\n                    if (data.accepted && data.timestamp && (Date.now() - data.timestamp) < 30 * 24 * 60 * 60 * 1000) {\n                        privacyAccepted = true;\n                    }\n                } catch (e) {}\n            }\n            \n            if (!privacyAccepted) {\n                privacyNotice.show();\n                input.prop('disabled', true);\n                submitBtn.prop('disabled', true);\n            }\n        } else {\n            privacyAccepted = true;\n        }\n        \n        \/\/ Privacy accept handler\n        privacyAcceptBtn.on('click', function() {\n            localStorage.setItem('ai_assistant_privacy_consent', JSON.stringify({\n                accepted: true,\n                timestamp: Date.now()\n            }));\n            privacyAccepted = true;\n            privacyNotice.slideUp(300);\n            input.prop('disabled', false);\n            submitBtn.prop('disabled', false);\n            input.focus();\n        });\n        \n        \/\/ Fetch nonce fresco all'avvio\n        fetchFreshNonce();\n        \n        \/\/ Hide floating chat if configured\n        if (container.data('hide-floating') === true || container.data('hide-floating') === 'true') {\n            \/\/ Hide with CSS important to override any styles\n            $('<style>.ai-assistant-widget.floating, .ai-assistant-widget[class*=\"floating\"] { display: none !important; }<\/style>').appendTo('head');\n        }\n        \n        \/\/ Submit on button click\n        submitBtn.on('click', function() {\n            if (!privacyAccepted) return;\n            submitQuestion();\n        });\n        \n        \/\/ Submit on Enter key\n        input.on('keydown', function(e) {\n            if (e.key === 'Enter' && !e.shiftKey) {\n                e.preventDefault();\n                if (!privacyAccepted) return;\n                submitQuestion();\n            }\n        });\n        \n        \/\/ Click on suggestion\n        container.on('click', '.ai-searchbar-suggestion', function() {\n            if (!privacyAccepted) return;\n            var question = $(this).data('question');\n            input.val(question);\n            submitQuestion();\n        });\n        \n        \/\/ Close response\n        closeBtn.on('click', function() {\n            response.slideUp(300);\n        });\n        \n        \/\/ Restart\n        restartBtn.on('click', function() {\n            chatHistory = [];\n            sessionId = '';\n            response.slideUp(300);\n            container.removeClass('has-response'); \/\/ Mostra di nuovo i suggerimenti\n            input.val('').focus();\n        });\n        \n        \/\/ Show history\n        historyBtn.on('click', function() {\n            showHistory();\n        });\n        \n        \/\/ Close history\n        historyCloseBtn.on('click', function() {\n            closeHistory();\n        });\n        \n        \/\/ Download chat\n        downloadBtn.on('click', function() {\n            downloadChat();\n        });\n        \n        \/\/ Detect mobile device\n        var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\n        \n        function submitQuestion(isRetry) {\n            var question = isRetry ? pendingQuestion : input.val().trim();\n            \n            if (!question || isProcessing) return;\n            \n            \/\/ Nascondi i suggerimenti\n            container.addClass('has-response');\n            \n            \/\/ Se il nonce non \u00e8 ancora pronto, richiediamolo prima\n            if (!aiAssistant.nonce) {\n                pendingQuestion = question;\n                input.val('');\n                isProcessing = true;\n                submitBtn.prop('disabled', true);\n                typing.show();\n                \n                fetchFreshNonce().then(function(success) {\n                    if (success) {\n                        typing.hide();\n                        isProcessing = false;\n                        submitQuestion(true);\n                    } else {\n                        typing.hide();\n                        isProcessing = false;\n                        submitBtn.prop('disabled', false);\n                        responseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n                        response.slideDown(300);\n                    }\n                });\n                return;\n            }\n            \n            isProcessing = true;\n            submitBtn.prop('disabled', true);\n            pendingQuestion = question;\n            \n            \/\/ Svuota l'input subito\n            if (!isRetry) {\n                input.val('');\n            }\n            \n            \/\/ Su mobile, rimuovi il focus per nascondere la tastiera\n            if (isMobile) {\n                input.blur();\n            }\n            \n            \/\/ Se c'\u00e8 gi\u00e0 una risposta visibile, fai fade-out fluido prima di mostrare typing\n            if (response.is(':visible')) {\n                response.addClass('fade-out');\n                setTimeout(function() {\n                    response.hide().removeClass('fade-out');\n                    typing.show();\n                    scrollToTop();\n                    sendRequest(question);\n                }, 300);\n            } else {\n                typing.show();\n                scrollToTop();\n                sendRequest(question);\n            }\n        }\n        \n        function sendRequest(question) {\n            \/\/ Mostra la domanda nell'area dedicata\n            container.find('.ai-searchbar-question-text').text(question);\n            \n            $.ajax({\n                url: aiAssistant.ajaxUrl,\n                method: 'POST',\n                data: {\n                    action: 'ai_assistant_chat',\n                    nonce: aiAssistant.nonce,\n                    message: question,\n                    session_id: sessionId\n                },\n                success: function(res) {\n                    typing.hide();\n                    isProcessing = false;\n                    submitBtn.prop('disabled', false);\n                    pendingQuestion = null;\n                    \n                    \/\/ Rimetti il focus sull'input solo su desktop\n                    if (!isMobile) {\n                        input.focus();\n                    }\n                    \n                    if (res.success) {\n                        sessionId = res.data.session_id;\n                        \n                        \/\/ Save to history\n                        chatHistory.push({\n                            question: question,\n                            answer: res.data.message,\n                            time: new Date().toLocaleString()\n                        });\n                        \n                        var formattedResponse = formatResponse(res.data.message);\n                        \n                        \/\/ Controlla se la risposta \u00e8 stata troncata\n                        if (res.data.is_truncated) {\n                            formattedResponse += '<button type=\"button\" class=\"ai-searchbar-continue-btn\" data-partial=\"' + escapeHtml(res.data.message).replace(\/\"\/g, '&quot;') + '\">' + (aiAssistant.i18n.continue || 'Continua...') + '<\/button>';\n                        }\n                        \n                        responseContent.html(formattedResponse);\n                        \n                        \/\/ Bind evento per il pulsante Continua\n                        responseContent.find('.ai-searchbar-continue-btn').on('click', function() {\n                            continueResponse($(this));\n                        });\n                        \n                        \/\/ Mostra la risposta e scrolla all'inizio del contenuto\n                        response.slideDown(300, function() {\n                            responseContent.scrollTop(0);\n                            scrollToTop();\n                        });\n                    } else {\n                        \/\/ Controlla se \u00e8 un errore di nonce scaduto\n                        if (res.data?.message && res.data.message.toLowerCase().includes('nonce')) {\n                            refreshNonceAndRetry(question);\n                        } else {\n                            var errorMsg = res.data?.message || aiAssistant.i18n.error;\n                            responseContent.html('<p style=\"color: #d63638;\">' + escapeHtml(errorMsg) + '<\/p>');\n                            response.slideDown(300, function() {\n                                responseContent.scrollTop(0);\n                                scrollToTop();\n                            });\n                        }\n                    }\n                },\n                error: function(xhr) {\n                    \/\/ Se errore 403, potrebbe essere nonce scaduto\n                    if (xhr.status === 403 || xhr.status === 400) {\n                        refreshNonceAndRetry(question);\n                    } else {\n                        typing.hide();\n                        isProcessing = false;\n                        submitBtn.prop('disabled', false);\n                        pendingQuestion = null;\n                        if (!isMobile) {\n                            input.focus();\n                        }\n                        responseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n                        response.slideDown(300, function() {\n                            responseContent.scrollTop(0);\n                        });\n                    }\n                }\n            });\n        }\n        \n        function refreshNonceAndRetry(question) {\n            fetchFreshNonce().then(function(success) {\n                if (success) {\n                    sendRequest(question);\n                } else {\n                    typing.hide();\n                    isProcessing = false;\n                    submitBtn.prop('disabled', false);\n                    pendingQuestion = null;\n                    responseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n                    response.slideDown(300, function() {\n                        responseContent.scrollTop(0);\n                    });\n                }\n            });\n        }\n        \n        function showHistory() {\n            if (chatHistory.length === 0) {\n                historyContent.html('<div class=\"ai-searchbar-history-empty\">Nessuna conversazione ancora.<\/div>');\n            } else {\n                var html = '';\n                chatHistory.forEach(function(item) {\n                    html += '<div class=\"ai-searchbar-history-item\">';\n                    html += '<div class=\"ai-searchbar-history-question\">' + escapeHtml(item.question) + '<\/div>';\n                    html += '<div class=\"ai-searchbar-history-answer\">' + escapeHtml(item.answer) + '<\/div>';\n                    html += '<\/div>';\n                });\n                historyContent.html(html);\n            }\n            \n            \/\/ Add backdrop\n            $('<div class=\"ai-searchbar-backdrop\"><\/div>').appendTo('body').on('click', closeHistory);\n            historyModal.show();\n        }\n        \n        function closeHistory() {\n            historyModal.hide();\n            $('.ai-searchbar-backdrop').remove();\n        }\n        \n        function downloadChat() {\n            if (chatHistory.length === 0) {\n                alert('Nessuna conversazione da scaricare.');\n                return;\n            }\n            \n            var text = 'Conversazione AI Assistant\\n';\n            text += 'Data: ' + new Date().toLocaleString() + '\\n';\n            text += '========================================\\n\\n';\n            \n            chatHistory.forEach(function(item, index) {\n                text += '--- Domanda ' + (index + 1) + ' ---\\n';\n                text += item.question + '\\n\\n';\n                text += '--- Risposta ---\\n';\n                text += item.answer + '\\n\\n';\n                text += '----------------------------------------\\n\\n';\n            });\n            \n            var blob = new Blob([text], { type: 'text\/plain;charset=utf-8' });\n            var url = URL.createObjectURL(blob);\n            var a = document.createElement('a');\n            a.href = url;\n            a.download = 'chat-ai-assistant-' + new Date().toISOString().slice(0,10) + '.txt';\n            document.body.appendChild(a);\n            a.click();\n            document.body.removeChild(a);\n            URL.revokeObjectURL(url);\n        }\n        \n        function formatResponse(text) {\n            text = escapeHtml(text);\n            \n            \/\/ Prima converti i link Markdown [testo](url) in HTML\n            text = text.replace(\/\\[([^\\]]+)\\]\\(([^)]+)\\)\/g, '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1<\/a>');\n            \n            var paragraphs = text.split(\/\\n\\n+\/);\n            if (paragraphs.length > 1) {\n                text = paragraphs.map(function(p) {\n                    return '<p>' + p.replace(\/\\n\/g, '<br>') + '<\/p>';\n                }).join('');\n            } else {\n                text = '<p>' + text.replace(\/\\n\/g, '<br>') + '<\/p>';\n            }\n            \n            text = text.replace(\/\\*\\*(.*?)\\*\\*\/g, '<strong>$1<\/strong>');\n            text = text.replace(\/\\*(.*?)\\*\/g, '<em>$1<\/em>');\n            \n            \/\/ Converti URL semplici che non sono gi\u00e0 dentro un tag <a>\n            \/\/ Proteggi i link esistenti, converti, poi ripristina\n            var placeholder = '___LINK___';\n            var existingLinks = [];\n            text = text.replace(\/<a [^>]*>.*?<\\\/a>\/g, function(match) {\n                existingLinks.push(match);\n                return placeholder + (existingLinks.length - 1) + '___';\n            });\n            \n            text = text.replace(\/(https?:\\\/\\\/[^\\s<]+)\/g, '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1<\/a>');\n            \n            existingLinks.forEach(function(link, i) {\n                text = text.replace(placeholder + i + '___', link);\n            });\n            \n            return text;\n        }\n        \n        function continueResponse($button) {\n            if (isProcessing) return;\n            \n            var partialResponse = $button.data('partial');\n            \n            \/\/ Disabilita il pulsante e mostra stato di caricamento\n            $button.prop('disabled', true).text(aiAssistant.i18n.continuing || 'Sto continuando...');\n            isProcessing = true;\n            \n            $.ajax({\n                url: aiAssistant.ajaxUrl,\n                method: 'POST',\n                data: {\n                    action: 'ai_assistant_continue',\n                    nonce: aiAssistant.nonce,\n                    session_id: sessionId,\n                    partial_response: partialResponse\n                },\n                success: function(res) {\n                    isProcessing = false;\n                    \n                    if (res.success) {\n                        \/\/ Aggiorna il contenuto con la continuazione\n                        var currentContent = chatHistory[chatHistory.length - 1].answer;\n                        var fullContent = currentContent + ' ' + res.data.message;\n                        \n                        \/\/ Aggiorna la cronologia\n                        chatHistory[chatHistory.length - 1].answer = fullContent;\n                        \n                        \/\/ Aggiorna il DOM\n                        var formattedResponse = formatResponse(fullContent);\n                        \n                        \/\/ Se ancora troncata, aggiungi nuovo pulsante\n                        if (res.data.is_truncated) {\n                            formattedResponse += '<button type=\"button\" class=\"ai-searchbar-continue-btn\" data-partial=\"' + escapeHtml(fullContent).replace(\/\"\/g, '&quot;') + '\">' + (aiAssistant.i18n.continue || 'Continua...') + '<\/button>';\n                        }\n                        \n                        responseContent.html(formattedResponse);\n                        \n                        \/\/ Bind evento per il nuovo pulsante Continua (se presente)\n                        responseContent.find('.ai-searchbar-continue-btn').on('click', function() {\n                            continueResponse($(this));\n                        });\n                        \n                        \/\/ Scrolla in basso per mostrare il nuovo contenuto\n                        responseContent.scrollTop(responseContent[0].scrollHeight);\n                    } else {\n                        $button.prop('disabled', false).text(aiAssistant.i18n.continue || 'Continua...');\n                        \n                        \/\/ Se errore nonce, riprova\n                        if (res.data?.message && res.data.message.toLowerCase().includes('nonce')) {\n                            refreshNonceAndRetryContinue($button);\n                        } else {\n                            alert(res.data?.message || aiAssistant.i18n.error);\n                        }\n                    }\n                },\n                error: function() {\n                    isProcessing = false;\n                    $button.prop('disabled', false).text(aiAssistant.i18n.continue || 'Continua...');\n                    alert(aiAssistant.i18n.error);\n                }\n            });\n        }\n        \n        function refreshNonceAndRetryContinue($button) {\n            fetchFreshNonce().then(function(success) {\n                if (success) {\n                    continueResponse($button);\n                } else {\n                    alert(aiAssistant.i18n.error);\n                }\n            });\n        }\n        \n        function escapeHtml(text) {\n            var div = document.createElement('div');\n            div.textContent = text;\n            return div.innerHTML;\n        }\n    });\n})(jQuery);\n<\/script>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"animation\":\"slide-bottom\",\"animation_delay\":\"250\",\"image\":\"wp-content\/uploads\/2026\/04\/Sfondo1.svg\",\"image_position\":\"center-center\",\"image_size\":\"cover\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"headline\",\"props\":{\"class\":\"menu-page\",\"content\":\"Technische Ressourcen\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"text_align\":\"center\",\"title_element\":\"div\",\"title_style\":\"h3\",\"title_text_stroke\":false},\"name\":\"Titolo Men\u00f9\"},{\"type\":\"headline\",\"props\":{\"content\":\"A.I. <span class=\\\"uk-text-stroke\\\">A<\/span>ssistant\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"text_align\":\"center\",\"title_element\":\"h1\",\"title_style\":\"heading-xlarge\"}}]}]},{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"text\",\"props\":{\"block_align\":\"center\",\"column_breakpoint\":\"m\",\"content\":\"\n\n<p>Haben Sie eine Frage zu den Materialien, den Produktionsprozessen oder den Dienstleistungen von Fonderie Palmieri? <br \/>Unser <strong>KI-Assistent<\/strong> steht Ihnen rund um die Uhr zur Verf\u00fcgung, um in Echtzeit zu antworten, ohne Wartezeit. <br \/>Er kennt die gesamte Palette der produzierten Gusseisensorten, die Anwendungsbereiche, die Zertifizierungen und die angebotenen Dienstleistungen - und wenn Sie direkt mit unserem Team sprechen m\u00f6chten, verweist er Sie an den richtigen Ansprechpartner.<\/p>\n\n\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"maxwidth\":\"2xlarge\",\"text_align\":\"center\",\"text_style\":\"large\"}},{\"type\":\"divider\",\"props\":{\"block_align\":\"center\",\"divider_element\":\"hr\",\"maxwidth\":\"2xlarge\"}}]}]},{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"text\",\"props\":{\"animation\":\"none\",\"column_breakpoint\":\"m\",\"content\":\"[animated_text id=\\\"17015\\\"]\",\"margin_bottom\":\"\",\"margin_top\":\"default\"}},{\"type\":\"image\",\"props\":{\"image\":\"wp-content\/uploads\/2026\/07\/AI-ASSISTANT_img.svg\",\"image_svg_color\":\"emphasis\",\"image_width\":150,\"margin_bottom\":\"remove\",\"margin_top\":\"remove\",\"text_align\":\"center\"}},{\"type\":\"text\",\"props\":{\"animation\":\"none\",\"column_breakpoint\":\"m\",\"content\":\"[ai_assistant_searchbar placeholder=\\\"Wie kann ich Ihnen heute helfen?\\\" hide_floating=\\\"yes\\\" theme=\\\"light\\\"]\",\"margin_bottom\":\"default\",\"margin_top\":\"default\"}}]}],\"props\":{\"margin_top\":\"xlarge\"}},{\"type\":\"row\",\"props\":{\"margin_bottom\":\"xlarge\",\"margin_top\":\"xlarge\"},\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"}}]}],\"name\":\"Hero Interno\"}],\"version\":\"5.0.25\"} --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Technische Ressourcen A.I. Assistant Haben Sie eine Frage zu den Materialien, den Produktionsprozessen oder den Dienstleistungen von Fonderie Palmieri? Unser KI-Assistent steht Ihnen rund um die Uhr zur Verf\u00fcgung, um in Echtzeit zu antworten, ohne Wartezeit. Er kennt die gesamte Palette der produzierten Gusseisensorten, die Anwendungsbereiche, die Zertifizierungen und die angebotenen Dienstleistungen &#8211; und wenn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-16244","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>KI-Assistent | Fonderie Palmieri<\/title>\n<meta name=\"description\" content=\"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KI-Assistent | Fonderie Palmieri\" \/>\n<meta property=\"og:description\" content=\"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/\" \/>\n<meta property=\"og:site_name\" content=\"Fonderie Palmieri\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fonderiepalmieri\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-28T10:33:57+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/de\\\/ai-assistant\\\/\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/de\\\/ai-assistant\\\/\",\"name\":\"KI-Assistent | Fonderie Palmieri\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#website\"},\"datePublished\":\"2026-04-20T13:35:21+00:00\",\"dateModified\":\"2026-09-28T10:33:57+00:00\",\"description\":\"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/de\\\/ai-assistant\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fonderiepalmieri.it\\\/de\\\/ai-assistant\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/de\\\/ai-assistant\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI Assistant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#website\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/\",\"name\":\"Fonderie Palmieri\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#organization\",\"name\":\"Fonderie Palmieri\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo_FonderiePalmieri_350px.png\",\"contentUrl\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo_FonderiePalmieri_350px.png\",\"width\":350,\"height\":189,\"caption\":\"Fonderie Palmieri\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fonderiepalmieri\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/fonderie-palmieri---s.p.a.--\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KI-Assistent | Fonderie Palmieri","description":"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/","og_locale":"de_DE","og_type":"article","og_title":"KI-Assistent | Fonderie Palmieri","og_description":"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.","og_url":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/","og_site_name":"Fonderie Palmieri","article_publisher":"https:\/\/www.facebook.com\/fonderiepalmieri","article_modified_time":"2026-09-28T10:33:57+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/","url":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/","name":"KI-Assistent | Fonderie Palmieri","isPartOf":{"@id":"https:\/\/www.fonderiepalmieri.it\/#website"},"datePublished":"2026-04-20T13:35:21+00:00","dateModified":"2026-09-28T10:33:57+00:00","description":"KI-Assistent Fonderie Palmieri, rund um die Uhr erreichbar: sofortige Antworten zu Gusseisensorten, Prozessen, Zertifizierungen und Services.","breadcrumb":{"@id":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fonderiepalmieri.it\/de\/ai-assistant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fonderiepalmieri.it\/"},{"@type":"ListItem","position":2,"name":"AI Assistant"}]},{"@type":"WebSite","@id":"https:\/\/www.fonderiepalmieri.it\/#website","url":"https:\/\/www.fonderiepalmieri.it\/","name":"Fonderie Palmieri","description":"","publisher":{"@id":"https:\/\/www.fonderiepalmieri.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fonderiepalmieri.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.fonderiepalmieri.it\/#organization","name":"Fonderie Palmieri","url":"https:\/\/www.fonderiepalmieri.it\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.fonderiepalmieri.it\/#\/schema\/logo\/image\/","url":"https:\/\/www.fonderiepalmieri.it\/wp-content\/uploads\/2026\/04\/Logo_FonderiePalmieri_350px.png","contentUrl":"https:\/\/www.fonderiepalmieri.it\/wp-content\/uploads\/2026\/04\/Logo_FonderiePalmieri_350px.png","width":350,"height":189,"caption":"Fonderie Palmieri"},"image":{"@id":"https:\/\/www.fonderiepalmieri.it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fonderiepalmieri","https:\/\/www.linkedin.com\/company\/fonderie-palmieri---s.p.a.--\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/pages\/16244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/comments?post=16244"}],"version-history":[{"count":2,"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/pages\/16244\/revisions"}],"predecessor-version":[{"id":17016,"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/pages\/16244\/revisions\/17016"}],"wp:attachment":[{"href":"https:\/\/www.fonderiepalmieri.it\/de\/wp-json\/wp\/v2\/media?parent=16244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}