{"id":5134,"date":"2026-05-04T18:56:32","date_gmt":"2026-05-04T16:56:32","guid":{"rendered":"https:\/\/reschemindustries.com\/?page_id=5134"},"modified":"2026-09-14T15:48:40","modified_gmt":"2026-09-14T13:48:40","slug":"vicris","status":"publish","type":"page","link":"https:\/\/reschemindustries.com\/en\/companies\/vicris\/","title":{"rendered":"Vicris"},"content":{"rendered":"<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschem-industries-vicris.webp\" alt=\"\"><\/p>\n<h1>Vicris Srl Raw materials for paints, varnishes and coatings<\/h1>\n<div>\n<p><span class=\"uk-badge uk-badge-vicris\">Coating<\/span> <span class=\"uk-badge uk-badge-vicris\">Paints<\/span> <span class=\"uk-badge uk-badge-vicris\">Varnishes<\/span> <span class=\"uk-badge uk-badge-vicris\">Plastics<\/span><\/p>\n<\/div>\n<p>[arrow-down]<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/vicris-pitture-vernici-edilizia-img-background.jpg\" alt=\"\"><\/p>\n<h2>For <strong class=\"text-vicris\">over thirty years<\/strong> Vicris has been the go-to <strong class=\"text-vicris\">supplier<\/strong> of raw materials for paints and varnishes for manufacturers, formulators and resellers in the coatings sector. Resins, solvents, additives and <strong class=\"text-vicris\">plastics for industry<\/strong>.<\/h2>\n<div>Joining the Reschem Group was a natural step for Vicris: the technical expertise built over more than thirty years in the market was combined with the strength of a structured network, bringing real benefits to clients in terms of product range for coating formulation, competitive prices and continuity of supply.<\/div>\n<hr>\n<div>Raw materials for paints and varnishes<\/div>\n<ul>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\" alt=\"\"><\/p>\n<h3>Resins<\/h3>\n<div>For formulating paints and varnishes<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\" alt=\"\"><\/p>\n<h3>Solvents<\/h3>\n<div>For coating applications<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\" alt=\"\"><\/p>\n<h3>Additives<\/h3>\n<div>For paint formulation<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\" alt=\"\"><\/p>\n<h3>Plastics<\/h3>\n<div>For the industrial sector<\/div>\n<\/li>\n<\/ul>\n<h2>Vicris S.r.l.<\/h2>\n<h3><strong>Vicris services<\/strong> <br \/>for the coatings sector<\/h3>\n<hr>\n<ul>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\" alt=\"\"><\/p>\n<div>Supply of raw materials for paints and varnishes<\/div>\n<div>Vicris supplies raw materials for paints and varnishes to manufacturers and laboratories, helping them develop high-performing products that meet industry standards. Resins, solvents, additives and plastics for industry are at the heart of what we offer.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\" alt=\"\"><\/p>\n<div>Distribution of chemical products for coatings<\/div>\n<div>Vicris offers companies in the coatings sector a complete portfolio of raw materials and chemical solutions, built with qualified suppliers and enriched by integration with the Reschem Group range.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\" alt=\"\"><\/p>\n<div>Technical consulting for paint formulation<\/div>\n<div>Supply is only the starting point. The Vicris team supports clients in formulation through plant design, selection of the most suitable solutions and formulation support, from the first test to full production.<\/div>\n<\/li>\n<li>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\" alt=\"\"><\/p>\n<div>Extensive logistics for coatings<\/div>\n<div>Thanks to a structured logistics network with warehouses in Campania and Sicily, Vicris guarantees competitive delivery times and extensive coverage throughout Italy, with a particularly strong presence in Central and Southern Italy.<\/div>\n<\/li>\n<\/ul>\n<div>\n<h3><b class=\"text-vicris\">Markets served<\/b> by Vicris<\/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 = 0x00cfb4;\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><b class=\"text-vicris\">Markets served<\/b> <br class=\"uk-visible@m\">by Vicris<\/h3>\n<p><a href=\"\/en\/contact\">Contact us<\/a><\/p>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Manufacturers of paints and varnishes for the building sector<\/span><\/h3>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Industrial coating formulators<\/span><\/h3>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Companies in the industrial plastics sector<\/span><\/h3>\n<\/div>\n<div>\n<h3><span class=\"uk-text-uppercase\">Formulation research and development laboratories<\/span><\/h3>\n<\/div>\n<div>\n<p>        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/reschem-industries-vicris.webp\" alt=\"\"><\/p>\n<div>Looking for a supplier of raw materials for paints, varnishes and coatings, with thirty years of experience and integrated technical consulting? Vicris is the specialist partner you need.<\/div>\n<p><a href=\"https:\/\/www.vicris.it\/\"><span uk-icon=\"link\"><\/span> Visit the Vicris srl 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-vicris-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-vicris.webp\",\"image_svg_color\":\"emphasis\",\"image_width\":300,\"margin_bottom\":\"default\",\"margin_top\":\"default\"},\"name\":\"Company logo\"},{\"type\":\"headline\",\"props\":{\"content\":\"Vicris Srl Raw materials for paints, varnishes and coatings\",\"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-vicris\\\">Coating<\/span> <span class=\\\"uk-badge uk-badge-vicris\\\">Paints<\/span> <span class=\\\"uk-badge uk-badge-vicris\\\">Varnishes<\/span> <span class=\\\"uk-badge uk-badge-vicris\\\">Plastics<\/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\/vicris-pitture-vernici-edilizia-img-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_bottom\":\"small\",\"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\":\"For <strong class=\\\"text-vicris\\\">over thirty years<\/strong> Vicris has been the go-to <strong class=\\\"text-vicris\\\">supplier<\/strong> of raw materials for paints and varnishes for manufacturers, formulators and resellers in the coatings sector. Resins, solvents, additives and <strong class=\\\"text-vicris\\\">plastics for industry<\/strong>.\",\"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\":\"Joining the Reschem Group was a natural step for Vicris: the technical expertise built over more than thirty years in the market was combined with the strength of a structured network, bringing real benefits to clients in terms of product range for coating formulation, competitive prices and continuity of supply.\",\"margin\":\"default\",\"margin_bottom\":\"medium\",\"margin_top\":\"default\",\"text_align\":\"center\"}},{\"type\":\"divider\",\"props\":{\"divider_element\":\"hr\",\"divider_style\":\"icon\"}}]}]}],\"name\":\"Intro\"},{\"type\":\"section\",\"props\":{\"animation\":\"slide-bottom-medium\",\"animation_delay\":\"200\",\"image_position\":\"center-center\",\"padding_top\":\"none\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"xlarge\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"headline\",\"props\":{\"content\":\"Raw materials for paints and varnishes\",\"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\":\"4\",\"grid_parallax\":\"100\",\"grid_row_gap\":\"small\",\"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\":\"For formulating paints and varnishes\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\",\"title\":\"Resins\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"For coating applications\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\",\"title\":\"Solvents\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"For paint formulation\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\",\"title\":\"Additives\"}},{\"type\":\"gallery_item\",\"props\":{\"content\":\"For the industrial sector\",\"image\":\"wp-content\/uploads\/2026\/05\/background-card-vicris.jpg\",\"title\":\"Plastics\"}}]}]}]}],\"name\":\"Raw materials\"},{\"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-vicris \",\"content\":\"Vicris S.r.l.\",\"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\":\"<strong>Vicris services<\/strong> <br \/>for the coatings sector\",\"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\":\"Vicris supplies raw materials for paints and varnishes to manufacturers and laboratories, helping them develop high-performing products that meet industry standards. Resins, solvents, additives and plastics for industry are at the heart of what we offer.\",\"image\":\"wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\",\"meta\":\"\",\"title\":\"Supply of raw materials for paints and varnishes\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"Vicris offers companies in the coatings sector a complete portfolio of raw materials and chemical solutions, built with qualified suppliers and enriched by integration with the Reschem Group range.\",\"image\":\"wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\",\"title\":\"Distribution of chemical products for coatings\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"Supply is only the starting point. The Vicris team supports clients in formulation through plant design, selection of the most suitable solutions and formulation support, from the first test to full production.\",\"image\":\"wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\",\"title\":\"Technical consulting for paint formulation\"}},{\"type\":\"grid_item\",\"props\":{\"content\":\"Thanks to a structured logistics network with warehouses in Campania and Sicily, Vicris guarantees competitive delivery times and extensive coverage throughout Italy, with a particularly strong presence in Central and Southern Italy.\",\"image\":\"wp-content\/uploads\/2026\/05\/vicris-icon-white.svg\",\"title\":\"Extensive logistics for coatings\"}}]}]}]}],\"name\":\"Services\"},{\"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\",\"meta_align\":\"below-title\",\"meta_element\":\"div\",\"meta_style\":\"text-meta\",\"text_align\":\"left\",\"title\":\"<b class=\\\"text-vicris\\\">Markets served<\/b> by Vicris\",\"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 = 0x00cfb4;\\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\":\"<b class=\\\"text-vicris\\\">Markets served<\/b> <br class=\\\"uk-visible@m\\\">by Vicris\",\"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\\\">Manufacturers of paints and varnishes for the building sector<\/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\\\">Industrial coating formulators<\/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\\\">Companies in the industrial plastics sector<\/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\\\">Formulation research and development laboratories<\/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\/vicris-pitture-vernici-edilizia-img-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 supplier of raw materials for paints, varnishes and coatings, with thirty years of experience and integrated technical consulting? Vicris is the specialist partner you need.\",\"content_column_breakpoint\":\"m\",\"content_margin\":\"medium\",\"icon\":\"\",\"icon_width\":80,\"image\":\"wp-content\/uploads\/2026\/05\/reschem-industries-vicris.webp\",\"image_align\":\"top\",\"image_grid_breakpoint\":\"m\",\"image_grid_width\":\"1-2\",\"image_svg_color\":\"emphasis\",\"image_width\":200,\"link\":\"https:\/\/www.vicris.it\/\",\"link_margin\":\"medium\",\"link_style\":\"text\",\"link_target\":true,\"link_text\":\"<span uk-icon=\\\"link\\\"><\/span> Visit the Vicris srl 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>Vicris Srl Raw materials for paints, varnishes and coatings Coating Paints Varnishes Plastics [arrow-down] For over thirty years Vicris has been the go-to supplier of raw materials for paints and varnishes for manufacturers, formulators and resellers in the coatings sector. Resins, solvents, additives and plastics for industry. Joining the Reschem Group was a natural step [&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-5134","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5134","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=5134"}],"version-history":[{"count":2,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5134\/revisions"}],"predecessor-version":[{"id":5136,"href":"https:\/\/reschemindustries.com\/en\/wp-json\/wp\/v2\/pages\/5134\/revisions\/5136"}],"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=5134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}