! function(t, e) {
    "use strict";
    var o = {
        init: function() {
            var n = {
                "elementpress-countdown-timer.default": o.Countdown_Timer,
                "elementpress-client-logo.default": o.Client_Logo,
                "elementpress-testimonial.default": o.Testimonial_Slider,
                "elementpress-image-comparison.default": o.Image_Comparison,
                "elementpress-progressbar.default": o.Progressbar,
                "elementpress-piechart.default": o.Piechart,
                "elementpress-funfact.default": o.Funfact,
                "elementpress-gallery.default": o.Gallery,
                "elementpress-motion-text.default": o.MotionText,
                "elementpress-timeline.default": o.TimeLine,
                "elementpress-post-tab.default": o.PostTab,
                "elementpress-elementpress-hotspot.default": o.Hotspot,
                "elementpress-header-search.default": o.Header_Search,
                "elementpress-header-offcanvas.default": o.Header_Off_Canvas,
                'elementpress-woo-mini-cart.default': o.Mini_Cart,
                'elementpress-team.default': o.Team,
            };
            t.each(n, function(t, o) { e.hooks.addAction("frontend/element_ready/" + t, o) }), e.hooks.addAction("frontend/element_ready/global", o.AnimationCallback)
        },
        AnimationCallback: function(e) {
            function i(e) {
                new n({ $element: e }), e.find(".elementpress-invisible").each(function() {
                    var e = t(this),
                        n = JSON.parse(e.attr("data-settings")),
                        i = o.IsElementInView(e, !1),
                        a = n._animation,
                        s = n._animation_delay || 300;
                    1 == i && setTimeout(function() { e.removeClass("elementpress-invisible").addClass("animated " + a) }, s)
                })
            }
            i(e), t(window).on("scroll", function() { i(e) })
        },
        IsElementInView: function(e, o) {
            var n = t(window).scrollTop(),
                i = n + t(window).height(),
                a = e.offset().top,
                s = a + e.height();
            return !0 === o ? n < a && i > s : a <= i && s >= n
        },
        Progressbar: function(t) {
            var e = t.find(".single-skill-bar"),
                o = t.find(".number-percentage"),
                n = o.attr("data-value"),
                i = o.attr("data-animation-duration");
            i = parseInt("" != i ? i : 300, 10), e.waypoint({ handler: function() { o.animateNumbers(n, !0, i), e.find(".skill-track").animate({ width: n + "%" }, 3500) }, offset: "100%" })
        },
        Mini_Cart: function($scope) {
            $scope.find(".epress-dropdown-back").on('click mouseenter mouseleave', function(e) {
                var self = jQuery(this),
                    enableClick = self.hasClass('epress-mini-cart-visibility-click'),
                    enableHover = self.hasClass('epress-mini-cart-visibility-hover'),
                    body = self.find('.epress-mini-cart-container');


                if (e.type === 'click' && enableClick && !$(e.target).parents('div').hasClass('epress-mini-cart-container')) {
                    body.fadeToggle();
                } else if (e.type === 'mouseenter' && enableHover) {
                    body.fadeIn();
                } else if (e.type === 'mouseleave' && enableHover) {
                    body.fadeOut();
                }

            });
        },

        Funfact: function(t) {
            var e = t.find(".elementpress-funfact"),
                o = t.find(".number-percentage"),
                n = o.attr("data-value"),
                i = o.attr("data-animation-duration");
            i = parseInt("" != i ? i : 300, 10), e.waypoint({ handler: function() { o.animateNumbers(n, !0, i) }, offset: "100%" })
        },
        Countdown_Timer: function(e) {
            var o = e.find(".elementpress-countdown-timer[data-epress-countdown]"),
                n = e.find(".elementpress-countdown-timer-2[data-epress-countdown]"),
                i = e.find(".elementpress-countdown-timer-3[data-epress-countdown]"),
                a = e.find(".elementpress-countdown-timer-4[data-epress-countdown]"),
                s = e.find(".elementpress-flip-clock");
            o.each(function() {
                var e = t(this),
                    o = t(this).data("epress-countdown"),
                    n = t(this).data("date-epress-hour"),
                    i = t(this).data("date-epress-minute"),
                    a = t(this).data("date-epress-second"),
                    s = t(this).data("date-epress-day"),
                    r = (t(this).data("date-epress-week"), t(this).data("finish-title")),
                    l = t(this).data("finish-content");
                e.theFinalCountdown(o, function(e) { t(this).html(e.strftime(' <div class="elementpress-timer-container elementpress-days"><div class="elementpress-inner-container"><div class="elementpress-timer-content"><span class="elementpress-timer-count">%-D </span><span class="elementpress-timer-title">' + s + '</span></div></div></div><div class="elementpress-timer-container elementpress-hours"><div class="elementpress-inner-container"><div class="elementpress-timer-content"><span class="elementpress-timer-count">%H </span><span class="elementpress-timer-title">' + n + '</span></div></div></div><div class="elementpress-timer-container elementpress-minutes"><div class="elementpress-inner-container"><div class="elementpress-timer-content"><span class="elementpress-timer-count">%M </span><span class="elementpress-timer-title">' + i + '</span></div></div></div><div class="elementpress-timer-container elementpress-seconds"><div class="elementpress-inner-container"><div class="elementpress-timer-content"><span class="elementpress-timer-count">%S </span><span class="elementpress-timer-title">' + a + "</span></div></div></div>")) }).on("finish.countdown", function() { t(this).html(r + "<br/>" + l) })
            }), n.each(function() {
                var e = t(this),
                    o = t(this).data("epress-countdown"),
                    n = t(this).data("date-epress-hour"),
                    i = t(this).data("date-epress-minute"),
                    a = t(this).data("date-epress-second"),
                    s = t(this).data("date-epress-day"),
                    r = (t(this).data("date-epress-week"), t(this).data("finish-title")),
                    l = t(this).data("finish-content");
                e.theFinalCountdown(o, function(e) { t(this).html(e.strftime(' <div class="elementpress-timer-container elementpress-days"><span class="elementpress-timer-count">%-D </span><span class="elementpress-timer-title">' + s + '</span></div><div class="elementpress-timer-container elementpress-hours"><span class="elementpress-timer-count">%H </span><span class="elementpress-timer-title">' + n + '</span></div><div class="elementpress-timer-container elementpress-minutes"><span class="elementpress-timer-count">%M </span><span class="elementpress-timer-title">' + i + '</span></div><div class="elementpress-timer-container elementpress-seconds"><span class="elementpress-timer-count">%S </span><span class="elementpress-timer-title">' + a + "</span></div>")) }).on("finish.countdown", function() { t(this).html(r + "<br/>" + l) })
            }), i.each(function() {
                var e = t(this),
                    o = t(this).data("epress-countdown"),
                    n = t(this).data("date-epress-hour"),
                    i = t(this).data("date-epress-minute"),
                    a = t(this).data("date-epress-second"),
                    s = t(this).data("date-epress-day"),
                    r = (t(this).data("date-epress-week"), t(this).data("finish-title")),
                    l = t(this).data("finish-content");
                e.theFinalCountdown(o, function(e) { t(this).html(e.strftime(' <div class="elementpress-timer-container elementpress-days"><div class="elementpress-timer-content"><div class="elementpress-inner-container"><span class="elementpress-timer-count">%-D </span><span class="elementpress-timer-title">' + s + '</span></div></div></div><div class="elementpress-timer-container elementpress-hours"><div class="elementpress-timer-content"><div class="elementpress-inner-container"><span class="elementpress-timer-count">%H </span><span class="elementpress-timer-title">' + n + '</span></div></div></div><div class="elementpress-timer-container elementpress-minutes"><div class="elementpress-timer-content"><div class="elementpress-inner-container"><span class="elementpress-timer-count">%M </span><span class="elementpress-timer-title">' + i + '</span></div></div></div><div class="elementpress-timer-container elementpress-seconds"><div class="elementpress-timer-content"><div class="elementpress-inner-container"><span class="elementpress-timer-count">%S </span><span class="elementpress-timer-title">' + a + "</span></div></div></div>")) }).on("finish.countdown", function() { t(this).html(r + "<br/>" + l) })
            }), a.each(function() {
                var e = t(this),
                    o = t(this).data("epress-countdown"),
                    n = t(this).data("date-epress-hour"),
                    i = t(this).data("date-epress-minute"),
                    a = t(this).data("date-epress-second"),
                    s = t(this).data("date-epress-day"),
                    r = (t(this).data("date-epress-week"), t(this).data("finish-title")),
                    l = t(this).data("finish-content");
                e.theFinalCountdown(o, function(e) { t(this).html(e.strftime(' <div class="elementpress-timer-container elementpress-days"><span class="elementpress-timer-count">%-D </span><span class="elementpress-timer-title">' + s + '</span></div><div class="elementpress-timer-container elementpress-hours"><span class="elementpress-timer-count">%H </span><span class="elementpress-timer-title">' + n + '</span></div><div class="elementpress-timer-container elementpress-minutes"><span class="elementpress-timer-count">%M </span><span class="elementpress-timer-title">' + i + '</span></div><div class="elementpress-timer-container elementpress-seconds"><span class="elementpress-timer-count">%S </span><span class="elementpress-timer-title">' + a + "</span></div>")) }).on("finish.countdown", function() { t(this).html(r + "<br/>" + l), t(this).addClass("elementpress-coundown-finish") })
            }), s.each(function() {
                var e = t(this).data("date-epress-hour"),
                    o = t(this).data("date-epress-minute"),
                    n = t(this).data("date-epress-second"),
                    i = t(this).data("date-epress-day"),
                    a = t(this).data("date-epress-week"),
                    r = t(this).data("countdown"),
                    l = t(this).data("finish-title"),
                    d = t(this).data("finish-content"),
                    c = { "elementpress-wks": a, "elementpress-days": i, "elementpress-hrs": e, "elementpress-mins": o, "elementpress-secs": n },
                    p = ["elementpress-wks", "elementpress-days", "elementpress-hrs", "elementpress-mins", "elementpress-secs"],
                    m = new Date(r),
                    h = _.template('<div class="elementpress-time <%= label %>"><span class="elementpress-count elementpress-curr elementpress-top"><%= curr %></span><span class="elementpress-count elementpressxt elementpress-top"><%= next %></span><span class="elementpress-count elementpressxt elementpress-bottom"><%= next %></span><span class="elementpress-count elementpress-curr elementpress-bottom"><%= curr %></span><span class="elementpress-label"><%= labelD.length < 6 ? labelD : labelD.substr(0, 3)  %></span></div>'),
                    u = "00:00:00:00:00",
                    f = "00:00:00:00:00",
                    v = /([0-9]{2})/gi,
                    y = s;

                function w(t) {
                    var e = t.match(v),
                        o = {};
                    return p.forEach(function(t, n) { o[t] = e[n] }), o
                }
                var b = w(u);
                p.forEach(function(t, e) { y.append(h({ curr: b[t], next: b[t], label: t, labelD: c[t] })) }), y.theFinalCountdown(m, function(t) {
                    var e, o = t.strftime("%w:%d:%H:%M:%S");
                    o !== f && (u = f, f = o, function(t, e) { var o = []; return p.forEach(function(n) { t[n] !== e[n] && o.push(n) }), o }((e = { curr: w(u), next: w(f) }).curr, e.next).forEach(function(t) {
                        var o = ".%s".replace(/%s/, t),
                            n = y.find(o);
                        n.removeClass("elementpress-flip"), n.find(".elementpress-curr").text(e.curr[t]), n.find(".elementpressxt").text(e.next[t]), _.delay(function(t) { t.addClass("elementpress-flip") }, 50, n)
                    }))
                }).on("finish.countdown", function() { t(this).html(l + "<br/>" + d) })
            })
        },
        Client_Logo: function(e) {
            e.find(".elementpress-clients-slider").each(function() {
                var e = t(this).data("slidestoshowtablet"),
                    o = t(this).data("slidestoscroll_tablet"),
                    n = t(this).data("slidestoshowmobile"),
                    i = t(this).data("slidestoscroll_mobile"),
                    a = "yes" === t(this).data("show_arrow"),
                    s = "yes" === t(this).data("show_dot"),
                    r = "yes" === t(this).data("autoplay");
                t(this).data("data-center_mode");
                t(this).not(".slick-initialized").slick({ slidesToShow: "undefined" !== t(this).data("slidestoshow") ? t(this).data("slidestoshow") : 4, slidesToScroll: "undefined" !== t(this).data("slidestoscroll") ? t(this).data("slidestoscroll") : 4, autoplay: "undefined" === t(this).data("autoplay") || r, autoplaySpeed: "undefined" !== t(this).data("speed") ? t(this).data("speed") : 1e3, arrows: "undefined" === t(this).data("show_arrow") || a, dots: "undefined" === t(this).data("show_dot") || s, pauseOnHover: "yes" == t(this).data("pause_on_hover"), prevArrow: "undefined" !== t(this).data("left_icon") ? '<button type="button" class="slick-prev"><i class="' + t(this).data("left_icon") + '"></i></button>' : '<button type="button" class="slick-prev"><i class="icon icon-left-arrow2"></i></button>', nextArrow: "undefined" !== t(this).data("right_icon") ? '<button type="button" class="slick-next"><i class="' + t(this).data("right_icon") + '"></i></button>' : '<button type="button" class="slick-next"><i class="icon icon-right-arrow2"></i></button>', rows: "undefined" !== t(this).data("rows") ? t(this).data("rows") : 1, vertical: "yes" == t(this).data("vertical_style"), infinite: "undefined" === t(this).data("autoplay") || r, responsive: [{ breakpoint: 1024, settings: { slidesToShow: e, slidesToScroll: o } }, { breakpoint: 600, settings: { slidesToShow: e, slidesToScroll: o } }, { breakpoint: 480, settings: { arrows: !1, slidesToShow: n, slidesToScroll: i } }] })
            })
        },
        Testimonial_Slider: function(e) {
            e.find(".elementpress-testimonial-slider").each(function() {
                var e = t(this).data("slidestoshowtablet"),
                    o = t(this).data("slidestoscroll_tablet"),
                    n = t(this).data("slidestoshowmobile"),
                    i = t(this).data("slidestoscroll_mobile"),
                    a = "yes" === t(this).data("show_arrow"),
                    s = "yes" === t(this).data("show_dot"),
                    r = "yes" === t(this).data("autoplay");
                t(this).not(".slick-initialized").slick({ slidesToShow: "undefined" !== t(this).data("slidestoshow") ? t(this).data("slidestoshow") : 1, slidesToScroll: "undefined" !== t(this).data("slidestoscroll") ? t(this).data("slidestoscroll") : 1, autoplay: "undefined" === t(this).data("autoplay") || r, autoplaySpeed: "undefined" !== t(this).data("speed") ? t(this).data("speed") : 1e3, arrows: "undefined" === t(this).data("show_arrow") || a, dots: "undefined" === t(this).data("show_dot") || s, pauseOnHover: "yes" == t(this).data("pause_on_hover"), prevArrow: "undefined" !== t(this).data("left_icon") ? '<button type="button" class="slick-prev"><i class="' + t(this).data("left_icon") + '"></i></button>' : '<button type="button" class="slick-prev"><i class="icon icon-left-arrow2"></i></button>', nextArrow: "undefined" !== t(this).data("right_icon") ? '<button type="button" class="slick-next"><i class="' + t(this).data("right_icon") + '"></i></button>' : '<button type="button" class="slick-next"><i class="icon icon-right-arrow2"></i></button>', vertical: "yes" == t(this).data("vertical_style"), infinite: "undefined" === t(this).data("autoplay") || r, responsive: [{ breakpoint: 1024, settings: { slidesToShow: e, slidesToScroll: o } }, { breakpoint: 600, settings: { slidesToShow: e, slidesToScroll: o } }, { breakpoint: 480, settings: { arrows: !1, slidesToShow: n, slidesToScroll: i } }] })
            })
        },
        Image_Comparison: function(t) {
            var e = t.find(".image-comparison-container"),
                o = t.find(".image-comparison-container-vertical"),
                n = (c = e).data("offset"),
                i = c.data("overlay"),
                a = c.data("label_before"),
                s = c.data("label_after"),
                r = c.data("move_with_handle_only"),
                l = c.data("move_slider_on_hover"),
                d = c.data("click_to_move");
            e.twentytwenty({ before_label: a, after_label: s, default_offset_pct: n, no_overlay: i, move_slider_on_hover: l, move_with_handle_only: r, click_to_move: d });
            var c;
            n = (c = o).data("offset"), i = c.data("overlay"), a = c.data("label_before"), s = c.data("label_after"), l = c.data("move_slider_on_hover"), d = c.data("click_to_move");
            o.twentytwenty({ orientation: "vertical", before_label: a, after_label: s, default_offset_pct: n, no_overlay: i, move_slider_on_hover: l, move_with_handle_only: r, click_to_move: d })
        },
        Piechart: function(e) {
            var o = e.find(".colorful-chart");
            o.length > 0 && o.each(function(e, o) {
                var n, i = t(o).data("color"),
                    a = t(o).data("linewidth"),
                    s = t(o).data("pie_color_style"),
                    r = t(o).data("gradientcolor1"),
                    l = t(o).data("gradientcolor2"),
                    d = t(o).data("barbg");
                n = "gradient" === s ? { gradientChart: !0, barColor: r, gradientColor1: l, gradientColor2: r, lineWidth: a, trackColor: d } : { lineWidth: a, barColor: i, trackColor: d }, t(o).myChart(n)
            })
        },
        Gallery: function(e) {
            var o = e.find(".epress_gallery_grid"),
                n = o.data("gallerycol");
            if (o.length > 0) {
                var i = function() {
                    var e, i, a;
                    o.isotope({
                        resizable: !1,
                        itemSelector: ".epress_gallery_grid_item",
                        masonry: {
                            columnWidth: (a = o.width(), a > 1024 ? e = parseInt(n.desktop, 10) : a > 768 && (e = parseInt(n.tablet, 10)), i = Math.floor(a / e), o.find(".epress_gallery_grid_item").each(function() {
                                var e = t(this),
                                    o = e.attr("class").match(/epress_gallery_grid_item-w(\d)/),
                                    n = o ? i * o[1] : i;
                                e.css({ width: n })
                            }), i),
                            gutterWidth: 0
                        }
                    })
                };
                i(), t(window).on("resize load", i), e.find(".filter-button-wraper .option-set").find("a").on("click", function() {
                    var e = t(this),
                        n = e.parents(".option-set");
                    n.find(".selected").removeClass("selected"), e.addClass("selected");
                    var i = {},
                        a = n.attr("data-option-key"),
                        s = e.attr("data-option-value");
                    return s = "false" !== s && s, i[a] = s, "layoutMode" === a && "function" == typeof changeLayoutMode ? changeLayoutMode(e, i) : o.isotope(i), !1
                })
            }
            var a = e.find(".epress-gallery-portfolio-tilt"),
                s = "yes" === t(a).data("tilt-glare");
            t(a).tilt({ easing: "cubic-bezier(.03,.98,.52,.99)", transition: !0, glare: s })
        },
        MotionText: function(e) {
            e.find(".epress_char_based .epress_motion_text").each(function() {
                var e = t(this);
                for (let t = 0; t < e.length; t++) {
                    var o = e[t],
                        n = o.innerHTML;
                    n = n.trim();
                    var i = "",
                        a = parseInt(e.attr("epress-animation-delay")),
                        s = a;
                    for (let e = 0; e < n.length; e++) "" != n[e] ? (i += `<span class="epress-letter" style="animation-delay:${a}ms; -moz-animation-delay:${a}ms; -webkit-animation-delay:${a}ms;">${n[e]}</span>`, a += s) : i += n[t];
                    o.innerHTML = i
                }
            })
        },
        TimeLine: function(e) {
            var o = e.find(".horizantal-timeline");
            o.length > 0 && o.find(".content-group").each(function(e, o) { t(o).on("mouseenter", function() { t(o).parents(".single-timeline").hasClass("hover") ? t(o).parents(".single-timeline").removeClass("hover") : (t(o).parents(".single-timeline").addClass("hover"), t(o).parents(".single-timeline").nextAll().removeClass("hover"), t(o).parents(".single-timeline").prevAll().removeClass("hover")) }) })
        },
        PostTab: function(t) {
            if (t.find(".hover--active").length > 0) {
                var e = t.find(".hover--active").attr("data-post-tab-event");
                t.find(".hover--active").tab({ trigger_event_type: e })
            }
        },
        Hotspot: function(t) { t.find('[data-toggle="tooltip"]').length > 0 && t.find('[data-toggle="tooltip"]').tooltip() },
        Header_Search: function(t) { t.find(".epress-modal-popup").length > 0 && t.find(".epress-modal-popup").magnificPopup({ type: "inline", fixedContentPos: !1, fixedBgPos: !0, overflowY: "auto", closeBtnInside: !1, callbacks: { beforeOpen: function() { this.st.mainClass = "my-mfp-slide-bottom epress-promo-popup" } } }) },
        Header_Off_Canvas: function(e) { e.find(".epress-sidebar-group").length > 0 && (e.find(".epress_offcanvas-sidebar").on("click", function(t) { t.preventDefault(), t.stopPropagation(), e.find(".epress-sidebar-group").addClass("epress_isActive") }), e.find(".epress_close-side-widget").on("click", function(t) { t.preventDefault(), e.find(".epress-sidebar-group").removeClass("epress_isActive") }), t("body").on("click", function(t) { e.find(".epress-sidebar-group").removeClass("epress_isActive") }), e.find(".epress-sidebar-widget").on("click", function(t) { t.stopPropagation() })) }
    };
    t(window).on("elementor/frontend/init", o.init);
    var n = elementorFrontend.Module.extend({
        bindEvents: function() { elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + "epress_sticky", "resize", this.run) },
        unbindEvents: function() { elementorFrontend.removeListeners(this.getUniqueHandlerID() + "epress_sticky", "resize", this.run) },
        isActive: function() { return void 0 !== this.$element.data("epress_sticky") },
        activate: function() {
            var t = this.getElementSettings(),
                e = { to: t.epress_sticky, offset: t.epress_sticky_offset.size, effectsOffset: t.epress_sticky_effect_offset.size, classes: { sticky: "epress-sticky", stickyActive: "epress-sticky--active epress-section--handles-inside", stickyEffects: "epress-sticky--effects", spacer: "epress-sticky__spacer" } },
                o = elementorFrontend.getElements("$wpAdminBar");
            t.epress_sticky_parent && (e.parent = ".epress-widget-wrap"), o.length && "top" === t.epress_sticky && "fixed" === o.css("position") && (e.offset += o.height()), this.$element.epress_sticky(e)
        },
        deactivate: function() { this.isActive() && this.$element.epress_sticky("destroy") },
        run: function(t) { if (this.getElementSettings("epress_sticky")) { var e = elementorFrontend.getCurrentDeviceMode(); - 1 !== this.getElementSettings("epress_sticky_on").indexOf(e) ? !0 === t ? this.reactivate() : this.isActive() || this.activate() : this.deactivate() } else this.deactivate() },
        reactivate: function() { this.deactivate(), this.activate() },
        onElementChange: function(t) {-1 !== ["epress_sticky", "epress_sticky_on"].indexOf(t) && this.run(!0), -1 !== ["epress_sticky_offset", "epress_sticky_effects_offset", "epress_sticky_parent"].indexOf(t) && this.reactivate() },
        onInit: function() { elementorFrontend.Module.prototype.onInit.apply(this, arguments), this.run() },
        onDestroy: function() { elementorFrontend.Module.prototype.onDestroy.apply(this, arguments), this.deactivate() }
    })
}(jQuery, window.elementorFrontend);