An innovative solution only creates value when it reaches the people who can put it into practice.

For this reason, over time we have built an international commercial network capable of connecting our company with distributors, technical specialists and winemakers worldwide.

From our headquarters in Concorezzo to our production and logistic facilities, and through our network of partners and distributors, we work to make our solutions accessible and available across the world’s leading wine-producing regions.

Dal Cin Concorezzo
Via I Maggio, 67 - 20863 Concorezzo (MB)
tel: 039 6049477
mail: info@dalcin.com

Dal Cin Ibérica
C/ Agricultura, n° 17 - Haro, La Rioja, España
mail: info@dalcin.com

/* ====== DAL CIN WORLD MAP - SCOPED STYLES ====== */ #dc-worldmap-wrap{ --dc-land:#F9ECE1; --dc-active:#A91736; --dc-pin:#408E85; --dc-sea:transparent; --dc-stroke:#D9BCA3; --dc-ink:#3A3330; position:relative; width:100%; margin:0; font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:14px; line-height:18px; color:var(--dc-ink); box-sizing:border-box; flex:1 1 100%; /* dentro i contenitori flex di Elementor */ align-self:stretch; min-width:0; } /* il widget HTML di Elementor e' un flex item: senza questo collassa a 0px */ .elementor-widget-html:has(#dc-worldmap-wrap), .elementor-widget-container:has(> #dc-worldmap-wrap){ width:100%;flex:1 1 100%;align-self:stretch;min-width:0; } #dc-worldmap-wrap *,#dc-worldmap-wrap *::before,#dc-worldmap-wrap *::after{box-sizing:border-box;} #dc-worldmap{ width:100%; /* nessuna altezza fissa: 1.495 e' il rapporto delle terre emerse effettive (da -168,1 a 180 di longitudine, da -55,6 a 83,6 di latitudine in proiezione Mercator), cosi' non viene tagliato nulla, Groenlandia inclusa */ aspect-ratio:1.495; height:auto; background:transparent; overflow:hidden; outline:none; font-family:inherit; font-size:14px; line-height:18px; z-index:1; } #dc-worldmap:focus{outline:none;} #dc-worldmap.leaflet-container{background:transparent;} /* ---- Loader ---- */ #dc-worldmap-loader{ position:absolute;inset:0;display:flex;align-items:center;justify-content:center; gap:10px;background:transparent;z-index:900; font-size:14px;line-height:18px;color:#9A8C82;transition:opacity .35s ease; } #dc-worldmap-loader.dc-hidden{opacity:0;pointer-events:none;} #dc-worldmap-loader .dc-spin{ width:18px;height:18px;border-radius:50%; border:2px solid var(--dc-stroke);border-top-color:var(--dc-active); animation:dcSpin .8s linear infinite; } @keyframes dcSpin{to{transform:rotate(360deg);}} /* ---- Pin battito ---- */ .dc-pin{position:relative;width:26px;height:26px;} .dc-pin i{ position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px; background:var(--dc-pin,#408E85);border-radius:50%; border:2.5px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.28); z-index:3;transition:transform .25s cubic-bezier(.34,1.56,.64,1); } .dc-pin span{ position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px; border-radius:50%;background:#408E85;opacity:.55;z-index:1; animation:dcBeat 2.2s cubic-bezier(.22,.61,.36,1) infinite; } .dc-pin span.dc-d2{animation-delay:.75s;} .dc-pin span.dc-d3{animation-delay:1.5s;} @keyframes dcBeat{ 0%{transform:scale(.32);opacity:.6;} 70%{transform:scale(2.5);opacity:0;} 100%{transform:scale(2.5);opacity:0;} } .dc-pin:hover i{transform:scale(1.32);} .dc-marker-hit{background:transparent;border:0;} #dc-worldmap-wrap .leaflet-marker-icon:focus{outline:none;} #dc-worldmap-wrap .leaflet-marker-icon:focus-visible{ outline:2px solid #408E85;outline-offset:4px;border-radius:50%; } /* ---- Tooltip ---- */ #dc-worldmap-wrap .leaflet-tooltip.dc-tip{ font-family:'Poppins',sans-serif;font-size:14px;line-height:18px;font-weight:500; background:#fff;color:var(--dc-ink); border:0;border-radius:8px;padding:7px 11px; box-shadow:0 6px 22px rgba(58,51,48,.18); white-space:nowrap; } #dc-worldmap-wrap .leaflet-tooltip.dc-tip::before{border-top-color:#fff;border-bottom-color:#fff;} #dc-worldmap-wrap .leaflet-tooltip.dc-tip-country{ background:var(--dc-active);color:#fff;font-weight:600; box-shadow:0 6px 18px rgba(169,23,54,.28); } #dc-worldmap-wrap .leaflet-tooltip.dc-tip-country::before{border-top-color:var(--dc-active);border-bottom-color:var(--dc-active);} /* ---- Card sede (si apre per intero all'hover) ---- */ #dc-worldmap-wrap .leaflet-popup.dc-card{margin-bottom:0;} #dc-worldmap-wrap .leaflet-popup.dc-card .leaflet-popup-content-wrapper{ background:var(--dc-pin);color:#fff; border-radius:22px;padding:2px; box-shadow:0 18px 44px rgba(45,84,79,.28); } #dc-worldmap-wrap .leaflet-popup.dc-card .leaflet-popup-content{ margin:18px 26px;width:auto!important;text-align:center; font-family:'Poppins',sans-serif;font-size:14px;line-height:18px; } #dc-worldmap-wrap .leaflet-popup.dc-card .leaflet-popup-tip-container{display:none;} .dc-card-t{font-size:16px;line-height:22px;font-weight:700;margin:0 0 4px 0;white-space:nowrap;} .dc-card-a{font-size:14px;line-height:18px;font-weight:400;margin:0 0 2px 0;white-space:nowrap;} .dc-card-r{font-size:14px;line-height:18px;font-weight:400;margin:2px 0 0 0;white-space:nowrap;} .dc-card-r a{ color:#fff;font-weight:500;text-decoration:underline; text-underline-offset:3px;text-decoration-thickness:1px; transition:text-decoration-thickness .18s ease,opacity .18s ease; } .dc-card-r a:hover,.dc-card-r a:focus{color:#fff;text-decoration-thickness:2px;opacity:.92;} /* ---- Zoom control ---- */ #dc-worldmap-wrap .leaflet-control-zoom{border:0!important;box-shadow:0 4px 16px rgba(58,51,48,.16);border-radius:10px;overflow:hidden;} #dc-worldmap-wrap .leaflet-control-zoom a{ width:32px;height:32px;line-height:32px;color:var(--dc-ink); background:#fff;border-bottom:1px solid #F0E7DF;font-weight:600; } #dc-worldmap-wrap .leaflet-control-zoom a:hover{background:var(--dc-land);color:var(--dc-active);} #dc-worldmap-wrap .leaflet-bar a.leaflet-disabled{background:#FBF7F4;color:#CFC3B9;} /* ---- Errore ---- */ #dc-worldmap-err{ display:none;position:absolute;inset:0;z-index:950;border-radius:8px; background:var(--dc-land);align-items:center;justify-content:center;text-align:center; padding:24px;font-size:14px;line-height:18px;color:#8A5A63; } @media (max-width:767px){ #dc-worldmap-wrap .leaflet-popup.dc-card .leaflet-popup-content{margin:14px 18px;} .dc-card-t,.dc-card-a,.dc-card-r{white-space:normal;} .dc-card-t{font-size:15px;line-height:20px;} }
Caricamento mappa…
Mappa non disponibile al momento. Riprova più tardi.
(function(){ "use strict"; /* ---------- CONFIG ---------- */ var COL = { land:"#F9ECE1", active:"#A91736", pin:"#408E85", stroke:"#D9BCA3", strokeA:"#7A0E25" }; /* Inquadratura: scarto i lembi oltre questi meridiani (Chukotka a sinistra dell'Alaska, code srotolate delle Figi a destra) */ var WEST_CUT = -168.5, EAST_CUT = 180; /* Codici ISO 3166-1 numerici dei paesi evidenziati */ var ACTIVE_ISO = [ 380, /* Italia */ 724, 620, /* Spagna, Portogallo */ 840, /* Stati Uniti */ 250, /* Francia */ 36, 554, /* Australia, Nuova Zelanda */ 642, 8, 300, 40, 276, /* Romania, Albania, Grecia, Austria, Germania */ /* --- Sud America --- */ 32, 68, 76, 152, 170, 218, 238, 254, 328, 600, 604, 740, 858, 862 ]; /* Fallback su nome (dataset senza id numerico) */ var ACTIVE_NAMES = ["italy","spain","portugal","united states of america","united states","usa", "france","australia","new zealand","romania","albania","greece","austria","germany", "argentina","bolivia","brazil","chile","colombia","ecuador","guyana","paraguay","peru", "suriname","uruguay","venezuela","falkland islands","french guiana"]; var LABELS = { 380:"Italia",724:"Spagna",620:"Portogallo",840:"Stati Uniti",250:"Francia",36:"Australia", 554:"Nuova Zelanda",642:"Romania",8:"Albania",300:"Grecia",40:"Austria",276:"Germania", 32:"Argentina",68:"Bolivia",76:"Brasile",152:"Cile",170:"Colombia",218:"Ecuador", 238:"Isole Falkland",254:"Guyana Francese",328:"Guyana",600:"Paraguay",604:"Per\u00f9", 740:"Suriname",858:"Uruguay",862:"Venezuela" }; var SEDI = [ { lat:45.6287, lng:9.3399, nome:"Dal Cin Concorezzo", indirizzo:"Via I Maggio, 67 - 20863 Concorezzo (MB)", tel:"039 6049477", telRaw:"+390396049477", mail:"info@dalcin.com" }, { lat:42.5768, lng:-2.8474, nome:"Dal Cin Ib\u00e9rica", indirizzo:"C/ Agricultura, 17 - Haro, La Rioja (Espa\u00f1a)", tel:null, telRaw:null, mail:"info@dalcin.com" } ]; /* ---------- LOADER ASSET ---------- */ function loadScript(url){ return new Promise(function(res,rej){ var s=document.createElement("script"); s.src=url; s.async=true; s.crossOrigin="anonymous"; s.onload=function(){res();}; s.onerror=function(){rej(new Error("fail "+url));}; document.head.appendChild(s); }); } function loadCss(url){ if(document.querySelector('link[href="'+url+'"]')) return; var l=document.createElement("link"); l.rel="stylesheet"; l.href=url; document.head.appendChild(l); } function loadScriptAny(urls){ var i=0; function next(){ if(i>=urls.length) return Promise.reject(new Error("script ko")); return loadScript(urls[i++]).catch(next); } return next(); } function getJSON(urls){ var i=0; function next(){ if(i>=urls.length) return Promise.reject(new Error("geojson ko")); var u=urls[i++]; return fetch(u,{mode:"cors"}).then(function(r){ if(!r.ok) throw new Error("http "+r.status); return r.json(); }).catch(function(){ return next(); }); } return next(); } var LEAFLET_JS = "https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/leaflet.min.js"; var LEAFLET_CSS= "https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/leaflet.min.css"; var TOPO_JS = [ "https://cdn.jsdelivr.net/npm/topojson-client@3.1.0/dist/topojson-client.min.js", "https://unpkg.com/topojson-client@3.1.0/dist/topojson-client.min.js" ]; var TOPO_DATA = [ "https://cdn.jsdelivr.net/npm/world-atlas@2.0.2/countries-110m.json", "https://unpkg.com/world-atlas@2.0.2/countries-110m.json" ]; var GEO_DATA = [ "https://cdn.jsdelivr.net/gh/johan/world.geo.json@master/countries.geo.json", "https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json" ]; /* ---------- HELPERS ---------- */ function isoOf(f){ var raw = (f.id !== undefined && f.id !== null) ? f.id : (f.properties && (f.properties.iso_n3 || f.properties.ISO_N3 || f.properties.id)); var n = parseInt(raw,10); return isNaN(n) ? null : n; } function nameOf(f){ var p=f.properties||{}; return p.name || p.NAME || p.admin || p.ADMIN || p.name_long || ""; } function isActive(f){ var iso=isoOf(f); if(iso!==null && ACTIVE_ISO.indexOf(iso)>-1) return true; var n=nameOf(f).toLowerCase(); return n && ACTIVE_NAMES.indexOf(n)>-1; } function labelOf(f){ var iso=isoOf(f); if(iso!==null && LABELS[iso]) return LABELS[iso]; return nameOf(f); } function cardHTML(s){ var h='
'+s.nome+'
'+ '
'+s.indirizzo+'
'; if(s.telRaw){ h+=''; } h+=''; return h; } /* Corregge i poligoni che attraversano l'antimeridiano (Russia, Fiji, NZ) evitando le fasce orizzontali che sporcano la mappa. */ function unwrapRing(ring){ var out=[],off=0,prev=null,i,lng; for(i=0;i180) off-=360; else if(d<-180) off+=360; } prev=lng+off; out.push([prev,ring[i][1]]); } return out; } /* Riporta l'anello srotolato nella fascia -180/180 (in base al suo centro) */ function recenterRing(ring){ var sum=0,i,dx=0; for(i=0;i180) dx-=360; while(mean+dx<-180) dx+=360; return dx ? ring.map(function(pt){ return [pt[0]+dx,pt[1]]; }) : ring; } /* Ritaglia un anello su un meridiano (Sutherland-Hodgman): tiene la parte a ovest di X se keepWest, altrimenti quella a est */ function clipRing(ring,X,keepWest){ var out=[],i,a,b,ain,bin,t; function inside(p){ return keepWest ? p[0]=X; } for(i=0;i<ring.length;i++){ a=ring[i]; b=ring[(i+1)%ring.length]; ain=inside(a); bin=inside(b); if(ain!==bin){ t=(X-a[0])/(b[0]-a[0]); out.push([X, a[1]+t*(b[1]-a[1])]); } if(bin) out.push(b); } return out; } /* Taglia al 180 (la Russia resta intera fino al bordo, sparisce solo la Chukotka oltre la linea) e scarta i lembi a sinistra dell'Alaska */ function fixPolygon(poly){ var rings=[],i,r,mx; for(i=0;i<poly.length;i++){ r=recenterRing(unwrapRing(poly[i])); r=clipRing(clipRing(r,EAST_CUT,true),-180,false); if(r.lengthmx)mx=pt[0]; }); if(mx<WEST_CUT) return []; } rings.push(r); } return [rings]; } function fixAntimeridian(geo){ (geo.features||[]).forEach(function(f){ var g=f.geometry; if(!g) return; if(g.type==="Polygon"){ var out=fixPolygon(g.coordinates); if(out.length){ g.coordinates=out[0]; } else { f.__skip=true; } } else if(g.type==="MultiPolygon"){ var acc=[]; g.coordinates.forEach(function(poly){ acc=acc.concat(fixPolygon(poly)); }); if(acc.length){ g.coordinates=acc; } else { f.__skip=true; } } }); return geo; } /* ---------- BOOT ---------- */ function fail(){ var l=document.getElementById("dc-worldmap-loader"); var e=document.getElementById("dc-worldmap-err"); if(l) l.classList.add("dc-hidden"); if(e) e.style.display="flex"; } /* Elementor annida il widget in contenitori flex: se un antenato e' largo 0px la mappa non puo' disegnarsi. Qui li allargo al 100%. */ function ensureWidth(el){ var n=el.parentElement,i=0; while(n && i<8 && n.tagName!=="BODY"){ if(n.getBoundingClientRect().width<40){ n.style.width="100%"; n.style.flex="1 1 100%"; n.style.alignSelf="stretch"; n.style.minWidth="0"; } n=n.parentElement; i++; } } function build(geo){ var el=document.getElementById("dc-worldmap"); if(!el) return; ensureWidth(el); var map=L.map(el,{ zoomControl:false, attributionControl:false, scrollWheelZoom:false, worldCopyJump:false, zoomSnap:0, zoomDelta:.5, minZoom:1, maxZoom:7, maxBoundsViscosity:.85 }); L.control.zoom({position:"bottomright"}).addTo(map); /* Scroll-zoom solo dopo click sulla mappa (UX pagina) */ map.on("click",function(){ map.scrollWheelZoom.enable(); }); map.on("mouseout",function(){ map.scrollWheelZoom.disable(); }); function styleFor(f){ var a=isActive(f); return { fillColor:a?COL.active:COL.land, fillOpacity:1, color:a?COL.strokeA:COL.stroke, weight:a?1.2:1, opacity:1 }; } var layer=L.geoJSON(geo,{ style:styleFor, filter:function(f){ if(f.__skip) return false; var n=nameOf(f).toLowerCase(); return isoOf(f)!==10 && n!=="antarctica" && n!=="antartide"; }, onEachFeature:function(f,l){ if(!isActive(f)) return; var lab=labelOf(f); if(lab){ l.bindTooltip(lab,{sticky:true,direction:"top",className:"dc-tip dc-tip-country",opacity:1}); } l.on({ mouseover:function(){ this.setStyle({fillOpacity:.82,weight:2}); this.bringToFront(); }, mouseout:function(){ this.setStyle({fillOpacity:1,weight:1.2}); } }); } }).addTo(map); /* ---- Pin sedi ---- */ var icon=L.divIcon({ className:"dc-marker-hit", html:'
', iconSize:[26,26], iconAnchor:[13,13], popupAnchor:[0,-12], tooltipAnchor:[0,-14] }); SEDI.forEach(function(s){ var mk=L.marker([s.lat,s.lng],{icon:icon,riseOnHover:true,keyboard:true,alt:s.nome}) .addTo(map) .bindPopup(cardHTML(s),{ className:"dc-card", maxWidth:380, closeButton:false, autoPan:false, /* niente scatti della mappa al passaggio del mouse */ autoClose:true, offset:[0,-6] }); /* La card si apre per intero all'hover e resta aperta mentre ci si sposta sopra, cosi' telefono e mail restano cliccabili. */ var closeT=null; function hold(){ clearTimeout(closeT); } function sched(){ clearTimeout(closeT); closeT=setTimeout(function(){ mk.closePopup(); },280); } mk.on("mouseover",function(){ hold(); mk.openPopup(); }); mk.on("mouseout",sched); mk.on("popupopen",function(e){ e.popup.options.maxWidth=Math.max(240,Math.min(380,el.clientWidth-32)); e.popup.update(); var pe=e.popup.getElement(); if(pe && !pe.__dcBound){ pe.__dcBound=1; L.DomEvent.on(pe,"mouseenter",hold); L.DomEvent.on(pe,"mouseleave",sched); } }); /* l'icona esiste solo quando la mappa ha una vista: attendi l'evento add */ mk.on("add",function(){ var elm=mk.getElement(); if(elm) elm.setAttribute("aria-label",s.nome); }); }); /* ---- Framing: i confini vengono dalle geometrie effettivamente disegnate, cosi' nessuna terra emersa puo' finire fuori dall'inquadratura. (l'Antartide e' gia' esclusa, quindi niente latitudini infinite) ---- */ var DB = layer.getBounds(); var WORLD = L.latLngBounds( [DB.getSouth(), Math.max(DB.getWest(),-180)], [DB.getNorth(), Math.min(DB.getEast(), 180)] /* fuori la coda delle Figi oltre il 180 */ ); map.setMaxBounds(L.latLngBounds([-85,-200],[85,200])); /* Alla vista iniziale la mappa e' ferma: niente trascinamento e niente cursore "grab". Si sblocca solo quando l'utente zooma. */ var HOME=null; /* centro dell'inquadratura iniziale */ function syncDrag(){ if(map.getZoom() <= map.getMinZoom()+0.01){ if(map.dragging.enabled()) map.dragging.disable(); if(HOME) map.setView(HOME,map.getZoom(),{animate:false}); }else if(!map.dragging.enabled()){ map.dragging.enable(); } } map.on("zoomend",syncDrag); function frame(){ if(el.clientWidth<40){ ensureWidth(el); } if(el.clientWidth map.getMinZoom()+0.01) return; map.setMinZoom(0); map.fitBounds(WORLD,{padding:[2,2],animate:false}); map.setMinZoom(map.getZoom()); HOME=map.getCenter(); syncDrag(); } frame(); window.dalCinMap=map; /* handle pubblico per personalizzazioni */ var t=null; window.addEventListener("resize",function(){ clearTimeout(t); t=setTimeout(frame,180); }); if(window.ResizeObserver){ new ResizeObserver(function(){ clearTimeout(t); t=setTimeout(frame,180); }).observe(el); } /* Elementor: ricalcolo dopo render tab/slider */ if(window.jQuery){ jQuery(window).on("elementor/frontend/init",function(){ setTimeout(frame,300); }); } setTimeout(frame,450); setTimeout(frame,1200); setTimeout(frame,2500); var ld=document.getElementById("dc-worldmap-loader"); if(ld) ld.classList.add("dc-hidden"); } function start(){ var host=document.getElementById("dc-worldmap"); if(!host || host.__dcInit) return; /* gia' inizializzato QUESTO elemento */ host.__dcInit=true; loadCss(LEAFLET_CSS); var pLeaflet = (window.L && window.L.version) ? Promise.resolve() : loadScript(LEAFLET_JS); pLeaflet.then(function(){ /* 1o tentativo: TopoJSON world-atlas (id ISO numerici) */ return Promise.all([ (window.topojson ? Promise.resolve() : loadScriptAny(TOPO_JS)), getJSON(TOPO_DATA) ]).then(function(r){ var topo=r[1]; return topojson.feature(topo, topo.objects.countries); }).catch(function(){ /* 2o tentativo: GeoJSON puro (match per nome) */ return getJSON(GEO_DATA); }); }).then(function(geo){ build(fixAntimeridian(geo)); }).catch(function(err){ if(window.console) console.error("[Dal Cin Map]",err); fail(); }); } /* Piu' agganci: l'editor Elementor ricrea il widget dopo ogni modifica */ window.dalCinMapInit = start; if(document.readyState==="loading"){ document.addEventListener("DOMContentLoaded",start); }else{ start(); } if(window.jQuery){ jQuery(window).on("elementor/frontend/init",function(){ setTimeout(start,60); }); } setTimeout(start,300); setTimeout(start,1200); })();

Products

Dal Cin
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.