{"id":5204,"date":"2026-04-30T11:18:11","date_gmt":"2026-04-30T09:18:11","guid":{"rendered":"https:\/\/ecoservicespa.com\/?page_id=5204"},"modified":"2026-05-26T00:18:49","modified_gmt":"2026-05-25T22:18:49","slug":"assistenza-new","status":"publish","type":"page","link":"https:\/\/ecoservicespa.com\/fr\/assistenza-new\/","title":{"rendered":"Nouvelle assistance"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5204\" class=\"elementor elementor-5204\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b12ead e-con-full e-flex e-con e-parent\" data-id=\"8b12ead\" data-element_type=\"container\" data-e-type=\"container\">\r\n\t\t\t\t<div class=\"elementor-element elementor-element-b4d881a elementor-widget elementor-widget-html\" data-id=\"b4d881a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ECO SERVICE \u2014 PAGINA ASSISTENZA COMPLETA (Elementor HTML widget)\n     v5 \u2014 webhook Zapier + ImgBB upload + menu Regione\/Estero + prefisso +39 (hint\/glow)\n          + Seriale full-width + foto OBBLIGATORIE (validazione JS custom)\n     CHIAVE IMGBB CONFIGURATA: 64f9a5df07edfd0af98b7cd5a54fed57\n     WEBHOOK INVARIATO: uvaiczu\/ -->\n<style>\n  @import url('https:\/\/api.fontshare.com\/v2\/css?f[]=general-sans@600,700&f[]=satoshi@400,500,700&display=swap');\n\n  .eco-ass{\n    --eco-yellow:#FCED4F;\n    --eco-yellow-light:#FFF578;\n    --eco-red:#CF2C29;\n    --eco-red-dark:#631312;\n    --eco-anthracite:#121212;\n    --eco-black:#0A0A0A;\n    --eco-green:#4ade80;\n    color:var(--eco-anthracite);\n    font-family:'Satoshi',system-ui,sans-serif;\n    line-height:1.5;\n    -webkit-font-smoothing:antialiased;\n  }\n  .eco-ass *,.eco-ass *::before,.eco-ass *::after{box-sizing:border-box}\n  .eco-ass h1,.eco-ass h2,.eco-ass h3,.eco-ass h4{font-family:'General Sans',system-ui,sans-serif;font-weight:700;margin:0;line-height:1.15}\n  .eco-ass p{margin:0}\n  .eco-ass a{color:inherit;text-decoration:none}\n  .eco-ass a:focus-visible,\n  .eco-ass button:focus-visible{outline:2px solid var(--eco-yellow);outline-offset:3px;border-radius:4px}\n  .eco-ass img{max-width:100%;display:block}\n  .eco-ass svg{fill:none !important;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n\n  \/* \u2550\u2550\u2550 HERO \u2550\u2550\u2550 *\/\n  .eco-hero{position:relative;width:100%;height:100vh;min-height:640px;overflow:hidden;display:flex;align-items:center;justify-content:center}\n  .eco-hero-bg{position:absolute;inset:0;background:url('https:\/\/ecoservicespa.com\/wp-content\/uploads\/2026\/04\/hero.jpg') center\/cover no-repeat;transform:scale(1.12);will-change:transform}\n  .eco-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.2) 100%);z-index:1}\n  .eco-spark-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}\n  .eco-hero-content{position:relative;z-index:10;max-width:880px;padding:0 24px;text-align:center;display:flex;flex-direction:column;align-items:center}\n  .eco-hero-label{display:inline-block;color:var(--eco-yellow);text-transform:uppercase;letter-spacing:6px;font-size:.875rem;margin-bottom:24px;opacity:0;animation:fadeIn .8s ease .1s forwards}\n  .eco-hero h1{margin-bottom:24px;color:#fff;font-size:clamp(1.8rem,5vw,3.8rem);overflow:hidden}\n  .eco-hero h1 .w{display:inline-block;margin-right:.3em;opacity:0;transform:translateY(18px);filter:blur(3px);animation:wordIn .55s cubic-bezier(.25,.46,.45,.94) forwards;color:#fff}\n  .eco-hero p{color:rgba(255,255,255,.65);font-size:clamp(.95rem,1.3vw,1.15rem);max-width:600px;line-height:1.7;margin-bottom:40px;opacity:0;animation:fadeUp .7s ease .9s forwards}\n  .eco-hero-cta{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;border-radius:12px;font-weight:700;font-size:1rem;color:#fff !important;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px rgba(0,0,0,.3);transition:all .3s ease;opacity:0;animation:fadeUp .8s ease 1.3s forwards}\n  .eco-hero-cta *{color:#fff !important}\n  .eco-hero-cta:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);box-shadow:0 8px 40px rgba(252,237,79,.18)}\n  .eco-hero-cta svg{animation:bounce 2s infinite;stroke:#fff}\n  .eco-spark-line{position:absolute;bottom:0;left:0;width:100%;height:1px;z-index:10;overflow:hidden}\n  .eco-spark-line>div{height:100%;width:100%;background:linear-gradient(90deg,transparent 0%,#FCED4F 20%,#FFF578 50%,#FCED4F 80%,transparent 100%);animation:sparkLine 3s ease-in-out infinite}\n\n  \/* \u2550\u2550\u2550 CONSULENZA \u2550\u2550\u2550 *\/\n  .eco-consul{position:relative;background:#0A0A0A;padding:112px 0}\n  .eco-consul-grid{max-width:1280px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:3fr 2fr;gap:64px;align-items:start}\n  .eco-consul-left>span{display:inline-block;color:var(--eco-yellow);text-transform:uppercase;letter-spacing:5px;font-size:.75rem;margin-bottom:24px}\n  .eco-consul-left h2{color:#fff;font-size:clamp(1.8rem,3.5vw,3rem);margin-bottom:24px}\n  .eco-consul-left>p{color:rgba(255,255,255,.55);font-size:1.05rem;line-height:1.7;max-width:640px;margin-bottom:32px}\n  .eco-stats{display:flex;flex-wrap:wrap;gap:32px;padding-top:16px}\n  .eco-stat{display:flex;align-items:center;gap:12px}\n  .eco-stat-icon{width:40px;height:40px;border-radius:8px;background:rgba(252,237,79,.1);border:1px solid rgba(252,237,79,.2);display:flex;align-items:center;justify-content:center;color:var(--eco-yellow)}\n  .eco-stat span{color:rgba(255,255,255,.7);font-size:.875rem}\n\n  .eco-calc{border-radius:16px;border:1px solid rgba(252,237,79,.3);background:#1A1A1A;padding:32px}\n  .eco-calc h3{color:#fff;font-size:1.25rem;margin-bottom:24px}\n  .eco-calc-step{margin-bottom:28px}\n  .eco-calc-step:last-of-type{margin-bottom:24px}\n  .eco-calc-label{display:block;color:rgba(255,255,255,.5);font-size:.7rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:12px}\n  .eco-range{width:100%;accent-color:var(--eco-yellow);cursor:pointer}\n  .eco-range-val{color:var(--eco-yellow);font-family:'General Sans',sans-serif;font-size:1.5rem;font-weight:700;margin-top:8px}\n  .eco-range-val small{color:rgba(255,255,255,.4);font-size:.875rem;font-weight:400}\n  .eco-pills{display:flex;gap:12px;flex-wrap:wrap}\n  .eco-pill{flex:1;min-width:80px;padding:12px;border-radius:8px;font-family:'General Sans',sans-serif;font-weight:700;border:1px solid rgba(255,255,255,.1);background:transparent;color:rgba(255,255,255,.55);cursor:pointer;transition:all .2s ease;font-size:1rem}\n  .eco-pill.text-sm{font-size:.875rem;font-family:'Satoshi',sans-serif;font-weight:600}\n  .eco-pill:hover{border-color:rgba(252,237,79,.4);color:rgba(255,255,255,.85)}\n  .eco-pill.active{background:rgba(252,237,79,.15);border-color:var(--eco-yellow);color:var(--eco-yellow);box-shadow:0 0 16px rgba(252,237,79,.25)}\n  .eco-calc-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:12px 24px;border-radius:8px;border:1px solid rgba(252,237,79,.4);background:rgba(252,237,79,.1);color:var(--eco-yellow);font-weight:700;font-size:.875rem;transition:all .3s ease}\n  .eco-calc-cta:hover{background:rgba(252,237,79,.2);border-color:var(--eco-yellow)}\n\n  \/* \u2550\u2550\u2550 ASSISTENZA \u2550\u2550\u2550 *\/\n  .eco-assist{position:relative;background:#fff}\n  .eco-assist-header{position:relative;padding:96px 24px 32px;display:flex;align-items:center;justify-content:center;overflow:hidden}\n  .eco-assist-header-content{position:relative;z-index:20;max-width:880px;text-align:center}\n  .eco-assist-label{display:inline-block;color:var(--eco-anthracite);text-transform:uppercase;letter-spacing:5px;font-size:.75rem;font-weight:700;margin-bottom:20px}\n  .eco-assist-header h2{font-size:clamp(2rem,5vw,3.8rem);background:linear-gradient(to right,var(--eco-red),var(--eco-red-dark));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:20px;line-height:1.1}\n  .eco-assist-header p{color:#6b7280;font-size:1.05rem;max-width:640px;margin:0 auto;line-height:1.7}\n\n  \/* Stepper *\/\n  .eco-stepper{max-width:1024px;margin:0 auto;padding:24px 24px 56px}\n  .eco-stepper-desktop{display:block}\n  .eco-stepper-mobile{display:none}\n  .eco-stepper-line{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:48px}\n  .eco-stepper-line::before{content:\"\";position:absolute;top:50%;left:8%;right:8%;height:2px;background:#e5e7eb;transform:translateY(-50%)}\n  .eco-stepper-progress{position:absolute;top:50%;left:8%;width:0;height:2px;background:linear-gradient(to right,var(--eco-red),var(--eco-red-dark));transform:translateY(-50%);transition:width .8s cubic-bezier(.25,.46,.45,.94);z-index:1}\n  .eco-step-num{position:relative;z-index:10;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'General Sans',sans-serif;font-weight:700;font-size:1.25rem;background:#fff;border:2px solid #e5e7eb;color:#d1d5db;transition:all .5s ease;transform:scale(1)}\n  .eco-step-num.on{background:var(--eco-yellow);border-color:var(--eco-yellow);color:var(--eco-anthracite);box-shadow:0 0 20px rgba(252,237,79,.4);transform:scale(1.1)}\n  .eco-stepper-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}\n  .eco-step-card{text-align:center;opacity:.3;transform:translateY(12px);transition:all .5s ease}\n  .eco-step-card.on{opacity:1;transform:translateY(0)}\n  .eco-step-card svg{margin:0 auto 12px;color:#d1d5db;transition:color .5s ease;width:24px;height:24px}\n  .eco-step-card.on svg{color:var(--eco-red)}\n  .eco-step-card h4{color:var(--eco-anthracite);font-size:.875rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}\n  .eco-step-card p{color:#6b7280;font-size:.875rem;line-height:1.6}\n\n  \/* CTA box *\/\n  .eco-cta-box{max-width:768px;margin:0 auto;padding:0 24px 96px}\n  .eco-cta-card{border-radius:16px;border:1px solid #e5e7eb;padding:56px;text-align:center;background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.06);animation:ctaFloat 4s ease-in-out infinite}\n  .eco-cta-card h3{color:var(--eco-anthracite);font-size:1.5rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px}\n  .eco-cta-card>p{color:#6b7280;font-size:1rem;max-width:480px;margin:0 auto 24px;line-height:1.7}\n  .eco-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:20px 40px;border-radius:12px;color:#fff !important;font-weight:700;font-size:1rem;background:linear-gradient(to right,var(--eco-red),var(--eco-red-dark));box-shadow:0 8px 30px rgba(229,57,53,.2);transition:all .3s ease}\n  .eco-cta-btn *{color:#fff !important}\n  .eco-cta-btn:hover{box-shadow:0 12px 40px rgba(229,57,53,.35);transform:scale(1.05)}\n  .eco-cta-phone{display:inline-flex;align-items:center;gap:12px;margin-top:24px}\n  .eco-cta-phone-ico{width:48px;height:48px;border-radius:50%;background:rgba(252,237,79,.2);display:flex;align-items:center;justify-content:center;color:var(--eco-yellow)}\n  .eco-cta-phone .lab{display:block;color:#9ca3af;font-size:.7rem;text-transform:uppercase;letter-spacing:1.5px;text-align:left}\n  .eco-cta-phone .num{font-family:'General Sans',sans-serif;font-size:1.875rem;font-weight:700;color:var(--eco-anthracite);transition:color .2s}\n  .eco-cta-phone:hover .num{color:var(--eco-red)}\n\n  \/* \u2550\u2550\u2550 FORM \u2550\u2550\u2550 *\/\n  .eco-form-sec{position:relative;overflow:hidden;background:#0A0A0A}\n  .eco-form-bg{position:absolute;inset:0;background:url('https:\/\/ecoservicespa.com\/wp-content\/uploads\/2026\/04\/form-bg-1.jpg') center\/cover no-repeat;filter:blur(6px) brightness(.55);transform:scale(1.1)}\n  .eco-form-overlay{position:absolute;inset:0;background:rgba(0,0,0,.3)}\n  .eco-form-redbar{position:relative;height:1px;background:linear-gradient(to right,var(--eco-red),var(--eco-red-dark),var(--eco-red))}\n  .eco-form-wrap{position:relative;z-index:10;max-width:896px;margin:0 auto;padding:96px 24px}\n  .eco-form-header{text-align:center;margin-bottom:56px}\n  .eco-form-header svg{margin:0 auto 16px;color:var(--eco-yellow);width:48px;height:48px}\n  .eco-form-header h2{color:#fff;font-size:clamp(1.6rem,3.5vw,2.8rem);margin-bottom:16px}\n  .eco-form-header p{color:rgba(255,255,255,.5);font-size:1rem;max-width:560px;margin:0 auto;line-height:1.7}\n  .eco-form{border-radius:16px;border:1px solid #333;background:#1A1A1A;padding:48px}\n  .eco-form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}\n  .eco-form-field label{display:block;color:#fff;font-size:.7rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:8px}\n  .eco-form-field label .req{color:var(--eco-yellow)}\n  .eco-form-field input,\n  .eco-form-field select,\n  .eco-form-field textarea{\n    width:100%;border-radius:8px;padding:12px 16px;\n    background:#111 !important;color:#fff !important;\n    font-family:'Satoshi',sans-serif !important;font-size:.875rem !important;\n    border:1px solid #333 !important;outline:none;\n    transition:border-color .3s;\n    appearance:none;-webkit-appearance:none;-moz-appearance:none;\n    box-shadow:none !important;\n  }\n  .eco-form-field select{\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23FCED4F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'\/%3E%3C\/svg%3E\") !important;\n    background-repeat:no-repeat !important;background-position:right 16px center !important;\n    background-size:12px !important;padding-right:42px !important;cursor:pointer;\n    height:auto !important;line-height:1.4 !important;\n  }\n  .eco-form-field select option{background:#111 !important;color:#fff !important;padding:12px !important;font-family:'Satoshi',sans-serif !important}\n  .eco-form-field select::-ms-expand{display:none !important}\n  .eco-form-field input::placeholder,.eco-form-field textarea::placeholder{color:#666}\n  .eco-form-field input:focus,.eco-form-field select:focus,.eco-form-field textarea:focus{border-color:var(--eco-yellow) !important}\n  .eco-form-field textarea{resize:none;min-height:110px}\n  .eco-form-field-full{grid-column:1\/-1}\n\n  \/* \u2550\u2550\u2550 TELEFONO \u2014 prefisso +39 fisso (Italia) \/ libero (Estero) \u2550\u2550\u2550 *\/\n  .eco-phone-wrap{position:relative;display:flex;align-items:stretch}\n  .eco-phone-prefix{\n    display:flex;align-items:center;justify-content:center;flex-shrink:0;\n    padding:0 14px;\n    background:#222;\n    border:1px solid #333;\n    border-right:0;\n    border-radius:8px 0 0 8px;\n    font-family:'Satoshi',sans-serif;\n    font-size:.875rem;font-weight:700;\n    color:#fff;\n    user-select:none;\n    transition:border-color .25s, background .25s;\n  }\n  .eco-phone-wrap input{border-radius:0 8px 8px 0 !important}\n  \/* Stato Estero: nascondi prefisso, telefono a tutta larghezza *\/\n  .eco-form.is-estero .eco-phone-prefix{display:none}\n  .eco-form.is-estero .eco-phone-wrap input{border-radius:8px !important}\n  \/* Focus: evidenzia anche il box prefisso *\/\n  .eco-phone-wrap:focus-within .eco-phone-prefix{border-color:var(--eco-yellow)}\n  \/* Glow al cambio Italia\/Estero *\/\n  .eco-phone-wrap.eco-glow .eco-phone-prefix,\n  .eco-phone-wrap.eco-glow input{animation:ecoPhoneGlow 1s ease}\n  @keyframes ecoPhoneGlow{\n    0%{box-shadow:0 0 0 0 rgba(252,237,79,0)}\n    35%{box-shadow:0 0 0 3px rgba(252,237,79,.40);border-color:var(--eco-yellow)}\n    100%{box-shadow:0 0 0 0 rgba(252,237,79,0)}\n  }\n  \/* Hint telefono sotto il campo *\/\n  .eco-phone-hint{\n    display:flex;align-items:center;gap:6px;\n    margin-top:8px;\n    font-family:'Satoshi',sans-serif;\n    font-size:.7rem;line-height:1.4;color:rgba(255,255,255,.5);\n    opacity:0;transform:translateY(-4px);\n    transition:opacity .35s ease, transform .35s ease;\n  }\n  .eco-phone-hint.show{opacity:1;transform:translateY(0)}\n  .eco-phone-hint svg{width:13px;height:13px;flex-shrink:0;stroke:var(--eco-yellow);fill:none;stroke-width:2}\n\n  \/* \u2550\u2550\u2550 UPLOADER FOTO \u2550\u2550\u2550 *\/\n  .eco-upload{\n    position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;\n    gap:8px;padding:20px;border-radius:8px;\n    background:#111;border:2px dashed #333;\n    cursor:pointer;transition:border-color .25s ease,background .25s ease;\n    text-align:center;min-height:140px;\n  }\n  .eco-upload:hover{border-color:rgba(252,237,79,.5);background:#161616}\n  .eco-upload input[type=\"file\"]{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2}\n  .eco-upload__icon{color:#6b7280;width:28px;height:28px;display:block;flex-shrink:0;transition:color .25s ease}\n  .eco-upload__title{color:#9ca3af;font-size:.875rem;font-weight:600;font-family:'Satoshi',sans-serif;margin:0}\n  .eco-upload__hint{color:#6b7280;font-size:.7rem;font-family:'Satoshi',sans-serif;margin:0}\n\n  \/* Stati *\/\n  .eco-upload.is-loading{border-style:solid;border-color:var(--eco-yellow);background:#1a1a0e}\n  .eco-upload.is-loading .eco-upload__icon{color:var(--eco-yellow);animation:ecoSpin 1s linear infinite}\n  .eco-upload.is-loading .eco-upload__title{color:var(--eco-yellow)}\n\n  .eco-upload.is-done{border-style:solid;border-color:var(--eco-green);background:#0e1a10}\n  .eco-upload.is-done .eco-upload__icon{color:var(--eco-green)}\n  .eco-upload.is-done .eco-upload__title{color:var(--eco-green)}\n\n  .eco-upload.is-error{border-style:solid;border-color:var(--eco-red);background:#1a0e0e}\n  .eco-upload.is-error .eco-upload__icon{color:var(--eco-red)}\n  .eco-upload.is-error .eco-upload__title{color:var(--eco-red)}\n\n  \/* Stato \"manca foto obbligatoria\" evidenziato al submit *\/\n  .eco-upload.is-required-miss{border-style:solid;border-color:var(--eco-red);background:#1a0e0e}\n  .eco-upload.is-required-miss .eco-upload__icon{color:var(--eco-red)}\n\n  .eco-upload__preview{\n    position:relative;z-index:1;\n    width:100%;max-width:120px;aspect-ratio:1\/1;\n    border-radius:6px;overflow:hidden;\n    background:#000;display:none;\n    margin-bottom:4px;\n  }\n  .eco-upload__preview.show{display:block}\n  .eco-upload__preview img{width:100%;height:100%;object-fit:cover;display:block}\n\n  .eco-upload__link{\n    color:var(--eco-yellow);font-size:.7rem;font-family:'Satoshi',sans-serif;\n    text-decoration:underline;display:none;position:relative;z-index:3;\n    word-break:break-all;max-width:100%;\n  }\n  .eco-upload__link.show{display:inline-block}\n\n  @keyframes ecoSpin{to{transform:rotate(360deg)}}\n\n  .eco-form-bottom{display:flex;flex-direction:column;gap:24px;padding-top:16px}\n  .eco-checkbox{display:flex;align-items:center;gap:12px;cursor:pointer}\n  .eco-checkbox input{width:20px;height:20px;accent-color:var(--eco-yellow)}\n  .eco-checkbox span{color:rgba(255,255,255,.55);font-size:.875rem}\n  .eco-checkbox a{color:var(--eco-yellow);text-decoration:underline}\n  .eco-form-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:18px 48px;border-radius:12px;color:#fff !important;font-weight:700;font-size:1rem;background:linear-gradient(to right,var(--eco-red),var(--eco-red-dark));border:none;cursor:pointer;box-shadow:0 8px 30px rgba(229,57,53,.25);transition:all .3s;align-self:flex-start;font-family:'Satoshi',sans-serif}\n  .eco-form-submit:hover:not(:disabled){box-shadow:0 12px 40px rgba(229,57,53,.4);transform:scale(1.03)}\n  .eco-form-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n\n  .eco-form-msg{margin-top:24px;padding:16px 20px;border-radius:8px;font-size:.875rem;display:none}\n  .eco-form-msg.show{display:block}\n  .eco-form-msg.ok{background:rgba(46,160,67,.12);border:1px solid rgba(46,160,67,.4);color:var(--eco-green)}\n  .eco-form-msg.ko{background:rgba(207,44,41,.15);border:1px solid rgba(207,44,41,.4);color:#fca5a5}\n\n  .eco-form-foot{text-align:center;margin-top:64px}\n  .eco-form-foot p{color:rgba(255,255,255,.4);font-size:.875rem;margin-bottom:16px}\n  .eco-form-foot a{display:inline-block}\n  .eco-form-foot .num{font-family:'General Sans',sans-serif;color:var(--eco-yellow);font-size:clamp(2rem,4vw,3rem);font-weight:700;transition:color .2s}\n  .eco-form-foot a:hover .num{color:var(--eco-yellow-light)}\n\n  \/* \u2550\u2550\u2550 ANIMATIONS \u2550\u2550\u2550 *\/\n  @keyframes fadeIn{to{opacity:1}}\n  @keyframes fadeUp{to{opacity:1;transform:translateY(0)}}\n  @keyframes wordIn{to{opacity:1;transform:translateY(0);filter:blur(0)}}\n  @keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}\n  @keyframes sparkLine{0%,100%{opacity:.4;transform:scaleX(.6)}50%{opacity:1;transform:scaleX(1)}}\n  @keyframes ctaFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}\n  .eco-reveal{opacity:0;transform:translateY(40px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}\n  .eco-reveal.in{opacity:1;transform:translateY(0)}\n\n  \/* \u2550\u2550\u2550 RESPONSIVE \u2550\u2550\u2550 *\/\n  @media(max-width:1023px){\n    .eco-consul-grid{grid-template-columns:1fr;gap:48px}\n    .eco-stepper-desktop{display:none}\n    .eco-stepper-mobile{display:block}\n    .eco-step-mob{display:flex;gap:20px}\n    .eco-step-mob-col{display:flex;flex-direction:column;align-items:center}\n    .eco-step-mob-num{width:48px;height:48px;border-radius:50%;background:#fff;border:2px solid #e5e7eb;color:#d1d5db;display:flex;align-items:center;justify-content:center;font-family:'General Sans',sans-serif;font-weight:700;font-size:1.125rem;flex-shrink:0;transition:all .5s}\n    .eco-step-mob-num.on{background:var(--eco-yellow);border-color:var(--eco-yellow);color:var(--eco-anthracite);box-shadow:0 0 16px rgba(252,237,79,.3)}\n    .eco-step-mob-line{width:2px;flex:1;margin:8px 0;background:#e5e7eb;position:relative;overflow:hidden}\n    .eco-step-mob-line::after{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,var(--eco-red),var(--eco-red-dark));transform:scaleY(0);transform-origin:top;transition:transform .7s ease}\n    .eco-step-mob-line.on::after{transform:scaleY(1)}\n    .eco-step-mob-body{padding-bottom:40px;opacity:.3;transition:opacity .5s}\n    .eco-step-mob-body.on{opacity:1}\n    .eco-step-mob-body svg{color:#d1d5db;margin-bottom:8px;width:20px;height:20px;transition:color .5s}\n    .eco-step-mob-body.on svg{color:var(--eco-red)}\n    .eco-step-mob-body h4{color:var(--eco-anthracite);font-size:.875rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}\n    .eco-step-mob-body p{color:#6b7280;font-size:.875rem;line-height:1.6}\n  }\n  @media(max-width:640px){\n    .eco-form-row{grid-template-columns:1fr}\n    .eco-form{padding:24px}\n    .eco-cta-card{padding:32px 24px}\n    .eco-consul{padding:80px 0}\n    .eco-assist-header{padding:64px 24px 16px}\n  }\n\n  \/* \u2550\u2550\u2550 Reduced motion \u2550\u2550\u2550 *\/\n  @media (prefers-reduced-motion: reduce){\n    .eco-ass .eco-reveal{opacity:1 !important;transform:none !important;transition:none !important}\n    .eco-ass .eco-hero-bg{transform:none !important}\n    .eco-ass .eco-hero h1 .w,\n    .eco-ass .eco-hero p,\n    .eco-ass .eco-hero-cta,\n    .eco-ass .eco-hero-label,\n    .eco-ass .eco-hero-cta svg,\n    .eco-ass .eco-spark-line>div,\n    .eco-ass .eco-cta-card{animation:none !important;opacity:1 !important;transform:none !important}\n    .eco-ass .eco-spark-canvas{display:none !important}\n    .eco-ass .eco-upload.is-loading .eco-upload__icon{animation:none !important}\n    .eco-ass .eco-phone-wrap.eco-glow .eco-phone-prefix,\n    .eco-ass .eco-phone-wrap.eco-glow input{animation:none !important}\n  }\n<\/style>\n\n<div class=\"eco-ass\">\n\n  <!-- \u2550\u2550\u2550 HERO \u2550\u2550\u2550 -->\n  <section class=\"eco-hero\" id=\"top\" aria-labelledby=\"eco-hero-h1\">\n    <div class=\"eco-hero-bg\" aria-hidden=\"true\"><\/div>\n    <div class=\"eco-hero-overlay\" aria-hidden=\"true\"><\/div>\n    <canvas class=\"eco-spark-canvas\" id=\"eco-spark-canvas\" aria-hidden=\"true\"><\/canvas>\n    <div class=\"eco-hero-content\">\n      <span class=\"eco-hero-label\">Assistenza<\/span>\n      <h1 id=\"eco-hero-h1\"><\/h1>\n      <p>Dalla consulenza alla consegna, dal noleggio all'assistenza H24: un ecosistema completo di servizi pensato per chi non pu\u00f2 permettersi soste. Perch\u00e9 il tuo lavoro non si ferma, e nemmeno il nostro supporto.<\/p>\n      <a href=\"#consulenza\" class=\"eco-hero-cta\" aria-label=\"Scopri come ti supportiamo - vai alla sezione consulenza\">\n        <span>Scopri come ti supportiamo<\/span>\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n      <\/a>\n    <\/div>\n    <div class=\"eco-spark-line\" aria-hidden=\"true\"><div><\/div><\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 CONSULENZA \u2550\u2550\u2550 -->\n  <section class=\"eco-consul\" id=\"consulenza\" aria-labelledby=\"eco-consul-title\">\n    <div class=\"eco-consul-grid\">\n      <div class=\"eco-consul-left eco-reveal\">\n        <span>01 \u2014 Consulenza<\/span>\n        <h2 id=\"eco-consul-title\">Il tuo progetto, la nostra esperienza.<\/h2>\n        <p>Non esiste una soluzione uguale per tutti. Ogni realt\u00e0 ha volumi, territori e tempistiche diverse. Il nostro team tecnico analizza le tue esigenze operative per progettare il sistema di raccolta ideale: dalla scelta dell'allestimento giusto alla configurazione della flotta, fino all'ottimizzazione dei percorsi.<\/p>\n        <div class=\"eco-stats\">\n          <div class=\"eco-stat\">\n            <div class=\"eco-stat-icon\" aria-hidden=\"true\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"6\"\/><circle cx=\"12\" cy=\"12\" r=\"2\"\/><\/svg><\/div>\n            <span>Analisi operativa su misura<\/span>\n          <\/div>\n          <div class=\"eco-stat\">\n            <div class=\"eco-stat-icon\" aria-hidden=\"true\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\/><\/svg><\/div>\n            <span>Configurazione tecnica dedicata<\/span>\n          <\/div>\n          <div class=\"eco-stat\">\n            <div class=\"eco-stat-icon\" aria-hidden=\"true\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\"><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\"\/><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\/><path d=\"M9 14l2 2 4-4\"\/><\/svg><\/div>\n            <span>Progettazione flotta completa<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"eco-calc eco-reveal\" style=\"transition-delay:.15s\">\n        <h3>Scopri di cosa hai bisogno<\/h3>\n        <div class=\"eco-calc-step\">\n          <label class=\"eco-calc-label\" for=\"eco-range\">Step 1 \u2014 Quanti abitanti serve il tuo territorio?<\/label>\n          <input type=\"range\" min=\"5000\" max=\"500000\" step=\"5000\" value=\"50000\" class=\"eco-range\" id=\"eco-range\" aria-valuemin=\"5000\" aria-valuemax=\"500000\" aria-valuenow=\"50000\">\n          <p class=\"eco-range-val\"><span id=\"eco-range-val\">50.000<\/span> <small>abitanti<\/small><\/p>\n        <\/div>\n        <div class=\"eco-calc-step\">\n          <label class=\"eco-calc-label\">Step 2 \u2014 Frequenza raccolta settimanale?<\/label>\n          <div class=\"eco-pills\" data-group=\"freq\" role=\"group\" aria-label=\"Frequenza raccolta settimanale\">\n            <button type=\"button\" class=\"eco-pill\" data-val=\"3\">3x<\/button>\n            <button type=\"button\" class=\"eco-pill\" data-val=\"5\">5x<\/button>\n            <button type=\"button\" class=\"eco-pill\" data-val=\"7\">7x<\/button>\n          <\/div>\n        <\/div>\n        <div class=\"eco-calc-step\">\n          <label class=\"eco-calc-label\">Step 3 \u2014 Tipo di raccolta principale?<\/label>\n          <div class=\"eco-pills\" data-group=\"tipo\" role=\"group\" aria-label=\"Tipo di raccolta principale\">\n            <button type=\"button\" class=\"eco-pill text-sm\" data-val=\"Differenziata\">Differenziata<\/button>\n            <button type=\"button\" class=\"eco-pill text-sm\" data-val=\"Mista\">Mista<\/button>\n            <button type=\"button\" class=\"eco-pill text-sm\" data-val=\"Industriale\">Industriale<\/button>\n          <\/div>\n        <\/div>\n        <a href=\"#form-assistenza\" class=\"eco-calc-cta\" id=\"eco-consul-cta\">Parla con un consulente \u2192<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 ASSISTENZA \u2550\u2550\u2550 -->\n  <section class=\"eco-assist\" id=\"assistenza\" aria-labelledby=\"eco-assist-title\">\n    <div class=\"eco-assist-header\">\n      <div class=\"eco-assist-header-content eco-reveal\">\n        <span class=\"eco-assist-label\">03 \u2014 Assistenza<\/span>\n        <h2 id=\"eco-assist-title\">Il tuo mezzo si \u00e8 fermato? Noi siamo gi\u00e0 in movimento.<\/h2>\n        <p>Supporto tecnico diretto, rapido e risolutivo. Non un call center, ma i nostri tecnici. Perch\u00e9 ogni ora di fermo \u00e8 un costo che puoi evitare.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-stepper\" id=\"eco-stepper\">\n      <div class=\"eco-stepper-desktop\">\n        <div class=\"eco-stepper-line\" aria-hidden=\"true\">\n          <div class=\"eco-stepper-progress\" id=\"eco-stepper-progress\"><\/div>\n          <div class=\"eco-step-num\" data-i=\"0\">1<\/div>\n          <div class=\"eco-step-num\" data-i=\"1\">2<\/div>\n          <div class=\"eco-step-num\" data-i=\"2\">3<\/div>\n          <div class=\"eco-step-num\" data-i=\"3\">4<\/div>\n        <\/div>\n        <div class=\"eco-stepper-cards\">\n          <div class=\"eco-step-card\" data-i=\"0\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><path d=\"M12 18h.01\"\/><\/svg>\n            <h4>Segnalazione<\/h4>\n            <p>Compila il form di assistenza allegando foto del libretto e del problema. In alternativa, chiama il Numero Verde 800-027777.<\/p>\n          <\/div>\n          <div class=\"eco-step-card\" data-i=\"1\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"m21 21-4.3-4.3\"\/><\/svg>\n            <h4>Diagnosi rapida<\/h4>\n            <p>Il nostro ufficio tecnico analizza la segnalazione e ti ricontatta entro 4 ore lavorative con una diagnosi e un piano d'azione.<\/p>\n          <\/div>\n          <div class=\"eco-step-card\" data-i=\"2\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\/><\/svg>\n            <h4>Intervento<\/h4>\n            <p>Intervento diretto sul campo o invio del ricambio dal nostro magazzino. Gestiamo tutto per ridurre al minimo il fermo mezzo.<\/p>\n          <\/div>\n          <div class=\"eco-step-card\" data-i=\"3\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg>\n            <h4>Ripartenza<\/h4>\n            <p>Il tuo mezzo torna operativo. Documentiamo l'intervento e aggiorniamo lo storico manutenzione per prevenire futuri fermi.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"eco-stepper-mobile\">\n        <div class=\"eco-step-mob\"><div class=\"eco-step-mob-col\"><div class=\"eco-step-mob-num\" data-i=\"0\">1<\/div><div class=\"eco-step-mob-line\" data-i=\"0\"><\/div><\/div><div class=\"eco-step-mob-body\" data-i=\"0\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><\/svg><h4>Segnalazione<\/h4><p>Compila il form di assistenza allegando foto del libretto e del problema.<\/p><\/div><\/div>\n        <div class=\"eco-step-mob\"><div class=\"eco-step-mob-col\"><div class=\"eco-step-mob-num\" data-i=\"1\">2<\/div><div class=\"eco-step-mob-line\" data-i=\"1\"><\/div><\/div><div class=\"eco-step-mob-body\" data-i=\"1\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"m21 21-4.3-4.3\"\/><\/svg><h4>Diagnosi rapida<\/h4><p>Il nostro ufficio tecnico analizza la segnalazione e ti ricontatta entro 4 ore lavorative.<\/p><\/div><\/div>\n        <div class=\"eco-step-mob\"><div class=\"eco-step-mob-col\"><div class=\"eco-step-mob-num\" data-i=\"2\">3<\/div><div class=\"eco-step-mob-line\" data-i=\"2\"><\/div><\/div><div class=\"eco-step-mob-body\" data-i=\"2\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\/><\/svg><h4>Intervento<\/h4><p>Intervento diretto o invio ricambio dal nostro magazzino.<\/p><\/div><\/div>\n        <div class=\"eco-step-mob\"><div class=\"eco-step-mob-col\"><div class=\"eco-step-mob-num\" data-i=\"3\">4<\/div><\/div><div class=\"eco-step-mob-body\" data-i=\"3\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><h4>Ripartenza<\/h4><p>Il tuo mezzo torna operativo. Documentiamo l'intervento.<\/p><\/div><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-cta-box\">\n      <div class=\"eco-cta-card\">\n        <h3>Apri una richiesta di assistenza<\/h3>\n        <p>Compila il form qui sotto. Il nostro ufficio tecnico ricever\u00e0 la tua segnalazione e ti ricontatter\u00e0 nel pi\u00f9 breve tempo possibile.<\/p>\n        <a href=\"#form-assistenza\" class=\"eco-cta-btn\"><span>Vai al Form Assistenza \u2193<\/span><\/a>\n        <div style=\"padding-top:16px\">\n          <a href=\"tel:800027777\" class=\"eco-cta-phone\" aria-label=\"Chiama il numero verde 800 02 77 77\">\n            <div class=\"eco-cta-phone-ico\" aria-hidden=\"true\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\/><\/svg><\/div>\n            <div><span class=\"lab\">Chiama subito<\/span><span class=\"num\">800 - 02 77 77<\/span><\/div>\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 FORM ASSISTENZA \u2550\u2550\u2550 -->\n  <section class=\"eco-form-sec\" id=\"form-assistenza\" aria-labelledby=\"eco-form-title\">\n    <div class=\"eco-form-bg\" aria-hidden=\"true\"><\/div>\n    <div class=\"eco-form-overlay\" aria-hidden=\"true\"><\/div>\n    <div class=\"eco-form-redbar\" aria-hidden=\"true\"><\/div>\n\n    <div class=\"eco-form-wrap eco-reveal\">\n      <div class=\"eco-form-header\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><polyline points=\"9 12 11 14 15 10\"\/><\/svg>\n        <h2 id=\"eco-form-title\">Apri una segnalazione<\/h2>\n        <p>Il nostro ufficio tecnico ricever\u00e0 la tua richiesta direttamente. Allega foto del libretto e del problema per velocizzare la diagnosi.<\/p>\n      <\/div>\n\n      <form class=\"eco-form\" id=\"eco-assist-form\" novalidate>\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-nome\">Nome e Cognome <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <input type=\"text\" id=\"eco-f-nome\" name=\"nome\" placeholder=\"Mario Rossi\" required autocomplete=\"name\">\n          <\/div>\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-azienda\">Azienda \/ Ente <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <input type=\"text\" id=\"eco-f-azienda\" name=\"azienda\" placeholder=\"Comune di Roma\" required autocomplete=\"organization\">\n          <\/div>\n        <\/div>\n\n        <!-- Seriale full-width -->\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field eco-form-field-full\">\n            <label for=\"eco-f-seriale\">N\u00b0 Serie Allestimento <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <input type=\"text\" id=\"eco-f-seriale\" name=\"seriale\" placeholder=\"ES-2024-XXXX\" required>\n          <\/div>\n        <\/div>\n\n        <!-- Regione + Telefono su una riga -->\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-regione\">Regione <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <select id=\"eco-f-regione\" name=\"regione\" required>\n              <option value=\"\">Seleziona...<\/option>\n              <option value=\"estero\">Estero<\/option>\n              <option value=\"abruzzo\">Abruzzo<\/option>\n              <option value=\"basilicata\">Basilicata<\/option>\n              <option value=\"calabria\">Calabria<\/option>\n              <option value=\"campania\">Campania<\/option>\n              <option value=\"emilia-romagna\">Emilia-Romagna<\/option>\n              <option value=\"friuli-venezia-giulia\">Friuli Venezia Giulia<\/option>\n              <option value=\"lazio\">Lazio<\/option>\n              <option value=\"liguria\">Liguria<\/option>\n              <option value=\"lombardia\">Lombardia<\/option>\n              <option value=\"marche\">Marche<\/option>\n              <option value=\"molise\">Molise<\/option>\n              <option value=\"piemonte\">Piemonte<\/option>\n              <option value=\"puglia\">Puglia<\/option>\n              <option value=\"sardegna\">Sardegna<\/option>\n              <option value=\"sicilia\">Sicilia<\/option>\n              <option value=\"toscana\">Toscana<\/option>\n              <option value=\"trentino-alto-adige\">Trentino-Alto Adige<\/option>\n              <option value=\"umbria\">Umbria<\/option>\n              <option value=\"valle-d-aosta\">Valle d'Aosta<\/option>\n              <option value=\"veneto\">Veneto<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-tel\">Telefono <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <div class=\"eco-phone-wrap\" id=\"eco-phone-wrap\">\n              <span class=\"eco-phone-prefix\" id=\"eco-phone-prefix\">+39<\/span>\n              <input type=\"tel\" id=\"eco-f-tel\" name=\"telefono\" placeholder=\"333 1234567\" required autocomplete=\"tel\">\n            <\/div>\n            <p class=\"eco-phone-hint\" id=\"eco-phone-hint\">\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle><path d=\"M12 16v-4\"><\/path><path d=\"M12 8h.01\"><\/path><\/svg>\n              <span id=\"eco-phone-hint-text\"><\/span>\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-email\">Email <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <input type=\"email\" id=\"eco-f-email\" name=\"email\" placeholder=\"mario@comune.roma.it\" required autocomplete=\"email\">\n          <\/div>\n          <div class=\"eco-form-field\">\n            <label for=\"eco-f-tipo\">Tipo di richiesta <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <select id=\"eco-f-tipo\" name=\"tipo\" required>\n              <option value=\"\">Seleziona...<\/option>\n              <option value=\"Vasca\">Vasca<\/option>\n              <option value=\"Costipatore\">Costipatore<\/option>\n              <option value=\"Compattatore\">Compattatore<\/option>\n              <option value=\"Scarrabile\">Scarrabile<\/option>\n              <option value=\"Spazzatrice\">Spazzatrice<\/option>\n              <option value=\"Pezzo di ricambio\">Pezzo di ricambio<\/option>\n              <option value=\"Altro\">Altro<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field eco-form-field-full\">\n            <label for=\"eco-f-msg\">Messaggio <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <textarea id=\"eco-f-msg\" name=\"messaggio\" placeholder=\"Descrivi il problema riscontrato...\" required><\/textarea>\n          <\/div>\n        <\/div>\n\n        <!-- UPLOADER FOTO (entrambe obbligatorie) -->\n        <div class=\"eco-form-row\">\n          <div class=\"eco-form-field\">\n            <label>Foto libretto allestimento <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <div class=\"eco-upload\" id=\"eco-upload-libretto\">\n              <div class=\"eco-upload__preview\" id=\"eco-preview-libretto\"><img alt=\"\"><\/div>\n              <svg class=\"eco-upload__icon\" id=\"eco-icon-libretto\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg>\n              <p class=\"eco-upload__title\" id=\"eco-title-libretto\">Carica foto libretto<\/p>\n              <p class=\"eco-upload__hint\">JPG o PNG \u00b7 max 8MB<\/p>\n              <a class=\"eco-upload__link\" id=\"eco-link-libretto\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Vedi file<\/a>\n              <input type=\"file\" id=\"eco-input-libretto\" accept=\"image\/jpeg,image\/jpg,image\/png\" aria-label=\"Carica foto del libretto allestimento\">\n            <\/div>\n          <\/div>\n          <div class=\"eco-form-field\">\n            <label>Foto del problema <span class=\"req\" aria-hidden=\"true\">*<\/span><\/label>\n            <div class=\"eco-upload\" id=\"eco-upload-problema\">\n              <div class=\"eco-upload__preview\" id=\"eco-preview-problema\"><img alt=\"\"><\/div>\n              <svg class=\"eco-upload__icon\" id=\"eco-icon-problema\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\/><circle cx=\"12\" cy=\"13\" r=\"4\"\/><\/svg>\n              <p class=\"eco-upload__title\" id=\"eco-title-problema\">Carica foto problema<\/p>\n              <p class=\"eco-upload__hint\">JPG o PNG \u00b7 max 8MB<\/p>\n              <a class=\"eco-upload__link\" id=\"eco-link-problema\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Vedi file<\/a>\n              <input type=\"file\" id=\"eco-input-problema\" accept=\"image\/jpeg,image\/jpg,image\/png\" aria-label=\"Carica foto del problema riscontrato\">\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"eco-form-bottom\">\n          <label class=\"eco-checkbox\">\n            <input type=\"checkbox\" name=\"privacy\" required>\n            <span>Ho letto e accetto la <a href=\"https:\/\/ecoservicespa.com\/privacy-policy\/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy<\/a> *<\/span>\n          <\/label>\n          <button type=\"submit\" class=\"eco-form-submit\" id=\"eco-form-submit-btn\">\n            <span id=\"eco-form-submit-label\">Invia Segnalazione \u2192<\/span>\n          <\/button>\n          <div class=\"eco-form-msg\" id=\"eco-form-msg\" role=\"status\" aria-live=\"polite\"><\/div>\n        <\/div>\n      <\/form>\n\n      <div class=\"eco-form-foot\">\n        <p>Oppure chiama direttamente il nostro Numero Verde gratuito:<\/p>\n        <a href=\"tel:800027777\" aria-label=\"Chiama il numero verde 800 02 77 77\"><span class=\"num\">800 - 02 77 77<\/span><\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\n(function(){\n  'use strict';\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/ CONFIG \u2014 chiavi inserite direttamente\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  var ZAPIER_WEBHOOK = 'https:\/\/hooks.zapier.com\/hooks\/catch\/5638581\/uvaiczu\/';\n  var IMGBB_KEY      = '64f9a5df07edfd0af98b7cd5a54fed57';\n  var MAX_FILE_SIZE  = 8 * 1024 * 1024;\n\n  var prefersReduced = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  \/\/ \u2550\u2550\u2550 HERO word reveal \u2550\u2550\u2550\n  var h1 = document.getElementById('eco-hero-h1');\n  if (h1) {\n    var heroText = \"Non vendiamo solo mezzi. Ti garantiamo che non si fermino mai.\";\n    if (prefersReduced) {\n      h1.textContent = heroText;\n    } else {\n      var words = heroText.split(\" \");\n      h1.innerHTML = words.map(function(w, i){\n        return '<span class=\"w\" style=\"animation-delay:' + (0.05 * i + 0.2) + 's\">' + w + '<\/span>';\n      }).join(' ');\n    }\n  }\n\n  \/\/ \u2550\u2550\u2550 SPARK CANVAS \u2550\u2550\u2550\n  if (!prefersReduced) {\n    var canvas = document.getElementById('eco-spark-canvas');\n    if (canvas) {\n      var ctx = canvas.getContext('2d');\n      var dpr = window.devicePixelRatio || 1;\n      function resize(){\n        canvas.width = canvas.offsetWidth * dpr;\n        canvas.height = canvas.offsetHeight * dpr;\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n      }\n      resize();\n      window.addEventListener('resize', resize);\n      var W = function(){ return canvas.offsetWidth; };\n      var H = function(){ return canvas.offsetHeight; };\n      function mk(){\n        return {\n          x: Math.random() * W(), y: H() * 0.8 + Math.random() * H() * 0.2,\n          r: 1 + Math.random() * 2, vy: -(0.3 + Math.random() * 0.55),\n          vx: (Math.random() - 0.5) * 0.35, o: 0.4 + Math.random() * 0.6,\n          life: 0, max: 220 + Math.random() * 280\n        };\n      }\n      var ps = []; for (var i = 0; i < 14; i++) ps.push(mk());\n      var cols = ['252,237,79', '255,245,120', '252,237,79'];\n      function draw(){\n        ctx.clearRect(0, 0, W(), H());\n        for (var j = 0; j < ps.length; j++) {\n          var p = ps[j];\n          p.x += p.vx; p.y += p.vy; p.life++;\n          var f = 1 - p.life \/ p.max;\n          if (f <= 0) { ps[j] = mk(); continue; }\n          var c = cols[p.life % 3];\n          ctx.beginPath();\n          ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);\n          ctx.fillStyle = 'rgba(' + c + ',' + (p.o * f).toFixed(2) + ')';\n          ctx.shadowBlur = 8; ctx.shadowColor = 'rgba(' + c + ',0.5)';\n          ctx.fill(); ctx.shadowBlur = 0;\n        }\n        requestAnimationFrame(draw);\n      }\n      requestAnimationFrame(draw);\n    }\n  }\n\n  \/\/ \u2550\u2550\u2550 Range slider \u2550\u2550\u2550\n  var range = document.getElementById('eco-range');\n  var rangeVal = document.getElementById('eco-range-val');\n  if (range && rangeVal) {\n    range.addEventListener('input', function(){\n      var v = +this.value;\n      rangeVal.textContent = v.toLocaleString('it-IT');\n      this.setAttribute('aria-valuenow', v);\n    });\n  }\n\n  \/\/ \u2550\u2550\u2550 Pills toggle \u2550\u2550\u2550\n  document.querySelectorAll('.eco-pills').forEach(function(group){\n    group.addEventListener('click', function(e){\n      var btn = e.target.closest('.eco-pill');\n      if (!btn) return;\n      group.querySelectorAll('.eco-pill').forEach(function(b){\n        b.classList.remove('active');\n        b.setAttribute('aria-pressed', 'false');\n      });\n      btn.classList.add('active');\n      btn.setAttribute('aria-pressed', 'true');\n    });\n  });\n\n  \/\/ \u2550\u2550\u2550 Reveal on scroll \u2550\u2550\u2550\n  var els = document.querySelectorAll('.eco-reveal');\n  if (prefersReduced || !('IntersectionObserver' in window)) {\n    els.forEach(function(e){ e.classList.add('in'); });\n  } else {\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(en){\n        if (en.isIntersecting) { en.target.classList.add('in'); io.unobserve(en.target); }\n      });\n    }, { threshold: .12, rootMargin: '0px 0px -60px 0px' });\n    els.forEach(function(e){ io.observe(e); });\n  }\n\n  \/\/ \u2550\u2550\u2550 Stepper animato allo scroll \u2550\u2550\u2550\n  var stepper = document.getElementById('eco-stepper');\n  var progress = document.getElementById('eco-stepper-progress');\n  var nums = document.querySelectorAll('.eco-step-num');\n  var cards = document.querySelectorAll('.eco-step-card');\n  var mobNums = document.querySelectorAll('.eco-step-mob-num');\n  var mobLines = document.querySelectorAll('.eco-step-mob-line');\n  var mobBodies = document.querySelectorAll('.eco-step-mob-body');\n  function updateStepper(){\n    if (!stepper) return;\n    var rect = stepper.getBoundingClientRect();\n    var vh = window.innerHeight;\n    var raw = (vh - rect.top) \/ (rect.height + vh * 0.5);\n    var p = Math.max(0, Math.min(1, raw));\n    var active = Math.min(3, Math.floor(p * 4.5));\n    if (progress) progress.style.width = (p * 84) + '%';\n    nums.forEach(function(n){ n.classList.toggle('on', +n.getAttribute('data-i') <= active); });\n    cards.forEach(function(c){ c.classList.toggle('on', +c.getAttribute('data-i') <= active); });\n    mobNums.forEach(function(n){ n.classList.toggle('on', +n.getAttribute('data-i') <= active); });\n    mobLines.forEach(function(l){ l.classList.toggle('on', +l.getAttribute('data-i') < active); });\n    mobBodies.forEach(function(b){ b.classList.toggle('on', +b.getAttribute('data-i') <= active); });\n  }\n  window.addEventListener('scroll', updateStepper, { passive: true });\n  window.addEventListener('resize', updateStepper);\n  updateStepper();\n\n  \/\/ \u2550\u2550\u2550 Smooth scroll \u2550\u2550\u2550\n  document.querySelectorAll('.eco-ass a[href^=\"#\"]').forEach(function(a){\n    a.addEventListener('click', function(e){\n      var id = this.getAttribute('href').slice(1);\n      var t = document.getElementById(id);\n      if (t) {\n        e.preventDefault();\n        t.scrollIntoView({ behavior: prefersReduced ? 'auto' : 'smooth', block: 'start' });\n      }\n    });\n  });\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/ TELEFONO \u2014 toggle Italia\/Estero in base alla Regione\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  var formEl = document.getElementById('eco-assist-form');\n  var regioneSelect = document.getElementById('eco-f-regione');\n  var phoneInput = document.getElementById('eco-f-tel');\n  var phoneWrap = document.getElementById('eco-phone-wrap');\n  var phoneHint = document.getElementById('eco-phone-hint');\n  var phoneHintText = document.getElementById('eco-phone-hint-text');\n  var lastEsteroState = null;\n\n  function updatePhoneMode(animate) {\n    var isEstero = regioneSelect && regioneSelect.value === 'estero';\n\n    if (isEstero) {\n      if (formEl) formEl.classList.add('is-estero');\n      if (phoneInput) phoneInput.placeholder = '+33 6 12 34 56 78';\n      if (phoneHintText) phoneHintText.textContent = 'Sei all\\u2019estero: aggiungi il prefisso internazionale (es. +33).';\n    } else {\n      if (formEl) formEl.classList.remove('is-estero');\n      if (phoneInput) phoneInput.placeholder = '333 1234567';\n      if (phoneHintText) phoneHintText.textContent = 'Prefisso +39 gi\\u00e0 incluso: scrivi solo il numero.';\n    }\n\n    if (phoneHint) phoneHint.classList.add('show');\n\n    if (animate && phoneWrap && lastEsteroState !== null && lastEsteroState !== isEstero) {\n      phoneWrap.classList.remove('eco-glow');\n      void phoneWrap.offsetWidth; \/\/ reflow per riavviare l'animazione\n      phoneWrap.classList.add('eco-glow');\n      setTimeout(function(){ phoneWrap.classList.remove('eco-glow'); }, 1000);\n    }\n\n    lastEsteroState = isEstero;\n  }\n  if (regioneSelect) {\n    regioneSelect.addEventListener('change', function(){ updatePhoneMode(true); });\n    updatePhoneMode(false);\n  }\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/ PHOTO UPLOAD HANDLER (ImgBB) \u2014 versione robusta\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n  var uploadState = {\n    libretto: { url: '', uploading: false, error: false },\n    problema: { url: '', uploading: false, error: false }\n  };\n\n  \/\/ Compressione canvas\n  function compressImage(file, callback) {\n    try {\n      var reader = new FileReader();\n      reader.onload = function(e) {\n        var img = new Image();\n        img.onload = function() {\n          try {\n            var MAX = 1200;\n            var w = img.width, h = img.height;\n            if (!w || !h) { callback(null, 'Immagine non valida'); return; }\n            if (w > MAX || h > MAX) {\n              if (w >= h) { h = Math.round(h * MAX \/ w); w = MAX; }\n              else        { w = Math.round(w * MAX \/ h); h = MAX; }\n            }\n            var c = document.createElement('canvas');\n            c.width = w; c.height = h;\n            var cctx = c.getContext('2d');\n            cctx.fillStyle = '#fff';\n            cctx.fillRect(0, 0, w, h);\n            cctx.drawImage(img, 0, 0, w, h);\n            var dataUrl = c.toDataURL('image\/jpeg', 0.78);\n            if (!dataUrl || dataUrl.indexOf(',') === -1) {\n              callback(null, 'Errore conversione canvas');\n              return;\n            }\n            callback(dataUrl.split(',')[1], null);\n          } catch(err) { callback(null, 'Errore canvas: ' + err.message); }\n        };\n        img.onerror = function(){ callback(null, 'Immagine corrotta'); };\n        img.src = e.target.result;\n      };\n      reader.onerror = function(){ callback(null, 'Errore lettura file'); };\n      reader.readAsDataURL(file);\n    } catch(err) {\n      callback(null, 'Errore: ' + err.message);\n    }\n  }\n\n  \/\/ Upload ImgBB con XMLHttpRequest\n  function uploadToImgBB(b64, onSuccess, onError) {\n    try {\n      var xhr = new XMLHttpRequest();\n      xhr.open('POST', 'https:\/\/api.imgbb.com\/1\/upload?key=' + encodeURIComponent(IMGBB_KEY), true);\n      xhr.timeout = 45000;\n\n      xhr.onreadystatechange = function() {\n        if (xhr.readyState !== 4) return;\n\n        if (xhr.status === 200 || (xhr.status === 0 && xhr.responseText)) {\n          var data;\n          try { data = JSON.parse(xhr.responseText); }\n          catch(parseErr) {\n            onError('Risposta non valida da ImgBB');\n            return;\n          }\n          if (data && data.success === true && data.data && data.data.url) {\n            onSuccess(data.data.url);\n          } else if (data && data.error && data.error.message) {\n            onError('ImgBB: ' + data.error.message);\n          } else {\n            onError('Risposta ImgBB inattesa');\n          }\n        } else {\n          var msg = 'HTTP ' + xhr.status;\n          try {\n            var errData = JSON.parse(xhr.responseText);\n            if (errData && errData.error && errData.error.message) {\n              msg = 'ImgBB: ' + errData.error.message;\n            }\n          } catch(e){}\n          onError(msg);\n        }\n      };\n\n      xhr.ontimeout = function(){ onError('Timeout caricamento'); };\n      xhr.onerror   = function(){ onError('Errore di rete'); };\n\n      var fd = new FormData();\n      fd.append('image', b64);\n      xhr.send(fd);\n    } catch(err) {\n      onError('Errore invio: ' + err.message);\n    }\n  }\n\n  function setupUploader(key) {\n    var input = document.getElementById('eco-input-' + key);\n    var box = document.getElementById('eco-upload-' + key);\n    var preview = document.getElementById('eco-preview-' + key);\n    var previewImg = preview.querySelector('img');\n    var titleEl = document.getElementById('eco-title-' + key);\n    var linkEl = document.getElementById('eco-link-' + key);\n    var defaultTitle = (key === 'libretto') ? 'Carica foto libretto' : 'Carica foto problema';\n\n    function setState(state, opts) {\n      opts = opts || {};\n      box.classList.remove('is-loading', 'is-done', 'is-error', 'is-required-miss');\n      if (state === 'loading') {\n        box.classList.add('is-loading');\n        titleEl.textContent = 'Caricamento in corso...';\n        linkEl.classList.remove('show');\n      } else if (state === 'done') {\n        box.classList.add('is-done');\n        titleEl.textContent = 'Foto caricata \u2713';\n        if (opts.url) {\n          linkEl.href = opts.url;\n          linkEl.classList.add('show');\n        }\n      } else if (state === 'error') {\n        box.classList.add('is-error');\n        titleEl.textContent = opts.message || 'Errore - riprova';\n        linkEl.classList.remove('show');\n      } else {\n        titleEl.textContent = defaultTitle;\n        linkEl.classList.remove('show');\n        preview.classList.remove('show');\n        previewImg.src = '';\n      }\n    }\n\n    input.addEventListener('change', function(){\n      var file = this.files && this.files[0];\n      if (!file) return;\n\n      \/\/ Validazione\n      if (!\/^image\\\/(jpeg|jpg|png)$\/i.test(file.type)) {\n        setState('error', { message: 'Solo JPG o PNG' });\n        this.value = '';\n        return;\n      }\n      if (file.size > MAX_FILE_SIZE) {\n        setState('error', { message: 'Max 8MB' });\n        this.value = '';\n        return;\n      }\n\n      \/\/ Anteprima locale\n      try {\n        var localUrl = URL.createObjectURL(file);\n        previewImg.src = localUrl;\n        preview.classList.add('show');\n      } catch(e){ \/* fallback silenzioso *\/ }\n\n      uploadState[key].uploading = true;\n      uploadState[key].error = false;\n      uploadState[key].url = '';\n      setState('loading');\n\n      compressImage(file, function(b64, errMsg){\n        if (!b64) {\n          uploadState[key].uploading = false;\n          uploadState[key].error = true;\n          setState('error', { message: errMsg || 'Errore elaborazione' });\n          return;\n        }\n        uploadToImgBB(b64,\n          function(url){\n            uploadState[key].url = url;\n            uploadState[key].uploading = false;\n            uploadState[key].error = false;\n            setState('done', { url: url });\n          },\n          function(errStr){\n            console.error('[Eco] ImgBB upload error (' + key + '):', errStr);\n            uploadState[key].uploading = false;\n            uploadState[key].error = true;\n            setState('error', { message: 'Upload fallito - riprova' });\n          }\n        );\n      });\n    });\n  }\n\n  setupUploader('libretto');\n  setupUploader('problema');\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/ FORM SUBMIT \u2192 Webhook Zapier\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n  var form = document.getElementById('eco-assist-form');\n  var msgBox = document.getElementById('eco-form-msg');\n  var submitBtn = document.getElementById('eco-form-submit-btn');\n  var submitLabel = document.getElementById('eco-form-submit-label');\n\n  function showMsg(type, text) {\n    if (!msgBox) return;\n    msgBox.className = 'eco-form-msg show ' + type;\n    msgBox.textContent = text;\n  }\n  function hideMsg() {\n    if (!msgBox) return;\n    msgBox.className = 'eco-form-msg';\n    msgBox.textContent = '';\n  }\n\n  \/\/ Evidenzia \/ pulisce lo stato \"foto mancante\"\n  function markPhotoMissing(key, missing) {\n    var box = document.getElementById('eco-upload-' + key);\n    if (!box) return;\n    if (missing) box.classList.add('is-required-miss');\n    else box.classList.remove('is-required-miss');\n  }\n\n  if (form) {\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      hideMsg();\n\n      \/\/ 1) Validazione nativa campi testo\/select\n      if (!form.checkValidity()) {\n        form.reportValidity();\n        return;\n      }\n\n      \/\/ 2) Attendi fine upload in corso\n      if (uploadState.libretto.uploading || uploadState.problema.uploading) {\n        showMsg('ko', 'Attendi il completamento del caricamento delle foto prima di inviare.');\n        return;\n      }\n\n      \/\/ 3) Validazione custom FOTO OBBLIGATORIE\n      var missingLibretto = !uploadState.libretto.url;\n      var missingProblema = !uploadState.problema.url;\n      markPhotoMissing('libretto', missingLibretto);\n      markPhotoMissing('problema', missingProblema);\n      if (missingLibretto || missingProblema) {\n        showMsg('ko', 'Carica entrambe le foto obbligatorie (libretto e problema) prima di inviare.');\n        var firstMiss = document.getElementById('eco-upload-' + (missingLibretto ? 'libretto' : 'problema'));\n        if (firstMiss && firstMiss.scrollIntoView) {\n          firstMiss.scrollIntoView({ behavior: prefersReduced ? 'auto' : 'smooth', block: 'center' });\n        }\n        return;\n      }\n\n      var fd = new FormData(form);\n      var freqActive = document.querySelector('.eco-pills[data-group=\"freq\"] .eco-pill.active');\n      var tipoActive = document.querySelector('.eco-pills[data-group=\"tipo\"] .eco-pill.active');\n\n      var isEstero = regioneSelect && regioneSelect.value === 'estero';\n      var rawPhone = phoneInput ? phoneInput.value.trim() : '';\n\n      var payload = {\n        nome: fd.get('nome') || '',\n        azienda: fd.get('azienda') || '',\n        seriale: fd.get('seriale') || '',\n        \/\/ Telefono: +39 prepeso solo per l'Italia (l'estero scrive il proprio prefisso)\n        telefono: isEstero ? rawPhone : '+39 ' + rawPhone,\n        email: fd.get('email') || '',\n        tipo_richiesta: fd.get('tipo') || '',\n        messaggio: fd.get('messaggio') || '',\n        \/\/ NUOVI campi (nomi originali invariati, solo aggiunte)\n        regione: isEstero ? '' : (fd.get('regione') || ''),\n        provenienza: isEstero ? 'estero' : 'italia',\n        paese: isEstero ? 'Estero' : 'Italia',\n        privacy_accettata: fd.get('privacy') ? 'Si' : 'No',\n        email_destinatario_suggerito: (fd.get('tipo') === 'Pezzo di ricambio')\n          ? 'c.conte@ecoservicespa.com'\n          : 'ufficiotecnico@ecoservicespa.com,m.decastro@ecoservicespa.com',\n        foto_libretto_url: uploadState.libretto.url || '(nessuna foto caricata)',\n        foto_problema_url: uploadState.problema.url || '(nessuna foto caricata)',\n        calc_abitanti: range ? range.value : '',\n        calc_frequenza: freqActive ? freqActive.getAttribute('data-val') : '',\n        calc_tipo_raccolta: tipoActive ? tipoActive.getAttribute('data-val') : '',\n        timestamp: new Date().toISOString(),\n        source_url: window.location.href\n      };\n\n      var urlEncoded = Object.keys(payload).map(function(k){\n        return encodeURIComponent(k) + '=' + encodeURIComponent(payload[k]);\n      }).join('&');\n\n      submitBtn.disabled = true;\n      submitLabel.textContent = 'Invio in corso...';\n\n      fetch(ZAPIER_WEBHOOK, {\n        method: 'POST',\n        mode: 'no-cors',\n        headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n        body: urlEncoded\n      })\n      .then(function(){\n        showMsg('ok', 'Segnalazione inviata con successo. Il nostro ufficio tecnico ti ricontatter\u00e0 al pi\u00f9 presto.');\n        form.reset();\n        document.querySelectorAll('.eco-pill.active').forEach(function(p){\n          p.classList.remove('active');\n          p.setAttribute('aria-pressed', 'false');\n        });\n        if (range && rangeVal) {\n          range.value = 50000;\n          rangeVal.textContent = (50000).toLocaleString('it-IT');\n        }\n        \/\/ ripristina stato telefono\n        updatePhoneMode(false);\n        uploadState.libretto = { url: '', uploading: false, error: false };\n        uploadState.problema = { url: '', uploading: false, error: false };\n        ['libretto', 'problema'].forEach(function(k){\n          var box = document.getElementById('eco-upload-' + k);\n          var prev = document.getElementById('eco-preview-' + k);\n          var title = document.getElementById('eco-title-' + k);\n          var link = document.getElementById('eco-link-' + k);\n          if (box) box.classList.remove('is-loading','is-done','is-error','is-required-miss');\n          if (prev) { prev.classList.remove('show'); prev.querySelector('img').src=''; }\n          if (title) title.textContent = (k === 'libretto') ? 'Carica foto libretto' : 'Carica foto problema';\n          if (link) link.classList.remove('show');\n        });\n        submitLabel.textContent = 'Inviato';\n        setTimeout(function(){\n          submitBtn.disabled = false;\n          submitLabel.textContent = 'Invia Segnalazione \u2192';\n        }, 4000);\n      })\n      .catch(function(err){\n        console.error('[Eco] Form submit error:', err);\n        showMsg('ko', 'Errore di rete. Riprova oppure chiama il Numero Verde 800-02 77 77.');\n        submitBtn.disabled = false;\n        submitLabel.textContent = 'Invia Segnalazione \u2192';\n      });\n    });\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Assistenza Dalla consulenza alla consegna, dal noleggio all&#8217;assistenza H24: un ecosistema completo di servizi pensato per chi non pu\u00f2 permettersi soste. Perch\u00e9 il tuo lavoro non si ferma, e nemmeno il nostro supporto. Scopri come ti supportiamo 01 \u2014 Consulenza Il tuo progetto, la nostra esperienza. Non esiste una soluzione uguale per tutti. Ogni realt\u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-5204","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>Assistenza new - Ecoservice spa<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ecoservicespa.com\/assistenza-new\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Assistenza new - Ecoservice spa\" \/>\n<meta property=\"og:description\" content=\"Assistenza Dalla consulenza alla consegna, dal noleggio all&#8217;assistenza H24: un ecosistema completo di servizi pensato per chi non pu\u00f2 permetter\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ecoservicespa.com\/assistenza-new\/\" \/>\n<meta property=\"og:site_name\" content=\"Ecoservice spa\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-25T22:18:49+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ecoservicespa.com\\\/assistenza-new\\\/\",\"url\":\"https:\\\/\\\/www.ecoservicespa.com\\\/assistenza-new\\\/\",\"name\":\"Assistenza new - Ecoservice spa\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ecoservicespa.com\\\/en\\\/#website\"},\"datePublished\":\"2026-04-30T09:18:11+00:00\",\"dateModified\":\"2026-05-25T22:18:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ecoservicespa.com\\\/assistenza-new\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ecoservicespa.com\\\/assistenza-new\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ecoservicespa.com\\\/assistenza-new\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ecoservicespa.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Assistenza new\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ecoservicespa.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.ecoservicespa.com\\\/en\\\/\",\"name\":\"Ecoservice spa\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ecoservicespa.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Assistenza new - Ecoservice spa","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.ecoservicespa.com\/assistenza-new\/","og_locale":"fr_FR","og_type":"article","og_title":"Assistenza new - Ecoservice spa","og_description":"Assistenza Dalla consulenza alla consegna, dal noleggio all&#8217;assistenza H24: un ecosistema completo di servizi pensato per chi non pu\u00f2 permetter","og_url":"https:\/\/www.ecoservicespa.com\/assistenza-new\/","og_site_name":"Ecoservice spa","article_modified_time":"2026-05-25T22:18:49+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ecoservicespa.com\/assistenza-new\/","url":"https:\/\/www.ecoservicespa.com\/assistenza-new\/","name":"Assistenza new - Ecoservice spa","isPartOf":{"@id":"https:\/\/www.ecoservicespa.com\/en\/#website"},"datePublished":"2026-04-30T09:18:11+00:00","dateModified":"2026-05-25T22:18:49+00:00","breadcrumb":{"@id":"https:\/\/www.ecoservicespa.com\/assistenza-new\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ecoservicespa.com\/assistenza-new\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ecoservicespa.com\/assistenza-new\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ecoservicespa.com\/"},{"@type":"ListItem","position":2,"name":"Assistenza new"}]},{"@type":"WebSite","@id":"https:\/\/www.ecoservicespa.com\/en\/#website","url":"https:\/\/www.ecoservicespa.com\/en\/","name":"Ecoservice spa","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ecoservicespa.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/pages\/5204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/comments?post=5204"}],"version-history":[{"count":23,"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/pages\/5204\/revisions"}],"predecessor-version":[{"id":5456,"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/pages\/5204\/revisions\/5456"}],"wp:attachment":[{"href":"https:\/\/ecoservicespa.com\/fr\/wp-json\/wp\/v2\/media?parent=5204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}