(function(){const section=document.querySelector('#recent-kitchens');if(!section)return;const track=section.querySelector('.grid.teasers');const btnPrev=section.querySelector('.carousel-btn.prev');const btnNext=section.querySelector('.carousel-btn.next');if(!track||!btnPrev||!btnNext)return;gsap.registerPlugin(ScrollToPlugin);let animating=!1;function getCardWidth(){const card=track.querySelector('.kitchen');if(!card)return 0;const style=getComputedStyle(track);const gap=parseFloat(style.columnGap)||parseFloat(style.gap)||24;return card.offsetWidth+gap}
function updateButtons(){const scrollLeft=Math.round(track.scrollLeft);const maxScroll=track.scrollWidth-track.clientWidth;btnPrev.classList.toggle('is-active',scrollLeft>0);btnNext.classList.toggle('is-active',scrollLeft<maxScroll-1)}
function scrollCarousel(direction){if(animating)return;const cardWidth=getCardWidth();const targetX=Math.max(0,Math.min(track.scrollLeft+direction*cardWidth,track.scrollWidth-track.clientWidth));animating=!0;gsap.to(track,{scrollTo:{x:targetX},duration:0.5,ease:'power2.inOut',onUpdate:updateButtons,onComplete:function(){animating=!1;updateButtons()}})}
btnPrev.addEventListener('click',function(){if(btnPrev.classList.contains('is-active'))scrollCarousel(-1);});btnNext.addEventListener('click',function(){if(btnNext.classList.contains('is-active'))scrollCarousel(1);});track.addEventListener('scroll',updateButtons,{passive:!0});updateButtons()})()