:root{--ach-r:#A6191E;--ach-k:#080808;--ach-k2:#121212;--ach-g:#C5C5C5;--ach-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth}
body{background-color:var(--ach-k)}
/* 1. Fond unifié : noir profond #080808 sur toutes les sections noires */
[data-elementor-id="60"] :is([data-id="8559bd9"],[data-id="a2915bd"],[data-id="2083ef2"],[data-id="a1ffda8"],[data-id="9e3ed9d"],[data-id="7e8c5fe5"]){background-color:var(--ach-k)!important}
/* Espaceur redondant entre « Nos atouts » et « Une histoire de transmission » */
[data-elementor-id="60"] [data-id="25b0b29"]{display:none!important}
/* 2. Titres de section : une seule signature typographique */
[data-elementor-id="60"] :is([data-id="afac217"],[data-id="0dc10f2"],[data-id="77385dcb"],[data-id="0946cd4"],[data-id="c432974"],[data-id="24ffc845"]) .elementor-heading-title,
[data-elementor-id="60"] .ac-t-title{
font-family:Poppins,sans-serif!important;font-weight:200!important;text-transform:uppercase!important;
letter-spacing:.02em!important;line-height:1.12!important;font-size:clamp(30px,4vw,54px)!important}
#prime h2.acp-title{font-family:Poppins,sans-serif!important;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(26px,2.7vw,38px)!important;line-height:1.15}
/* 3. Boutons : même comportement au survol partout */
[data-elementor-id="60"] .elementor-button{transition:filter .35s ease,box-shadow .35s ease,background-color .35s ease,color .35s ease!important}
[data-elementor-id="60"] .elementor-button:hover,[data-elementor-id="60"] .elementor-button:focus-visible{filter:brightness(1.15);box-shadow:0 8px 28px -10px rgba(166,25,30,.7)}
/* 4. Logos références : monochromes, couleur au survol */
[data-elementor-id="60"] [data-id="7e8c5fe5"] .swiper-slide img{filter:grayscale(1) brightness(1.4);opacity:.6!important;transition:filter .45s ease,opacity .45s ease}
[data-elementor-id="60"] [data-id="7e8c5fe5"] .swiper-slide:hover img{filter:none;opacity:1!important}
/* 5. Barre de progression de lecture */
.ach-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--ach-r);transform:scaleX(0);transform-origin:left;z-index:99999;pointer-events:none}
/* 6. Transitions entre sections : fine ligne rouge + losange */
.ach-sep{position:absolute;top:0;left:50%;width:min(1200px,calc(100% - 40px));height:1px;transform:translateX(-50%);pointer-events:none;z-index:3}
.ach-sep span{display:block;height:100%;background:linear-gradient(90deg,transparent 0%,var(--ach-r) 30%,var(--ach-r) 70%,transparent 100%);transform:scaleX(0);transition:transform 1.1s var(--ach-ease)}
.ach-sep::after{content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;background:var(--ach-k);border:1px solid var(--ach-r);transform:translateX(-50%) rotate(45deg) scale(0);transition:transform .5s var(--ach-ease) .7s}
.ach-sep.ach-in span{transform:scaleX(1)}
.ach-sep.ach-in::after{transform:translateX(-50%) rotate(45deg) scale(1)}
/* 7. Apparitions au défilement */
.ach-r{opacity:0;transform:translate3d(0,26px,0);transition:opacity .7s var(--ach-ease),transform .7s var(--ach-ease);transition-delay:var(--ach-d,0ms);will-change:opacity,transform}
.ach-r.ach-img{transform:translate3d(0,26px,0) scale(.97)}
.ach-r.ach-in{opacity:1;transform:none}
@media (max-width:767px){.ach-r,.ach-r.ach-img{transform:translate3d(0,16px,0)}}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.ach-r,.ach-sep span,.ach-sep::after{transition:none!important;opacity:1!important}
.ach-r{transform:none!important}
}
(function(){
var root=document.querySelector('[data-elementor-id="60"]');
if(!root||window.__achInit)return;window.__achInit=true;
var editor=document.body.classList.contains('elementor-editor-active');
var reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches;
/* Barre de progression */
var bar=document.createElement('div');bar.className='ach-progress';bar.setAttribute('aria-hidden','true');document.body.appendChild(bar);
/* Séparateurs entre sections */
var seps=[];
['2083ef2','a1ffda8','9e3ed9d','7e8c5fe5'].forEach(function(id){
var s=root.querySelector('[data-id="'+id+'"]');if(!s)return;
var d=document.createElement('div');d.className='ach-sep';d.setAttribute('aria-hidden','true');d.innerHTML='';
if(getComputedStyle(s).position==='static')s.style.position='relative';
s.appendChild(d);seps.push(d);
});
/* Parallaxe douce des photos (ordinateur uniquement) */
var px=(!reduce&&!editor&&window.innerWidth>1024)?Array.prototype.slice.call(root.querySelectorAll(
'[data-id="8559bd9"] .elementor-widget-image .elementor-widget-container,[data-id="a1ffda8"] .elementor-widget-image .elementor-widget-container,[data-id="9e3ed9d"] .elementor-widget-image .elementor-widget-container')):[];
var ticking=false;
function frame(){
ticking=false;
var max=document.documentElement.scrollHeight-window.innerHeight;
bar.style.transform='scaleX('+(max>0?Math.min(window.scrollY/max,1):0)+')';
var vh=window.innerHeight;
for(var i=0;i<px.length;i++){
var r=px[i].getBoundingClientRect();if(r.bottomvh+100)continue;
var c=(r.top+r.height/2-vh/2)/vh;px[i].style.transform='translate3d(0,'+(c*-28).toFixed(1)+'px,0)';
}
}
function onScroll(){if(!ticking){ticking=true;requestAnimationFrame(frame);}}
window.addEventListener('scroll',onScroll,{passive:true});window.addEventListener('resize',onScroll);frame();
if(reduce||editor||!('IntersectionObserver' in window)){seps.forEach(function(s){s.classList.add('ach-in');});return;}
/* Apparitions : widgets de chaque section (hors PRIME, qui a ses propres animations) */
var io=new IntersectionObserver(function(entries){
var vis=entries.filter(function(e){return e.isIntersecting;}).map(function(e){return e.target;});
vis.sort(function(a,b){var ra=a.getBoundingClientRect(),rb=b.getBoundingClientRect();return (ra.top-rb.top)||(ra.left-rb.left);});
vis.forEach(function(el,i){
if(!el.classList.contains('ach-sep'))el.style.setProperty('--ach-d',Math.min(i*90,450)+'ms');
el.classList.add('ach-in');io.unobserve(el);
});
},{rootMargin:'0px 0px -8% 0px',threshold:0});
seps.forEach(function(s){io.observe(s);});
var skip='.elementor-widget-spacer,.elementor-invisible,.animated,.elementor-motion-effects-element';
root.querySelectorAll('.elementor-top-section').forEach(function(sec){
if(sec.querySelector('#prime'))return;
sec.querySelectorAll('.elementor-widget').forEach(function(w){
if(w.matches(skip)||w.querySelector('.elementor-motion-effects-element'))return;
if(w.parentElement.closest('.elementor-widget'))return;
var r=w.getBoundingClientRect();if(r.top0)return;
w.classList.add('ach-r');
if(w.matches('.elementor-widget-image,.elementor-widget-image-box,.elementor-widget-image-carousel'))w.classList.add('ach-img');
io.observe(w);
});
});
})();