{"id":16242,"date":"2026-04-20T13:35:21","date_gmt":"2026-04-20T13:35:21","guid":{"rendered":"https:\/\/palmieri.w3d.it\/ai-assistant\/"},"modified":"2026-10-01T10:36:44","modified_gmt":"2026-10-01T10:36:44","slug":"ai-assistant","status":"publish","type":"page","link":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/","title":{"rendered":"AI Assistant"},"content":{"rendered":"<div>Technical resources<\/div>\n<h1>AI <span class=\"uk-text-stroke\">A<\/span>ssistant<\/h1>\n<div>\n<p>Do you have a question about Fonderie Palmieri&#8217;s materials, production processes or services? <br \/>Our <strong>AI assistant<\/strong> is available 24 hours a day to answer in real time, with no waiting. <br \/>It knows the entire range of cast irons we produce, the application sectors, the certifications and the services offered &#8211; and when you need to speak directly with our team, it will point you to the right contact.<\/p>\n<\/div>\n<hr>\n<div>        <div id=\"atp-17015-6af8f8d49552a\" \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\tdata-hide-floating=\"true\"\n\tdata-theme=\"light\"\n\tdata-layout=\"input-bottom\"\n\tdata-scroll-offset=\"20\"\n\tdata-privacy-enabled=\"true\"\n\tstyle=\"--ai-primary-color: #d34817; --searchbar-width: 100%; --searchbar-max-width: 700px;\">\n\t\n\t<!-- Privacy Notice -->\n\t\t<div class=\"ai-searchbar-privacy\" style=\"display: none;\">\n\t\t<div class=\"ai-searchbar-privacy-content\">\n\t\t\t<p>\n\t\t\t\tQuesta chat utilizza intelligenza artificiale. I messaggi vengono elaborati da servizi esterni (Google Gemini) e potrebbero essere salvati per migliorare il servizio. Non inserire dati personali sensibili. Continuando, accetti la nostra\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.fonderiepalmieri.it\/dichiarazione-sulla-privacy-ue\/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy<\/a>\n\t\t\t\t\t\t\t<\/p>\n\t\t\t<button type=\"button\" class=\"ai-searchbar-privacy-accept\">\n\t\t\t\tAccetto e continuo\t\t\t<\/button>\n\t\t<\/div>\n\t<\/div>\n\t\t\n\t<!-- Particles Background -->\n\t<div class=\"ai-searchbar-particles\">\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t\t<div class=\"particle\"><\/div>\n\t<\/div>\n\t\n\t<!-- Main Searchbar -->\n\t<div class=\"ai-searchbar-wrapper\">\n\t\t<div class=\"ai-searchbar\">\n\t\t\t<div class=\"ai-searchbar-icon\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t\t\t\t<path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2z\"><\/path>\n\t\t\t\t\t<path d=\"M12 8v4M12 16h.01\"><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<div class=\"ai-searchbar-icon-glow\"><\/div>\n\t\t\t<\/div>\n\t\t\t<input type=\"text\" \n\t\t\t\t\tclass=\"ai-searchbar-input\" \n\t\t\t\t\tplaceholder=\"How can I help you today?\"\n\t\t\t\t\tautocomplete=\"off\">\n\t\t\t<button type=\"button\" class=\"ai-searchbar-submit\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t\t\t\t\t<line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"><\/line>\n\t\t\t\t\t<polygon points=\"22 2 15 22 11 13 2 9 22 2\"><\/polygon>\n\t\t\t\t<\/svg>\n\t\t\t<\/button>\n\t\t<\/div>\n\t\t\n\t\t<!-- Typing indicator -->\n\t\t<div class=\"ai-searchbar-typing\" style=\"display: none;\">\n\t\t\t<div class=\"typing-dots\">\n\t\t\t\t<span><\/span><span><\/span><span><\/span>\n\t\t\t<\/div>\n\t\t\t<span class=\"typing-text\">Sto pensando...<\/span>\n\t\t<\/div>\n\t\t\n\t\t<!-- Suggerimenti -->\n\t\t\t\t<div class=\"ai-searchbar-suggestions\">\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"ai-searchbar-suggestion\" data-question=\"Voglio sapere quali materiali in ghisa potete fornirmi.\">\n\t\t\t\t\tVoglio sapere quali materiali in ghisa potete fornirmi.\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"ai-searchbar-suggestion\" data-question=\"Voglio un preventivo per il mio progetto.\">\n\t\t\t\t\tVoglio un preventivo per il mio progetto.\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"ai-searchbar-suggestion\" data-question=\"Dimensione dei getti?\">\n\t\t\t\t\tDimensione dei getti?\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<!-- Response Area -->\n\t<div class=\"ai-searchbar-response\" style=\"display: none;\">\n\t\t<div class=\"ai-searchbar-question-display\">\n\t\t\t<div class=\"ai-searchbar-question-label\">Hai chiesto:<\/div>\n\t\t\t<div class=\"ai-searchbar-question-text\"><\/div>\n\t\t<\/div>\n\t\t<div class=\"ai-searchbar-response-header\">\n\t\t\t<div class=\"ai-searchbar-response-avatar\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n\t\t\t\t\t<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\t\t\t\t<\/svg>\n\t\t\t<\/div>\n\t\t\t<span class=\"ai-searchbar-response-title\">Risposta<\/span>\n\t\t\t<button type=\"button\" class=\"ai-searchbar-close\" title=\"Chiudi\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t<line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n\t\t\t\t\t<line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n\t\t\t\t<\/svg>\n\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div class=\"ai-searchbar-response-content\"><\/div>\n\t\t<div class=\"ai-searchbar-response-footer\">\n\t\t\t<button type=\"button\" class=\"ai-searchbar-restart\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t<polyline points=\"1 4 1 10 7 10\"><\/polyline>\n\t\t\t\t\t<path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\tRicomincia da capo\t\t\t<\/button>\n\t\t\t<button type=\"button\" class=\"ai-searchbar-history\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t<path d=\"M12 8v4l3 3\"><\/path>\n\t\t\t\t\t<circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\n\t\t\t\t<\/svg>\n\t\t\t\tCronologia\t\t\t<\/button>\n\t\t\t<button type=\"button\" class=\"ai-searchbar-download\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t<path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\n\t\t\t\t\t<polyline points=\"7 10 12 15 17 10\"><\/polyline>\n\t\t\t\t\t<line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\n\t\t\t\t<\/svg>\n\t\t\t\tScarica\t\t\t<\/button>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<!-- History Modal -->\n\t<div class=\"ai-searchbar-history-modal\" style=\"display: none;\">\n\t\t<div class=\"ai-searchbar-history-header\">\n\t\t\t<h4>Cronologia conversazione<\/h4>\n\t\t\t<button type=\"button\" class=\"ai-searchbar-history-close\">&times;<\/button>\n\t\t<\/div>\n\t\t<div class=\"ai-searchbar-history-content\"><\/div>\n\t<\/div>\n<\/div>\n\n<style>\n\/* Searchbar Container *\/\n\/* Searchbar Container *\/\n.ai-searchbar-container {\n\tposition: relative;\n\twidth: var(--searchbar-width, calc(100% - 40px));\n\tmax-width: var(--searchbar-max-width, 700px);\n\tmargin: 0 auto;\n\tpadding: 40px 20px;\n\tfont-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\tdisplay: flex !important;\n\tflex-direction: column !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-particles {\n\tposition: absolute !important;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tpointer-events: none;\n\torder: 0 !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-privacy {\n\torder: 1 !important;\n\tmargin-bottom: 20px;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-response {\n\torder: 2 !important;\n\tmargin-top: 0 !important;\n\tmargin-bottom: 20px !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-wrapper {\n\torder: 3 !important;\n\tposition: relative;\n\tz-index: 2;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-history-modal {\n\torder: 4 !important;\n}\n\n\/* Privacy Notice *\/\n.ai-searchbar-privacy {\n\tposition: relative;\n\tz-index: 2;\n\tmargin-bottom: 20px;\n}\n\n.ai-searchbar-privacy-content {\n\tbackground: #fff;\n\tborder-radius: 16px;\n\tpadding: 20px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.ai-searchbar-privacy-content p {\n\tfont-size: 14px;\n\tcolor: #666;\n\tline-height: 1.6;\n\tmargin: 0 0 15px 0;\n}\n\n.ai-searchbar-privacy-content a {\n\tcolor: var(--ai-primary-color);\n\ttext-decoration: underline;\n}\n\n.ai-searchbar-privacy-accept {\n\tbackground: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n\tcolor: #fff;\n\tborder: none;\n\tpadding: 12px 30px;\n\tborder-radius: 25px;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttransition: all 0.3s ease;\n}\n\n.ai-searchbar-privacy-accept:hover {\n\ttransform: scale(1.05);\n\tbox-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-privacy-content {\n\tbackground: #1a1a2e;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-privacy-content p {\n\tcolor: #aaa;\n}\n\n\/* Particles *\/\n.ai-searchbar-particles {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tz-index: 0;\n}\n\n.ai-searchbar-particles .particle {\n\tposition: absolute;\n\twidth: 6px;\n\theight: 6px;\n\tbackground: var(--ai-primary-color);\n\tborder-radius: 50%;\n\topacity: 0;\n\tanimation: 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\t0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }\n\t25% { opacity: 0.4; }\n\t50% { opacity: 0.2; transform: translateY(-20px) scale(1); }\n\t75% { opacity: 0.4; }\n}\n\n\/* Searchbar Wrapper *\/\n.ai-searchbar-wrapper {\n\tposition: relative;\n\tz-index: 1;\n}\n\n\/* Main Searchbar *\/\n.ai-searchbar {\n\tdisplay: flex;\n\talign-items: center;\n\tbackground: #fff;\n\tborder-radius: 50px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05);\n\tpadding: 8px 8px 8px 20px;\n\ttransition: all 0.3s ease;\n}\n\n.ai-searchbar:hover {\n\tbox-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\tbox-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\tposition: relative;\n\tflex-shrink: 0;\n\twidth: 28px;\n\theight: 28px;\n\tmargin-right: 15px;\n\tcolor: var(--ai-primary-color);\n}\n\n.ai-searchbar-icon svg {\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ai-searchbar-icon-glow {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\twidth: 40px;\n\theight: 40px;\n\tbackground: var(--ai-primary-color);\n\tborder-radius: 50%;\n\ttransform: translate(-50%, -50%);\n\topacity: 0;\n\tfilter: blur(10px);\n\tanimation: icon-pulse 2s ease-in-out infinite;\n}\n\n@keyframes icon-pulse {\n\t0%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }\n\t50% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); }\n}\n\n\/* Input *\/\n.ai-searchbar-input {\n\tflex: 1;\n\tborder: none;\n\tbackground: transparent;\n\tfont-size: 16px;\n\tpadding: 12px 20px 12px 0;\n\toutline: none;\n\tcolor: #333;\n}\n\n.ai-searchbar-input::placeholder {\n\tcolor: #999;\n}\n\n\/* Submit Button *\/\n.ai-searchbar-submit {\n\tflex-shrink: 0;\n\twidth: 48px;\n\theight: 48px;\n\tborder: none;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n\tcolor: #fff;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: all 0.3s ease;\n}\n\n.ai-searchbar-submit svg {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.ai-searchbar-submit:hover {\n\ttransform: scale(1.05);\n\tbox-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-submit:active {\n\ttransform: scale(0.95);\n}\n\n.ai-searchbar-submit:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n\ttransform: none;\n}\n\n\/* Typing Indicator *\/\n.ai-searchbar-typing {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 15px;\n\tcolor: #666;\n\tfont-size: 14px;\n}\n\n.typing-dots {\n\tdisplay: flex;\n\tgap: 4px;\n\tmargin-right: 10px;\n}\n\n.typing-dots span {\n\twidth: 8px;\n\theight: 8px;\n\tbackground: var(--ai-primary-color);\n\tborder-radius: 50%;\n\tanimation: 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\t0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }\n\t30% { transform: translateY(-8px); opacity: 1; }\n}\n\n\/* Suggerimenti *\/\n.ai-searchbar-suggestions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tgap: 8px;\n\tmargin-top: 15px;\n\tpadding: 0 10px;\n}\n\n.ai-searchbar-suggestion {\n\tbackground: rgba(255, 255, 255, 0.9);\n\tborder: 1px solid rgba(0, 0, 0, 0.1);\n\tpadding: 8px 16px;\n\tborder-radius: 20px;\n\tfont-size: 13px;\n\tcolor: #333;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\tbackdrop-filter: blur(10px);\n\twhite-space: nowrap;\n\tmax-width: 100%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.ai-searchbar-suggestion:hover {\n\tbackground: var(--ai-primary-color);\n\tcolor: #fff;\n\tborder-color: var(--ai-primary-color);\n\ttransform: translateY(-2px);\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-suggestion {\n\tbackground: rgba(255, 255, 255, 0.1);\n\tborder-color: rgba(255, 255, 255, 0.2);\n\tcolor: #fff;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-suggestion:hover {\n\tbackground: var(--ai-primary-color);\n\tborder-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\tdisplay: none;\n}\n\n\/* Response Area *\/\n.ai-searchbar-response {\n\tposition: relative;\n\tz-index: 1;\n\tmargin-top: 20px;\n\tbackground: #fff;\n\tborder-radius: 20px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n\toverflow: hidden;\n\tanimation: response-slide-in 0.4s ease;\n\ttransition: opacity 0.3s ease, transform 0.3s ease;\n}\n\n.ai-searchbar-response.fade-out {\n\topacity: 0;\n\ttransform: translateY(-10px) scale(0.98);\n}\n\n@keyframes response-slide-in {\n\tfrom { opacity: 0; transform: translateY(-10px); }\n\tto { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes response-slide-in-bottom {\n\tfrom { opacity: 0; transform: translateY(10px); }\n\tto { opacity: 1; transform: translateY(0); }\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] > .ai-searchbar-response {\n\tanimation: response-slide-in-bottom 0.4s ease !important;\n}\n\n.ai-searchbar-container[data-layout=\"input-bottom\"] .ai-searchbar-response.fade-out {\n\topacity: 0;\n\ttransform: translateY(10px) scale(0.98);\n}\n\n\/* Question Display *\/\n.ai-searchbar-question-display {\n\tpadding: 15px 20px;\n\tbackground: linear-gradient(135deg, #f8f9fa, #e9ecef);\n\tborder-bottom: 1px solid #dee2e6;\n}\n\n.ai-searchbar-question-label {\n\tfont-size: 11px;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.5px;\n\tcolor: #6c757d;\n\tmargin-bottom: 6px;\n\tfont-weight: 600;\n}\n\n.ai-searchbar-question-text {\n\tfont-size: 15px;\n\tcolor: #333;\n\tline-height: 1.5;\n\tfont-style: italic;\n}\n\n.ai-searchbar-response-header {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 15px 20px;\n\tbackground: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 70%, #000));\n\tcolor: #fff;\n}\n\n.ai-searchbar-response-avatar {\n\twidth: 32px;\n\theight: 32px;\n\tbackground: rgba(255, 255, 255, 0.2);\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 12px;\n}\n\n.ai-searchbar-response-avatar svg {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.ai-searchbar-response-title {\n\tflex: 1;\n\tfont-weight: 600;\n\tfont-size: 14px;\n}\n\n.ai-searchbar-close {\n\tbackground: rgba(255, 255, 255, 0.2);\n\tborder: none;\n\tborder-radius: 50%;\n\twidth: 32px;\n\theight: 32px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tcolor: #fff;\n\ttransition: background 0.2s;\n}\n\n.ai-searchbar-close:hover {\n\tbackground: rgba(255, 255, 255, 0.3);\n}\n\n.ai-searchbar-close svg {\n\twidth: 16px;\n\theight: 16px;\n}\n\n.ai-searchbar-response-content {\n\tpadding: 20px;\n\tfont-size: 15px;\n\tline-height: 1.7;\n\tcolor: #333;\n\tmax-height: 400px;\n\toverflow-y: auto;\n}\n\n.ai-searchbar-response-content p {\n\tmargin: 0 0 10px 0;\n}\n\n.ai-searchbar-response-content p:last-child {\n\tmargin-bottom: 0;\n}\n\n.ai-searchbar-response-footer {\n\tpadding: 15px 20px;\n\tborder-top: 1px solid #eee;\n\tdisplay: flex;\n\tjustify-content: center;\n\tgap: 10px;\n\tflex-wrap: wrap;\n}\n\n.ai-searchbar-restart,\n.ai-searchbar-history,\n.ai-searchbar-download {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 10px 16px;\n\tbackground: #f5f5f5;\n\tborder: none;\n\tborder-radius: 25px;\n\tcolor: #666;\n\tfont-size: 13px;\n\tcursor: pointer;\n\ttransition: all 0.2s;\n}\n\n.ai-searchbar-restart:hover,\n.ai-searchbar-history:hover,\n.ai-searchbar-download:hover {\n\tbackground: #eee;\n\tcolor: var(--ai-primary-color);\n}\n\n.ai-searchbar-restart svg,\n.ai-searchbar-history svg,\n.ai-searchbar-download svg {\n\twidth: 16px;\n\theight: 16px;\n}\n\n\/* History Modal *\/\n.ai-searchbar-history-modal {\n\tposition: fixed;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\twidth: 90%;\n\tmax-width: 500px;\n\tmax-height: 80vh;\n\tbackground: #fff;\n\tborder-radius: 16px;\n\tbox-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);\n\tz-index: 100001;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.ai-searchbar-history-header {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding: 15px 20px;\n\tbackground: #f5f5f5;\n\tborder-bottom: 1px solid #eee;\n}\n\n.ai-searchbar-history-header h4 {\n\tmargin: 0;\n\tfont-size: 16px;\n\tcolor: #333;\n}\n\n.ai-searchbar-history-close {\n\tbackground: none;\n\tborder: none;\n\tfont-size: 24px;\n\tcolor: #999;\n\tcursor: pointer;\n\tpadding: 0;\n\tline-height: 1;\n}\n\n.ai-searchbar-history-close:hover {\n\tcolor: #333;\n}\n\n.ai-searchbar-history-content {\n\tpadding: 20px;\n\toverflow-y: auto;\n\tflex: 1;\n}\n\n.ai-searchbar-history-item {\n\tmargin-bottom: 20px;\n\tpadding-bottom: 20px;\n\tborder-bottom: 1px solid #eee;\n}\n\n.ai-searchbar-history-item:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n\tborder-bottom: none;\n}\n\n.ai-searchbar-history-question {\n\tbackground: var(--ai-primary-color);\n\tcolor: #fff;\n\tpadding: 10px 15px;\n\tborder-radius: 12px 12px 12px 0;\n\tmargin-bottom: 10px;\n\tfont-size: 14px;\n}\n\n.ai-searchbar-history-answer {\n\tbackground: #f5f5f5;\n\tcolor: #333;\n\tpadding: 10px 15px;\n\tborder-radius: 12px 12px 0 12px;\n\tfont-size: 14px;\n\tline-height: 1.5;\n}\n\n.ai-searchbar-history-empty {\n\ttext-align: center;\n\tcolor: #999;\n\tpadding: 40px 20px;\n}\n\n\/* History Modal Backdrop *\/\n.ai-searchbar-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tbackground: rgba(0, 0, 0, 0.5);\n\tz-index: 100000;\n}\n\n\/* Dark Theme *\/\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar {\n\tbackground: #1a1a2e;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-input {\n\tcolor: #fff;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-input::placeholder {\n\tcolor: #888;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response {\n\tbackground: #1a1a2e;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response-content {\n\tcolor: #ddd;\n}\n\n.ai-searchbar-container[data-theme=\"dark\"] .ai-searchbar-response-footer {\n\tborder-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\tbackground: #2a2a3e;\n\tcolor: #aaa;\n}\n\n\/* Responsive *\/\n@media (max-width: 600px) {\n\t.ai-searchbar-container {\n\t\tpadding: 20px 15px;\n\t}\n\t\n\t.ai-searchbar {\n\t\tpadding: 6px 6px 6px 15px;\n\t}\n\t\n\t.ai-searchbar-input {\n\t\tfont-size: 14px;\n\t\tpadding: 10px 0;\n\t}\n\t\n\t.ai-searchbar-submit {\n\t\twidth: 42px;\n\t\theight: 42px;\n\t}\n\t\n\t.ai-searchbar-icon {\n\t\twidth: 22px;\n\t\theight: 22px;\n\t\tmargin-right: 10px;\n\t}\n\t\n\t.ai-searchbar-response-footer {\n\t\tgap: 8px;\n\t}\n\t\n\t.ai-searchbar-restart,\n\t.ai-searchbar-history,\n\t.ai-searchbar-download {\n\t\tpadding: 8px 12px;\n\t\tfont-size: 12px;\n\t}\n}\n\n\/* Pulsante Continua - Risposta Troncata *\/\n.ai-searchbar-continue-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-top: 15px;\n\tpadding: 10px 20px;\n\tbackground: linear-gradient(135deg, var(--ai-primary-color), color-mix(in srgb, var(--ai-primary-color) 80%, black));\n\tcolor: #fff;\n\tborder: none;\n\tborder-radius: 25px;\n\tfont-size: 14px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\tbox-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n}\n\n.ai-searchbar-continue-btn:hover {\n\ttransform: translateY(-2px);\n\tbox-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);\n}\n\n.ai-searchbar-continue-btn:disabled {\n\topacity: 0.7;\n\tcursor: wait;\n\ttransform: none;\n}\n\n.ai-searchbar-continue-btn::before {\n\tcontent: '\u2192';\n\tfont-size: 16px;\n}\n\n.ai-searchbar-continue-btn:disabled::before {\n\tcontent: '';\n\twidth: 14px;\n\theight: 14px;\n\tborder: 2px solid #fff;\n\tborder-top-color: transparent;\n\tborder-radius: 50%;\n\tanimation: searchbarContinueSpin 0.8s linear infinite;\n}\n\n@keyframes searchbarContinueSpin {\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n}\n<\/style>\n\n<script>\n(function($) {\n\t'use strict';\n\t\n\t\/\/ Fetch nonce fresco (evita problemi con pagine cachate)\n\tfunction fetchFreshNonce() {\n\t\treturn $.ajax({\n\t\t\turl: aiAssistant.ajaxUrl,\n\t\t\tmethod: 'POST',\n\t\t\tdata: { action: 'ai_assistant_refresh_nonce' }\n\t\t}).then(function(response) {\n\t\t\tif (response.success && response.data.nonce) {\n\t\t\t\taiAssistant.nonce = response.data.nonce;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}).catch(function() {\n\t\t\treturn false;\n\t\t});\n\t}\n\t\n\t$(document).ready(function() {\n\t\tvar container = $('.ai-searchbar-container');\n\t\tvar input = container.find('.ai-searchbar-input');\n\t\tvar submitBtn = container.find('.ai-searchbar-submit');\n\t\tvar typing = container.find('.ai-searchbar-typing');\n\t\tvar response = container.find('.ai-searchbar-response');\n\t\tvar responseContent = container.find('.ai-searchbar-response-content');\n\t\tvar closeBtn = container.find('.ai-searchbar-close');\n\t\tvar restartBtn = container.find('.ai-searchbar-restart');\n\t\tvar historyBtn = container.find('.ai-searchbar-history');\n\t\tvar downloadBtn = container.find('.ai-searchbar-download');\n\t\tvar historyModal = container.find('.ai-searchbar-history-modal');\n\t\tvar historyContent = container.find('.ai-searchbar-history-content');\n\t\tvar historyCloseBtn = container.find('.ai-searchbar-history-close');\n\t\tvar privacyNotice = container.find('.ai-searchbar-privacy');\n\t\tvar privacyAcceptBtn = container.find('.ai-searchbar-privacy-accept');\n\t\t\n\t\tvar isProcessing = false;\n\t\tvar sessionId = '';\n\t\tvar chatHistory = [];\n\t\tvar pendingQuestion = null;\n\t\tvar privacyAccepted = false;\n\t\tvar isInputBottom = container.data('layout') === 'input-bottom';\n\t\tvar scrollOffset = parseInt(container.data('scroll-offset')) || 20;\n\t\t\n\t\t\/\/ Funzione per smooth scroll (per layout input-bottom)\n\t\tfunction scrollToTop() {\n\t\t\tif (isInputBottom) {\n\t\t\t\t\/\/ Scrolla all'inizio del container (dove appare la risposta)\n\t\t\t\tvar targetOffset = container.offset().top - scrollOffset;\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: Math.max(0, targetOffset)\n\t\t\t\t}, 400);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\/\/ Check privacy consent\n\t\tvar privacyEnabled = container.data('privacy-enabled') === true || container.data('privacy-enabled') === 'true';\n\t\t\n\t\tif (privacyEnabled) {\n\t\t\tvar consentData = localStorage.getItem('ai_assistant_privacy_consent');\n\t\t\tif (consentData) {\n\t\t\t\ttry {\n\t\t\t\t\tvar data = JSON.parse(consentData);\n\t\t\t\t\tif (data.accepted && data.timestamp && (Date.now() - data.timestamp) < 30 * 24 * 60 * 60 * 1000) {\n\t\t\t\t\t\tprivacyAccepted = true;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\t\n\t\t\tif (!privacyAccepted) {\n\t\t\t\tprivacyNotice.show();\n\t\t\t\tinput.prop('disabled', true);\n\t\t\t\tsubmitBtn.prop('disabled', true);\n\t\t\t}\n\t\t} else {\n\t\t\tprivacyAccepted = true;\n\t\t}\n\t\t\n\t\t\/\/ Privacy accept handler\n\t\tprivacyAcceptBtn.on('click', function() {\n\t\t\tlocalStorage.setItem('ai_assistant_privacy_consent', JSON.stringify({\n\t\t\t\taccepted: true,\n\t\t\t\ttimestamp: Date.now()\n\t\t\t}));\n\t\t\tprivacyAccepted = true;\n\t\t\tprivacyNotice.slideUp(300);\n\t\t\tinput.prop('disabled', false);\n\t\t\tsubmitBtn.prop('disabled', false);\n\t\t\tinput.focus();\n\t\t});\n\t\t\n\t\t\/\/ Fetch nonce fresco all'avvio\n\t\tfetchFreshNonce();\n\t\t\n\t\t\/\/ Hide floating chat if configured\n\t\tif (container.data('hide-floating') === true || container.data('hide-floating') === 'true') {\n\t\t\t\/\/ Hide with CSS important to override any styles\n\t\t\t$('<style>.ai-assistant-widget.floating, .ai-assistant-widget[class*=\"floating\"] { display: none !important; }<\/style>').appendTo('head');\n\t\t}\n\t\t\n\t\t\/\/ Submit on button click\n\t\tsubmitBtn.on('click', function() {\n\t\t\tif (!privacyAccepted) return;\n\t\t\tsubmitQuestion();\n\t\t});\n\t\t\n\t\t\/\/ Submit on Enter key\n\t\tinput.on('keydown', function(e) {\n\t\t\tif (e.key === 'Enter' && !e.shiftKey) {\n\t\t\t\te.preventDefault();\n\t\t\t\tif (!privacyAccepted) return;\n\t\t\t\tsubmitQuestion();\n\t\t\t}\n\t\t});\n\t\t\n\t\t\/\/ Click on suggestion\n\t\tcontainer.on('click', '.ai-searchbar-suggestion', function() {\n\t\t\tif (!privacyAccepted) return;\n\t\t\tvar question = $(this).data('question');\n\t\t\tinput.val(question);\n\t\t\tsubmitQuestion();\n\t\t});\n\t\t\n\t\t\/\/ Close response\n\t\tcloseBtn.on('click', function() {\n\t\t\tresponse.slideUp(300);\n\t\t});\n\t\t\n\t\t\/\/ Restart\n\t\trestartBtn.on('click', function() {\n\t\t\tchatHistory = [];\n\t\t\tsessionId = '';\n\t\t\tresponse.slideUp(300);\n\t\t\tcontainer.removeClass('has-response'); \/\/ Mostra di nuovo i suggerimenti\n\t\t\tinput.val('').focus();\n\t\t});\n\t\t\n\t\t\/\/ Show history\n\t\thistoryBtn.on('click', function() {\n\t\t\tshowHistory();\n\t\t});\n\t\t\n\t\t\/\/ Close history\n\t\thistoryCloseBtn.on('click', function() {\n\t\t\tcloseHistory();\n\t\t});\n\t\t\n\t\t\/\/ Download chat\n\t\tdownloadBtn.on('click', function() {\n\t\t\tdownloadChat();\n\t\t});\n\t\t\n\t\t\/\/ Detect mobile device\n\t\tvar isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\n\t\t\n\t\tfunction submitQuestion(isRetry) {\n\t\t\tvar question = isRetry ? pendingQuestion : input.val().trim();\n\t\t\t\n\t\t\tif (!question || isProcessing) return;\n\t\t\t\n\t\t\t\/\/ Nascondi i suggerimenti\n\t\t\tcontainer.addClass('has-response');\n\t\t\t\n\t\t\t\/\/ Se il nonce non \u00e8 ancora pronto, richiediamolo prima\n\t\t\tif (!aiAssistant.nonce) {\n\t\t\t\tpendingQuestion = question;\n\t\t\t\tinput.val('');\n\t\t\t\tisProcessing = true;\n\t\t\t\tsubmitBtn.prop('disabled', true);\n\t\t\t\ttyping.show();\n\t\t\t\t\n\t\t\t\tfetchFreshNonce().then(function(success) {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\ttyping.hide();\n\t\t\t\t\t\tisProcessing = false;\n\t\t\t\t\t\tsubmitQuestion(true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttyping.hide();\n\t\t\t\t\t\tisProcessing = false;\n\t\t\t\t\t\tsubmitBtn.prop('disabled', false);\n\t\t\t\t\t\tresponseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n\t\t\t\t\t\tresponse.slideDown(300);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tisProcessing = true;\n\t\t\tsubmitBtn.prop('disabled', true);\n\t\t\tpendingQuestion = question;\n\t\t\t\n\t\t\t\/\/ Svuota l'input subito\n\t\t\tif (!isRetry) {\n\t\t\t\tinput.val('');\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Su mobile, rimuovi il focus per nascondere la tastiera\n\t\t\tif (isMobile) {\n\t\t\t\tinput.blur();\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Se c'\u00e8 gi\u00e0 una risposta visibile, fai fade-out fluido prima di mostrare typing\n\t\t\tif (response.is(':visible')) {\n\t\t\t\tresponse.addClass('fade-out');\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tresponse.hide().removeClass('fade-out');\n\t\t\t\t\ttyping.show();\n\t\t\t\t\tscrollToTop();\n\t\t\t\t\tsendRequest(question);\n\t\t\t\t}, 300);\n\t\t\t} else {\n\t\t\t\ttyping.show();\n\t\t\t\tscrollToTop();\n\t\t\t\tsendRequest(question);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction sendRequest(question) {\n\t\t\t\/\/ Mostra la domanda nell'area dedicata\n\t\t\tcontainer.find('.ai-searchbar-question-text').text(question);\n\t\t\t\n\t\t\t$.ajax({\n\t\t\t\turl: aiAssistant.ajaxUrl,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'ai_assistant_chat',\n\t\t\t\t\tnonce: aiAssistant.nonce,\n\t\t\t\t\tmessage: question,\n\t\t\t\t\tsession_id: sessionId\n\t\t\t\t},\n\t\t\t\tsuccess: function(res) {\n\t\t\t\t\ttyping.hide();\n\t\t\t\t\tisProcessing = false;\n\t\t\t\t\tsubmitBtn.prop('disabled', false);\n\t\t\t\t\tpendingQuestion = null;\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Rimetti il focus sull'input solo su desktop\n\t\t\t\t\tif (!isMobile) {\n\t\t\t\t\t\tinput.focus();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (res.success) {\n\t\t\t\t\t\tsessionId = res.data.session_id;\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Save to history\n\t\t\t\t\t\tchatHistory.push({\n\t\t\t\t\t\t\tquestion: question,\n\t\t\t\t\t\t\tanswer: res.data.message,\n\t\t\t\t\t\t\ttime: new Date().toLocaleString()\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar formattedResponse = formatResponse(res.data.message);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Controlla se la risposta \u00e8 stata troncata\n\t\t\t\t\t\tif (res.data.is_truncated) {\n\t\t\t\t\t\t\tformattedResponse += '<button type=\"button\" class=\"ai-searchbar-continue-btn\" data-partial=\"' + escapeHtml(res.data.message).replace(\/\"\/g, '&quot;') + '\">' + (aiAssistant.i18n.continue || 'Continua...') + '<\/button>';\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tresponseContent.html(formattedResponse);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Bind evento per il pulsante Continua\n\t\t\t\t\t\tresponseContent.find('.ai-searchbar-continue-btn').on('click', function() {\n\t\t\t\t\t\t\tcontinueResponse($(this));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Mostra la risposta e scrolla all'inizio del contenuto\n\t\t\t\t\t\tresponse.slideDown(300, function() {\n\t\t\t\t\t\t\tresponseContent.scrollTop(0);\n\t\t\t\t\t\t\tscrollToTop();\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ Controlla se \u00e8 un errore di nonce scaduto\n\t\t\t\t\t\tif (res.data?.message && res.data.message.toLowerCase().includes('nonce')) {\n\t\t\t\t\t\t\trefreshNonceAndRetry(question);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar errorMsg = res.data?.message || aiAssistant.i18n.error;\n\t\t\t\t\t\t\tresponseContent.html('<p style=\"color: #d63638;\">' + escapeHtml(errorMsg) + '<\/p>');\n\t\t\t\t\t\t\tresponse.slideDown(300, function() {\n\t\t\t\t\t\t\t\tresponseContent.scrollTop(0);\n\t\t\t\t\t\t\t\tscrollToTop();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function(xhr) {\n\t\t\t\t\t\/\/ Se errore 403, potrebbe essere nonce scaduto\n\t\t\t\t\tif (xhr.status === 403 || xhr.status === 400) {\n\t\t\t\t\t\trefreshNonceAndRetry(question);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttyping.hide();\n\t\t\t\t\t\tisProcessing = false;\n\t\t\t\t\t\tsubmitBtn.prop('disabled', false);\n\t\t\t\t\t\tpendingQuestion = null;\n\t\t\t\t\t\tif (!isMobile) {\n\t\t\t\t\t\t\tinput.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresponseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n\t\t\t\t\t\tresponse.slideDown(300, function() {\n\t\t\t\t\t\t\tresponseContent.scrollTop(0);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction refreshNonceAndRetry(question) {\n\t\t\tfetchFreshNonce().then(function(success) {\n\t\t\t\tif (success) {\n\t\t\t\t\tsendRequest(question);\n\t\t\t\t} else {\n\t\t\t\t\ttyping.hide();\n\t\t\t\t\tisProcessing = false;\n\t\t\t\t\tsubmitBtn.prop('disabled', false);\n\t\t\t\t\tpendingQuestion = null;\n\t\t\t\t\tresponseContent.html('<p style=\"color: #d63638;\">' + aiAssistant.i18n.error + '<\/p>');\n\t\t\t\t\tresponse.slideDown(300, function() {\n\t\t\t\t\t\tresponseContent.scrollTop(0);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction showHistory() {\n\t\t\tif (chatHistory.length === 0) {\n\t\t\t\thistoryContent.html('<div class=\"ai-searchbar-history-empty\">Nessuna conversazione ancora.<\/div>');\n\t\t\t} else {\n\t\t\t\tvar html = '';\n\t\t\t\tchatHistory.forEach(function(item) {\n\t\t\t\t\thtml += '<div class=\"ai-searchbar-history-item\">';\n\t\t\t\t\thtml += '<div class=\"ai-searchbar-history-question\">' + escapeHtml(item.question) + '<\/div>';\n\t\t\t\t\thtml += '<div class=\"ai-searchbar-history-answer\">' + escapeHtml(item.answer) + '<\/div>';\n\t\t\t\t\thtml += '<\/div>';\n\t\t\t\t});\n\t\t\t\thistoryContent.html(html);\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Add backdrop\n\t\t\t$('<div class=\"ai-searchbar-backdrop\"><\/div>').appendTo('body').on('click', closeHistory);\n\t\t\thistoryModal.show();\n\t\t}\n\t\t\n\t\tfunction closeHistory() {\n\t\t\thistoryModal.hide();\n\t\t\t$('.ai-searchbar-backdrop').remove();\n\t\t}\n\t\t\n\t\tfunction downloadChat() {\n\t\t\tif (chatHistory.length === 0) {\n\t\t\t\talert('Nessuna conversazione da scaricare.');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar text = 'Conversazione AI Assistant\\n';\n\t\t\ttext += 'Data: ' + new Date().toLocaleString() + '\\n';\n\t\t\ttext += '========================================\\n\\n';\n\t\t\t\n\t\t\tchatHistory.forEach(function(item, index) {\n\t\t\t\ttext += '--- Domanda ' + (index + 1) + ' ---\\n';\n\t\t\t\ttext += item.question + '\\n\\n';\n\t\t\t\ttext += '--- Risposta ---\\n';\n\t\t\t\ttext += item.answer + '\\n\\n';\n\t\t\t\ttext += '----------------------------------------\\n\\n';\n\t\t\t});\n\t\t\t\n\t\t\tvar blob = new Blob([text], { type: 'text\/plain;charset=utf-8' });\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\tvar a = document.createElement('a');\n\t\t\ta.href = url;\n\t\t\ta.download = 'chat-ai-assistant-' + new Date().toISOString().slice(0,10) + '.txt';\n\t\t\tdocument.body.appendChild(a);\n\t\t\ta.click();\n\t\t\tdocument.body.removeChild(a);\n\t\t\tURL.revokeObjectURL(url);\n\t\t}\n\t\t\n\t\tfunction formatResponse(text) {\n\t\t\ttext = escapeHtml(text);\n\t\t\t\n\t\t\t\/\/ Prima converti i link Markdown [testo](url) in HTML\n\t\t\ttext = text.replace(\/\\[([^\\]]+)\\]\\(([^)]+)\\)\/g, '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1<\/a>');\n\t\t\t\n\t\t\tvar paragraphs = text.split(\/\\n\\n+\/);\n\t\t\tif (paragraphs.length > 1) {\n\t\t\t\ttext = paragraphs.map(function(p) {\n\t\t\t\t\treturn '<p>' + p.replace(\/\\n\/g, '<br>') + '<\/p>';\n\t\t\t\t}).join('');\n\t\t\t} else {\n\t\t\t\ttext = '<p>' + text.replace(\/\\n\/g, '<br>') + '<\/p>';\n\t\t\t}\n\t\t\t\n\t\t\ttext = text.replace(\/\\*\\*(.*?)\\*\\*\/g, '<strong>$1<\/strong>');\n\t\t\ttext = text.replace(\/\\*(.*?)\\*\/g, '<em>$1<\/em>');\n\t\t\t\n\t\t\t\/\/ Converti URL semplici che non sono gi\u00e0 dentro un tag <a>\n\t\t\t\/\/ Proteggi i link esistenti, converti, poi ripristina\n\t\t\tvar placeholder = '___LINK___';\n\t\t\tvar existingLinks = [];\n\t\t\ttext = text.replace(\/<a [^>]*>.*?<\\\/a>\/g, function(match) {\n\t\t\t\texistingLinks.push(match);\n\t\t\t\treturn placeholder + (existingLinks.length - 1) + '___';\n\t\t\t});\n\t\t\t\n\t\t\ttext = text.replace(\/(https?:\\\/\\\/[^\\s<]+)\/g, '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1<\/a>');\n\t\t\t\n\t\t\texistingLinks.forEach(function(link, i) {\n\t\t\t\ttext = text.replace(placeholder + i + '___', link);\n\t\t\t});\n\t\t\t\n\t\t\treturn text;\n\t\t}\n\t\t\n\t\tfunction continueResponse($button) {\n\t\t\tif (isProcessing) return;\n\t\t\t\n\t\t\tvar partialResponse = $button.data('partial');\n\t\t\t\n\t\t\t\/\/ Disabilita il pulsante e mostra stato di caricamento\n\t\t\t$button.prop('disabled', true).text(aiAssistant.i18n.continuing || 'Sto continuando...');\n\t\t\tisProcessing = true;\n\t\t\t\n\t\t\t$.ajax({\n\t\t\t\turl: aiAssistant.ajaxUrl,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'ai_assistant_continue',\n\t\t\t\t\tnonce: aiAssistant.nonce,\n\t\t\t\t\tsession_id: sessionId,\n\t\t\t\t\tpartial_response: partialResponse\n\t\t\t\t},\n\t\t\t\tsuccess: function(res) {\n\t\t\t\t\tisProcessing = false;\n\t\t\t\t\t\n\t\t\t\t\tif (res.success) {\n\t\t\t\t\t\t\/\/ Aggiorna il contenuto con la continuazione\n\t\t\t\t\t\tvar currentContent = chatHistory[chatHistory.length - 1].answer;\n\t\t\t\t\t\tvar fullContent = currentContent + ' ' + res.data.message;\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Aggiorna la cronologia\n\t\t\t\t\t\tchatHistory[chatHistory.length - 1].answer = fullContent;\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Aggiorna il DOM\n\t\t\t\t\t\tvar formattedResponse = formatResponse(fullContent);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Se ancora troncata, aggiungi nuovo pulsante\n\t\t\t\t\t\tif (res.data.is_truncated) {\n\t\t\t\t\t\t\tformattedResponse += '<button type=\"button\" class=\"ai-searchbar-continue-btn\" data-partial=\"' + escapeHtml(fullContent).replace(\/\"\/g, '&quot;') + '\">' + (aiAssistant.i18n.continue || 'Continua...') + '<\/button>';\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tresponseContent.html(formattedResponse);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Bind evento per il nuovo pulsante Continua (se presente)\n\t\t\t\t\t\tresponseContent.find('.ai-searchbar-continue-btn').on('click', function() {\n\t\t\t\t\t\t\tcontinueResponse($(this));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Scrolla in basso per mostrare il nuovo contenuto\n\t\t\t\t\t\tresponseContent.scrollTop(responseContent[0].scrollHeight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$button.prop('disabled', false).text(aiAssistant.i18n.continue || 'Continua...');\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Se errore nonce, riprova\n\t\t\t\t\t\tif (res.data?.message && res.data.message.toLowerCase().includes('nonce')) {\n\t\t\t\t\t\t\trefreshNonceAndRetryContinue($button);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\talert(res.data?.message || aiAssistant.i18n.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\tisProcessing = false;\n\t\t\t\t\t$button.prop('disabled', false).text(aiAssistant.i18n.continue || 'Continua...');\n\t\t\t\t\talert(aiAssistant.i18n.error);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction refreshNonceAndRetryContinue($button) {\n\t\t\tfetchFreshNonce().then(function(success) {\n\t\t\t\tif (success) {\n\t\t\t\t\tcontinueResponse($button);\n\t\t\t\t} else {\n\t\t\t\t\talert(aiAssistant.i18n.error);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction escapeHtml(text) {\n\t\t\tvar div = document.createElement('div');\n\t\t\tdiv.textContent = text;\n\t\t\treturn div.innerHTML;\n\t\t}\n\t});\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\":\"Technical resources\",\"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\":\"AI <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>Do you have a question about Fonderie Palmieri's materials, production processes or services? <br \/>Our <strong>AI assistant<\/strong> is available 24 hours a day to answer in real time, with no waiting. <br \/>It knows the entire range of cast irons we produce, the application sectors, the certifications and the services offered - and when you need to speak directly with our team, it will point you to the right contact.<\/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\":120,\"margin_bottom\":\"remove\",\"margin_top\":\"remove\",\"text_align\":\"center\"}},{\"type\":\"text\",\"props\":{\"animation\":\"none\",\"column_breakpoint\":\"m\",\"content\":\"[ai_assistant_searchbar placeholder=\\\"How can I help you today?\\\" hide_floating=\\\"yes\\\" theme=\\\"light\\\"]\",\"margin_bottom\":\"default\",\"margin_top\":\"default\"}}]}],\"props\":{\"margin_top\":\"medium\"}},{\"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>Technical resources AI Assistant Do you have a question about Fonderie Palmieri&#8217;s materials, production processes or services? Our AI assistant is available 24 hours a day to answer in real time, with no waiting. It knows the entire range of cast irons we produce, the application sectors, the certifications and the services offered &#8211; and [&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-16242","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AI Assistant | Fonderie Palmieri<\/title>\n<meta name=\"description\" content=\"AI assistant Fonderie Palmieri, available 24\/7: instant answers on cast iron grades, production processes, certifications and 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\/en\/ai-assistant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI Assistant | Fonderie Palmieri\" \/>\n<meta property=\"og:description\" content=\"AI assistant Fonderie Palmieri, available 24\/7: instant answers on cast iron grades, production processes, certifications and services.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fonderiepalmieri.it\/en\/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-10-01T10:36:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/ai-assistant\\\/\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/ai-assistant\\\/\",\"name\":\"AI Assistant | Fonderie Palmieri\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/#website\"},\"datePublished\":\"2026-04-20T13:35:21+00:00\",\"dateModified\":\"2026-10-01T10:36:44+00:00\",\"description\":\"AI assistant Fonderie Palmieri, available 24\\\/7: instant answers on cast iron grades, production processes, certifications and services.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/ai-assistant\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/ai-assistant\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/ai-assistant\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI Assistant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/\",\"name\":\"Fonderie Palmieri\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/#organization\",\"name\":\"Fonderie Palmieri\",\"url\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.fonderiepalmieri.it\\\/en\\\/#\\\/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\\\/en\\\/#\\\/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":"AI Assistant | Fonderie Palmieri","description":"AI assistant Fonderie Palmieri, available 24\/7: instant answers on cast iron grades, production processes, certifications and 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\/en\/ai-assistant\/","og_locale":"en_US","og_type":"article","og_title":"AI Assistant | Fonderie Palmieri","og_description":"AI assistant Fonderie Palmieri, available 24\/7: instant answers on cast iron grades, production processes, certifications and services.","og_url":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/","og_site_name":"Fonderie Palmieri","article_publisher":"https:\/\/www.facebook.com\/fonderiepalmieri","article_modified_time":"2026-10-01T10:36:44+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/","url":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/","name":"AI Assistant | Fonderie Palmieri","isPartOf":{"@id":"https:\/\/www.fonderiepalmieri.it\/en\/#website"},"datePublished":"2026-04-20T13:35:21+00:00","dateModified":"2026-10-01T10:36:44+00:00","description":"AI assistant Fonderie Palmieri, available 24\/7: instant answers on cast iron grades, production processes, certifications and services.","breadcrumb":{"@id":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fonderiepalmieri.it\/en\/ai-assistant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fonderiepalmieri.it\/en\/"},{"@type":"ListItem","position":2,"name":"AI Assistant"}]},{"@type":"WebSite","@id":"https:\/\/www.fonderiepalmieri.it\/en\/#website","url":"https:\/\/www.fonderiepalmieri.it\/en\/","name":"Fonderie Palmieri","description":"","publisher":{"@id":"https:\/\/www.fonderiepalmieri.it\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fonderiepalmieri.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.fonderiepalmieri.it\/en\/#organization","name":"Fonderie Palmieri","url":"https:\/\/www.fonderiepalmieri.it\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fonderiepalmieri.it\/en\/#\/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\/en\/#\/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\/en\/wp-json\/wp\/v2\/pages\/16242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/comments?post=16242"}],"version-history":[{"count":3,"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/pages\/16242\/revisions"}],"predecessor-version":[{"id":17352,"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/pages\/16242\/revisions\/17352"}],"wp:attachment":[{"href":"https:\/\/www.fonderiepalmieri.it\/en\/wp-json\/wp\/v2\/media?parent=16242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}