gsap.registerPlugin(ScrollTrigger, SplitText);
const lenis = new Lenis;
lenis.on("scroll", ScrollTrigger.update),
gsap.ticker.add(e => {
lenis.raf(1e3 * e)
}
),
gsap.ticker.lagSmoothing(0);
const targetElement = document.querySelector(".popup-wrapper")
, callback = function(e, t) {
e.forEach(function(e) {
if ("attributes" === e.type && "style" === e.attributeName) {
let t = window.getComputedStyle(targetElement);
"none" === t.display ? document.querySelector(".mail-open").classList.remove("cp_open") : document.querySelector(".mail-open").classList.add("cp_open")
}
})
}
, observer = new MutationObserver(callback);
if(targetElement) {
observer.observe(targetElement, {
attributes: !0,
attributeFilter: ["style"]
});
}
const swiper3 = document.querySelector(".swiper3");
if (swiper3) {
let e = new Swiper(".swiper3",{
effect: "fade",
pagination: {
el: ".ts_swiper_fraction",
type: "fraction"
},
slidesPerView: 1,
spaceBetween: 16,
loop: !0,
grabCursor: !0
});
gsap.set(".ts_swiper--progress--inner", {
width: "0%"
});
let t = gsap.timeline({
repeat: -1,
onRepeat() {
e.slideNext()
}
}).to(".ts_swiper--progress--inner", {
width: "100%",
duration: 5,
ease: "linear"
})
, r = document.querySelector(".ts_swiper--nav_button.next")
, i = document.querySelector(".ts_swiper--nav_button.prev");
(r || i) && (r.addEventListener("click", () => {
e.slideNext()
}
),
i.addEventListener("click", () => {
e.slidePrev()
}
)),
e.on("slideChange", () => {
t.progress(.01)
}
),
gsap.to(".swiper3", {
scrollTrigger: {
trigger: ".swiper3",
start: "top bottom"
},
onStart() {
t.progress(.01),
e.slideToLoop(0)
}
})
}
const tstQuotes = document.querySelectorAll(".ts_quote");
tstQuotes.length > 0 && tstQuotes.forEach(e => {
let t = new SplitText(e,{
type: "words",
wordsClass: "ts_quote-split"
})
, r = new SplitText(t.words,{
type: "words"
});
gsap.set(r.words, {
y: "100%"
}),
r.words.forEach( (e, t) => {
e.style.transitionDelay = `${.0175 * t}s`
}
)
}
);
const swiper4 = document.querySelector(".swiper4");
if (swiper4) {
let o = new Swiper(".swiper4",{
breakpoints: {
992: {
slidesPerView: 2.5,
spaceBetween: 16
}
},
pagination: {
el: ".cs_swiper_fraction",
type: "fraction"
},
slidesPerView: 1.3,
spaceBetween: 10,
loop: !0,
grabCursor: !0
});
gsap.set(".cs_swiper--progress--inner", {
width: "0%"
});
let n = gsap.timeline({
repeat: -1,
onRepeat() {
o.slideNext()
}
}).to(".cs_swiper--progress--inner", {
width: "100%",
duration: 5,
ease: "linear"
})
, a = document.querySelector(".cs_swiper--nav_button.next")
, s = document.querySelector(".cs_swiper--nav_button.prev");
(a || s) && (a.addEventListener("click", () => {
o.slideNext()
}
),
s.addEventListener("click", () => {
o.slidePrev()
}
)),
o.on("slideChange", () => {
n.progress(.01)
}
),
gsap.to(".swiper4", {
scrollTrigger: {
trigger: ".swiper4",
start: "top bottom"
},
onStart() {
n.progress(.01),
o.slideToLoop(0)
}
})
}
function checkInputState(e) {
let t = "" !== e.value.trim();
return t
}
const cpWrappers = document.querySelectorAll(".contact-popup-form-wrapper");
cpWrappers.length > 0 && cpWrappers.forEach(e => {
let t = e.querySelector(".new_c-input")
, r = e.querySelector(".new_c-label");
t.addEventListener("input", () => {
checkInputState(t) ? r.classList.add("active") : r.classList.remove("active")
}
)
}
);
const ddLinksWraps = document.querySelectorAll(".nav_dropdown--links .footer-link-block");
ddLinksWraps.length > 0 && ddLinksWraps.forEach(e => {
let t = e.querySelectorAll(".footer-link");
t.forEach( (e, t) => {
e.style.transitionDelay = `${.075 * t}s`
}
)
}
);
var mobileQuery = window.matchMedia("(max-width: 991px)");
gsap.from(".g_co-acomplishment .g_co-a_value", {
textContent: 0,
duration: 2,
stagger: .05,
snap: {
textContent: 1
},
scrollTrigger: {
trigger: ".g-co_glance--grid",
start: "top bottom"
}
}),
gsap.set(".g_co-a_value--wrap *", {
y: "100%"
}),
gsap.to(".g_co-a_value--wrap *", {
y: "0%",
duration: .75,
ease: "power3.inOut",
stagger: .05,
scrollTrigger: {
trigger: ".g-co_glance--grid",
start: "top bottom"
}
}),
mobileQuery.matches ? (gsap.set(".g_co-a_line", {
width: "0%"
}),
gsap.to(".g_co-a_line", {
width: "100%",
duration: .75,
ease: "power3.inOut",
stagger: .05,
scrollTrigger: {
trigger: ".g-co_glance--grid",
start: "bottom bottom"
}
})) : (gsap.set(".g_co-a_line", {
height: "0%"
}),
gsap.to(".g_co-a_line", {
height: "100%",
duration: 1.5,
ease: "power3.inOut",
stagger: .1,
scrollTrigger: {
trigger: ".g-co_glance--grid",
start: "bottom bottom"
}
}));
let groups = gsap.utils.toArray(".g-co_capability");
if (groups.length > 0) {
let l = gsap.utils.toArray(".g-co_c-heading")
, c = groups.map(g);
function p(e) {
c.forEach(t => t(e))
}
function g(e) {
let t = e.querySelector(".g-co_c-heading")
, r = e.querySelector(".g-co_c-content")
, i = e.querySelector(".g-co_c-arrow:not(.mobile)")
, o = e.querySelector(".g-co_c-arrow.mobile");
var n = !1;
gsap.set(r, {
y: ".5em",
height: 0
}),
gsap.set(t, {
color: "#fff6"
}),
gsap.set(i, {
x: "50%",
clipPath: "inset(0% 100% 0% 0%)"
}),
gsap.set(o, {
rotate: 0
});
let a = gsap.timeline({
onComplete() {
n = !0,
ScrollTrigger.refresh()
},
paused: !0,
reversed: !0
}).to(i, {
clipPath: "inset(0% 0.01% 0% 0%)",
x: "0%",
duration: .75,
ease: "power3.inOut"
}, "<").to(o, {
rotate: 180,
duration: .75,
ease: "power3.inOut"
}, "<").to(r, {
height: "auto",
y: "0em",
duration: 1,
ease: "power3.inOut"
}, "<");
return function(e) {
mobileQuery.matches ? e === t && (a.reversed() ? (a.play(),
t.classList.add("open")) : (a.reverse(),
t.classList.remove("open"))) : e === t ? a.reversed() && (a.play(),
t.classList.add("open")) : (a.reverse(),
t.classList.remove("open"))
}
}
l.forEach(e => {
e.addEventListener("click", () => p(e))
}
);
let u = document.querySelectorAll(".g-co_c-accimages")
, d = document.querySelectorAll(".g-co_capability");
if (u.forEach(e => {
let t = e.querySelectorAll("img");
t.forEach( (e, t) => {
e.style.transitionDelay = `${.05 * t}s`
}
)
}
),
d.forEach(e => {
let t = e.querySelector(".g-co_c-heading")
, r = e.querySelector(".g-co_c-content");
if (mobileQuery.matches) {
var i = e.getAttribute("data-class");
u.forEach(e => {
var t;
i === e.getAttribute("data-class") && r.appendChild(e)
}
)
} else
t.addEventListener("click", () => {
var t = e.getAttribute("data-class");
u.forEach(e => {
let r = e.querySelectorAll("img");
var i = e.getAttribute("data-class");
r.forEach(e => {
gsap.to(e, {
opacity: 0,
duration: .25,
ease: "power4.inOut",
onComplete() {
e.style.clipPath = "inset(100% 0% 0% 0%)"
}
})
}
),
t === i && r.forEach(e => {
gsap.to(e, {
opacity: 1,
duration: .25,
ease: "power4.inOut",
onComplete() {
e.style.clipPath = "inset(0% 0% 0% 0%)"
}
})
}
)
}
)
}
)
}
),
imagesLoaded(u, () => {
mobileQuery.matches && l.length > 0 && l[0].click()
}
),
!mobileQuery.matches && l.length > 0) {
l[0].click(),
gsap.set(".cp_progress--inner", {
width: "0%"
});
let $ = gsap.timeline({
repeat: -1
}).to(".cp_progress--inner", {
width: "100%",
duration: 5,
ease: "linear"
}), w = document.querySelectorAll(".g-co_c-heading"), m = document.querySelector(".cp_fraction--num"), y = 0, f;
function h(e) {
w[e] && w[e].click(),
v()
}
function v() {
m && (m.textContent = y + 1)
}
function b() {
f = setInterval( () => {
h(y = (y + 1) % w.length)
}
, 5e3),
$.progress(.001),
$.play()
}
function _() {
clearInterval(f),
$.progress(.001),
$.pause()
}
w.forEach( (e, t) => {
e.addEventListener("click", () => {
y = t,
v(),
_(),
b()
}
)
}
),
document.querySelector(".cp_nav--button.next").addEventListener("click", () => {
h(y = (y + 1) % w.length),
_(),
b()
}
),
document.querySelector(".cp_nav--button.prev").addEventListener("click", () => {
h(y = (y - 1 + w.length) % w.length),
_(),
b()
}
),
gsap.to(".g-co_capabilities--wrap", {
scrollTrigger: {
trigger: ".g-co_capabilities--wrap",
start: "top bottom",
end: "bottom top",
onEnter() {
b(),
v()
},
onLeave() {
_()
},
onEnterBack() {
b()
},
onLeaveBack() {
_()
}
}
})
}
}
function cleanText(e) {
if (e.length > 0) {
if ("string" == typeof e)
return cleanText(document.querySelectorAll(e));
if (e[0] && e[0].innerHTML) {
for (var t = 0; t < e.length; t++)
cleanText(e[t]);
return
}
e.innerHTML = e.innerHTML.replace(/\-/g, "\xe2€‘").replace(/V/g, "\xe2€ŒV\xe2€Œ").replace(/\./g, "\xe2€Œ.\xe2€Œ").replace(/,/g, "\xe2€Œ,\xe2€Œ").replace(/A/g, "\xe2€ŒA\xe2€Œ").replace(/fi/g, "f\xe2€Œi").replace(/&/g, "&")
}
}
cleanText(".animate_p");
var listArray = ["slide1", "slide2", "slide3", "slide4"]
, mySwiper = new Swiper(".swiper",{
loop: !0,
autoplayDisableOnInteraction: !1,
spaceBetween: 64,
allowTouchMove: !0,
slidesPerView: 1,
autoHeight: !1,
autoplay: {
delay: 5e3,
waitForTransition: !1,
disableOnInteraction: !1
},
pagination: {
el: ".swiper-pagination1",
clickable: !0,
type: "bullets",
renderBullet: function(e, t) {
return '' + listArray[e] + ""
}
},
navigation: {
nextEl: ".swiper-nav.next",
prevEl: ".swiper-nav.prev"
}
})
, pagination1 = document.querySelector(".swiper-pagination1")
, pagination2 = document.querySelector(".swiper-pagination2")
, slideTabs = document.querySelectorAll(".slide-tab")
, totalSlides = mySwiper.slides.length;
function updatePaginationText() {
var e = mySwiper.realIndex
, t = "0" + (e + 1) + " / 0" + totalSlides;
slideTabs.length > 0 && (slideTabs.forEach(function(e) {
e.classList.remove("active")
}),
slideTabs[e].classList.add("active")),
pagination1 && (pagination1.children[e].classList.add("swiper-pagination-bullet-active"),
pagination1.children[e].setAttribute("aria-current", "true")),
pagination2 && (pagination2.textContent = t,
pagination2.setAttribute("aria-label", t))
}
mySwiper.on("init", function() {
updatePaginationText()
}),
mySwiper.on("slideChange", function() {
updatePaginationText()
}),
mySwiper.emit("slideChange"),
slideTabs.length > 0 && slideTabs.forEach(function(e, t) {
e.addEventListener("click", function() {
mySwiper.slideTo(t)
})
});
var mySwiper2 = new Swiper(".swiper2",{
loop: !0,
autoplayDisableOnInteraction: !1,
spaceBetween: 64,
allowTouchMove: !0,
slidesPerView: 1,
autoHeight: !1,
autoplay: {
delay: 5e3,
waitForTransition: !1,
disableOnInteraction: !1
},
pagination: {
el: ".swiper-pagination3",
clickable: !0,
type: "bullets",
renderBullet: function(e, t) {
return '' + listArray[e] + ""
}
},
navigation: {
nextEl: ".swiper-nav-2.next",
prevEl: ".swiper-nav-2.prev"
}
});
if (mySwiper2) {
var S = document.querySelector(".swiper-pagination3")
, k = document.querySelector(".swiper-pagination4")
, E = document.querySelectorAll(".slide-tab2")
, T = mySwiper2.slides.length;
function L() {
var e = mySwiper2.realIndex
, t = "0" + (e + 1) + " / 0" + T;
E.length > 0 && (E.forEach(function(e) {
e.classList.remove("active")
}),
E[e].classList.add("active")),
S && (S.children[e].classList.add("swiper-pagination-bullet-active"),
S.children[e].setAttribute("aria-current", "true")),
k && (k.textContent = t,
k.setAttribute("aria-label", t))
}
mySwiper2.on("init", function() {
L()
}),
mySwiper2.on("slideChange", function() {
L()
}),
mySwiper2.emit("slideChange"),
E.length > 0 && E.forEach(function(e, t) {
e.addEventListener("click", function() {
mySwiper2.slideTo(t)
})
})
}
const industriesDropdownLinks = document.querySelectorAll(".industries_dropdown-link_wrapper .footer-link");
industriesDropdownLinks && industriesDropdownLinks.forEach( (e, t) => {
e.style.transitionDelay = `${.025 * t}s`
}
),
document.body.style.opacity = 1;
const animateHeadlines = document.querySelectorAll(".animate_headline");
animateHeadlines && animateHeadlines.forEach(e => {
let t = new SplitText(e,{
type: "lines, words",
linesClass: "line_wrap"
});
gsap.set(t.words, {
y: "100%"
}),
gsap.to(t.words, {
y: "0%",
duration: 1,
ease: "power4.inOut",
stagger: .025,
onComplete() {
t.revert()
},
scrollTrigger: {
trigger: e,
start: "top bottom"
}
})
}
);
const paragraphs = document.querySelectorAll(".animate_p");
paragraphs.forEach(e => {
var t = new SplitText(e,{
type: "lines"
})
, r = new SplitText(e,{
type: "lines",
linesClass: "line_wrap"
});
gsap.set(t.lines, {
yPercent: 100,
transformOrigin: "left",
skewY: 2
}),
gsap.to(t.lines, {
yPercent: 0,
skewY: 0,
duration: 1,
ease: "power4.inOut",
stagger: .1,
scrollTrigger: {
trigger: e,
start: "top bottom"
},
onComplete() {
r.revert(),
t.revert()
}
})
}
),
gsap.from(".cs_swiper .swiper-slide img", {
clipPath: "inset(100% 0% 0% 0%)",
duration: 1.5,
stagger: .05,
ease: "power4.inOut",
scrollTrigger: {
trigger: ".cs_swiper",
start: "50 bottom"
}
});
const insightsImages = document.querySelectorAll(".insight-img , .featured-img");
insightsImages.forEach(e => {
gsap.set(e, {
clipPath: "inset(100% 0% 0% 0%)"
}),
gsap.to(e, {
clipPath: "inset(0% 0% 0% 0%)",
duration: 1.5,
ease: "power4.inOut",
scrollTrigger: {
trigger: e,
start: "top bottom"
}
})
}
),
gsap.from(".insight-item .insight-line", {
height: "0%",
duration: .75,
stagger: .05,
ease: "power4.inOut",
scrollTrigger: {
trigger: ".insight-list, .leadership-list",
start: "top bottom"
}
});
var footerTitleSplit = new SplitText(".footer_title",{
type: "lines"
})
, footerTitleMask = new SplitText(".footer_title",{
type: "lines",
linesClass: "line_wrap"
});
gsap.set(footerTitleSplit.lines, {
yPercent: 100,
transformOrigin: "left",
skewY: 2
}),
gsap.to(footerTitleSplit.lines, {
yPercent: 0,
skewY: 0,
duration: 1.25,
ease: "power4.inOut",
stagger: .1,
scrollTrigger: {
trigger: ".footer_title",
start: "top bottom"
},
onComplete() {
footerTitleMask.revert(),
footerTitleSplit.revert()
}
}),
gsap.from("footer form>*", {
opacity: 0,
y: "1em",
duration: 1.25,
ease: "power4.inOut",
stagger: .1,
scrollTrigger: {
trigger: "footer form",
start: "top bottom"
}
}),
gsap.from(".footer_middle-separator", {
width: "0%",
duration: 2,
ease: "power3.inOut",
scrollTrigger: {
trigger: ".footer_middle",
start: "50 bottom"
}
}),
gsap.from(".footer_middle-links>*", {
opacity: 0,
y: "1em",
duration: .75,
stagger: {
amount: .25
},
ease: "power4.inOut",
scrollTrigger: {
trigger: ".footer_middle-links",
start: "50 bottom"
}
}),
gsap.from("footer .footer-link>*", {
y: "1em",
duration: 1.25,
stagger: {
amount: .25
},
ease: "power4.inOut",
scrollTrigger: {
trigger: ".footer_middle-links",
start: "50 bottom"
}
}),
gsap.fromTo(".footer_bottom--logo", {
opacity: 0,
y: "100%"
}, {
opacity: 1,
y: "35%",
duration: 1,
ease: "power4.inOut",
scrollTrigger: {
trigger: ".footer-bottom",
start: "center bottom"
}
});
const CookieService = {
setCookie(e, t, r) {
let i = "";
if (r) {
let o = new Date;
o.setTime(o.getTime() + 864e5 * r),
i = "; expires=" + o.toUTCString()
}
document.cookie = e + "=" + (t || "") + i + ";"
},
getCookie(e) {
let t = document.cookie.split(";");
for (let r of t)
if (r.indexOf(e + "=") > -1)
return r.split("=")[1];
return null
}
}
, exit = e => {
let t = [...e.target.classList].includes("exit-intent-popup") || "close" === e.target.className || 27 === e.keyCode;
t && document.querySelector(".exit-intent-popup").classList.remove("visible")
}
, mouseEvent = e => {
let t = !e.toElement && !e.relatedTarget && e.clientY < 10;
t && (document.removeEventListener("mouseout", mouseEvent),
document.querySelector(".exit-intent-popup").classList.add("visible"),
CookieService.setCookie("exitIntentShown", !0, 30))
}
;
CookieService.getCookie("exitIntentShown") || setTimeout( () => {
document.addEventListener("mouseout", mouseEvent),
document.addEventListener("keydown", exit);
const exitIntentClose = document.querySelector(".exit-intent-popup")
if(exitIntentClose) {
exitIntentClose.addEventListener("click", exit);
}
}
, 0),
document.addEventListener("keydown", function(e) {
if ("Tab" === e.key) {
var t = e.target
, r = Array.from(document.getElementById("contact-popup").getElementsByTagName("input"))
, i = r.indexOf(t) + 1;
i >= r.length && (i = 0),
r[i].focus(),
e.preventDefault()
}
});