{"id":9093,"date":"2025-09-25T16:49:15","date_gmt":"2025-09-25T14:49:15","guid":{"rendered":"https:\/\/www.exact.it\/newgranulators\/"},"modified":"2025-09-25T16:49:15","modified_gmt":"2025-09-25T14:49:15","slug":"newgranulators","status":"publish","type":"page","link":"https:\/\/www.exact.it\/fr\/newgranulators\/","title":{"rendered":"New Granulators"},"content":{"rendered":"\r\n<header class=\"landing-header\">\r\n    <div class=\"landing-header-inner\">\r\n                <a href=\"https:\/\/www.exact.it\/fr\/\" class=\"landing-header-logo\">\r\n            <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/logo-exact.svg\" alt=\"Logo exact\">\r\n        <\/a>\r\n                <a href=\"#contact\" class=\"landing-header-cta\">Contact us<\/a>\r\n    <\/div>\r\n<\/header>\n\n\n<section class=\"landing-hero\">\n                <video src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/video-per-Landing.mp4\" autoplay muted loop playsinline><\/video>\n        <div class=\"hero-content\">\n                        <h1 class=\"hero-title\">Simply Better<\/h1>\n            <p class=\"hero-subtitle\">Offering solutions for <\/p>\n            <p class=\"hero-note\">THE PLASTIC INDUSTRY SINCE 1974<\/p>\n        <\/div>\n    <\/section>\n\n\n<section class=\"landing-section cold-system\">\n    <!-- Immagine di background statica -->\n\n        <div class=\"cold-backdrop backdrop-fade-landing_systems_block_6ac5810058250\" \n         aria-hidden=\"true\" \n         style=\"opacity: 0; transition: opacity 3s ease 300ms;\"\n         data-final-opacity=\"0.2\">\n                    <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/cyklop20.svg\" \n                 alt=\"\" \n                 loading=\"lazy\"\n                 style=\"filter: blur(10px);\">\n            <\/div>\n    \n    <div class=\"landing-container\">\n        <div class=\"cold-inner\">\n                            <!-- Layout: Immagine a sinistra -->\n                                <div class=\"cold-media\">\n                    <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/Exact_cold_grad2.webp\" alt=\"\" loading=\"lazy\">\n                <\/div>\n                                \n                <div class=\"cold-content\">\n                    <div class=\"cold-header\">\n                                                <img decoding=\"async\" class=\"cold-icon\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/cold_system.svg\" alt=\"\" aria-hidden=\"true\">\n                                                <div>\n                            <h2 class=\"cold-title\">New Cold System<\/h2>\n                            <p class=\"cold-subtitle\">Granulator Machines<\/p>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"cold-intro\"><p>Since 1974, the market leader in the recovery of all types of plastic film; now with a new look and new features, both inside and out.<\/p>\n<\/div>\n                    \n                                        <ul class=\"cold-features\">\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/no_melting.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>No melting<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/zero_fluff.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Zero fluff<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/short_payback.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Short payback<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/compact.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Compact<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/customizable.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Customizable<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/immediate_cleaning.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Immediate cleaning<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/energy_saving.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Energy saving<\/span>\n                        <\/li>\n                                                <li class=\"cold-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/silent.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Silent<\/span>\n                        <\/li>\n                                            <\/ul>\n                                    <\/div>\n                \n                    <\/div>\n    <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Trova il backdrop specifico di questo blocco\n    const backdrop = document.querySelector('.backdrop-fade-landing_systems_block_6ac5810058250');\n    if (!backdrop) return;\n    \n    const finalOpacity = backdrop.dataset.finalOpacity || '0.05';\n    let animated = false;\n    \n    function checkScroll() {\n        if (animated) return;\n        \n        const rect = backdrop.getBoundingClientRect();\n        const trigger = window.innerHeight * 0.8;\n        \n        if (rect.top <= trigger) {\n            animated = true;\n            backdrop.style.opacity = finalOpacity;\n            window.removeEventListener('scroll', checkScroll);\n        }\n    }\n    \n    window.addEventListener('scroll', checkScroll);\n    setTimeout(checkScroll, 100);\n});\n<\/script>\n\n\n\n\n<section class=\"landing-section hot-system\">\n    <!-- Immagine di background statica -->\n\n        <div class=\"hot-backdrop backdrop-fade-landing_systems_block_6ac5810072661\" \n         aria-hidden=\"true\" \n         style=\"opacity: 0; transition: opacity 3s ease 300ms;\"\n         data-final-opacity=\"0.2\">\n                    <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/E-60.svg\" \n                 alt=\"\" \n                 loading=\"lazy\"\n                 style=\"filter: blur(10px);\">\n            <\/div>\n    \n    <div class=\"landing-container\">\n        <div class=\"hot-inner\">\n                            <!-- Layout: Immagine a destra -->\n                <div class=\"hot-content\">\n                    <div class=\"hot-header\">\n                                                <img decoding=\"async\" class=\"hot-icon\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/hot_system.svg\" alt=\"\" aria-hidden=\"true\">\n                                                <div>\n                            <h2 class=\"hot-title\">New Hot System<\/h2>\n                            <p class=\"hot-subtitle\">GRANULATOR MACHINES<\/p>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"hot-intro\"><p class=\"hot-intro\">Small yet powerful extruders for transforming PE film and PE-based blends into granules identical to virgin resin. The perfect solution for stress-free recovery.<\/p>\n<\/div>\n                    \n                                        <ul class=\"hot-features\">\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/energy_saving.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Short payback<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/customizable.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Customizable<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/immediate_cleaning.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Compact<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/silent.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Silent<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/immediate_cleaning.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Easy control<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/silent.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Low melt temperature<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/silent.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Swift maintenance<\/span>\n                        <\/li>\n                                                <li class=\"hot-feature\">\n                                                        <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/silent.svg\" alt=\"\" aria-hidden=\"true\">\n                                                        <span>Low acoustic impact<\/span>\n                        <\/li>\n                                            <\/ul>\n                                    <\/div>\n                \n                                <div class=\"hot-media\">\n                    <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/Exact_hot_grad.webp\" alt=\"\" loading=\"lazy\">\n                <\/div>\n                                    <\/div>\n    <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Trova il backdrop specifico di questo blocco\n    const backdrop = document.querySelector('.backdrop-fade-landing_systems_block_6ac5810072661');\n    if (!backdrop) return;\n    \n    const finalOpacity = backdrop.dataset.finalOpacity || '0.05';\n    let animated = false;\n    \n    function checkScroll() {\n        if (animated) return;\n        \n        const rect = backdrop.getBoundingClientRect();\n        const trigger = window.innerHeight * 0.8;\n        \n        if (rect.top <= trigger) {\n            animated = true;\n            backdrop.style.opacity = finalOpacity;\n            window.removeEventListener('scroll', checkScroll);\n        }\n    }\n    \n    window.addEventListener('scroll', checkScroll);\n    setTimeout(checkScroll, 100);\n});\n<\/script>\n\n\n\n\n\n<section class=\"landing-section landing-carousel-section\" id=\"landing_carousel_block_6ac581007d13a\">\n    <div class=\"landing-container\">\n        <div class=\"animation-hot-heading\">\n            <span class=\"animation-hot-tag\">\n                                <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/themes\/exact-theme\/media\/icons\/cold_system.svg\" alt=\"System Icon\" aria-hidden=\"true\">\n                                                <span>Cold System<\/span>\n                            <\/span>\n                        <img decoding=\"async\" class=\"animation-hot-title\" src=\"https:\/\/www.exact.it\/wp-content\/themes\/exact-theme\/media\/images\/cyklop20.svg\" alt=\"Cyklop 20 Background\" loading=\"lazy\">\n                    <\/div>\n        <div class=\"animation-carousel\" role=\"region\" aria-label=\"Galleria Hot System Cyklop 20\">\n            <button class=\"animation-control control-prev\" type=\"button\" aria-label=\"Slide precedente\">\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M15.5 4.5a1 1 0 0 1 .7 1.7L10.4 12l5.8 5.8a1 1 0 0 1-1.4 1.4l-6.5-6.5a1 1 0 0 1 0-1.4l6.5-6.5a1 1 0 0 1 .7-.3z\" \/>\n                <\/svg>\n                <span class=\"sr-only\">Vai alla slide precedente<\/span>\n            <\/button>\n            <div class=\"animation-carousel-track\" tabindex=\"0\" aria-live=\"polite\" aria-atomic=\"true\">\n                                                                                                            <figure class=\"animation-slide\" \n                                data-original-index=\"0\"\n                                data-slide-icon=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/cold_system.svg\"\n                                data-slide-icon-alt=\"\"\n                                data-slide-title=\"Cold System\"\n                                data-slide-bg-img=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/cyclop_20.png\"\n                                data-slide-bg-img-alt=\"\"\n                                data-slide-tech-text=\"Recovers any type of plastic without melting.\r\nMaximum versatility and recycling capability.\r\n\"\n                                data-slide-tech-link-text=\"Download the technical sheet\"\n                                data-slide-tech-link-url=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/Cyklop20_exact.pdf\">\n                            <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/machine_full_01.webp\" alt=\"\" loading=\"lazy\">\n                            <figcaption class=\"sr-only\"><\/figcaption>\n                        <\/figure>\n                                                                                                                    <figure class=\"animation-slide\" \n                                data-original-index=\"1\"\n                                data-slide-icon=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/hot_system.svg\"\n                                data-slide-icon-alt=\"\"\n                                data-slide-title=\"Hot System\"\n                                data-slide-bg-img=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/e-60.png\"\n                                data-slide-bg-img-alt=\"\"\n                                data-slide-tech-text=\"Low melting temperatures. Easy to operate. Effective.\"\n                                data-slide-tech-link-text=\"Download the technical sheet\"\n                                data-slide-tech-link-url=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/10\/E60_exact.pdf\">\n                            <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/machine_full_02.webp\" alt=\"\" loading=\"lazy\">\n                            <figcaption class=\"sr-only\"><\/figcaption>\n                        <\/figure>\n                                                                        <\/div>\n            <button class=\"animation-control control-next\" type=\"button\" aria-label=\"Slide successiva\">\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M8.5 4.5a1 1 0 0 0-.7 1.7L13.6 12l-5.8 5.8a1 1 0 1 0 1.4 1.4l6.5-6.5a1 1 0 0 0 0-1.4l-6.5-6.5a1 1 0 0 0-.7-.3z\" \/>\n                <\/svg>\n                <span class=\"sr-only\">Vai alla slide successiva<\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n    <div class=\"technical-download\">\n            <p>Nam sed maiores dolorem fugit et porro quam eum temporibus. Accusantium minus et dolores ducimus quasi itaque animi nihil.<\/p>\n                        <div class=\"technical-download-link\">\n                <span>Scarica la scheda tecnica<\/span>\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M11 5a1 1 0 1 1 2 0v8.59l2.3-2.3a1 1 0 1 1 1.4 1.42l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 1.4-1.42L11 13.59V5z\" \/>\n                    <path d=\"M5 17a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1z\" \/>\n                <\/svg>\n            <\/div>\n                    <\/div>\n<\/section>\n\n<script>\n(function (sectionId) {\n    const section = document.getElementById(sectionId);\n    if (!section) {\n        return;\n    }\n\n    if (section.dataset.carouselReady === 'true') {\n        return;\n    }\n\n    const track = section.querySelector('.animation-carousel-track');\n    if (!track) {\n        return;\n    }\n\n    let slides = Array.from(track.querySelectorAll('.animation-slide'));\n    const uniqueTotal = slides.length;\n    if (!uniqueTotal) {\n        return;\n    }\n\n    section.dataset.carouselReady = 'true';\n\n    const prevBtn = section.querySelector('.control-prev');\n    const nextBtn = section.querySelector('.control-next');\n\n    slides.forEach((slide, index) => {\n        if (typeof slide.dataset.originalIndex === 'undefined') {\n            slide.dataset.originalIndex = String(index);\n        }\n        slide.classList.remove('is-active', 'is-left', 'is-right');\n        slide.setAttribute('aria-hidden', 'true');\n\n        const image = slide.querySelector('img');\n        if (image) {\n            image.setAttribute('draggable', 'false');\n        }\n    });\n\n    const requiredNodes = uniqueTotal >= 3 ? uniqueTotal : uniqueTotal + 2;\n    let cloneCursor = 0;\n    const originals = slides.slice(0);\n\n    while (slides.length < requiredNodes) {\n        const sourceSlide = originals[cloneCursor % uniqueTotal];\n        const clone = sourceSlide.cloneNode(true);\n        clone.classList.remove('is-active', 'is-left', 'is-right');\n        clone.setAttribute('aria-hidden', 'true');\n        track.appendChild(clone);\n        cloneCursor += 1;\n        slides = Array.from(track.querySelectorAll('.animation-slide'));\n    }\n\n    slides = Array.from(track.querySelectorAll('.animation-slide'));\n    const nodeCount = slides.length;\n    let currentIndex = 0;\n\n    const wrapIndex = (index) => {\n        const mod = index % nodeCount;\n        return mod >= 0 ? mod : mod + nodeCount;\n    };\n\n    const getOriginalIndex = (slide) => {\n        if (!slide) {\n            return 0;\n        }\n        const raw = Number(slide.dataset.originalIndex ?? '0');\n        const mod = raw % uniqueTotal;\n        return mod >= 0 ? mod : mod + uniqueTotal;\n    };\n\n    const setSlideState = (slide, state) => {\n        slide.classList.toggle('is-active', state === 'active');\n        slide.classList.toggle('is-left', state === 'left');\n        slide.classList.toggle('is-right', state === 'right');\n        slide.setAttribute('aria-hidden', state === 'active' ? 'false' : 'true');\n    };\n\n    const updateControls = () => {\n        const controls = [prevBtn, nextBtn];\n        const hideControls = uniqueTotal <= 1;\n\n        controls.forEach((control) => {\n            if (!control) {\n                return;\n            }\n\n            control.style.visibility = hideControls ? 'hidden' : 'visible';\n            control.disabled = hideControls;\n            control.setAttribute('aria-hidden', hideControls ? 'true' : 'false');\n            control.tabIndex = hideControls ? -1 : 0;\n        });\n    };\n\n    const applyState = (direction) => {\n        const previousIndex = wrapIndex(currentIndex - 1);\n        const nextIndex = wrapIndex(currentIndex + 1);\n\n        slides.forEach((slide, index) => {\n            if (index === currentIndex) {\n                setSlideState(slide, 'active');\n            } else if (index === previousIndex) {\n                setSlideState(slide, 'left');\n            } else if (index === nextIndex) {\n                setSlideState(slide, 'right');\n            } else {\n                setSlideState(slide, 'off');\n            }\n        });\n\n        \/\/ Aggiorna header e technical download con i dati della slide attiva\n        const activeSlide = slides[currentIndex];\n        if (activeSlide) {\n            updateSlideContent(activeSlide);\n        }\n\n        if (typeof direction === 'number') {\n            if (direction !== 0) {\n                track.dataset.direction = direction > 0 ? 'forward' : 'backward';\n            }\n        }\n\n        const activeOriginal = getOriginalIndex(slides[currentIndex]);\n        track.dataset.activeIndex = String(activeOriginal);\n        track.dataset.totalSlides = String(uniqueTotal);\n        track.setAttribute('aria-label', 'Slide ' + (activeOriginal + 1) + ' di ' + uniqueTotal);\n    };\n\n    \/\/ Funzione per aggiornare il contenuto di header e technical download\n    const updateSlideContent = (slide) => {\n        const container = document.getElementById('landing_carousel_block_6ac581007d13a');\n        if (!container) return;\n\n        \/\/ Aggiorna icona nell'header\n        const iconImg = container.querySelector('.animation-hot-tag img');\n        if (iconImg && slide.dataset.slideIcon) {\n            iconImg.src = slide.dataset.slideIcon;\n            iconImg.alt = slide.dataset.slideIconAlt || '';\n        }\n\n        \/\/ Aggiorna titolo nell'header\n        const titleSpan = container.querySelector('.animation-hot-tag span');\n        if (titleSpan && slide.dataset.slideTitle) {\n            titleSpan.textContent = slide.dataset.slideTitle;\n        }\n\n        \/\/ Aggiorna immagine di sfondo nell'header\n        const bgImg = container.querySelector('.animation-hot-title');\n        if (bgImg && slide.dataset.slideBgImg) {\n            bgImg.src = slide.dataset.slideBgImg;\n            bgImg.alt = slide.dataset.slideBgImgAlt || '';\n        }\n\n        \/\/ Aggiorna testo nella sezione technical download\n        const techText = container.querySelector('.technical-download p');\n        if (techText && slide.dataset.slideTechText) {\n            techText.textContent = slide.dataset.slideTechText;\n        }\n\n        \/\/ Aggiorna link nella sezione technical download\n        const techDownloadSection = container.querySelector('.technical-download');\n        const existingLink = techDownloadSection.querySelector('.technical-download-link');\n        \n        if (existingLink && slide.dataset.slideTechLinkText) {\n            const linkText = slide.dataset.slideTechLinkText;\n            const linkUrl = slide.dataset.slideTechLinkUrl;\n            \n            \/\/ Crea il nuovo elemento (link o div) in base alla presenza dell'URL\n            const newElement = document.createElement(linkUrl ? 'a' : 'div');\n            newElement.className = 'technical-download-link';\n            \n            if (linkUrl) {\n                newElement.href = linkUrl;\n            }\n            \n            newElement.innerHTML = `\n                <span>${linkText}<\/span>\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M11 5a1 1 0 1 1 2 0v8.59l2.3-2.3a1 1 0 1 1 1.4 1.42l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 1.4-1.42L11 13.59V5z\" \/>\n                    <path d=\"M5 17a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1z\" \/>\n                <\/svg>\n            `;\n            \n            \/\/ Sostituisci l'elemento esistente\n            existingLink.parentNode.replaceChild(newElement, existingLink);\n        }\n    };\n\n    const goTo = (index, direction) => {\n        currentIndex = wrapIndex(index);\n        applyState(direction);\n    };\n\n    if (prevBtn) {\n        prevBtn.addEventListener('click', () => {\n            if (uniqueTotal > 1) {\n                goTo(currentIndex - 1, -1);\n            }\n        });\n    }\n\n    if (nextBtn) {\n        nextBtn.addEventListener('click', () => {\n            if (uniqueTotal > 1) {\n                goTo(currentIndex + 1, 1);\n            }\n        });\n    }\n\n    const pointerState = {\n        active: false,\n        startX: 0,\n        id: null,\n    };\n    const pointerThreshold = 45;\n\n    const finishPointer = (deltaX) => {\n        if (Math.abs(deltaX) < pointerThreshold) {\n            return;\n        }\n\n        if (deltaX < 0) {\n            goTo(currentIndex + 1, 1);\n        } else {\n            goTo(currentIndex - 1, -1);\n        }\n    };\n\n    const releasePointer = () => {\n        if (pointerState.id !== null) {\n            track.releasePointerCapture?.(pointerState.id);\n        }\n        pointerState.id = null;\n    };\n\n    const resetPointer = () => {\n        pointerState.active = false;\n        releasePointer();\n    };\n\n    const onPointerDown = (event) => {\n        if (uniqueTotal <= 1) {\n            return;\n        }\n\n        if (event.pointerType === 'mouse') {\n            if (event.button !== 0) {\n                return;\n            }\n        }\n\n        pointerState.active = true;\n        pointerState.startX = event.clientX;\n        pointerState.id = event.pointerId;\n        track.setPointerCapture?.(event.pointerId);\n\n        if (event.pointerType === 'touch') {\n            event.preventDefault();\n        }\n    };\n\n    const onPointerMove = (event) => {\n        if (!pointerState.active || pointerState.id !== event.pointerId) {\n            return;\n        }\n\n        const deltaX = event.clientX - pointerState.startX;\n        if (Math.abs(deltaX) > pointerThreshold) {\n            finishPointer(deltaX);\n            pointerState.active = false;\n            releasePointer();\n        }\n    };\n\n    const onPointerUp = (event) => {\n        if (!pointerState.active || pointerState.id !== event.pointerId) {\n            return;\n        }\n\n        const deltaX = event.clientX - pointerState.startX;\n        finishPointer(deltaX);\n        pointerState.active = false;\n        releasePointer();\n    };\n\n    track.addEventListener('pointerdown', onPointerDown);\n    track.addEventListener('pointermove', onPointerMove);\n    track.addEventListener('pointerup', onPointerUp);\n    track.addEventListener('pointercancel', resetPointer);\n    track.addEventListener('pointerleave', resetPointer);\n    track.addEventListener('dragstart', (event) => event.preventDefault());\n\n    track.addEventListener('keydown', (event) => {\n        if (uniqueTotal <= 1) {\n            return;\n        }\n\n        if (event.key === 'ArrowLeft') {\n            event.preventDefault();\n            goTo(currentIndex - 1, -1);\n        } else if (event.key === 'ArrowRight') {\n            event.preventDefault();\n            goTo(currentIndex + 1, 1);\n        }\n    });\n\n    updateControls();\n    applyState(0);\n})(\"landing_carousel_block_6ac581007d13a\");\n<\/script>\n\n\n\n<section class=\"landing-section\" id=\"contact\">\n        <div class=\"landing-container\">\n            <div class=\"contact-section\">\n                <div class=\"contact-info\">\n                    <h2>ASK ABOUT THE PRICE<\/h2>\n                    <p><p>Contact us without obligation and receive a personalized quote based on your specific needs.<br \/>\n <span class=\"highlight\">Our staff is ready to answer all your questions.<\/span><\/p>\n<\/p>\n                <\/div>\n                <div class=\"contact-form-wrapper\">\n                    <p class=\"wpcf7-contact-form-not-found\"><strong>Erreur\u00a0:<\/strong> Formulaire de contact non trouv\u00e9\u00a0!<\/p>                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n\r\n<footer class=\"landing-footer\">\r\n    <div class=\"landing-container landing-footer-inner\">\r\n            <div class=\"footer-top\">\r\n                        <a href=\"https:\/\/www.exact.it\/fr\/\" class=\"footer-logo\">\r\n                <img decoding=\"async\" src=\"https:\/\/www.exact.it\/wp-content\/uploads\/2025\/09\/logo-exact.svg\" alt=\"Logo exact\">\r\n            <\/a>\r\n            <a href=\"#top\" class=\"footer-backtop\" aria-label=\"Torna su\">\u2191<\/a>\r\n        <\/div>\r\n        <div class=\"footer-bottom\">\r\n            <nav class=\"footer-nav\" aria-label=\"Footer\">\r\n                <a href=\"https:\/\/www.exact.it\/fr\/\">Home<\/a>\r\n                <span>\/<\/span>\r\n                <a href=\"https:\/\/www.exact.it\/fr\/newgranulators\/\">Contattaci<\/a>\r\n            <\/nav>\r\n            <div class=\"footer-email\">\r\n                                <span>Email<\/span>\r\n                <strong><a href=\"mailto:info@exact.it\">info@exact.it<\/a><\/strong>\r\n            <\/div>\r\n            <div class=\"footer-meta\">\r\n                <span>&copy; 2026 \u2014 Copyright<\/span>\r\n                <span>&copy; WNDR<\/span>\r\n            <\/div>\r\n        <\/div> \r\n    <\/div>\r\n<\/footer>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-landing-acf.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-9093","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>New Granulators - Exact<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.exact.it\/fr\/newgranulators\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New Granulators - Exact\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.exact.it\/fr\/newgranulators\/\" \/>\n<meta property=\"og:site_name\" content=\"Exact\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.exact.it\\\/fr\\\/newgranulators\\\/\",\"url\":\"https:\\\/\\\/www.exact.it\\\/fr\\\/newgranulators\\\/\",\"name\":\"New Granulators - Exact\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.exact.it\\\/#website\"},\"datePublished\":\"2025-09-25T14:49:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.exact.it\\\/fr\\\/newgranulators\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.exact.it\\\/fr\\\/newgranulators\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.exact.it\\\/fr\\\/newgranulators\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.exact.it\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New Granulators\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.exact.it\\\/#website\",\"url\":\"https:\\\/\\\/www.exact.it\\\/\",\"name\":\"Exact\",\"description\":\"Plastic aptitude\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.exact.it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.exact.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.exact.it\\\/#organization\",\"name\":\"EXACT SRL\",\"url\":\"https:\\\/\\\/www.exact.it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.exact.it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.exact.it\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/www.exact.it\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"EXACT SRL\"},\"image\":{\"@id\":\"https:\\\/\\\/www.exact.it\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"New Granulators - Exact","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.exact.it\/fr\/newgranulators\/","og_locale":"fr_FR","og_type":"article","og_title":"New Granulators - Exact","og_url":"https:\/\/www.exact.it\/fr\/newgranulators\/","og_site_name":"Exact","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.exact.it\/fr\/newgranulators\/","url":"https:\/\/www.exact.it\/fr\/newgranulators\/","name":"New Granulators - Exact","isPartOf":{"@id":"https:\/\/www.exact.it\/#website"},"datePublished":"2025-09-25T14:49:15+00:00","breadcrumb":{"@id":"https:\/\/www.exact.it\/fr\/newgranulators\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.exact.it\/fr\/newgranulators\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.exact.it\/fr\/newgranulators\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.exact.it\/fr\/"},{"@type":"ListItem","position":2,"name":"New Granulators"}]},{"@type":"WebSite","@id":"https:\/\/www.exact.it\/#website","url":"https:\/\/www.exact.it\/","name":"Exact","description":"Plastic aptitude","publisher":{"@id":"https:\/\/www.exact.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.exact.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.exact.it\/#organization","name":"EXACT SRL","url":"https:\/\/www.exact.it\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.exact.it\/#\/schema\/logo\/image\/","url":"https:\/\/www.exact.it\/wp-content\/uploads\/2019\/03\/favicon.png","contentUrl":"https:\/\/www.exact.it\/wp-content\/uploads\/2019\/03\/favicon.png","width":512,"height":512,"caption":"EXACT SRL"},"image":{"@id":"https:\/\/www.exact.it\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/pages\/9093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/comments?post=9093"}],"version-history":[{"count":0,"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/pages\/9093\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.exact.it\/fr\/wp-json\/wp\/v2\/media?parent=9093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}