{"id":5131,"date":"2026-05-04T18:56:10","date_gmt":"2026-05-04T16:56:10","guid":{"rendered":"https:\/\/reschemindustries.com\/?page_id=5131"},"modified":"2026-09-14T15:45:46","modified_gmt":"2026-09-14T13:45:46","slug":"reschem","status":"publish","type":"page","link":"https:\/\/reschemindustries.com\/en\/companies\/reschem\/","title":{"rendered":"Reschem"},"content":{"rendered":"<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschem-industries-italia-1-scaled.webp\" alt=\"\"><\/p>\n<h1>Reschem Italia S.p.A. Chemical solutions distributor for industry<\/h1>\n<div>\n<p><span class=\"uk-badge uk-badge-reschem\">Coating<\/span> <span class=\"uk-badge uk-badge-reschem\">Plastics &amp; Rubber<\/span> <span class=\"uk-badge uk-badge-reschem\">Polyurethane<\/span> <span class=\"uk-badge uk-badge-reschem\">Detergents<\/span> <span class=\"uk-badge uk-badge-reschem\">Textiles<\/span><\/p>\n<\/div>\n<p>[arrow-down]<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschem-poliuretanoimg-background.jpg\" alt=\"\"><\/p>\n<h2>Since <strong class=\"text-reschem\">1990<\/strong> we have been distributing chemical solutions to Italian industry: coatings, polyurethane, plastics, rubber, detergents, textiles and personal care. <strong class=\"text-reschem\">Reschem Italia<\/strong> is the historic heart of the Reschem Industries Group.<\/h2>\n<div>Since 2008 Reschem Italia has been led by the second generation of the owning family, who have helped the company grow in its core markets and expand its business internationally.<\/div>\n<hr>\n<div>Sectors served by Reschem Italia<\/div>\n<ul>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Chemical solutions for coatings<\/h3>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Chemical solutions for polyurethane<\/h3>\n<div>Products for industrial applications<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Plastics and rubber<\/h3>\n<div>Additives, fillers and speciality products<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Industrial and household detergents<\/h3>\n<div>Surfactants, preservatives, functional ingredients<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Textiles<\/h3>\n<div>Chemical auxiliaries and speciality products<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\" alt=\"\"><\/p>\n<h3>Personal care<\/h3>\n<div>Ingredients for cosmetics and personal care<\/div>\n<\/li>\n<\/ul>\n<h2>Reschem Italia S.p.a.<\/h2>\n<h3>Distributor of <strong>chemical solutions <br class=\"uk-visible@m\" \/>for industry<\/strong><\/h3>\n<hr>\n<ul>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\" alt=\"\"><\/p>\n<div>Chemical solutions distribution<\/div>\n<div>A portfolio built on long-standing partnerships with leading international chemical manufacturers. Every year we serve hundreds of industrial clients with high quality speciality products.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\" alt=\"\"><\/p>\n<div>Efficient logistics<\/div>\n<div>Fast delivery, safety and quality are the priorities of our logistics service, tailored to the needs of every client. In chemical distribution, logistics is an integral part of the value we deliver.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\" alt=\"\"><\/p>\n<div>Custom repacking solutions<\/div>\n<div>Bespoke packaging capabilities to meet specific format and quantity requirements, even for small batches.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\" alt=\"\"><\/p>\n<div>Technical assistance and formulation support<\/div>\n<div>A sales and formulation team that supports clients in product development and in choosing the most suitable raw materials.<\/div>\n<\/li>\n<\/ul>\n<div>\n<h3>What makes Reschem Italia a <b class=\"text-reschem\">leading distributor of industrial speciality chemicals<\/b>:<\/h3>\n<p><a href=\"\/en\/contact\">Contact us<\/a><\/p>\n<\/div>\n<div>\n<div id=\"wp-globe-wrapper\" >\n<div id=\"globe-canvas-container\"><\/div>\n<p>    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r134\/three.min.js\"><\/script><br \/>\n    <script>\n        (function() {\n            function inRange(val, min, max) { return val >= min ? val <= max : false; }\n\n            function isItaly(lat, lon) {\n                if (!inRange(lat, 36, 47.5)) return false;\n                if (!inRange(lon, 6.5, 18.5)) return false;\n                if (inRange(lat, 38.5, 41.5)) { if (inRange(lon, 8, 10)) return true; }\n                if (inRange(lat, 36, 38.5))   { if (inRange(lon, 12, 15.7)) return true; }\n                if (inRange(lat, 38.5, 40.5)) { if (inRange(lon, 15.5, 18.5)) return true; }\n                if (inRange(lat, 40.5, 43.5)) { if (inRange(lon, 13.5, 17.5)) return true; }\n                if (inRange(lat, 43.5, 44.5)) { if (inRange(lon, 10.5, 14.5)) return true; }\n                if (inRange(lat, 44.5, 47.5)) { if (inRange(lon, 6.5, 14)) return true; }\n                return false;\n            }\n\n            function initGlobe() {\n                if (typeof THREE === 'undefined') { setTimeout(initGlobe, 100); return; }\n\n                var COLOR_ACCENT = 0xc96f9d;\n                var COLOR_DOTS   = 0xd8d8d8;\n                var COLOR_NET    = 0x000000;\n\n                var ARC_POINTS    = 80;\n                var ARC_DURATION  = 900;\n                var ARC_PAUSE     = 150;\n                var ARC_HOLD      = 1800;\n                var FADE_DUR      = 500;\n                var DOT_SCALE_DUR = 300;\n\n                var MAP_URL = 'https:\/\/raw.githubusercontent.com\/mrdoob\/three.js\/master\/examples\/textures\/planets\/earth_atmos_2048.jpg';\n\n                var container = document.getElementById('globe-canvas-container');\n                if (!container) return;\n\n                var W = container.clientWidth, H = container.clientHeight;\n                var scene  = new THREE.Scene();\n                var camera = new THREE.PerspectiveCamera(45, W \/ H, 0.1, 1000);\n                camera.position.z = 17;\n\n                var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\n                renderer.setSize(W, H);\n                renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n                container.appendChild(renderer.domElement);\n\n                var mainGroup = new THREE.Group();\n                scene.add(mainGroup);\n                mainGroup.rotation.y = 3.5;    \/\/ <<< Italia spostata a sinistra nel layout reale\n                mainGroup.rotation.x = 0.50;\n\n                function getCircleTexture() {\n                    var c = document.createElement('canvas');\n                    c.width = 32; c.height = 32;\n                    var ctx = c.getContext('2d');\n                    ctx.beginPath();\n                    ctx.arc(16, 16, 15, 0, 2 * Math.PI);\n                    ctx.fillStyle = 'rgb(255,255,255)';\n                    ctx.fill();\n                    var tex = new THREE.Texture(c);\n                    tex.needsUpdate = true;\n                    return tex;\n                }\n                var circleTex = getCircleTexture();\n\n                function easeOutBack(t) {\n                    var c1 = 1.70158;\n                    var c3 = c1 + 1;\n                    return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);\n                }\n\n                function latLonToVec3(lat, lon, r) {\n                    var phi   = (90 - lat) * (Math.PI \/ 180);\n                    var theta = (lon + 180) * (Math.PI \/ 180);\n                    return new THREE.Vector3(\n                        -(r * Math.sin(phi) * Math.cos(theta)),\n                        r * Math.cos(phi),\n                        r * Math.sin(phi) * Math.sin(theta)\n                    );\n                }\n\n                function buildArcPoints(startLat, startLon, endLat, endLon) {\n                    var R     = 5.05;\n                    var start = latLonToVec3(startLat, startLon, R);\n                    var end   = latLonToVec3(endLat, endLon, R);\n                    var mid   = new THREE.Vector3().addVectors(start, end).multiplyScalar(0.5);\n                    var dist  = start.distanceTo(end);\n                    mid.normalize().multiplyScalar(5 + dist * 0.45 + 0.5);\n                    var pts = [];\n                    for (var i = 0; i <= ARC_POINTS; i++) {\n                        var t = i \/ ARC_POINTS;\n                        pts.push(new THREE.Vector3(\n                            (1-t)*(1-t)*start.x + 2*(1-t)*t*mid.x + t*t*end.x,\n                            (1-t)*(1-t)*start.y + 2*(1-t)*t*mid.y + t*t*end.y,\n                            (1-t)*(1-t)*start.z + 2*(1-t)*t*mid.z + t*t*end.z\n                        ));\n                    }\n                    return pts;\n                }\n\n                var oLat = 41.9, oLon = 12.5;\n                var destinations = [\n                    [40.7, -74.0], [51.5, -0.12], [35.7, 139.7],\n                    [-23.5, -46.6], [1.3, 103.8], [25.2, 55.3],\n                    [19.4, -99.1], [-33.9, 18.4], [37.6, 55.8], [30.0, 31.2]\n                ];\n\n                var arcData   = [];\n                var arcLines  = [];\n                var dotMeshes = [];\n\n                var originDot = new THREE.Mesh(\n                    new THREE.SphereGeometry(0.09, 8, 8),\n                    new THREE.MeshBasicMaterial({ color: COLOR_ACCENT })\n                );\n                originDot.position.copy(latLonToVec3(oLat, oLon, 5.05));\n                mainGroup.add(originDot);\n\n                function buildArcLines() {\n                    arcLines.forEach(function(l) { mainGroup.remove(l); });\n                    dotMeshes.forEach(function(d) { mainGroup.remove(d); });\n                    arcLines  = [];\n                    dotMeshes = [];\n                    arcData   = [];\n\n                    destinations.forEach(function(d) {\n                        var pts = buildArcPoints(oLat, oLon, d[0], d[1]);\n                        var geo = new THREE.BufferGeometry().setFromPoints(pts);\n                        geo.setDrawRange(0, 0);\n                        var mat = new THREE.LineBasicMaterial({\n                            color: COLOR_ACCENT, transparent: true, opacity: 0.9, linewidth: 2\n                        });\n                        var line = new THREE.Line(geo, mat);\n                        mainGroup.add(line);\n                        arcLines.push(line);\n\n                        var dot = new THREE.Mesh(\n                            new THREE.SphereGeometry(0.09, 8, 8),\n                            new THREE.MeshBasicMaterial({ color: COLOR_ACCENT, transparent: true, opacity: 0 })\n                        );\n                        dot.position.copy(latLonToVec3(d[0], d[1], 5.05));\n                        dot.scale.set(0, 0, 0);\n                        mainGroup.add(dot);\n                        dotMeshes.push(dot);\n\n                        arcData.push({ pts: pts, geo: geo, drawn: 0, dotShown: false, dotStartTime: -1 });\n                    });\n                }\n\n                var animState = {\n                    phase: 'drawing',\n                    currentArc: 0,\n                    arcStartTime: 0,\n                    holdStartTime: 0,\n                    fadeStartTime: 0\n                };\n\n                function resetAnimation(now) {\n                    buildArcLines();\n                    animState.phase        = 'drawing';\n                    animState.currentArc   = 0;\n                    animState.arcStartTime = now;\n                }\n\n                function updateArcs(now) {\n                    var s = animState;\n\n                    arcData.forEach(function(ad, i) {\n                        if (ad.dotStartTime > 0) {\n                            var dp = (now - ad.dotStartTime) \/ DOT_SCALE_DUR;\n                            if (dp > 1) { dp = 1; }\n                            var sc = easeOutBack(dp);\n                            dotMeshes[i].scale.set(sc, sc, sc);\n                            dotMeshes[i].material.opacity = dp;\n                        }\n                    });<\/p>\n<p>                    if (s.phase === 'drawing') {\n                        var idx = s.currentArc;\n                        if (idx >= arcData.length) {\n                            s.phase = 'holding';\n                            s.holdStartTime = now;\n                            return;\n                        }\n                        var ad      = arcData[idx];\n                        var elapsed = now - s.arcStartTime;\n                        var prog    = elapsed \/ ARC_DURATION;\n                        if (prog > 1) { prog = 1; }<\/p>\n<p>                        var targetCount = Math.round(prog * (ARC_POINTS + 1));\n                        if (targetCount !== ad.drawn) {\n                            ad.drawn = targetCount;\n                            ad.geo.setDrawRange(0, targetCount);\n                        }<\/p>\n<p>                        if (prog >= 1) {\n                            if (!ad.dotShown) {\n                                ad.dotShown     = true;\n                                ad.dotStartTime = now;\n                            }\n                            if (elapsed >= ARC_DURATION + ARC_PAUSE) {\n                                s.currentArc++;\n                                s.arcStartTime = now;\n                            }\n                        }\n                    }<\/p>\n<p>                    if (s.phase === 'holding') {\n                        if (now - s.holdStartTime >= ARC_HOLD) {\n                            s.phase = 'fading';\n                            s.fadeStartTime = now;\n                        }\n                    }<\/p>\n<p>                    if (s.phase === 'fading') {\n                        var fp = (now - s.fadeStartTime) \/ FADE_DUR;\n                        if (fp > 1) { fp = 1; }\n                        var op = 1 - fp;\n                        arcLines.forEach(function(l) { l.material.opacity = op * 0.9; });\n                        dotMeshes.forEach(function(dm) { dm.material.opacity = op; });\n                        if (fp >= 1) { resetAnimation(now); }\n                    }\n                }<\/p>\n<p>                function createInnerGlobe(image) {\n                    var canvas = document.createElement('canvas');\n                    canvas.width  = image.width;\n                    canvas.height = image.height;\n                    var ctx = canvas.getContext('2d');\n                    ctx.drawImage(image, 0, 0);\n                    var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n                    var data    = imgData.data;<\/p>\n<p>                    var positions = [], colors = [];\n                    var colBase  = new THREE.Color(COLOR_DOTS);\n                    var colItaly = new THREE.Color(COLOR_ACCENT);<\/p>\n<p>                    for (var y = 0; y < canvas.height; y++) {\n                        for (var x = 0; x < canvas.width; x++) {\n                            var lat   = (1 - y \/ canvas.height) * 180 - 90;\n                            var lon   = (x \/ canvas.width) * 360 - 180;\n                            var italy = isItaly(lat, lon);\n                            if (!italy) {\n                                if (y % 4 !== 0) continue;\n                                if (x % 4 !== 0) continue;\n                            }\n                            var idx2 = (y * canvas.width + x) * 4;\n                            if (data[idx2] < 50) continue;\n                            var phi   = (90 - lat) * (Math.PI \/ 180);\n                            var theta = (lon + 180) * (Math.PI \/ 180);\n                            positions.push(\n                                -(5 * Math.sin(phi) * Math.cos(theta)),\n                                5 * Math.cos(phi),\n                                5 * Math.sin(phi) * Math.sin(theta)\n                            );\n                            var col = italy ? colItaly : colBase;\n                            colors.push(col.r, col.g, col.b);\n                        }\n                    }\n\n                    var geo = new THREE.BufferGeometry();\n                    geo.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3));\n                    geo.setAttribute('color',    new THREE.Float32BufferAttribute(colors, 3));\n                    mainGroup.add(new THREE.Points(geo, new THREE.PointsMaterial({\n                        size: 0.028, vertexColors: true, map: circleTex,\n                        transparent: true, opacity: 1.0, sizeAttenuation: true\n                    })));\n\n                    buildArcLines();\n                    animState.arcStartTime = performance.now();\n                }\n\n                function createOuterNetwork() {\n                    var geo = new THREE.IcosahedronGeometry(6, 2);\n                    var wf  = new THREE.WireframeGeometry(geo);\n                    mainGroup.add(new THREE.LineSegments(wf, new THREE.LineBasicMaterial({\n                        color: COLOR_NET, transparent: true, opacity: 0.12\n                    })));\n                    var pos = geo.attributes.position.array;\n                    var dg  = new THREE.BufferGeometry();\n                    dg.setAttribute('position', new THREE.BufferAttribute(pos, 3));\n                    mainGroup.add(new THREE.Points(dg, new THREE.PointsMaterial({\n                        color: COLOR_NET, size: 0.05, map: circleTex,\n                        transparent: true, opacity: 0.35\n                    })));\n                }\n\n                var loader = new THREE.ImageLoader();\n                loader.setCrossOrigin('Anonymous');\n                loader.load(MAP_URL, function(img) {\n                    createInnerGlobe(img);\n                    createOuterNetwork();\n                });\n\n                var isDragging = false, prevX = 0, prevY = 0, velX = 0, velY = 0;\n                container.addEventListener('mousedown', function(e) {\n                    isDragging = true; prevX = e.clientX; prevY = e.clientY;\n                    velX = 0; velY = 0; container.style.cursor = 'grabbing';\n                });\n                window.addEventListener('mousemove', function(e) {\n                    if (!isDragging) return;\n                    var dx = e.clientX - prevX, dy = e.clientY - prevY;\n                    mainGroup.rotation.y += dx * 0.006;\n                    mainGroup.rotation.x += dy * 0.006;\n                    velY = dx * 0.006; velX = dy * 0.006;\n                    prevX = e.clientX; prevY = e.clientY;\n                });\n                window.addEventListener('mouseup', function() {\n                    isDragging = false; container.style.cursor = 'grab';\n                });\n                container.addEventListener('touchstart', function(e) {\n                    isDragging = true; prevX = e.touches[0].clientX; prevY = e.touches[0].clientY;\n                    velX = 0; velY = 0;\n                }, {passive: true});\n                window.addEventListener('touchmove', function(e) {\n                    if (!isDragging) return;\n                    var dx = e.touches[0].clientX - prevX, dy = e.touches[0].clientY - prevY;\n                    mainGroup.rotation.y += dx * 0.006;\n                    mainGroup.rotation.x += dy * 0.006;\n                    velY = dx * 0.006; velX = dy * 0.006;\n                    prevX = e.touches[0].clientX; prevY = e.touches[0].clientY;\n                }, {passive: true});\n                window.addEventListener('touchend', function() { isDragging = false; });\n\n                function animate() {\n                    requestAnimationFrame(animate);\n                    updateArcs(performance.now());\n                    if (!isDragging) {\n                        mainGroup.rotation.y += velY;\n                        mainGroup.rotation.x += velX;\n                        velY *= 0.94; velX *= 0.94;\n                        if (Math.abs(velY) < 0.0005) {\n                            if (Math.abs(velX) < 0.0005) {\n                                mainGroup.rotation.y += 0.0008;\n                            }\n                        }\n                    }\n                    renderer.render(scene, camera);\n                }\n                animate();\n\n                window.addEventListener('resize', function() {\n                    var w = container.clientWidth, h = container.clientHeight;\n                    camera.aspect = w \/ h; camera.updateProjectionMatrix();\n                    renderer.setSize(w, h);\n                });\n            }\n\n            if (document.readyState === 'complete') { initGlobe(); }\n            else { window.addEventListener('load', initGlobe); }\n        })();\n    <\/script>\n<\/div>\n<\/div>\n<div>\n<h3>What makes <strong class=\"text-reschem\">Reschem Italia a leading distributor for industry<\/strong>:<\/h3>\n<p><a href=\"\/en\/contact\">Contact us<\/a><\/p>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Over thirty years in chemical distribution for industry<\/span><\/h3>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\"> Authorised distributor for some of the leading international chemical companies<\/span><\/h3>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Safety and dangerous goods management<\/span><\/h3>\n<\/div>\n<div>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschem-industries-italia-1-scaled.webp\" alt=\"\"><\/p>\n<div>Looking for a reliable chemical solutions distributor for your business? Reschem Italia offers you experience, quality products and a service tailored to your needs.<\/div>\n<p><a href=\"https:\/\/reschemitalia.com\/\"><span uk-icon=\"link\"><\/span> Visit the Reschem Italia website <\/a><\/p>\n<\/div>\n<div>\n<h2>Contact us<\/h2>\n<div>\n<p>Would you like more information <br class=\"uk-visible@m\" \/>about our Company and our Services? <br class=\"uk-visible@m\" \/>Get in touch.<\/p>\n<\/div>\n<p><a href=\"\/en\/contact\/\">Request information<\/a><\/p>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"animation\":\"slide-bottom-medium\",\"animation_delay\":\"200\",\"header_transparent\":true,\"header_transparent_noplaceholder\":false,\"image\":\"wp-content\/uploads\/2026\/05\/reschem-industries-reschem-italia-gradient.jpg\",\"image_effect\":\"fixed\",\"image_position\":\"center-center\",\"image_size\":\"cover\",\"media_overlay\":\"rgba(0, 0, 0, 0.4)\",\"padding_bottom\":\"none\",\"padding_remove_horizontal\":false,\"padding_top\":\"large\",\"style\":\"secondary\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"large\",\"width_expand\":\"right\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"breadcrumbs\",\"props\":{\"margin_bottom\":\"medium\",\"show_current\":true,\"show_home\":true}},{\"type\":\"image\",\"props\":{\"image\":\"wp-content\/uploads\/2026\/05\/reschem-industries-italia-1-scaled.webp\",\"image_svg_color\":\"emphasis\",\"image_width\":350,\"margin_bottom\":\"default\",\"margin_top\":\"default\"},\"name\":\"Company logo\"},{\"type\":\"headline\",\"props\":{\"content\":\"Reschem Italia S.p.A. Chemical solutions distributor for industry\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"margin_remove_top\":true,\"maxwidth\":\"2xlarge\",\"title_element\":\"h1\",\"title_style\":\"h2\"},\"name\":\"h1\"},{\"type\":\"text\",\"props\":{\"column_breakpoint\":\"m\",\"content\":\"\n\n<p><span class=\\\"uk-badge uk-badge-reschem\\\">Coating<\/span> <span class=\\\"uk-badge uk-badge-reschem\\\">Plastics &amp; Rubber<\/span> <span class=\\\"uk-badge uk-badge-reschem\\\">Polyurethane<\/span> <span class=\\\"uk-badge uk-badge-reschem\\\">Detergents<\/span> <span class=\\\"uk-badge uk-badge-reschem\\\">Textiles<\/span><\/p>\n\n\",\"margin_bottom\":\"medium\",\"margin_top\":\"default\"}}]}],\"props\":{\"margin_bottom\":\"large\",\"padding_remove_horizontal\":false}},{\"type\":\"row\",\"props\":{\"layout\":\"1-5,4-5\",\"margin_bottom\":\"remove\"},\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\",\"width_medium\":\"1-5\"},\"children\":[{\"type\":\"icon\",\"props\":{\"icon\":\"arrow-down\",\"icon_width\":\"30\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"parallax_y\":\"200\",\"position\":\"relative\"}}]},{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\",\"width_medium\":\"4-5\"},\"children\":[{\"type\":\"image\",\"props\":{\"animation\":\"parallax\",\"image\":\"wp-content\/uploads\/2026\/05\/reschem-poliuretanoimg-background.jpg\",\"image_svg_color\":\"emphasis\",\"image_width\":1500,\"margin\":\"default\",\"margin_bottom\":\"remove\",\"margin_top\":\"default\",\"parallax_y\":\"-200\"}}]}]}],\"name\":\"heading\"},{\"type\":\"section\",\"props\":{\"animation\":\"slide-bottom-medium\",\"animation_delay\":\"200\",\"background_color_gradient\":\"linear-gradient(0deg,rgba(21, 31, 109, 1) 0%, rgba(255, 255, 255, 1) 30%);\",\"image_position\":\"center-center\",\"overlap\":false,\"padding\":\"large\",\"padding_remove_top\":false,\"padding_top\":\"large\",\"preserve_color\":false,\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"headline\",\"props\":{\"content\":\"Since <strong class=\\\"text-reschem\\\">1990<\/strong> we have been distributing chemical solutions to Italian industry: coatings, polyurethane, plastics, rubber, detergents, textiles and personal care. <strong class=\\\"text-reschem\\\">Reschem Italia<\/strong> is the historic heart of the Reschem Industries Group.\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"margin_bottom\":\"medium\",\"text_align\":\"center\",\"title_color\":\"primary\",\"title_element\":\"h2\",\"title_style\":\"h1\"},\"name\":\"h2\"},{\"type\":\"text\",\"props\":{\"column_breakpoint\":\"m\",\"content\":\"Since 2008 Reschem Italia has been led by the second generation of the owning family, who have helped the company grow in its core markets and expand its business internationally.\",\"margin\":\"default\",\"margin_bottom\":\"medium\",\"margin_top\":\"default\",\"text_align\":\"center\"}},{\"type\":\"divider\",\"props\":{\"divider_element\":\"hr\",\"divider_style\":\"icon\"}},{\"type\":\"headline\",\"props\":{\"content\":\"Sectors served by Reschem Italia\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"margin_bottom\":\"large\",\"margin_top\":\"default\",\"text_align\":\"center\",\"title_element\":\"div\",\"title_style\":\"h3\"}},{\"type\":\"gallery\",\"props\":{\"filter_align\":\"left\",\"filter_all\":true,\"filter_grid_breakpoint\":\"m\",\"filter_grid_width\":\"auto\",\"filter_position\":\"top\",\"filter_style\":\"tab\",\"grid_column_gap\":\"small\",\"grid_default\":\"1\",\"grid_medium\":\"3\",\"grid_parallax\":\"100\",\"grid_row_gap\":\"small\",\"grid_small\":\"2\",\"image_border\":\"rounded\",\"image_box_shadow\":\"large\",\"image_expand\":false,\"image_height\":768,\"image_width\":1024,\"item_animation\":true,\"lightbox_bg_close\":true,\"link_style\":\"default\",\"link_text\":\"Read more\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"media_overlay\":\"rgba(0, 0, 0, 0.3)\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"overlay_hover\":false,\"overlay_link\":false,\"overlay_mode\":\"cover\",\"overlay_position\":\"bottom-left\",\"overlay_style\":\"\",\"overlay_transition\":\"fade\",\"show_content\":true,\"show_hover_image\":true,\"show_hover_video\":true,\"show_link\":true,\"show_meta\":true,\"show_title\":true,\"text_align\":\"left\",\"text_color\":\"light\",\"title_element\":\"h3\",\"title_hover_style\":\"reset\",\"title_margin_auto\":true,\"title_style\":\"h3\"},\"children\":[{\"type\":\"gallery_item\",\"props\":{\"content\":\"\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Chemical solutions for coatings\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"Products for industrial applications\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Chemical solutions for polyurethane\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"Additives, fillers and speciality products\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Plastics and rubber\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"Surfactants, preservatives, functional ingredients\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Industrial and household detergents\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"Chemical auxiliaries and speciality products\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Textiles\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"Ingredients for cosmetics and personal care\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-reschem.jpg\",\"title\":\"Personal care\"}}]}]}]}],\"name\":\"Intro\"},{\"type\":\"section\",\"props\":{\"animation\":\"slide-bottom-medium\",\"animation_delay\":\"200\",\"id\":\"why-choose-us\",\"image_position\":\"center-center\",\"padding_bottom\":\"large\",\"padding_remove_horizontal\":false,\"padding_top\":\"large\",\"style\":\"primary\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"large\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"headline\",\"props\":{\"class\":\"text-reschem\",\"content\":\"Reschem Italia S.p.a.\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"margin_bottom\":\"small\",\"text_align\":\"left\",\"title_element\":\"h2\",\"title_style\":\"text-meta\"}},{\"type\":\"headline\",\"props\":{\"class\":\"uk-text-uppercase\",\"content\":\"Distributor of <strong>chemical solutions <br class=\\\"uk-visible@m\\\" \/>for industry<\/strong>\",\"image_align\":\"left\",\"image_margin\":\"xsmall\",\"margin_top\":\"small\",\"text_align\":\"left\",\"title_element\":\"h3\",\"title_style\":\"heading-medium\"}},{\"type\":\"divider\",\"props\":{\"divider_element\":\"hr\",\"margin_top\":\"medium\"}}]}],\"props\":{\"margin_bottom\":\"large\"}},{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"grid\",\"props\":{\"content_align\":false,\"content_column_breakpoint\":\"m\",\"content_dropcap\":false,\"content_margin_auto\":false,\"filter_align\":\"left\",\"filter_all\":true,\"filter_grid_breakpoint\":\"m\",\"filter_grid_width\":\"auto\",\"filter_position\":\"top\",\"filter_style\":\"tab\",\"grid_column_align\":false,\"grid_column_gap\":\"large\",\"grid_default\":\"1\",\"grid_divider\":false,\"grid_medium\":\"2\",\"grid_row_align\":false,\"grid_row_gap\":\"large\",\"grid_small\":\"2\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"image_width\":40,\"item_animation\":true,\"lightbox_bg_close\":true,\"link_style\":\"default\",\"link_text\":\"Read more\",\"margin_bottom\":\"large\",\"margin_top\":\"default\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"show_content\":true,\"show_hover_image\":true,\"show_hover_video\":true,\"show_image\":true,\"show_link\":true,\"show_meta\":true,\"show_title\":true,\"show_video\":true,\"title_align\":\"top\",\"title_element\":\"div\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"h4\"},\"children\":[{\"type\":\"grid_item\",\"props\":{\"content\":\"A portfolio built on long-standing partnerships with leading international chemical manufacturers. Every year we serve hundreds of industrial clients with high quality speciality products.\",\"image\":\"wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\",\"meta\":\"\",\"title\":\"Chemical solutions distribution\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"Fast delivery, safety and quality are the priorities of our logistics service, tailored to the needs of every client. In chemical distribution, logistics is an integral part of the value we deliver.\",\"image\":\"wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\",\"title\":\"Efficient logistics\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"Bespoke packaging capabilities to meet specific format and quantity requirements, even for small batches.\",\"image\":\"wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\",\"title\":\"Custom repacking solutions\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"A sales and formulation team that supports clients in product development and in choosing the most suitable raw materials.\",\"image\":\"wp-content\/uploads\/2026\/05\/reschemitalia-icon-white.svg\",\"title\":\"Technical assistance and formulation support\"}}]}]}]}],\"name\":\"Distributor\"},{\"type\":\"section\",\"props\":{\"height\":\"viewport\",\"height_viewport_offset\":false,\"image_effect\":\"fixed\",\"image_position\":\"top-left\",\"image_size\":\"cover\",\"media_overlay\":\"rgba(255, 255, 255, 0.7)\",\"padding_bottom\":\"large\",\"padding_top\":\"none\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"large\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"panel\",\"props\":{\"class\":\"uk-margin-large-top uk-padding-large uk-padding-remove-left uk-padding-remove-right uk-padding-remove-bottom\",\"content_column_breakpoint\":\"m\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link\":\"\/en\/contact\",\"link_margin\":\"medium\",\"link_style\":\"default\",\"link_text\":\"Contact us\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"maxwidth\":\"medium\",\"maxwidth_breakpoint\":\"m\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"text_align\":\"left\",\"title\":\"What makes Reschem Italia a <b class=\\\"text-reschem\\\">leading distributor of industrial speciality chemicals<\/b>:\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"visibility\":\"hidden-m\"},\"name\":\"Mobile panel\"}]}]},{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky\":\"section\",\"position_sticky_breakpoint\":\"\",\"vertical_align\":\"middle\"},\"children\":[{\"type\":\"html\",\"props\":{\"animation\":\"parallax\",\"content\":\"\\n\n\n<div id=\\\"wp-globe-wrapper\\\" >\\n    \n\n<div id=\\\"globe-canvas-container\\\"><\/div>\n\n\\n    <script src=\\\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r134\/three.min.js\\\"><\/script>\\n    <script>\\n        (function() {\\n            function inRange(val, min, max) { return val >= min ? val <= max : false; }\\n\\n            function isItaly(lat, lon) {\\n                if (!inRange(lat, 36, 47.5)) return false;\\n                if (!inRange(lon, 6.5, 18.5)) return false;\\n                if (inRange(lat, 38.5, 41.5)) { if (inRange(lon, 8, 10)) return true; }\\n                if (inRange(lat, 36, 38.5))   { if (inRange(lon, 12, 15.7)) return true; }\\n                if (inRange(lat, 38.5, 40.5)) { if (inRange(lon, 15.5, 18.5)) return true; }\\n                if (inRange(lat, 40.5, 43.5)) { if (inRange(lon, 13.5, 17.5)) return true; }\\n                if (inRange(lat, 43.5, 44.5)) { if (inRange(lon, 10.5, 14.5)) return true; }\\n                if (inRange(lat, 44.5, 47.5)) { if (inRange(lon, 6.5, 14)) return true; }\\n                return false;\\n            }\\n\\n            function initGlobe() {\\n                if (typeof THREE === 'undefined') { setTimeout(initGlobe, 100); return; }\\n\\n                var COLOR_ACCENT = 0xc96f9d;\\n                var COLOR_DOTS   = 0xd8d8d8;\\n                var COLOR_NET    = 0x000000;\\n\\n                var ARC_POINTS    = 80;\\n                var ARC_DURATION  = 900;\\n                var ARC_PAUSE     = 150;\\n                var ARC_HOLD      = 1800;\\n                var FADE_DUR      = 500;\\n                var DOT_SCALE_DUR = 300;\\n\\n                var MAP_URL = 'https:\/\/raw.githubusercontent.com\/mrdoob\/three.js\/master\/examples\/textures\/planets\/earth_atmos_2048.jpg';\\n\\n                var container = document.getElementById('globe-canvas-container');\\n                if (!container) return;\\n\\n                var W = container.clientWidth, H = container.clientHeight;\\n                var scene  = new THREE.Scene();\\n                var camera = new THREE.PerspectiveCamera(45, W \/ H, 0.1, 1000);\\n                camera.position.z = 17;\\n\\n                var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\\n                renderer.setSize(W, H);\\n                renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\\n                container.appendChild(renderer.domElement);\\n\\n                var mainGroup = new THREE.Group();\\n                scene.add(mainGroup);\\n                mainGroup.rotation.y = 3.5;    \/\/ <<< Italia spostata a sinistra nel layout reale\\n                mainGroup.rotation.x = 0.50;\\n\\n                function getCircleTexture() {\\n                    var c = document.createElement('canvas');\\n                    c.width = 32; c.height = 32;\\n                    var ctx = c.getContext('2d');\\n                    ctx.beginPath();\\n                    ctx.arc(16, 16, 15, 0, 2 * Math.PI);\\n                    ctx.fillStyle = 'rgb(255,255,255)';\\n                    ctx.fill();\\n                    var tex = new THREE.Texture(c);\\n                    tex.needsUpdate = true;\\n                    return tex;\\n                }\\n                var circleTex = getCircleTexture();\\n\\n                function easeOutBack(t) {\\n                    var c1 = 1.70158;\\n                    var c3 = c1 + 1;\\n                    return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);\\n                }\\n\\n                function latLonToVec3(lat, lon, r) {\\n                    var phi   = (90 - lat) * (Math.PI \/ 180);\\n                    var theta = (lon + 180) * (Math.PI \/ 180);\\n                    return new THREE.Vector3(\\n                        -(r * Math.sin(phi) * Math.cos(theta)),\\n                        r * Math.cos(phi),\\n                        r * Math.sin(phi) * Math.sin(theta)\\n                    );\\n                }\\n\\n                function buildArcPoints(startLat, startLon, endLat, endLon) {\\n                    var R     = 5.05;\\n                    var start = latLonToVec3(startLat, startLon, R);\\n                    var end   = latLonToVec3(endLat, endLon, R);\\n                    var mid   = new THREE.Vector3().addVectors(start, end).multiplyScalar(0.5);\\n                    var dist  = start.distanceTo(end);\\n                    mid.normalize().multiplyScalar(5 + dist * 0.45 + 0.5);\\n                    var pts = [];\\n                    for (var i = 0; i <= ARC_POINTS; i++) {\\n                        var t = i \/ ARC_POINTS;\\n                        pts.push(new THREE.Vector3(\\n                            (1-t)*(1-t)*start.x + 2*(1-t)*t*mid.x + t*t*end.x,\\n                            (1-t)*(1-t)*start.y + 2*(1-t)*t*mid.y + t*t*end.y,\\n                            (1-t)*(1-t)*start.z + 2*(1-t)*t*mid.z + t*t*end.z\\n                        ));\\n                    }\\n                    return pts;\\n                }\\n\\n                var oLat = 41.9, oLon = 12.5;\\n                var destinations = [\\n                    [40.7, -74.0], [51.5, -0.12], [35.7, 139.7],\\n                    [-23.5, -46.6], [1.3, 103.8], [25.2, 55.3],\\n                    [19.4, -99.1], [-33.9, 18.4], [37.6, 55.8], [30.0, 31.2]\\n                ];\\n\\n                var arcData   = [];\\n                var arcLines  = [];\\n                var dotMeshes = [];\\n\\n                var originDot = new THREE.Mesh(\\n                    new THREE.SphereGeometry(0.09, 8, 8),\\n                    new THREE.MeshBasicMaterial({ color: COLOR_ACCENT })\\n                );\\n                originDot.position.copy(latLonToVec3(oLat, oLon, 5.05));\\n                mainGroup.add(originDot);\\n\\n                function buildArcLines() {\\n                    arcLines.forEach(function(l) { mainGroup.remove(l); });\\n                    dotMeshes.forEach(function(d) { mainGroup.remove(d); });\\n                    arcLines  = [];\\n                    dotMeshes = [];\\n                    arcData   = [];\\n\\n                    destinations.forEach(function(d) {\\n                        var pts = buildArcPoints(oLat, oLon, d[0], d[1]);\\n                        var geo = new THREE.BufferGeometry().setFromPoints(pts);\\n                        geo.setDrawRange(0, 0);\\n                        var mat = new THREE.LineBasicMaterial({\\n                            color: COLOR_ACCENT, transparent: true, opacity: 0.9, linewidth: 2\\n                        });\\n                        var line = new THREE.Line(geo, mat);\\n                        mainGroup.add(line);\\n                        arcLines.push(line);\\n\\n                        var dot = new THREE.Mesh(\\n                            new THREE.SphereGeometry(0.09, 8, 8),\\n                            new THREE.MeshBasicMaterial({ color: COLOR_ACCENT, transparent: true, opacity: 0 })\\n                        );\\n                        dot.position.copy(latLonToVec3(d[0], d[1], 5.05));\\n                        dot.scale.set(0, 0, 0);\\n                        mainGroup.add(dot);\\n                        dotMeshes.push(dot);\\n\\n                        arcData.push({ pts: pts, geo: geo, drawn: 0, dotShown: false, dotStartTime: -1 });\\n                    });\\n                }\\n\\n                var animState = {\\n                    phase: 'drawing',\\n                    currentArc: 0,\\n                    arcStartTime: 0,\\n                    holdStartTime: 0,\\n                    fadeStartTime: 0\\n                };\\n\\n                function resetAnimation(now) {\\n                    buildArcLines();\\n                    animState.phase        = 'drawing';\\n                    animState.currentArc   = 0;\\n                    animState.arcStartTime = now;\\n                }\\n\\n                function updateArcs(now) {\\n                    var s = animState;\\n\\n                    arcData.forEach(function(ad, i) {\\n                        if (ad.dotStartTime > 0) {\\n                            var dp = (now - ad.dotStartTime) \/ DOT_SCALE_DUR;\\n                            if (dp > 1) { dp = 1; }\\n                            var sc = easeOutBack(dp);\\n                            dotMeshes[i].scale.set(sc, sc, sc);\\n                            dotMeshes[i].material.opacity = dp;\\n                        }\\n                    });\\n\\n                    if (s.phase === 'drawing') {\\n                        var idx = s.currentArc;\\n                        if (idx >= arcData.length) {\\n                            s.phase = 'holding';\\n                            s.holdStartTime = now;\\n                            return;\\n                        }\\n                        var ad      = arcData[idx];\\n                        var elapsed = now - s.arcStartTime;\\n                        var prog    = elapsed \/ ARC_DURATION;\\n                        if (prog > 1) { prog = 1; }\\n\\n                        var targetCount = Math.round(prog * (ARC_POINTS + 1));\\n                        if (targetCount !== ad.drawn) {\\n                            ad.drawn = targetCount;\\n                            ad.geo.setDrawRange(0, targetCount);\\n                        }\\n\\n                        if (prog >= 1) {\\n                            if (!ad.dotShown) {\\n                                ad.dotShown     = true;\\n                                ad.dotStartTime = now;\\n                            }\\n                            if (elapsed >= ARC_DURATION + ARC_PAUSE) {\\n                                s.currentArc++;\\n                                s.arcStartTime = now;\\n                            }\\n                        }\\n                    }\\n\\n                    if (s.phase === 'holding') {\\n                        if (now - s.holdStartTime >= ARC_HOLD) {\\n                            s.phase = 'fading';\\n                            s.fadeStartTime = now;\\n                        }\\n                    }\\n\\n                    if (s.phase === 'fading') {\\n                        var fp = (now - s.fadeStartTime) \/ FADE_DUR;\\n                        if (fp > 1) { fp = 1; }\\n                        var op = 1 - fp;\\n                        arcLines.forEach(function(l) { l.material.opacity = op * 0.9; });\\n                        dotMeshes.forEach(function(dm) { dm.material.opacity = op; });\\n                        if (fp >= 1) { resetAnimation(now); }\\n                    }\\n                }\\n\\n                function createInnerGlobe(image) {\\n                    var canvas = document.createElement('canvas');\\n                    canvas.width  = image.width;\\n                    canvas.height = image.height;\\n                    var ctx = canvas.getContext('2d');\\n                    ctx.drawImage(image, 0, 0);\\n                    var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\\n                    var data    = imgData.data;\\n\\n                    var positions = [], colors = [];\\n                    var colBase  = new THREE.Color(COLOR_DOTS);\\n                    var colItaly = new THREE.Color(COLOR_ACCENT);\\n\\n                    for (var y = 0; y < canvas.height; y++) {\\n                        for (var x = 0; x < canvas.width; x++) {\\n                            var lat   = (1 - y \/ canvas.height) * 180 - 90;\\n                            var lon   = (x \/ canvas.width) * 360 - 180;\\n                            var italy = isItaly(lat, lon);\\n                            if (!italy) {\\n                                if (y % 4 !== 0) continue;\\n                                if (x % 4 !== 0) continue;\\n                            }\\n                            var idx2 = (y * canvas.width + x) * 4;\\n                            if (data[idx2] < 50) continue;\\n                            var phi   = (90 - lat) * (Math.PI \/ 180);\\n                            var theta = (lon + 180) * (Math.PI \/ 180);\\n                            positions.push(\\n                                -(5 * Math.sin(phi) * Math.cos(theta)),\\n                                5 * Math.cos(phi),\\n                                5 * Math.sin(phi) * Math.sin(theta)\\n                            );\\n                            var col = italy ? colItaly : colBase;\\n                            colors.push(col.r, col.g, col.b);\\n                        }\\n                    }\\n\\n                    var geo = new THREE.BufferGeometry();\\n                    geo.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3));\\n                    geo.setAttribute('color',    new THREE.Float32BufferAttribute(colors, 3));\\n                    mainGroup.add(new THREE.Points(geo, new THREE.PointsMaterial({\\n                        size: 0.028, vertexColors: true, map: circleTex,\\n                        transparent: true, opacity: 1.0, sizeAttenuation: true\\n                    })));\\n\\n                    buildArcLines();\\n                    animState.arcStartTime = performance.now();\\n                }\\n\\n                function createOuterNetwork() {\\n                    var geo = new THREE.IcosahedronGeometry(6, 2);\\n                    var wf  = new THREE.WireframeGeometry(geo);\\n                    mainGroup.add(new THREE.LineSegments(wf, new THREE.LineBasicMaterial({\\n                        color: COLOR_NET, transparent: true, opacity: 0.12\\n                    })));\\n                    var pos = geo.attributes.position.array;\\n                    var dg  = new THREE.BufferGeometry();\\n                    dg.setAttribute('position', new THREE.BufferAttribute(pos, 3));\\n                    mainGroup.add(new THREE.Points(dg, new THREE.PointsMaterial({\\n                        color: COLOR_NET, size: 0.05, map: circleTex,\\n                        transparent: true, opacity: 0.35\\n                    })));\\n                }\\n\\n                var loader = new THREE.ImageLoader();\\n                loader.setCrossOrigin('Anonymous');\\n                loader.load(MAP_URL, function(img) {\\n                    createInnerGlobe(img);\\n                    createOuterNetwork();\\n                });\\n\\n                var isDragging = false, prevX = 0, prevY = 0, velX = 0, velY = 0;\\n                container.addEventListener('mousedown', function(e) {\\n                    isDragging = true; prevX = e.clientX; prevY = e.clientY;\\n                    velX = 0; velY = 0; container.style.cursor = 'grabbing';\\n                });\\n                window.addEventListener('mousemove', function(e) {\\n                    if (!isDragging) return;\\n                    var dx = e.clientX - prevX, dy = e.clientY - prevY;\\n                    mainGroup.rotation.y += dx * 0.006;\\n                    mainGroup.rotation.x += dy * 0.006;\\n                    velY = dx * 0.006; velX = dy * 0.006;\\n                    prevX = e.clientX; prevY = e.clientY;\\n                });\\n                window.addEventListener('mouseup', function() {\\n                    isDragging = false; container.style.cursor = 'grab';\\n                });\\n                container.addEventListener('touchstart', function(e) {\\n                    isDragging = true; prevX = e.touches[0].clientX; prevY = e.touches[0].clientY;\\n                    velX = 0; velY = 0;\\n                }, {passive: true});\\n                window.addEventListener('touchmove', function(e) {\\n                    if (!isDragging) return;\\n                    var dx = e.touches[0].clientX - prevX, dy = e.touches[0].clientY - prevY;\\n                    mainGroup.rotation.y += dx * 0.006;\\n                    mainGroup.rotation.x += dy * 0.006;\\n                    velY = dx * 0.006; velX = dy * 0.006;\\n                    prevX = e.touches[0].clientX; prevY = e.touches[0].clientY;\\n                }, {passive: true});\\n                window.addEventListener('touchend', function() { isDragging = false; });\\n\\n                function animate() {\\n                    requestAnimationFrame(animate);\\n                    updateArcs(performance.now());\\n                    if (!isDragging) {\\n                        mainGroup.rotation.y += velY;\\n                        mainGroup.rotation.x += velX;\\n                        velY *= 0.94; velX *= 0.94;\\n                        if (Math.abs(velY) < 0.0005) {\\n                            if (Math.abs(velX) < 0.0005) {\\n                                mainGroup.rotation.y += 0.0008;\\n                            }\\n                        }\\n                    }\\n                    renderer.render(scene, camera);\\n                }\\n                animate();\\n\\n                window.addEventListener('resize', function() {\\n                    var w = container.clientWidth, h = container.clientHeight;\\n                    camera.aspect = w \/ h; camera.updateProjectionMatrix();\\n                    renderer.setSize(w, h);\\n                });\\n            }\\n\\n            if (document.readyState === 'complete') { initGlobe(); }\\n            else { window.addEventListener('load', initGlobe); }\\n        })();\\n    <\/script>\\n<\/div>\n\n\\n\",\"parallax_y\":\"200\",\"position\":\"relative\",\"position_z_index\":\"1\"}}]}]},{\"type\":\"row\",\"props\":{\"class\":\"z-100\",\"column_gap\":\"collapse\",\"layout\":\"1-2,1-2\"},\"children\":[{\"type\":\"column\",\"props\":{\"class\":\"uk-visible@m\",\"image_position\":\"center-center\",\"position_sticky\":\"row\",\"position_sticky_breakpoint\":\"m\",\"position_sticky_offset\":\"30vh\",\"vertical_align\":\"middle\",\"width_medium\":\"1-2\"},\"children\":[{\"type\":\"panel\",\"props\":{\"content_column_breakpoint\":\"m\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link\":\"\/en\/contact\",\"link_margin\":\"medium\",\"link_style\":\"default\",\"link_text\":\"Contact us\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"maxwidth\":\"medium\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"title\":\"What makes <strong class=\\\"text-reschem\\\">Reschem Italia a leading distributor for industry<\/strong>:\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\"},\"name\":\"Desktop panel\"}]},{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\",\"width_medium\":\"1-2\"},\"children\":[{\"type\":\"panel\",\"props\":{\"animation\":\"parallax\",\"class\":\"card-blur\",\"content_column_breakpoint\":\"m\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link_style\":\"default\",\"link_text\":\"Read more\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"panel_padding\":\"default\",\"panel_style\":\"card-hover\",\"parallax_y\":\"-300\",\"position\":\"relative\",\"position_z_index\":\"2\",\"title\":\"<span class=\\\"uk-text-uppercase\\\">Over thirty years in chemical distribution for industry<\/span>\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"heading-medium\"}},{\"type\":\"panel\",\"props\":{\"animation\":\"parallax\",\"class\":\"card-blur\",\"content_column_breakpoint\":\"m\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link_style\":\"default\",\"link_text\":\"Read more\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"panel_padding\":\"default\",\"panel_style\":\"card-hover\",\"parallax_y\":\"-200\",\"position\":\"relative\",\"position_z_index\":\"2\",\"title\":\"<span class=\\\"uk-text-uppercase\\\"> Authorised distributor for some of the leading international chemical companies<\/span>\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"heading-medium\"}},{\"type\":\"panel\",\"props\":{\"animation\":\"parallax\",\"class\":\"card-blur\",\"content_column_breakpoint\":\"m\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link_style\":\"default\",\"link_text\":\"Read more\",\"margin_bottom\":\"default\",\"margin_top\":\"default\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"panel_padding\":\"default\",\"panel_style\":\"card-hover\",\"parallax_y\":\"-150\",\"position\":\"relative\",\"position_z_index\":\"2\",\"title\":\"<span class=\\\"uk-text-uppercase\\\">Safety and dangerous goods management<\/span>\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h3\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"heading-medium\"}}]}]}],\"name\":\"[SECTION] Markets - responsive\"},{\"name\":\"Shortcut prefooter [EN]\",\"type\":\"section\",\"props\":{\"animation\":\"slide-top-small\",\"header_overlay\":\"light\",\"height_viewport\":false,\"image_position\":\"center-center\",\"image_size\":\"cover\",\"padding\":\"none\",\"padding_bottom\":\"none\",\"padding_remove_top\":false,\"padding_top\":\"none\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"\"},\"children\":[{\"type\":\"row\",\"props\":{\"column_gap\":\"collapse\",\"layout\":\"1-2,1-2\",\"margin\":\"small\",\"margin_top\":\"remove\",\"match\":false,\"row_gap\":\"collapse\",\"vertical_align\":false},\"children\":[{\"type\":\"column\",\"props\":{\"image\":\"wp-content\/uploads\/2026\/05\/reschem-poliuretanoimg-background.jpg\",\"image_position\":\"center-right\",\"image_size\":\"cover\",\"media_overlay\":\"rgba(0, 0, 0, 0.6)\",\"padding\":\"large\",\"position_sticky_breakpoint\":\"m\",\"preserve_color\":true,\"style\":\"tile-muted\",\"text_color\":\"light\",\"width_medium\":\"1-2\"},\"children\":[{\"type\":\"panel\",\"props\":{\"animation\":\"parallax\",\"content\":\"Looking for a reliable chemical solutions distributor for your business? Reschem Italia offers you experience, quality products and a service tailored to your needs.\",\"content_column_breakpoint\":\"m\",\"content_margin\":\"medium\",\"icon\":\"\",\"icon_width\":80,\"image\":\"wp-content\/uploads\/2026\/05\/reschem-industries-italia-1-scaled.webp\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"image_width\":300,\"link\":\"https:\/\/reschemitalia.com\/\",\"link_margin\":\"medium\",\"link_style\":\"text\",\"link_target\":true,\"link_text\":\"<span uk-icon=\\\"link\\\"><\/span> Visit the Reschem Italia website \",\"margin\":\"remove-vertical\",\"margin_bottom\":\"default\",\"margin_remove_top\":false,\"margin_top\":\"default\",\"maxwidth\":\"large\",\"meta\":\"\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"\",\"panel_card_size\":\"large\",\"parallax_breakpoint\":\"m\",\"parallax_easing\":\"1\",\"parallax_y\":\"30,0\",\"text_align\":\"left\",\"title\":\"\",\"title_align\":\"top\",\"title_element\":\"h2\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"h2\"}}]},{\"type\":\"column\",\"props\":{\"image\":\"wp-content\/uploads\/2026\/05\/rescherm-industries-distribuzione-formulazione-specialita-chimiche-3.jpg\",\"image_position\":\"center-right\",\"image_size\":\"cover\",\"padding\":\"large\",\"position_sticky_breakpoint\":\"m\",\"preserve_color\":false,\"style\":\"tile-default\",\"text_color\":\"dark\",\"width_medium\":\"1-2\"},\"children\":[{\"type\":\"panel\",\"props\":{\"animation\":\"parallax\",\"content\":\"\n\n<p>Would you like more information <br class=\\\"uk-visible@m\\\" \/>about our Company and our Services? <br class=\\\"uk-visible@m\\\" \/>Get in touch.<\/p>\n\n\",\"content_column_breakpoint\":\"m\",\"content_margin\":\"medium\",\"icon_width\":80,\"image\":\"\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"link\":\"en\/contact\/\",\"link_margin\":\"medium\",\"link_style\":\"text\",\"link_text\":\"Request information\",\"margin\":\"remove-vertical\",\"margin_bottom\":\"default\",\"margin_remove_top\":false,\"margin_top\":\"default\",\"maxwidth\":\"2xlarge\",\"meta\":\"\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"\",\"panel_card_size\":\"large\",\"parallax_breakpoint\":\"m\",\"parallax_easing\":\"1\",\"parallax_y\":\"30,0\",\"text_align\":\"left\",\"title\":\"Contact us\",\"title_align\":\"top\",\"title_color\":\"primary\",\"title_element\":\"h2\",\"title_grid_breakpoint\":\"m\",\"title_grid_width\":\"1-2\",\"title_hover_style\":\"reset\",\"title_style\":\"h2\"}}]}]}]}],\"version\":\"5.0.32\"} --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reschem Italia S.p.A. Chemical solutions distributor for industry Coating Plastics &amp; Rubber Polyurethane Detergents Textiles [arrow-down] Since 1990 we have been distributing chemical solutions to Italian industry: coatings, polyurethane, plastics, rubber, detergents, textiles and personal care. Reschem Italia is the historic heart of the Reschem Industries Group. Since 2008 Reschem Italia has been led by [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":5118,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-5131","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/comments?post=5131"}],"version-history":[{"count":2,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5131\/revisions"}],"predecessor-version":[{"id":5133,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5131\/revisions\/5133"}],"up":[{"embeddable":true,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5118"}],"wp:attachment":[{"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/media?parent=5131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}