{"version":3,"file":"f05eb872a9325b30537da964f5d3a4e5d03a8fe2-a9d4433d203758ad8d97.js","mappings":"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","sources":["webpack://reform-gatsby-starter/./node_modules/events/events.js","webpack://reform-gatsby-starter/./src/components/Carousels/YoutubeIframe.tsx","webpack://reform-gatsby-starter/./src/components/Carousels/VideoCarousel.tsx","webpack://reform-gatsby-starter/./src/components/UI-Related/ZoomImageGatsby.tsx","webpack://reform-gatsby-starter/./src/components/LazyLoadedVideo.tsx","webpack://reform-gatsby-starter/./src/components/sectionTemplates/BottomCallout.tsx","webpack://reform-gatsby-starter/./node_modules/load-script2/index.js","webpack://reform-gatsby-starter/./node_modules/yt-player/index.js","webpack://reform-gatsby-starter/./static/ lazy ^\\.\\/.*$ namespace object"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","import { useEffect, useRef, useState } from \"react\"\n\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport gsap from \"gsap\"\nimport styled, { css } from \"styled-components\"\nimport YTPlayer from \"yt-player\"\n\nimport Button from \"components/buttons/Button\"\nimport { VideoEmbeds } from \"types/gatsby-alias\"\nimport { fmobile, fresponsive, ftablet } from \"utils/fullyResponsive\"\n\ninterface Props {\n iframeData: VideoEmbeds\n className?: string\n first: boolean\n transitioning: boolean\n}\n\nexport default function YouTubePlayer({\n iframeData,\n className = \"\",\n first,\n transitioning,\n}: Props) {\n const [player, setPlayer] = useState(null)\n const [playerElement, setPlayerElement] = useState(\n null\n )\n const posterRef = useRef(null)\n\n const { youtubeVideoId, posterImage, buttonText } = iframeData ?? {}\n\n const handlePlay = () => {\n if (player) {\n player.play()\n\n gsap.to(posterRef.current, {\n opacity: 0,\n duration: 0.4,\n pointerEvents: \"none\",\n })\n }\n }\n useEffect(() => {\n if (player && transitioning) {\n player.pause()\n }\n }, [transitioning, player])\n\n useEffect(() => {\n if (playerElement && youtubeVideoId && !player) {\n const options = {\n controls: false,\n modestBranding: true,\n }\n const newPlayer = new YTPlayer(playerElement, options)\n newPlayer.load(youtubeVideoId)\n newPlayer.seek(0.5)\n setPlayer(newPlayer)\n }\n }, [playerElement, youtubeVideoId, player])\n\n useEffect(() => {\n if (player) {\n player.on(\"paused\", () => {\n gsap.to(posterRef.current, {\n opacity: 1,\n duration: 0.4,\n pointerEvents: \"auto\",\n })\n })\n }\n return () => {\n if (player) {\n player.destroy();\n }\n };\n \n }, [player])\n\n return (\n \n setPlayerElement(ref)} />\n \n {posterImage?.gatsbyImageData && (\n \n )}\n \n {buttonText ?? \"Play Video\"}\n \n \n \n )\n}\n\nconst Wrapper = styled.div<{ first: boolean }>`\n position: absolute;\n opacity: ${({ first }) => (first ? 1 : 0)};\n\n ${fresponsive(css`\n width: 1144px;\n height: 740px;\n border-radius: 20px;\n margin-bottom: 25px;\n `)}\n\n ${ftablet(css`\n width: 834px;\n height: 600px;\n `)}\n\n ${fmobile(css`\n width: 335px;\n height: 260px;\n border-radius: 10px;\n `)}\n`\n\nconst Item = styled.div`\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n`\n\nconst FakePoster = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 5;\n`\n\nconst PosterImg = styled(GatsbyImage)`\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n`\n\nconst StyledButton = styled(Button)`\n position: relative;\n z-index: 100;\n`\n","import { useCallback, useRef, useState } from \"react\"\n\nimport gsap from \"gsap\"\nimport { Trans } from \"react-i18next\"\nimport styled, { css } from \"styled-components\"\n\nimport RoundButton from \"components/buttons/RoundButton\"\nimport InnerWrapper from \"components/InnerWrapper\"\nimport colors from \"styles/colors\"\nimport media from \"styles/media\"\nimport text from \"styles/text\"\nimport { fmobile, fresponsive, ftablet } from \"utils/fullyResponsive\"\nimport useMedia from \"utils/useMedia\"\n\nimport YouTubePlayer from \"./YoutubeIframe\"\n\ninterface Props {\n data: Queries.MainPageQuery[\"allContentfulMainPage\"][\"nodes\"][number][\"videoCarousel\"]\n justVideo?: boolean\n className?: string\n}\n\nexport default function Testimonials({\n data,\n justVideo = false,\n className = \"\",\n}: Props) {\n const [wrapper, setWrapper] = useState(null)\n const activeTestimonial = useRef(0)\n const canAnimate = useRef(true)\n const [index, setIndex] = useState(0)\n const innerWidth = useMedia(\"1402px\", \"84.458vw\", \"100%\", \"80%\")\n const [transitioning, setTransitioning] = useState(false)\n\n const items = data?.videoEmbeds\n\n const animateCarouselForward = useCallback(\n (\n leftTestimonial: number,\n centerTestimonial: number,\n rightTestimonial: number\n ) => {\n if (wrapper) {\n const tl = gsap.timeline({\n onStart: () => {\n canAnimate.current = false\n setTransitioning(true)\n },\n onComplete: () => {\n canAnimate.current = true\n setTransitioning(false)\n },\n })\n activeTestimonial.current = leftTestimonial\n // Set positions for all slides except the current visible ones\n items?.forEach((_:any, index:number) => {\n if (\n index !== leftTestimonial &&\n index !== centerTestimonial &&\n index !== rightTestimonial\n ) {\n gsap.set(`.testimonial-${index}`, { x: \"100%\", opacity: 0 });\n }\n });\n gsap.set(`.testimonial-${leftTestimonial}`, { x: \"100%\" })\n tl.to(`.testimonial-${leftTestimonial}`, {\n x: 0,\n ease: \"power2.inOut\",\n opacity: 1,\n duration: 0.4,\n }, 0)\n .to(`.testimonial-${centerTestimonial}`, {\n x: \"-100%\",\n duration: 0.5,\n opacity: 0,\n ease: \"power2.inOut\",\n }, 0)\n\n .to(`.testimonial-${rightTestimonial}`, {\n x: `100%`,\n duration: 0,\n ease: \"power2.inOut\",\n }, 0)\n }\n },\n [wrapper, items]\n )\n\n const animateCarouselBack = useCallback(\n (\n leftTestimonial: number,\n centerTestimonial: number,\n rightTestimonial: number\n ) => {\n if (wrapper) {\n const tl = gsap.timeline({\n onStart: () => {\n canAnimate.current = false\n setTransitioning(true)\n },\n onComplete: () => {\n canAnimate.current = true\n setTransitioning(false)\n },\n })\n activeTestimonial.current = rightTestimonial\n gsap.set(`.testimonial-${rightTestimonial}`, { x: \"-100%\" })\n tl.to(`.testimonial-${leftTestimonial}`, {\n x: \"-100%\",\n ease: \"power2.inOut\",\n duration: 0,\n }, 0)\n .to(`.testimonial-${centerTestimonial}`, {\n x: \"100%\",\n duration: 0.5,\n opacity: 0,\n ease: \"power2.inOut\",\n }, 0)\n\n .to(`.testimonial-${rightTestimonial}`, {\n x: 0,\n duration: 0.5,\n opacity: 1,\n ease: \"power2.inOut\",\n }, 0)\n }\n },\n [wrapper]\n )\n\n const handleNextItem = (currentTestimonial: number) => {\n if (canAnimate.current && items) {\n const leftTestimonial =\n currentTestimonial === items.length - 1 ? 0 : currentTestimonial + 1\n const rightTestimonial =\n currentTestimonial === 0 ? items.length - 1 : currentTestimonial - 1\n\n animateCarouselForward(\n leftTestimonial,\n currentTestimonial,\n rightTestimonial\n )\n setIndex(leftTestimonial)\n }\n }\n\n const handlePrevItem = (currentTestimonial: number) => {\n if (canAnimate.current && items) {\n const leftTestimonial =\n currentTestimonial === items.length - 1 ? 0 : currentTestimonial + 1\n const rightTestimonial =\n currentTestimonial === 0 ? items.length - 1 : currentTestimonial - 1\n animateCarouselBack(leftTestimonial, currentTestimonial, rightTestimonial)\n setIndex(rightTestimonial)\n }\n }\n\n const allTitles = items?.map((item, i) => {\n return (\n \n <Trans>{item?.videoName}</Trans>\n \n )\n })\n\n const allItems = items?.map((item, i) => { \n return (\n \n )\n })\n\n const dots = items?.map((item, i) => {\n return (\n \n \n \n )\n })\n\n return (\n {\n setWrapper(ref)\n }}\n justVideo={justVideo}\n className={className}\n >\n {allTitles}\n \n {items && items.length > 1 && (\n handlePrevItem(activeTestimonial.current)}\n />\n )}\n\n {allItems}\n {items && items.length > 1 && (\n handleNextItem(activeTestimonial.current)}\n />\n )}\n \n {items && items.length > 1 && {dots}}\n \n )\n}\n\nconst Title = styled.h3<{ active: boolean }>`\n position: absolute;\n text-align: center;\n width: 100%;\n align-self: center;\n opacity: ${({ active }) => (active ? 1 : 0)};\n transition: opacity 0.4s ease-in-out;\n\n ${fresponsive(css`\n ${text.h4}\n `)}\n\n ${ftablet(css`\n ${text.h5}\n `)}\n\n ${fmobile(css`\n ${text.h6}\n `)}\n`\n\nconst Dot = styled.svg`\n display: block;\n position: relative;\n\n circle {\n transition: fill 0.3s ease-in-out;\n }\n\n width: 10px;\n height: 10px;\n\n ${media.mobile} {\n width: 5px;\n height: 5px;\n }\n`\n\nconst Wrapper = styled.section<{ justVideo: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n position: relative;\n :before {\n content: \"\";\n position: absolute;\n display: ${({ justVideo }) => (justVideo ? \"none\" : \"inline-block\")};\n top: 0;\n left: 0;\n width: fit-content;\n height: 52.3%;\n // background: ${colors.blue10};\n z-index: 0;\n }\n\n ${media.fullWidth} {\n padding: ${({ justVideo }) => (justVideo ? \"200px\" : \"100px\")} 0 100px;\n }\n ${media.desktop} {\n padding: ${({ justVideo }) => (justVideo ? \"12.048vw\" : \"6.024vw\")} 0\n 6.024vw;\n }\n ${media.tablet} {\n padding: ${({ justVideo }) => (justVideo ? \"19.531vw\" : \"9.766vw\")} 0\n 16.113vw;\n :before {\n height: 53%;\n }\n }\n ${media.mobile} {\n padding: ${({ justVideo }) => (justVideo ? \"40vw\" : \"20vw\")} 0;\n :before {\n height: 46%;\n }\n }\n`\n\nconst Titles = styled.div`\n position: relative;\n display: flex;\n\n ${fresponsive(css`\n width: 1144px;\n height: 116px;\n margin-bottom: 50px;\n `)}\n\n ${ftablet(css`\n width: 792px;\n height: 84px;\n `)}\n\n ${fmobile(css`\n width: 335px;\n height: 93px;\n margin-bottom: 25px;\n `)}\n`\n\nconst StyledInnerWrapper = styled(InnerWrapper)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${fresponsive(css`\n gap: 74px;\n width: 1402px;\n `)}\n\n ${ftablet(css`\n width: 834px;\n gap: 0;\n `)}\n\n ${fmobile(css`\n width: 335px;\n `)}\n`\n\nconst RoundButtonStyled = styled(RoundButton)`\n z-index: 2;\n\n ${media.tablet} {\n position: absolute;\n left: -27px;\n }\n ${media.mobile} {\n position: absolute;\n left: 23vw;\n top: calc(100% + 16vw);\n }\n`\n\nconst CarouselWrapper = styled.div`\n position: relative;\n overflow: hidden;\n\n iframe {\n border: none;\n outline: none;\n }\n\n ${fresponsive(css`\n width: 1144px;\n height: 740px;\n border-radius: 20px;\n margin-bottom: 25px;\n `)}\n\n ${ftablet(css`\n width: 834px;\n height: 600px;\n `)}\n\n ${fmobile(css`\n width: 335px;\n height: 260px;\n border-radius: 10px;\n `)}\n`\n\nconst RoundButtonStyled2 = styled(RoundButtonStyled)`\n ${media.tablet} {\n left: auto;\n right: -27px;\n }\n ${media.mobile} {\n left: auto;\n right: 23vw;\n }\n`\n\nconst DotWrapper = styled.div`\n display: flex;\n\n width: fit-content;\n\n ${fresponsive(css`\n height: 10px;\n gap: 10px;\n `)}\n`\n","import { useState } from \"react\"\n\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\"\nimport gsap from \"gsap\"\nimport { useTranslation } from \"react-i18next\"\nimport styled from \"styled-components\"\n\nimport media from \"styles/media\"\nimport useAnimation from \"utils/useAnimation\"\n\ninterface Props {\n src: IGatsbyImageData | undefined\n alt: string\n height?: string\n width?: string\n hero?: boolean\n objectFit?: string\n borderRadius?: string\n className?: string\n}\n\nexport default function ZoomImageGatsby({\n src,\n alt,\n height = \"\",\n width = \"\",\n objectFit = \"cover\",\n borderRadius = \"\",\n hero = false,\n className = \"\",\n}: Props) {\n const [imageWrap, setImageWrap] = useState(null)\n const { t } = useTranslation()\n\n useAnimation(() => {\n if (imageWrap) {\n gsap.to(imageWrap, {\n scale: 1.2,\n scrollTrigger: {\n trigger: imageWrap,\n start: \"top bottom\",\n end: \"bottom top\",\n scrub: true,\n },\n })\n }\n }, [imageWrap])\n\n return (\n \n setImageWrap(ref)}>\n {src && (\n \n )}\n \n \n )\n}\n\nconst ImageWrap = styled.div<{\n imgHeight?: string\n imgWidth?: string\n imgBorderR?: string\n}>`\n overflow: hidden;\n width: ${props => props.imgWidth && props.imgWidth};\n height: ${props => props.imgHeight && props.imgHeight};\n will-change: transform;\n z-index: 1;\n position: relative;\n transform: translate3d(0, 0, 0, 0);\n border-radius: ${props => props.imgBorderR};\n`\n\nconst ExpandWrap = styled.div`\n width: 100%;\n height: 100%;\n position: relative;\n transform-origin: 50% 50%;\n`\n\nconst Image = styled(GatsbyImage)<{ $objectFit: string }>`\n width: 100%;\n height: 100%;\n\n img {\n object-fit: ${({ $objectFit }) => $objectFit} !important;\n }\n object-fit: ${({ $objectFit }) => $objectFit} !important;\n ${media.tablet} {\n height: ${({ $objectFit }) => ($objectFit === \"crop\" ? \"initial\" : \"100%\")};\n\n width: 100%;\n }\n\n ${media.mobile} {\n position: relative;\n }\n`\n","import { useCallback, useEffect, useState } from \"react\"\n\nimport gsap from \"gsap\"\nimport styled from \"styled-components\"\n\nimport media from \"styles/media\"\n\ninterface Props {\n src: string[]\n className?: string\n}\n\nexport default function LazyVideo({ src, className = \"\" }: Props) {\n const [vidSrc, setVidSrc] = useState(null)\n const [wrapper, setWrapper] = useState(null)\n\n const loadVideo = useCallback(async () => {\n const allVidSources = src.map(async vid => {\n const el = await import(`../../static/${vid}`)\n return el.default\n })\n\n const srcset = await Promise.all(\n allVidSources.map(async (vid, i, arr) => {\n const res = await vid\n return (\n 1 && i === 0 ? \"video/webm\" : \"video/mp4\"}\n />\n )\n })\n )\n\n setVidSrc(srcset)\n }, [src])\n\n useEffect(() => {\n if (wrapper) {\n const tl = gsap.timeline({ scrollTrigger: wrapper, start: \"top bottom\" })\n\n tl.to(wrapper, {\n onStart: () => {\n loadVideo()\n },\n })\n }\n }, [src, loadVideo, wrapper])\n\n return (\n setWrapper(ref)}>\n {vidSrc ? (\n \n ) : (\n Loading...\n )}\n \n )\n}\n\nconst VidWrapper = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n video {\n position: absolute;\n width: 100%;\n object-fit: cover;\n\n ${media.fullWidth} {\n position: relative;\n width: 120%;\n left: -10%;\n }\n }\n`\n","import { IGatsbyImageData } from \"gatsby-plugin-image\"\nimport styled, { css } from \"styled-components\"\n\nimport InnerWrapper from \"components/InnerWrapper\"\nimport LazyVideo from \"components/LazyLoadedVideo\"\nimport ZoomImageGatsby from \"components/UI-Related/ZoomImageGatsby\"\nimport colors from \"styles/colors\"\nimport { fmobile, fresponsive, ftablet } from \"utils/fullyResponsive\"\nimport useMedia from \"utils/useMedia\"\n\ninterface Props {\n children: React.ReactNode\n bgColor?: string\n sectionHeight?: string\n imgHeight?: string\n imgWidth?: string\n objectFit?: string\n}\n\ninterface PropsWithImage extends Props {\n img: IGatsbyImageData | undefined\n video?: never\n}\n\ninterface PropsWithVideo extends Props {\n video?: string | string[]\n img?: never\n}\n\nexport default function BottomCallout({\n children = null,\n img,\n imgHeight = \"\",\n imgWidth = \"\",\n sectionHeight = \"\",\n bgColor = \"\",\n objectFit = \"cover\",\n video = \"\",\n}: PropsWithImage | PropsWithVideo) {\n const videoCombined = typeof video === \"string\" ? [video] : video\n return (\n \n \n {video !== \"\" ? (\n <>\n {video} \n \n {children}\n \n \n )\n}\n\nconst Wrapper = styled.div<{ bgColor?: string; sectionHeight: string }>`\n width: 100%;\n display: flex;\n justify-content: center;\n background: ${({ bgColor }) => bgColor ?? `${colors.lightMode}`};\n will-change: transform;\n transform: translate3d(0, 0, 0, 0);\n overflow: hidden;\n\n ${fresponsive(css`\n padding: 100px 0 560px;\n `)}\n\n ${ftablet(css`\n padding-bottom: 280px;\n `)}\n\n ${fmobile(css`\n padding: 80px 0 425px;\n `)}\n\n\n height: ${({ sectionHeight }) => sectionHeight || \"initial\"};\n`\n\nconst Curve = styled.div`\n background-color: ${colors.darkMode};\n background: ${colors.darkMode};\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n overflow: hidden;\n\n ${fresponsive(css`\n border-radius: 415px 0 0 0;\n background-size: 1660px 1411px;\n `)}\n\n ${ftablet(css`\n border-radius: 200px 0px 0px 0px;\n background-size: 1536px 973px;\n `)}\n\n ${fmobile(css`\n border-radius: 100px 0px 0px 0px;\n background-size: cover;\n background-position: center 248px;\n `)}\n`\n\nconst Video = styled(LazyVideo)`\n width: 100%;\n height: 100%;\n object-fit: cover;\n`\n","/*! load-script2. MIT License. Feross Aboukhadijeh */\nmodule.exports = function loadScript2 (src, attrs, parentNode) {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.async = true\n script.src = src\n\n for (const [k, v] of Object.entries(attrs || {})) {\n script.setAttribute(k, v)\n }\n\n script.onload = () => {\n script.onerror = script.onload = null\n resolve(script)\n }\n\n script.onerror = () => {\n script.onerror = script.onload = null\n reject(new Error(`Failed to load ${src}`))\n }\n\n const node = parentNode || document.head || document.getElementsByTagName('head')[0]\n node.appendChild(script)\n })\n}\n","/*! yt-player. MIT License. Feross Aboukhadijeh */\nconst EventEmitter = require('events').EventEmitter\nconst loadScript = require('load-script2')\n\nconst YOUTUBE_IFRAME_API_SRC = 'https://www.youtube.com/iframe_api'\n\nconst YOUTUBE_STATES = {\n '-1': 'unstarted',\n 0: 'ended',\n 1: 'playing',\n 2: 'paused',\n 3: 'buffering',\n 5: 'cued'\n}\n\nconst YOUTUBE_ERROR = {\n // The request contains an invalid parameter value. For example, this error\n // occurs if you specify a videoId that does not have 11 characters, or if the\n // videoId contains invalid characters, such as exclamation points or asterisks.\n INVALID_PARAM: 2,\n\n // The requested content cannot be played in an HTML5 player or another error\n // related to the HTML5 player has occurred.\n HTML5_ERROR: 5,\n\n // The video requested was not found. This error occurs when a video has been\n // removed (for any reason) or has been marked as private.\n NOT_FOUND: 100,\n\n // The owner of the requested video does not allow it to be played in embedded\n // players.\n UNPLAYABLE_1: 101,\n\n // This error is the same as 101. It's just a 101 error in disguise!\n UNPLAYABLE_2: 150\n}\n\nconst loadIframeAPICallbacks = []\n\n/**\n * YouTube Player. Exposes a better API, with nicer events.\n * @param {HTMLElement|selector} element\n */\nclass YouTubePlayer extends EventEmitter {\n constructor (element, opts) {\n super()\n\n const elem = typeof element === 'string'\n ? document.querySelector(element)\n : element\n\n if (elem.id) {\n this._id = elem.id // use existing element id\n } else {\n this._id = elem.id = 'ytplayer-' + Math.random().toString(16).slice(2, 8)\n }\n\n this._opts = Object.assign({\n width: 640,\n height: 360,\n autoplay: false,\n captions: undefined,\n controls: true,\n keyboard: true,\n fullscreen: true,\n annotations: true,\n modestBranding: false,\n related: true,\n timeupdateFrequency: 1000,\n playsInline: true,\n start: 0\n }, opts)\n\n this.videoId = null\n this.destroyed = false\n\n this._api = null\n this._autoplay = false // autoplay the first video?\n this._player = null\n this._ready = false // is player ready?\n this._queue = []\n\n this._interval = null\n\n // Setup listeners for 'timeupdate' events. The YouTube Player does not fire\n // 'timeupdate' events, so they are simulated using a setInterval().\n this._startInterval = this._startInterval.bind(this)\n this._stopInterval = this._stopInterval.bind(this)\n\n this.on('playing', this._startInterval)\n this.on('unstarted', this._stopInterval)\n this.on('ended', this._stopInterval)\n this.on('paused', this._stopInterval)\n this.on('buffering', this._stopInterval)\n\n this._loadIframeAPI((err, api) => {\n if (err) return this._destroy(new Error('YouTube Iframe API failed to load'))\n this._api = api\n\n // If load(videoId, [autoplay, [size]]) was called before Iframe API\n // loaded, ensure it gets called again now\n if (this.videoId) this.load(this.videoId, this._autoplay, this._start)\n })\n }\n\n load (videoId, autoplay = false, start = 0) {\n if (this.destroyed) return\n\n this.videoId = videoId\n this._autoplay = autoplay\n this._start = start\n\n // If the Iframe API is not ready yet, do nothing. Once the Iframe API is\n // ready, `load(this.videoId)` will be called.\n if (!this._api) return\n\n // If there is no player instance, create one.\n if (!this._player) {\n this._createPlayer(videoId)\n return\n }\n\n // If the player instance is not ready yet, do nothing. Once the player\n // instance is ready, `load(this.videoId)` will be called. This ensures that\n // the last call to `load()` is the one that takes effect.\n if (!this._ready) return\n\n // If the player instance is ready, load the given `videoId`.\n if (autoplay) {\n this._player.loadVideoById(videoId, start)\n } else {\n this._player.cueVideoById(videoId, start)\n }\n }\n\n play () {\n if (this._ready) this._player.playVideo()\n else this._queueCommand('play')\n }\n\n pause () {\n if (this._ready) this._player.pauseVideo()\n else this._queueCommand('pause')\n }\n\n stop () {\n if (this._ready) this._player.stopVideo()\n else this._queueCommand('stop')\n }\n\n seek (seconds) {\n if (this._ready) this._player.seekTo(seconds, true)\n else this._queueCommand('seek', seconds)\n }\n\n setVolume (volume) {\n if (this._ready) this._player.setVolume(volume)\n else this._queueCommand('setVolume', volume)\n }\n\n getVolume () {\n return (this._ready && this._player.getVolume()) || 0\n }\n\n mute () {\n if (this._ready) this._player.mute()\n else this._queueCommand('mute')\n }\n\n unMute () {\n if (this._ready) this._player.unMute()\n else this._queueCommand('unMute')\n }\n\n isMuted () {\n return (this._ready && this._player.isMuted()) || false\n }\n\n setSize (width, height) {\n if (this._ready) this._player.setSize(width, height)\n else this._queueCommand('setSize', width, height)\n }\n\n setPlaybackRate (rate) {\n if (this._ready) this._player.setPlaybackRate(rate)\n else this._queueCommand('setPlaybackRate', rate)\n }\n\n setPlaybackQuality (suggestedQuality) {\n if (this._ready) this._player.setPlaybackQuality(suggestedQuality)\n else this._queueCommand('setPlaybackQuality', suggestedQuality)\n }\n\n getPlaybackRate () {\n return (this._ready && this._player.getPlaybackRate()) || 1\n }\n\n getAvailablePlaybackRates () {\n return (this._ready && this._player.getAvailablePlaybackRates()) || [1]\n }\n\n getDuration () {\n return (this._ready && this._player.getDuration()) || 0\n }\n\n getProgress () {\n return (this._ready && this._player.getVideoLoadedFraction()) || 0\n }\n\n getState () {\n return (this._ready && YOUTUBE_STATES[this._player.getPlayerState()]) || 'unstarted'\n }\n\n getCurrentTime () {\n return (this._ready && this._player.getCurrentTime()) || 0\n }\n\n destroy () {\n this._destroy()\n }\n\n _destroy (err) {\n if (this.destroyed) return\n this.destroyed = true\n\n if (this._player) {\n this._player.stopVideo && this._player.stopVideo()\n this._player.destroy()\n }\n\n this.videoId = null\n\n this._id = null\n this._opts = null\n this._api = null\n this._player = null\n this._ready = false\n this._queue = null\n\n this._stopInterval()\n\n this.removeListener('playing', this._startInterval)\n this.removeListener('paused', this._stopInterval)\n this.removeListener('buffering', this._stopInterval)\n this.removeListener('unstarted', this._stopInterval)\n this.removeListener('ended', this._stopInterval)\n\n if (err) this.emit('error', err)\n }\n\n _queueCommand (command, ...args) {\n if (this.destroyed) return\n this._queue.push([command, args])\n }\n\n _flushQueue () {\n while (this._queue.length) {\n const command = this._queue.shift()\n this[command[0]].apply(this, command[1])\n }\n }\n\n _loadIframeAPI (cb) {\n // If API is loaded, there is nothing else to do\n if (window.YT && typeof window.YT.Player === 'function') {\n return cb(null, window.YT)\n }\n\n // Otherwise, queue callback until API is loaded\n loadIframeAPICallbacks.push(cb)\n\n const scripts = Array.from(document.getElementsByTagName('script'))\n const isLoading = scripts.some(script => script.src === YOUTUBE_IFRAME_API_SRC)\n\n // If API