{"id":1720,"date":"2026-02-13T10:21:14","date_gmt":"2026-02-13T09:21:14","guid":{"rendered":"https:\/\/zetacer.it\/about-us\/"},"modified":"2026-06-12T11:52:08","modified_gmt":"2026-06-12T09:52:08","slug":"about-us","status":"publish","type":"page","link":"https:\/\/zetacer.it\/en\/about-us\/","title":{"rendered":"About Us"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1720\" class=\"elementor elementor-1720 elementor-242\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eba9ab5 e-con-full e-flex e-con e-parent\" data-id=\"eba9ab5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5844ac2 elementor-widget elementor-widget-heading\" data-id=\"5844ac2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">About Us<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d41930 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"5d41930\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/zetacer.digital-comm.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Scroll-down-hint.json&quot;,&quot;id&quot;:248,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;link_to&quot;:&quot;custom&quot;,&quot;custom_link&quot;:{&quot;url&quot;:&quot;#scroll&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.7,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<a class=\"e-lottie__container__link\" href=\"#scroll\"><div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div><\/a>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4b69b9e e-con-full e-flex e-con e-parent\" data-id=\"4b69b9e\" data-element_type=\"container\" data-e-type=\"container\" id=\"scroll\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-552e11d e-flex e-con-boxed e-con e-child\" data-id=\"552e11d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;background_motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c705204 e-flex e-con-boxed e-con e-child\" data-id=\"c705204\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0dffaaa elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"0dffaaa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">beyond design<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d4b1b9 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"7d4b1b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Zetacer Srl was founded on technical expertise developed at the heart of the Sassuolo ceramic district. For over forty years, we have been operating in the design and construction of industrial plants, integrating engineering competencies, process know-how, and operational site management. <\/p><p>Our approach combines 2D\/3D CAD design, feasibility studies, and executive coordination, delivering concrete and measurable solutions for industry.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8fd29c2 e-con-full zet-timeline e-flex e-con e-parent\" data-id=\"8fd29c2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d26ec72 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d26ec72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Our history<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-305d841 e-flex e-con-boxed e-con e-child\" data-id=\"305d841\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-451cb1a elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"451cb1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">1975<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbe576e elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"bbe576e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The foundations, in the field<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3de7bff elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"3de7bff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The founder&#8217;s journey began in the technical office of a <strong>leading ceramic group<\/strong> in the <strong>Sassuolo<\/strong> <strong>area<\/strong>: method, rigor, and manufacturing culture.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5651b6d zet-timeline-title elementor-widget elementor-widget-image\" data-id=\"5651b6d\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"image-1975\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"533\" src=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1024x682.webp\" class=\"attachment-large size-large wp-image-1724\" alt=\"\" srcset=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1024x682.webp 1024w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-300x200.webp 300w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-768x512.webp 768w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1536x1024.webp 1536w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon.webp 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-843ccfa elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"843ccfa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>(() => {\n  const SELECTOR = '#descript-1';\n\n  \/\/ \u201csegue lo scroll\u201d (non smooth\/inerziale), ma senza scatti (smoothing leggero)\n  const SPEED   = 0.10;  \/\/ quanto \u201cgalleggia\u201d (0.06\u20130.14)\n  const MAXPX   = 46;    \/\/ limite spostamento\n  const SMOOTH  = 0.28;  \/\/ 0.2\u20130.35: toglie gli scatti senza diventare \u201cmorbido\u201d\n\n  function init(){\n    const el = document.querySelector(SELECTOR);\n    if(!el) return false;\n\n    if(el.dataset.zetFloatInit === '1') return true;\n    el.dataset.zetFloatInit = '1';\n\n    let current = 0;\n    let raf = null;\n    let active = false;\n    let lastTarget = 0;\n\n    const clamp = (v,a,b)=>Math.max(a,Math.min(b,v));\n\n    function computeTarget(){\n      const r  = el.getBoundingClientRect();\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n      const dy = (r.top + r.height\/2) - (vh\/2);\n\n      \/\/ \u2705 INVERSO: stessa direzione dello scroll (se vuoi l\u2019altro verso, metti -dy)\n      return clamp(dy * SPEED, -MAXPX, MAXPX);\n    }\n\n    function render(val){\n      el.style.transform = `translate3d(0, ${val.toFixed(2)}px, 0)`;\n    }\n\n    function tick(){\n      raf = null;\n      if(!active) return;\n\n      const target = lastTarget;\n\n      \/\/ smoothing \u201csecco\u201d: segue, ma non scatta\n      current += (target - current) * SMOOTH;\n\n      \/\/ snap micro (evita tremolio)\n      if(Math.abs(target - current) < 0.05) current = target;\n\n      render(current);\n    }\n\n    function onScroll(){\n      if(!active) return;\n      lastTarget = computeTarget();\n      if(!raf) raf = requestAnimationFrame(tick);\n    }\n\n    const io = new IntersectionObserver((entries) => {\n      active = !!entries[0]?.isIntersecting;\n      if(active){\n        lastTarget = computeTarget();\n        current = lastTarget;\n        render(current);\n        window.addEventListener('scroll', onScroll, { passive:true });\n        window.addEventListener('resize', onScroll, { passive:true });\n      } else {\n        window.removeEventListener('scroll', onScroll);\n        window.removeEventListener('resize', onScroll);\n      }\n    }, { threshold: 0.01 });\n\n    io.observe(el);\n\n    \/\/ primo giro\n    active = true;\n    onScroll();\n\n    return true;\n  }\n\n  function boot(){\n    if(init()) return;\n\n    \/\/ Elementor pubblicato: aspetta che il DOM venga popolato\n    const mo = new MutationObserver(() => {\n      if(init()) mo.disconnect();\n    });\n    mo.observe(document.documentElement, { childList:true, subtree:true });\n    setTimeout(() => mo.disconnect(), 8000);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot, { once:true });\n  } else {\n    boot();\n  }\n\n  window.addEventListener('elementor\/frontend\/init', () => setTimeout(boot, 0), { once:true });\n})();\n<\/script><script>(() => {\n  const SELECTOR = '#descript-2';\n\n  \/\/ \u201csegue lo scroll\u201d (non smooth\/inerziale), ma senza scatti (smoothing leggero)\n  const SPEED   = 0.10;  \/\/ quanto \u201cgalleggia\u201d (0.06\u20130.14)\n  const MAXPX   = 46;    \/\/ limite spostamento\n  const SMOOTH  = 0.28;  \/\/ 0.2\u20130.35: toglie gli scatti senza diventare \u201cmorbido\u201d\n\n  function init(){\n    const el = document.querySelector(SELECTOR);\n    if(!el) return false;\n\n    if(el.dataset.zetFloatInit === '1') return true;\n    el.dataset.zetFloatInit = '1';\n\n    let current = 0;\n    let raf = null;\n    let active = false;\n    let lastTarget = 0;\n\n    const clamp = (v,a,b)=>Math.max(a,Math.min(b,v));\n\n    function computeTarget(){\n      const r  = el.getBoundingClientRect();\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n      const dy = (r.top + r.height\/2) - (vh\/2);\n\n      \/\/ \u2705 INVERSO: stessa direzione dello scroll (se vuoi l\u2019altro verso, metti -dy)\n      return clamp(dy * SPEED, -MAXPX, MAXPX);\n    }\n\n    function render(val){\n      el.style.transform = `translate3d(0, ${val.toFixed(2)}px, 0)`;\n    }\n\n    function tick(){\n      raf = null;\n      if(!active) return;\n\n      const target = lastTarget;\n\n      \/\/ smoothing \u201csecco\u201d: segue, ma non scatta\n      current += (target - current) * SMOOTH;\n\n      \/\/ snap micro (evita tremolio)\n      if(Math.abs(target - current) < 0.05) current = target;\n\n      render(current);\n    }\n\n    function onScroll(){\n      if(!active) return;\n      lastTarget = computeTarget();\n      if(!raf) raf = requestAnimationFrame(tick);\n    }\n\n    const io = new IntersectionObserver((entries) => {\n      active = !!entries[0]?.isIntersecting;\n      if(active){\n        lastTarget = computeTarget();\n        current = lastTarget;\n        render(current);\n        window.addEventListener('scroll', onScroll, { passive:true });\n        window.addEventListener('resize', onScroll, { passive:true });\n      } else {\n        window.removeEventListener('scroll', onScroll);\n        window.removeEventListener('resize', onScroll);\n      }\n    }, { threshold: 0.01 });\n\n    io.observe(el);\n\n    \/\/ primo giro\n    active = true;\n    onScroll();\n\n    return true;\n  }\n\n  function boot(){\n    if(init()) return;\n\n    \/\/ Elementor pubblicato: aspetta che il DOM venga popolato\n    const mo = new MutationObserver(() => {\n      if(init()) mo.disconnect();\n    });\n    mo.observe(document.documentElement, { childList:true, subtree:true });\n    setTimeout(() => mo.disconnect(), 8000);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot, { once:true });\n  } else {\n    boot();\n  }\n\n  window.addEventListener('elementor\/frontend\/init', () => setTimeout(boot, 0), { once:true });\n})();\n<\/script><script>(() => {\n  const SELECTOR = '#descript-3';\n\n  \/\/ \u201csegue lo scroll\u201d (non smooth\/inerziale), ma senza scatti (smoothing leggero)\n  const SPEED   = 0.10;  \/\/ quanto \u201cgalleggia\u201d (0.06\u20130.14)\n  const MAXPX   = 46;    \/\/ limite spostamento\n  const SMOOTH  = 0.28;  \/\/ 0.2\u20130.35: toglie gli scatti senza diventare \u201cmorbido\u201d\n\n  function init(){\n    const el = document.querySelector(SELECTOR);\n    if(!el) return false;\n\n    if(el.dataset.zetFloatInit === '1') return true;\n    el.dataset.zetFloatInit = '1';\n\n    let current = 0;\n    let raf = null;\n    let active = false;\n    let lastTarget = 0;\n\n    const clamp = (v,a,b)=>Math.max(a,Math.min(b,v));\n\n    function computeTarget(){\n      const r  = el.getBoundingClientRect();\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n      const dy = (r.top + r.height\/2) - (vh\/2);\n\n      \/\/ \u2705 INVERSO: stessa direzione dello scroll (se vuoi l\u2019altro verso, metti -dy)\n      return clamp(dy * SPEED, -MAXPX, MAXPX);\n    }\n\n    function render(val){\n      el.style.transform = `translate3d(0, ${val.toFixed(2)}px, 0)`;\n    }\n\n    function tick(){\n      raf = null;\n      if(!active) return;\n\n      const target = lastTarget;\n\n      \/\/ smoothing \u201csecco\u201d: segue, ma non scatta\n      current += (target - current) * SMOOTH;\n\n      \/\/ snap micro (evita tremolio)\n      if(Math.abs(target - current) < 0.05) current = target;\n\n      render(current);\n    }\n\n    function onScroll(){\n      if(!active) return;\n      lastTarget = computeTarget();\n      if(!raf) raf = requestAnimationFrame(tick);\n    }\n\n    const io = new IntersectionObserver((entries) => {\n      active = !!entries[0]?.isIntersecting;\n      if(active){\n        lastTarget = computeTarget();\n        current = lastTarget;\n        render(current);\n        window.addEventListener('scroll', onScroll, { passive:true });\n        window.addEventListener('resize', onScroll, { passive:true });\n      } else {\n        window.removeEventListener('scroll', onScroll);\n        window.removeEventListener('resize', onScroll);\n      }\n    }, { threshold: 0.01 });\n\n    io.observe(el);\n\n    \/\/ primo giro\n    active = true;\n    onScroll();\n\n    return true;\n  }\n\n  function boot(){\n    if(init()) return;\n\n    \/\/ Elementor pubblicato: aspetta che il DOM venga popolato\n    const mo = new MutationObserver(() => {\n      if(init()) mo.disconnect();\n    });\n    mo.observe(document.documentElement, { childList:true, subtree:true });\n    setTimeout(() => mo.disconnect(), 8000);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot, { once:true });\n  } else {\n    boot();\n  }\n\n  window.addEventListener('elementor\/frontend\/init', () => setTimeout(boot, 0), { once:true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e117af elementor-widget elementor-widget-html\" data-id=\"9e117af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"zet-line-wrap\" aria-hidden=\"true\">\n  <span class=\"zet-line-base\"><\/span>\n  <span class=\"zet-line-fill\"><\/span>\n<\/div>\n\n\n<script>\n(() => {\n  const section = document.querySelector('.zet-timeline');\n  if (!section) return;\n\n  const title = section.querySelector('.zet-timeline-title');\n  const GAP = 16; \/\/ px di spazio sotto al titolo prima che inizi la linea\n\n  const clamp = (v, a, b) => Math.max(a, Math.min(b, v));\n  let raf = null;\n\n  function geometry(){\n    const cs = getComputedStyle(section);\n    const pt = parseFloat(cs.paddingTop) || 0;\n    const pb = parseFloat(cs.paddingBottom) || 0;\n\n    const sr = section.getBoundingClientRect();\n\n    \/\/ topOffset: inizia sotto al titolo (se c'\u00e8), altrimenti dal padding top\n    let topOffset = pt;\n    if (title){\n      const tr = title.getBoundingClientRect();\n      topOffset = (tr.bottom - sr.top) + GAP;\n    }\n\n    \/\/ altezza utile interna (non pu\u00f2 sforare sotto)\n    const innerH = Math.max(0, sr.height - pb - topOffset);\n\n    section.style.setProperty('--zet-top', topOffset + 'px');\n    section.style.setProperty('--zet-h', innerH + 'px');\n\n    return { sr, topOffset, innerH };\n  }\n\n  function update(){\n    raf = null;\n\n    const { sr, topOffset, innerH } = geometry();\n    if (innerH <= 0){\n      section.style.setProperty('--zet-fill', '0px');\n      return;\n    }\n\n    const vh = window.innerHeight || document.documentElement.clientHeight;\n\n    const start = sr.top + topOffset;   \/\/ punto dove parte la linea (in viewport coords)\n    const end   = start + innerH;       \/\/ punto dove finisce la linea\n\n    \/\/ progress: 0 quando start \u00e8 sotto viewport, 1 quando end \u00e8 sopra viewport\n    const total = (end - start) + vh;\n    const passed = vh - start;\n    const t = clamp(passed \/ total, 0, 1);\n\n    section.style.setProperty('--zet-fill', (t * innerH) + 'px');\n  }\n\n  function onScroll(){\n    if (!raf) raf = requestAnimationFrame(update);\n  }\n\n  update();\n  window.addEventListener('scroll', onScroll, { passive:true });\n  window.addEventListener('resize', update, { passive:true });\n})();\n<\/script>\n\n\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8565be2 elementor-widget elementor-widget-html\" data-id=\"8565be2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>(() => {\n  const frame = document.querySelector('#image-1975');\n  if (!frame) return;\n  const img = frame.querySelector('img');\n  if (!img) return;\n\n  const MIN = 1.00;\n  const MAX = 1.14;   \/\/ pi\u00f9 accentuato (prova 1.12\u20131.18)\n  const PEAK = 0.42;  \/\/ quando raggiunge il massimo (0..1)\n  const END  = 0.62;  \/\/ entro qui torna a 1 e poi resta 1\n\n  const clamp = (v,a,b)=>Math.max(a,Math.min(b,v));\n  const lerp  = (a,b,t)=>a+(b-a)*t;\n\n  \/\/ easing semplice (pi\u00f9 \u201cnaturale\u201d)\n  const easeOut = (t)=>1-Math.pow(1-t,3);\n  const easeIn  = (t)=>t*t*t;\n\n  let raf=null;\n\n  function progressInViewport(rect){\n    const vh = window.innerHeight || document.documentElement.clientHeight;\n    \/\/ 0 quando il TOP tocca il fondo viewport, 1 quando il BOTTOM tocca il top viewport\n    return clamp((vh - rect.top) \/ (vh + rect.height), 0, 1);\n  }\n\n  function update(){\n    raf=null;\n    const r = frame.getBoundingClientRect();\n    const p = progressInViewport(r);\n\n    let s = MIN;\n\n    if (p < PEAK){\n      \/\/ fase 1: zoom in (sale)\n      const t = easeOut(p \/ PEAK);\n      s = lerp(MIN, MAX, t);\n    } else if (p < END){\n      \/\/ fase 2: ritorno rapido a 1\n      const t = easeIn((p - PEAK) \/ (END - PEAK));\n      s = lerp(MAX, MIN, t);\n    } else {\n      \/\/ fase 3: stop (resta normale superato l\u2019elemento)\n      s = MIN;\n    }\n\n    img.style.setProperty('--zet-scale', s.toFixed(4));\n  }\n\n  function onScroll(){\n    if(!raf) raf = requestAnimationFrame(update);\n  }\n\n  update();\n  window.addEventListener('scroll', onScroll, { passive:true });\n  window.addEventListener('resize', update, { passive:true });\n})();\n<\/script><script>(() => {\n  const SEL = '#images-2003';\n\n  \/\/ pi\u00f9 robusto: aspetta che Elementor carichi davvero il widget\n  function whenReady(cb){\n    let tries = 0;\n    const t = setInterval(() => {\n      const el = document.querySelector(SEL);\n      if(el){\n        clearInterval(t);\n        cb(el);\n      } else if(++tries > 80){\n        clearInterval(t);\n      }\n    }, 100);\n  }\n\n  function init(el){\n    if(el.dataset.zetRevealInit === '1') return;\n    el.dataset.zetRevealInit = '1';\n\n    const img = el.querySelector('img');\n    if(!img) return;\n\n    let current = 0;\n    let target  = 0;\n    let raf = null;\n    let active = false;\n\n    const clamp01 = v => Math.max(0, Math.min(1, v));\n\n    \/\/ \u2705 finisce PRIMA: regola questi due valori\n    \/\/ start: quando inizia (pi\u00f9 basso = inizia prima)\n    \/\/ end: quando \u00e8 COMPLETAMENTE aperta (pi\u00f9 alto = finisce prima)\n    const START = 0.95;  \/\/ vh * 0.35 sotto il centro\n    const END   = 0.00; \/\/ vh * -0.20 sopra il centro\n\n    function computeTarget(){\n  const r  = el.getBoundingClientRect();\n  const vh = window.innerHeight || document.documentElement.clientHeight;\n\n  const elCenter = r.top + r.height * 0.5;\n  const vpCenter = vh * 0.5;\n\n  const start = vpCenter + vh * START; \/\/ punto di inizio (pi\u00f9 grande = parte pi\u00f9 tardi)\n  const end   = vpCenter + vh * END;   \/\/ = centro viewport\n\n  \/\/ 0..1 mentre il centro elemento va da start -> end\n  return clamp01((start - elCenter) \/ (start - end));\n}\n\n\n    function render(p){\n      \/\/ progress reveal\n      el.style.setProperty('--zet-p', p.toFixed(4));\n\n      \/\/ de-zoom: 1.16 -> 1.00\n      const scale = 1.16 - (0.16 * p);\n      el.style.setProperty('--zet-img-scale', scale.toFixed(4));\n    }\n\n    function tick(){\n      raf = null;\n      if(!active) return;\n\n      \/\/ smoothing: niente stop&go secco\n      const ease = 0.12;\n      current += (target - current) * ease;\n\n      if(Math.abs(target - current) < 0.0008) current = target;\n\n      render(current);\n\n      if(Math.abs(target - current) >= 0.0008){\n        raf = requestAnimationFrame(tick);\n      }\n    }\n\n    function requestUpdate(){\n      if(!active) return;\n      target = computeTarget();\n      if(!raf) raf = requestAnimationFrame(tick);\n    }\n\n    \/\/ attiva solo quando visibile (performance + stabilit\u00e0)\n    const io = new IntersectionObserver((entries) => {\n      active = !!entries[0]?.isIntersecting;\n      if(active){\n        current = computeTarget();\n        target  = current;\n        render(current);\n      }\n    }, { threshold: 0.05 });\n\n    io.observe(el);\n\n    window.addEventListener('scroll', requestUpdate, { passive:true });\n    window.addEventListener('resize', requestUpdate, { passive:true });\n\n    \/\/ primo render\n    current = computeTarget();\n    target  = current;\n    render(current);\n  }\n\n  \/\/ DOM + Elementor\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', () => whenReady(init), { once:true });\n  } else {\n    whenReady(init);\n  }\n\n  window.addEventListener('elementor\/frontend\/init', () => setTimeout(() => whenReady(init), 0));\n})();\n<\/script><script>(() => {\n  const SEL = '#images-2006';\n\n  function setup(){\n    const el = document.querySelector(SEL);\n    if(!el) return;\n\n    \/\/ anti-doppia init (Elementor in edit\/published)\n    if(el.dataset.zetRevealInit === '1') return;\n    el.dataset.zetRevealInit = '1';\n\n    const img = el.querySelector('img');\n    if(!img) return;\n\n    const clamp01 = v => Math.max(0, Math.min(1, v));\n\n    \/\/ quando deve essere \"finita\" l'animazione:\n    \/\/ 1) parte quando il centro elemento \u00e8 sotto il centro viewport di ~0.60vh\n    \/\/ 2) finisce quando il centro elemento coincide col centro viewport\n    function computeTarget(){\n      const r  = el.getBoundingClientRect();\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n\n      const elCenter = r.top + r.height * 0.5;\n      const vpCenter = vh * 0.5;\n\n      const start = vpCenter + vh * 0.30; \/\/ parte prima (aumenta 0.60 se la vuoi pi\u00f9 lunga)\n      const end   = vpCenter;             \/\/ finisce qui (centro viewport)\n\n      return clamp01((start - elCenter) \/ (start - end));\n    }\n\n    function render(p){\n      \/\/ reveal\n      img.style.setProperty('--zet-reveal-p', p.toFixed(4));\n\n      \/\/ de-zoom (da 1.14 a 1.00)\n      const scale = 1.14 - (0.14 * p);\n      img.style.setProperty('--zet-img-scale', scale.toFixed(4));\n    }\n\n    let current = 0;\n    let target  = 0;\n    let raf = null;\n    let active = false;\n\n    function tick(){\n      raf = null;\n      if(!active) return;\n\n      \/\/ smoothing leggero, senza \u201cstop&go\u201d bruschi\n      const ease = 0.18;\n      current += (target - current) * ease;\n\n      if (Math.abs(target - current) < 0.001) current = target;\n\n      render(current);\n\n      if (Math.abs(target - current) >= 0.001) {\n        raf = requestAnimationFrame(tick);\n      }\n    }\n\n    function requestUpdate(){\n      if(!active) return;\n      target = computeTarget();\n      if(!raf) raf = requestAnimationFrame(tick);\n    }\n\n    \/\/ anima solo se l'elemento \u00e8 in zona (prestazioni + no tremolio)\n    const io = new IntersectionObserver((entries) => {\n      active = !!entries[0]?.isIntersecting;\n      if(active){\n        current = computeTarget();\n        target  = current;\n        render(current);\n      }\n    }, { threshold: 0.05 });\n\n    io.observe(el);\n\n    window.addEventListener('scroll', requestUpdate, { passive:true });\n    window.addEventListener('resize', requestUpdate, { passive:true });\n\n    \/\/ primo render\n    current = computeTarget();\n    target  = current;\n    render(current);\n  }\n\n  \/\/ DOM ready\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', setup, { once:true });\n  } else {\n    setup();\n  }\n\n  \/\/ Elementor (frontend pubblicato + editor)\n  window.addEventListener('elementor\/frontend\/init', () => {\n    setTimeout(setup, 0);\n  }, { once:true });\n\n})();\n<\/script><script>(() => {\n  const SEL = '#images-oggi';\n\n  const clamp01 = (v) => Math.max(0, Math.min(1, v));\n\n  function init(){\n    const el = document.querySelector(SEL);\n    if (!el) return;\n\n    \/\/ evita doppie inizializzazioni (Elementor editor\/published)\n    if (el.dataset.zetInit === '1') return;\n    el.dataset.zetInit = '1';\n\n    const img = el.querySelector('img');\n    if (!img) return;\n\n    \/\/ TUNING:\n    const START_OFFSET = 0.65;  \/\/ quanto prima parte (0.45..0.85)\n    const ZOOM_START   = 1.14;  \/\/ zoom iniziale\n    const ZOOM_END     = 1.00;  \/\/ zoom finale (normale)\n\n    let raf = null;\n\n    function computeProgress(){\n      const r  = el.getBoundingClientRect();\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n\n      const vpCenter = vh * 0.5;\n      const elCenter = r.top + r.height * 0.5;\n\n      \/\/ p = 0 quando il centro elemento \u00e8 sotto il centro viewport (di START_OFFSET*vh)\n      \/\/ p = 1 quando il centro elemento arriva al centro viewport\n      const start = vpCenter + vh * START_OFFSET;\n      const end   = vpCenter;\n\n      return clamp01((start - elCenter) \/ (start - end));\n    }\n\n    function render(p){\n      el.style.setProperty('--zet-p', p.toFixed(4));\n\n      \/\/ de-zoom lineare fino a fine animazione\n      const s = ZOOM_START + (ZOOM_END - ZOOM_START) * p;\n      el.style.setProperty('--zet-img-scale', s.toFixed(4));\n    }\n\n    function update(){\n      raf = null;\n      const p = computeProgress();\n      render(p);\n    }\n\n    function onScroll(){\n      if (!raf) raf = requestAnimationFrame(update);\n    }\n\n    \/\/ primo render\n    update();\n\n    window.addEventListener('scroll', onScroll, { passive:true });\n    window.addEventListener('resize', onScroll, { passive:true });\n  }\n\n  \/\/ DOM ready\n  if (document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', init, { once:true });\n  } else {\n    init();\n  }\n\n  \/\/ Elementor frontend (pubblicato + editor)\n  window.addEventListener('elementor\/frontend\/init', () => {\n    setTimeout(init, 0);\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52a9516 elementor-widget elementor-widget-html\" data-id=\"52a9516\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>.zet-timeline{\n  position: relative;\n  --zet-line: #233465;\n  --zet-x: 50%;\n  --zet-top: 0px;\n  --zet-h: 0px;\n  --zet-fill: 0px;\n}\n\n\/* guideline 1px sempre visibile *\/\n.zet-timeline::before{\n  content:\"\";\n  position:absolute;\n  left: var(--zet-x);\n  transform: translateX(-50%);\n  top: var(--zet-top);\n  height: var(--zet-h);\n  width: 1px;\n  background: var(--zet-line);\n  opacity: .25;\n  pointer-events:none;\n  z-index: 0;\n}\n\n\/* fill 3px che segue, con punta al centro viewport *\/\n.zet-timeline::after{\n  content:\"\";\n  position:absolute;\n  left: var(--zet-x);\n  transform: translateX(-50%);\n  top: var(--zet-top);\n  height: var(--zet-fill);\n  width: 3px;\n  background: var(--zet-line);\n  border-radius: 3px;\n  pointer-events:none;\n  z-index: 1;\n}\n<\/style><script>(() => {\n  const section = document.querySelector('.zet-timeline');\n  if (!section) return;\n\n  if (section.dataset.zetCenterLineInit === '1') return;\n  section.dataset.zetCenterLineInit = '1';\n\n  const clamp = (v,a,b)=>Math.max(a,Math.min(b,v));\n  const GAP = 16; \/\/ spazio sotto al titolo prima che inizi la linea\n  let raf = null;\n  let active = true;\n\n  function getTitleEl(){\n    return section.querySelector('.zet-timeline-title')\n      || section.querySelector('.elementor-heading-title')\n      || section.querySelector('h2,h3,h1');\n  }\n\n  function update(){\n    raf = null;\n    if (!active) return;\n\n    const sr = section.getBoundingClientRect();\n    const cs = getComputedStyle(section);\n    const pt = parseFloat(cs.paddingTop) || 0;\n    const pb = parseFloat(cs.paddingBottom) || 0;\n\n    \/\/ start della linea: sotto al titolo (se presente) altrimenti dal padding-top\n    let topOffset = pt;\n    const title = getTitleEl();\n    if (title){\n      const tr = title.getBoundingClientRect();\n      topOffset = (tr.bottom - sr.top) + GAP;\n    }\n\n    const innerH = Math.max(0, sr.height - pb - topOffset);\n\n    section.style.setProperty('--zet-top', topOffset + 'px');\n    section.style.setProperty('--zet-h', innerH + 'px');\n\n    if (innerH <= 0){\n      section.style.setProperty('--zet-fill', '0px');\n      return;\n    }\n\n    const vh = window.innerHeight || document.documentElement.clientHeight;\n    const vpCenter = vh * 0.5;\n\n    \/\/ coordinata (in viewport) del punto di start della linea\n    const startY = sr.top + topOffset;\n\n    \/\/ fill cresce in modo che la \u201cpunta\u201d stia al centro viewport\n    const fillPx = clamp(vpCenter - startY, 0, innerH);\n    section.style.setProperty('--zet-fill', fillPx + 'px');\n  }\n\n  function onScroll(){\n    if (!raf) raf = requestAnimationFrame(update);\n  }\n\n  \/\/ attiva solo quando la sezione \u00e8 \u201cvicina\u201d (performance)\n  const io = new IntersectionObserver((entries) => {\n    active = !!entries[0]?.isIntersecting;\n    if (active) onScroll();\n  }, { threshold: 0.01, rootMargin: '200px 0px 200px 0px' });\n\n  io.observe(section);\n\n  update();\n  window.addEventListener('scroll', onScroll, { passive:true });\n  window.addEventListener('resize', onScroll, { passive:true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-12884c6 e-con-full e-flex e-con e-child\" data-id=\"12884c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-694454e elementor-widget__width-initial zet-reveal elementor-widget elementor-widget-image\" data-id=\"694454e\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"images-2003\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-14_34_14_11zon.webp\" class=\"attachment-full size-full wp-image-1725\" alt=\"\" srcset=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-14_34_14_11zon.webp 1536w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-14_34_14_11zon-300x200.webp 300w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-14_34_14_11zon-1024x683.webp 1024w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-14_34_14_11zon-768x512.webp 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ac4b4cc e-con-full e-flex e-con e-child\" data-id=\"ac4b4cc\" data-element_type=\"container\" data-e-type=\"container\" id=\"descript-1\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e868dbf elementor-widget elementor-widget-heading\" data-id=\"e868dbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">2003<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb0a85f elementor-widget elementor-widget-heading\" data-id=\"bb0a85f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Studio Tecnico Zeta is founded<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f21ce6 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"5f21ce6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Advanced plant design in 2D\/3D CAD. The studio becomes a technical partner for industry players and consolidates collaborations with companies such as <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">SACMI<\/span><\/span>. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c080584 e-con-full e-flex e-con e-child\" data-id=\"c080584\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c9de32a elementor-widget__width-initial zet-reveal elementor-widget elementor-widget-image\" data-id=\"c9de32a\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"images-2006\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"1536\" src=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-16_28_18_11zon.webp\" class=\"attachment-full size-full wp-image-1726\" alt=\"\" srcset=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-16_28_18_11zon.webp 1024w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-16_28_18_11zon-200x300.webp 200w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-16_28_18_11zon-683x1024.webp 683w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-16_28_18_11zon-768x1152.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8f94c40 e-con-full e-flex e-con e-child\" data-id=\"8f94c40\" data-element_type=\"container\" data-e-type=\"container\" id=\"descript-2\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3b0a44 elementor-widget elementor-widget-heading\" data-id=\"c3b0a44\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">2006<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-274468a elementor-widget elementor-widget-heading\" data-id=\"274468a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Establishment of Zetacer Srl<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2624d7 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"f2624d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>From design experience, a more comprehensive entity emerges: not only engineering and technical drawing, but also construction, installation, and final testing.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ecbd8d7 e-con-full e-flex e-con e-child\" data-id=\"ecbd8d7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ac76eb elementor-widget__width-initial zet-reveal elementor-widget elementor-widget-image\" data-id=\"6ac76eb\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"images-oggi\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-17_09_01_11zon.webp\" class=\"attachment-full size-full wp-image-1727\" alt=\"\" srcset=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-17_09_01_11zon.webp 1536w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-17_09_01_11zon-300x200.webp 300w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-17_09_01_11zon-1024x683.webp 1024w, https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-13-feb-2026-17_09_01_11zon-768x512.webp 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e1c27c e-con-full e-flex e-con e-child\" data-id=\"2e1c27c\" data-element_type=\"container\" data-e-type=\"container\" id=\"descript-3\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aba5f53 elementor-widget elementor-widget-heading\" data-id=\"aba5f53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Today<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-74dc9dd elementor-widget elementor-widget-heading\" data-id=\"74dc9dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A single point of contact<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f8e590 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"1f8e590\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Zetacer integrates design, supervision, and site management in a turnkey operational model, ensuring production continuity, cost control, and adherence to timelines.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e131e55 e-con-full e-flex e-con e-parent\" data-id=\"e131e55\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6721eb8 e-flex e-con-boxed e-con e-child\" data-id=\"6721eb8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;background_motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0e31632 e-flex e-con-boxed e-con e-child\" data-id=\"0e31632\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3e1ac2 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e3e1ac2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A technical partner, not just a supplier<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b1e8a0 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"2b1e8a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>We support our clients throughout all project phases: from preliminary analysis to plant commissioning. The experience gained in the ceramic sector and in industrial environments enables us to intervene on existing plants or develop completely new solutions, with an approach focused on efficiency, safety, and sustainability. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a81517c elementor-align-left elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"a81517c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-wobble-horizontal\" href=\"https:\/\/zetacer.it\/en\/services\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Discover our services<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>beyond design Zetacer Srl was founded on technical expertise developed at the heart of the Sassuolo ceramic district. For over forty years, we have been operating in the design and construction of industrial plants, integrating engineering competencies, process know-how, and operational site management. Our approach combines 2D\/3D CAD design, feasibility studies, and executive coordination, delivering [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1720","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>About Us - Zetacer S.r.l.<\/title>\n<meta name=\"description\" content=\"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zetacer.it\/en\/about-us\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"About Us - Zetacer S.r.l.\" \/>\n<meta property=\"og:description\" content=\"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zetacer.it\/en\/about-us\/\" \/>\n<meta property=\"og:site_name\" content=\"Zetacer S.r.l.\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-12T09:52:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1333\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\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:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/\",\"url\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/\",\"name\":\"About Us - Zetacer S.r.l.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zetacer.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/2149480221_11zon-1024x682.webp\",\"datePublished\":\"2026-02-13T09:21:14+00:00\",\"dateModified\":\"2026-06-12T09:52:08+00:00\",\"description\":\"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/#primaryimage\",\"url\":\"https:\\\/\\\/zetacer.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/2149480221_11zon-1024x682.webp\",\"contentUrl\":\"https:\\\/\\\/zetacer.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/2149480221_11zon-1024x682.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/about-us\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zetacer.it\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"About Us\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/zetacer.it\\\/en\\\/\",\"name\":\"Zetacer S.r.l.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zetacer.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#organization\",\"name\":\"Zetacer S.r.l.\",\"url\":\"https:\\\/\\\/zetacer.it\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/zetacer.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo.svg\",\"contentUrl\":\"https:\\\/\\\/zetacer.it\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo.svg\",\"caption\":\"Zetacer S.r.l.\"},\"image\":{\"@id\":\"https:\\\/\\\/zetacer.it\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"About Us - Zetacer S.r.l.","description":"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...","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:\/\/zetacer.it\/en\/about-us\/","og_locale":"en_US","og_type":"article","og_title":"About Us - Zetacer S.r.l.","og_description":"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...","og_url":"https:\/\/zetacer.it\/en\/about-us\/","og_site_name":"Zetacer S.r.l.","article_modified_time":"2026-06-12T09:52:08+00:00","og_image":[{"width":2000,"height":1333,"url":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zetacer.it\/en\/about-us\/","url":"https:\/\/zetacer.it\/en\/about-us\/","name":"About Us - Zetacer S.r.l.","isPartOf":{"@id":"https:\/\/zetacer.it\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zetacer.it\/en\/about-us\/#primaryimage"},"image":{"@id":"https:\/\/zetacer.it\/en\/about-us\/#primaryimage"},"thumbnailUrl":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1024x682.webp","datePublished":"2026-02-13T09:21:14+00:00","dateModified":"2026-06-12T09:52:08+00:00","description":"Zetacer Srl offers design and construction of industrial plants with over 40 years of experience in the Sassuolo ceramic district...","breadcrumb":{"@id":"https:\/\/zetacer.it\/en\/about-us\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zetacer.it\/en\/about-us\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zetacer.it\/en\/about-us\/#primaryimage","url":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1024x682.webp","contentUrl":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/2149480221_11zon-1024x682.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/zetacer.it\/en\/about-us\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zetacer.it\/en\/home\/"},{"@type":"ListItem","position":2,"name":"About Us"}]},{"@type":"WebSite","@id":"https:\/\/zetacer.it\/en\/#website","url":"https:\/\/zetacer.it\/en\/","name":"Zetacer S.r.l.","description":"","publisher":{"@id":"https:\/\/zetacer.it\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zetacer.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zetacer.it\/en\/#organization","name":"Zetacer S.r.l.","url":"https:\/\/zetacer.it\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zetacer.it\/en\/#\/schema\/logo\/image\/","url":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/Logo.svg","contentUrl":"https:\/\/zetacer.it\/wp-content\/uploads\/2026\/02\/Logo.svg","caption":"Zetacer S.r.l."},"image":{"@id":"https:\/\/zetacer.it\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/pages\/1720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/comments?post=1720"}],"version-history":[{"count":2,"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/pages\/1720\/revisions"}],"predecessor-version":[{"id":1853,"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/pages\/1720\/revisions\/1853"}],"wp:attachment":[{"href":"https:\/\/zetacer.it\/en\/wp-json\/wp\/v2\/media?parent=1720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}