Le foto dei casi vengono condivise dalle nostre coordinatrici
A causa delle norme turche sulla pubblicità sanitaria non possiamo pubblicare fotografie prima e dopo su questo sito. Vedere risultati reali resta un tuo diritto.
Le nostre coordinatrici possono inviarti direttamente foto dei casi, percorsi di trattamento completi e casi simili — via WhatsApp, e-mail o telefono. Indica il trattamento che stai valutando e riceverai i casi più affini dal nostro archivio.
Tutte le fotografie mostrano pazienti realmente trattati presso Citydent Istanbul, pubblicate con il loro consenso. L’anatomia e la risposta di guarigione variano da persona a persona, quindi i risultati individuali possono differire. Il tuo piano viene preparato dopo una visita.
Come pianifichiamo il trattamento
Prima la funzione — l’estetica segue
Il nostro primo obiettivo sono denti che funzionano: un morso confortevole, gengive sane e restauri che durano anni. Un bel sorriso è l’aspetto di una funzione sana — non una scorciatoia per ottenerla.
Per questo non consigliamo ogni trattamento a ogni paziente. Il piano giusto dipende dal tuo morso, dalle gengive e dall’osso sottostante. Se il tuo caso richiede meno trattamento del previsto, te lo diremo.
Il prossimo sorriso potrebbe essere il tuo
Inviaci una foto dei tuoi denti e ricevi un piano di trattamento personalizzato con i prezzi — di solito entro un giorno.
(function(){
var root=document.getElementById('cdba');
if(!root||root.dataset.init)return; root.dataset.init='1';
/* ---------- CONFIG ---------- */
var BASE='/wp-content/uploads/2026/07/ba-';
var DATA=[["teeth-whitening","01"],["teeth-whitening","02"],["teeth-whitening","03"],["teeth-whitening","04"],["teeth-whitening","05"],["teeth-whitening","06"],["e-max","01"],["e-max","02"],["e-max","03"],["e-max","04"],["e-max","05"],["e-max","06"],["e-max","07"],["e-max","08"],["e-max","09"],["zirconia","01"],["zirconia","02"],["zirconia","03"],["zirconia","04"],["zirconia","05"],["zirconia","06"],["zirconia","07"],["zirconia","08"],["zirconia","09"],["zirconia","10"],["zirconia","11"],["zirconia","12"],["zirconia","13"],["zirconia","14"],["zirconia","15"],["zirconia","16"],["veneers","01"],["veneers","02"],["veneers","03"],["veneers","04"],["veneers","05"],["veneers","06"],["veneers","07"],["veneers","08"],["veneers","09"],["veneers","10"],["veneers","11"],["dental-implant","01"],["dental-implant","02"],["dental-implant","03"],["dental-implant","04"],["dental-implant","05"],["dental-implant","06"],["dental-implant","07"],["dental-implant","08"],["dental-implant","09"],["dental-implant","10"],["dental-implant","11"],["dental-implant","12"],["dental-implant","13"]];
var LABELS={"zirconia":"Corone in zirconio","veneers":"Faccette in ceramica","e-max":"Faccette E-max","dental-implant":"Impianti dentali","teeth-whitening":"Sbiancamento dentale"};
var CATS=[["all","Tutti i casi"],["zirconia","Zirconio"],["veneers","Faccette"],["e-max","E-max"],["dental-implant","Impianti"],["teeth-whitening","Sbiancamento"]];
var PER=8;
var SUB_INTL="Ogni foto qui sotto mostra un paziente reale di Citydent Istanbul. Trascina la maniglia dorata su ciascun caso per confrontare il sorriso prima e dopo il trattamento.";
var SUB_TR="Le fotografie dei casi non possono essere pubblicate su questo sito, ma le nostre coordinatrici possono inviartele direttamente.";
/* ---------- ELEMENTS ---------- */
var load=document.getElementById('cdbaLoad'), trBox=document.getElementById('cdbaTR'),
intl=document.getElementById('cdbaINTL'), grid=document.getElementById('cdbaGrid'),
more=document.getElementById('cdbaMore'), chipBox=document.getElementById('cdbaChips'),
sub=document.getElementById('cdbaSub');
var shown=0, cat='all';
/* ---------- CONTACT MODAL ---------- */
root.addEventListener('click',function(e){
var a=e.target.closest('[data-modal]'); if(!a)return;
if(typeof window.cdOpenContactModal==='function'){e.preventDefault();window.cdOpenContactModal();}
});
/* ---------- GEO DETECTION ---------- */
function txt(url,ms){
return new Promise(function(res,rej){
var done=false, ctrl=(window.AbortController?new AbortController():null);
var t=setTimeout(function(){done=true;if(ctrl)ctrl.abort();rej();},ms);
fetch(url,ctrl?{signal:ctrl.signal}:undefined).then(function(r){
if(!r.ok)throw 0; return r.text();
}).then(function(s){if(done)return;clearTimeout(t);res(s);})
.catch(function(){if(done)return;clearTimeout(t);rej();});
});
}
function viaCloudflare(){ // free, unlimited, no third party
return txt('/cdn-cgi/trace',1200).then(function(s){
var m=/(?:^|\n)loc=([A-Z]{2})/.exec(s); if(!m)throw 0; return m[1];
});
}
function viaIpapi(){ // fallback if the site is not on Cloudflare
return txt('https://ipapi.co/json/',2500).then(function(s){
var d=JSON.parse(s); if(!d||!d.country_code)throw 0; return d.country_code;
});
}
function viaLanguage(){ // last resort
var l=(navigator.language||'').toLowerCase();
return (l.indexOf('tr')===0||(navigator.languages||[]).some(function(x){return x.toLowerCase().indexOf('tr')===0;}))?'TR':'XX';
}
function resolve(){
var q=/[?&]geo=(tr|intl)/i.exec(location.search);
if(q)return Promise.resolve(q[1].toLowerCase()==='tr'?'TR':'XX');
var c; try{c=sessionStorage.getItem('cdGeo');}catch(_){}
if(c)return Promise.resolve(c);
return viaCloudflare().catch(viaIpapi).catch(function(){return viaLanguage();})
.then(function(code){try{sessionStorage.setItem('cdGeo',code);}catch(_){} return code;});
}
/* ---------- GALLERY ---------- */
function items(){return DATA.filter(function(d){return cat==='all'||d[0]===cat;});}
function card(d,eager){
var label=LABELS[d[0]], n=d[1];
var b=BASE+d[0]+'-'+n+'-before.jpg', a=BASE+d[0]+'-'+n+'-after.jpg';
var lz=eager?'':' loading="lazy"';
var el=document.createElement('div'); el.className='cdba-card';
el.innerHTML=
'
'+
''+
''+
''+
'
'+
''+
'
CD
'+
''+
'
'+
'PRIMA'+
'DOPO'+
'Trascina per confrontare'+
'
'+
'
'+label+'Caso '+n+'
';
bind(el.querySelector('.cdba-frame'));
return el;
}
function bind(frame){
var drag=false;
function set(p){
p=Math.min(Math.max(p,3),97);
frame.style.setProperty('--x',p+'%');
frame.setAttribute('aria-valuenow',Math.round(p));
frame.classList.add('used');
}
function fromEvent(e){
var r=frame.getBoundingClientRect();
set(((e.clientX-r.left)/r.width)*100);
}
frame.addEventListener('pointerdown',function(e){
drag=true; try{frame.setPointerCapture(e.pointerId);}catch(_){} fromEvent(e);
});
frame.addEventListener('pointermove',function(e){if(drag)fromEvent(e);});
frame.addEventListener('pointerup',function(){drag=false;});
frame.addEventListener('pointercancel',function(){drag=false;});
frame.addEventListener('keydown',function(e){
var cur=parseFloat(frame.getAttribute('aria-valuenow'))||50, step=e.shiftKey?12:4;
if(e.key==='ArrowLeft'){set(cur-step);e.preventDefault();}
else if(e.key==='ArrowRight'){set(cur+step);e.preventDefault();}
else if(e.key==='Home'){set(0);e.preventDefault();}
else if(e.key==='End'){set(100);e.preventDefault();}
});
}
function page(){
var list=items(), next=list.slice(shown,shown+PER);
next.forEach(function(d,i){grid.appendChild(card(d,shown===0&&i0){more.hidden=false;more.textContent="Mostra altri risultati ("+left+")";}
else{more.hidden=true;}
}
function buildChips(){
CATS.forEach(function(c,i){
var count=c[0]==='all'?DATA.length:DATA.filter(function(d){return d[0]===c[0];}).length;
var b=document.createElement('button');
b.type='button';
b.className='cdba-chip'+(i===0?' on':'');
b.setAttribute('role','tab');
b.setAttribute('aria-selected',i===0?'true':'false');
b.innerHTML=c[1]+' '+count+'';
b.addEventListener('click',function(){
chipBox.querySelectorAll('.cdba-chip').forEach(function(x){x.classList.remove('on');x.setAttribute('aria-selected','false');});
b.classList.add('on'); b.setAttribute('aria-selected','true');
cat=c[0]; shown=0; grid.innerHTML=''; page();
});
chipBox.appendChild(b);
});
}
/* ---------- RENDER ---------- */
function show(code){
load.hidden=true; load.style.display='none';
if(code==='TR'){ sub.textContent=SUB_TR; trBox.hidden=false; root.dataset.geo='tr'; return; }
sub.textContent=SUB_INTL; intl.hidden=false; root.dataset.geo='intl';
buildChips(); page();
more.addEventListener('click',page);
}
resolve().then(show).catch(function(){show('XX');});
})();