(function (){
'use strict';
var data=window.CLP_DATA||{};
var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
document.addEventListener('click', function (e){
var a=e.target.closest('a[href^="#"]');
if(!a) return;
var hash=a.getAttribute('href');
if(!hash||hash.length < 2) return;
var target=document.querySelector(hash);
if(!target) return;
e.preventDefault();
target.scrollIntoView({ behavior: reduce ? 'auto':'smooth', block: 'start' });
});
(function simulator(){
var root=document.querySelector('[data-clp-simulator="per"]');
if(!root) return;
var vEl=root.querySelector('[data-clp-sim="versement"]');
var tEl=root.querySelector('[data-clp-sim="tmi"]');
var out=root.querySelector('[data-clp-sim="resultat"]');
if(!vEl||!tEl||!out) return;
var fmt=new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 });
function calc(){
var versement=parseFloat(vEl.value)||0;
var tmi=parseFloat(tEl.value)||0;
var economie=Math.round(versement * tmi / 100);
out.textContent=fmt.format(economie);
}
vEl.addEventListener('input', calc);
tEl.addEventListener('change', calc);
calc();
var cta=root.querySelector('[data-clp-scroll]');
if(cta) cta.addEventListener('click', function (){
var v=parseFloat(vEl.value)||0;
var bracket=v < 5000 ? 'Moins de 5 000 €'
: v <=15000 ? '5 000 à 15 000 €'
: v <=35000 ? '15 000 à 35 000 €'
: 'Plus de 35 000 €';
window.dispatchEvent(new CustomEvent('clp:prefill', { detail: { objectif: 'Défiscaliser', montant: bracket }}));
});
})();
(function carousel(){
var track=document.querySelector('[data-clp-carousel]');
if(!track) return;
var prev=document.querySelector('[data-clp-carousel-prev]');
var next=document.querySelector('[data-clp-carousel-next]');
function stepWidth(){
var card=track.querySelector('.cleerly-lp__testi');
return card ? card.offsetWidth + 20:320;
}
function go(dir){ track.scrollBy({ left: dir * stepWidth(), behavior: reduce ? 'auto':'smooth' });}
if(next) next.addEventListener('click', function (){ go(1); });
if(prev) prev.addEventListener('click', function (){ go(-1); });
if(reduce) return;
var timer=setInterval(function (){
if(track.scrollLeft + track.clientWidth >=track.scrollWidth - 8){
track.scrollTo({ left: 0, behavior: 'smooth' });
}else{
go(1);
}}, 4500);
['mouseenter', 'touchstart', 'focusin'].forEach(function (ev){
track.addEventListener(ev, function (){ clearInterval(timer); }, { passive: true });
});
})();
})();