Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) - Version 2.17.0

Version Description

  • 23 December 2020 =

  • New: Widget equal height feature

  • New: Custom arrow icon control in Slider widget

  • New: Custom arrow icon control in Carousel widget

  • New: Custom arrow icon control in Horizontal timeline widget

  • New: Slider arrow size control

  • New: Carousel arrow size control

  • New: Horizontal timeline arrow size control

  • New: Horizontal timeline arrow horizontal position control

  • Tweak: Updated Horizontal timeline widget default style

  • Tweak: Added % unit in Slider arrow position controls

  • Tweak: Added % unit in Carousel arrow position controls

  • Tweak: Added % unit in Horizontal timline arrow position control

  • Tweak: Separated Floating effects JS handler from main JS file

  • Fix: Slider arrow not hiding issue

  • Fix: Carousel arrow not hiding issue

Download this release

Release Info

Developer thehappymonster
Plugin Icon 128x128 Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget)
Version 2.17.0
Comparing to
See all releases

Code changes from version 2.16.1 to 2.17.0

assets/admin/js/editor.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";window.haHasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},window.haGetFeatureLabel=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},window.haGetTranslated=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.haGetButtonWithIcon=function(e,t){var n,o,i,r,a,s=[],d={};if(t=t||{},t=_.defaults(t,{oldIcon:"button_icon",iconPos:"button_icon_position",newIcon:"button_selected_icon",text:"button_text",link:"button_link",class:"ha-btn ha-btn--link",textClass:"ha-btn-text"}),_.isObject(e)){d=e.model.attributes.settings.toJSON();var l=_.isUndefined(d[t.text])?"":d[t.text],c=!(_.isUndefined(d[t.oldIcon])||!d[t.oldIcon]),p=!(_.isUndefined(d[t.newIcon])||!_.isObject(d[t.newIcon])||!d[t.newIcon].value);if(l||p||c)return haHasIconLibrary()&&(n=elementor.helpers.renderIcon(e,d[t.newIcon],{"aria-hidden":!0,class:"ha-btn-icon"},"i","object"),o=elementor.helpers.isIconMigrated(d,t.newIcon)),e.addInlineEditingAttributes(t.text,"none"),e.addRenderAttribute(t.text,"class",t.textClass),e.addRenderAttribute("button","class",t.class),e.addRenderAttribute("button","href",d[t.link].url),(p||c)&&(haHasIconLibrary()&&n&&n.rendered&&(!c||o)?i="svg"===d[t.newIcon].library?'<span class="ha-btn-icon ha-btn-icon--svg">'+n.value+"</span>":n.value:c&&(i='<i class="ha-btn-icon '+t.oldIcon+'" aria-hidden="true"></i>')),!l||p||c?l||!p&&!c?l&&(p||c)&&("before"===d[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),r=i,a="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),a=i,r="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"),s=["<a "+e.getRenderAttributeString("button")+">",r,a,"</a>"]):s=["<a "+e.getRenderAttributeString("button")+">",i,"</a>"]:s=["<a "+e.getRenderAttributeString("button")+">","<span "+e.getRenderAttributeString(t.text)+">",l,"</span>","</a>"],s.join("")}};var t;elementor.modules.controls.Select2;t=function(){var t=e("#happy-addons-editor-dark-css");t.length||(t=e("<link>",{id:"happy-addons-editor-dark-css",rel:"stylesheet",href:HappyAddonsEditor.darkStylesheetURL})),elementor.settings.editorPreferences.model.on("change:ui_theme",function(e,n){if("light"===n)return void t.remove();t.attr("media","auto"===n?"(prefers-color-scheme: dark)":"").appendTo(elementorCommon.elements.$body)})},elementor.on("panel:init",function(){if(e("#elementor-panel-elements-search-input").on("keyup",_.debounce(function(){e("#elementor-panel-elements").find(".hm").parents(".elementor-element").addClass("is-ha-widget")},100)),"undefined"!=typeof $e||null!==$e){var n={callback:function(){var e=elementor.settings.page.model.attributes.ha_grid;""===e?elementor.settings.page.model.setExternalChange("ha_grid","yes"):"yes"===e&&elementor.settings.page.model.setExternalChange("ha_grid","")}};$e.shortcuts.register("ctrl+shift+g",n),$e.shortcuts.register("cmd+shift+g",n)}t()}),elementor.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.proWidgets))return e;var t,n,o=e.elements.view,i=e.categories.view,r=e.elements.options.collection,a=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){r.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),r.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=a.findIndex({name:"happy_addons_category"}),n&&a.add({name:"happy_addons_pro_category",title:"Happy Addons Pro",icon:"hm hm-happyaddons",defaultActive:!1,items:s},{at:n+1}),t={className:function(){var e=this.constructor.__super__.className.call(this);return!this.isEditable()&&this.isHappyWidget()&&(e+=" ha-element--promotion"),e},isHappyWidget:function(){return 0===this.model.get("name").indexOf("ha-")},onMouseDown:function(){if(!this.isHappyWidget())return elementor.promotion.dialog.buttons[0].removeClass("ha-btn--promotion"),void this.constructor.__super__.onMouseDown.call(this);elementor.promotion.dialog.buttons[0].addClass("ha-btn--promotion"),elementor.promotion.showDialog({headerMessage:haGetTranslated("promotionDialogHeader",[this.model.get("title")]),message:haGetTranslated("promotionDialogMessage",[this.model.get("title")]),top:"-7",element:this.el,actionURL:"https://demo.happyaddons.com/"})}},e.elements.view=o.extend({childView:o.prototype.childView.extend(t)}),e.categories.view=i.extend({childView:i.prototype.childView.extend({childView:i.prototype.childView.prototype.childView.extend(t)})}),e})}(jQuery);
1
+ !function(e){"use strict";window.haHasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},window.haGetFeatureLabel=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},window.haGetTranslated=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.haGetButtonWithIcon=function(e,t){var n,o,i,r,a,s=[],d={};if(t=t||{},t=_.defaults(t,{oldIcon:"button_icon",iconPos:"button_icon_position",newIcon:"button_selected_icon",text:"button_text",link:"button_link",class:"ha-btn ha-btn--link",textClass:"ha-btn-text"}),_.isObject(e)){d=e.model.attributes.settings.toJSON();var l=_.isUndefined(d[t.text])?"":d[t.text],c=!(_.isUndefined(d[t.oldIcon])||!d[t.oldIcon]),p=!(_.isUndefined(d[t.newIcon])||!_.isObject(d[t.newIcon])||!d[t.newIcon].value);if(l||p||c)return haHasIconLibrary()&&(n=elementor.helpers.renderIcon(e,d[t.newIcon],{"aria-hidden":!0,class:"ha-btn-icon"},"i","object"),o=elementor.helpers.isIconMigrated(d,t.newIcon)),e.addInlineEditingAttributes(t.text,"none"),e.addRenderAttribute(t.text,"class",t.textClass),e.addRenderAttribute("button","class",t.class),e.addRenderAttribute("button","href",d[t.link].url),(p||c)&&(haHasIconLibrary()&&n&&n.rendered&&(!c||o)?i="svg"===d[t.newIcon].library?'<span class="ha-btn-icon ha-btn-icon--svg">'+n.value+"</span>":n.value:c&&(i='<i class="ha-btn-icon '+t.oldIcon+'" aria-hidden="true"></i>')),!l||p||c?l||!p&&!c?l&&(p||c)&&("before"===d[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),r=i,a="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),a=i,r="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"),s=["<a "+e.getRenderAttributeString("button")+">",r,a,"</a>"]):s=["<a "+e.getRenderAttributeString("button")+">",i,"</a>"]:s=["<a "+e.getRenderAttributeString("button")+">","<span "+e.getRenderAttributeString(t.text)+">",l,"</span>","</a>"],s.join("")}};var t,n=elementor.modules.controls.Select2;t=function(){var t=e("#happy-addons-editor-dark-css");t.length||(t=e("<link>",{id:"happy-addons-editor-dark-css",rel:"stylesheet",href:HappyAddonsEditor.darkStylesheetURL})),elementor.settings.editorPreferences.model.on("change:ui_theme",function(e,n){if("light"===n)return void t.remove();t.attr("media","auto"===n?"(prefers-color-scheme: dark)":"").appendTo(elementorCommon.elements.$body)})},elementor.on("panel:init",function(){if(e("#elementor-panel-elements-search-input").on("keyup",_.debounce(function(){e("#elementor-panel-elements").find(".hm").parents(".elementor-element").addClass("is-ha-widget")},100)),"undefined"!=typeof $e||null!==$e){var n={callback:function(){var e=elementor.settings.page.model.attributes.ha_grid;""===e?elementor.settings.page.model.setExternalChange("ha_grid","yes"):"yes"===e&&elementor.settings.page.model.setExternalChange("ha_grid","")}};$e.shortcuts.register("ctrl+shift+g",n),$e.shortcuts.register("cmd+shift+g",n)}t()}),elementor.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.proWidgets))return e;var t,n,o=e.elements.view,i=e.categories.view,r=e.elements.options.collection,a=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){r.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),r.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=a.findIndex({name:"happy_addons_category"}),n&&a.add({name:"happy_addons_pro_category",title:"Happy Addons Pro",icon:"hm hm-happyaddons",defaultActive:!1,items:s},{at:n+1}),t={className:function(){var e=this.constructor.__super__.className.call(this);return!this.isEditable()&&this.isHappyWidget()&&(e+=" ha-element--promotion"),e},isHappyWidget:function(){return 0===this.model.get("name").indexOf("ha-")},onMouseDown:function(){if(!this.isHappyWidget())return elementor.promotion.dialog.buttons[0].removeClass("ha-btn--promotion"),void this.constructor.__super__.onMouseDown.call(this);elementor.promotion.dialog.buttons[0].addClass("ha-btn--promotion"),elementor.promotion.showDialog({headerMessage:haGetTranslated("promotionDialogHeader",[this.model.get("title")]),message:haGetTranslated("promotionDialogMessage",[this.model.get("title")]),top:"-7",element:this.el,actionURL:"https://demo.happyaddons.com/"})}},e.elements.view=o.extend({childView:o.prototype.childView.extend(t)}),e.categories.view=i.extend({childView:i.prototype.childView.extend({childView:i.prototype.childView.prototype.childView.extend(t)})}),e});var o=n.extend({ALLOW_RERENDER:!0,getSelect2DefaultOptions:function(){var t=n.prototype.getSelect2DefaultOptions.apply(this,arguments);if(this.container&&"section"===this.container.type){var o=elementor.widgetsCache||elementor.config.widgets,i={},r=[];this.container.children.forEach(function(t){t.view.$childViewContainer.children("[data-widget_type]").each(function(t,n){var r=e(n).data("widget_type"),r=r.slice(0,r.lastIndexOf(".")),a=!_.isUndefined(o[r])&&o[r];a&&(i[a.widget_type]=a.title+" ("+a.widget_type+")")})}),_.each(i,function(e,t){r.push({id:t,text:e})}),t.data=r,this.model.set("options",i)}return t},onRender:function(){if(n.prototype.onRender.apply(this,arguments),this.container&&"section"===this.container.type&&this.ALLOW_RERENDER){var e=this,t=setTimeout(function(){e.render(),clearTimeout(t)},20);this.ALLOW_RERENDER=!1}}});elementor.addControlView("widget-list",o)}(jQuery);
assets/css/main.css CHANGED
@@ -1,14 +1,14 @@
1
  .ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}
2
  .ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em;fill:currentColor}
3
  .ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);width:100%;height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card.ha-card--left,.ha-card.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--mobile-top .ha-card-figure{display:inline-block}.ha-card--mobile-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--mobile-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}
4
- .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
5
  .ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
6
  .ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
7
  .ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
8
  .ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
9
  .ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
10
  .ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}
11
- .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#34485d;color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#34485d;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.15)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;padding:0;width:40px;height:40px;border:1px solid #ddd;border-radius:50%;background-color:#ddd;color:#8c8c8c;text-align:center;font-size:12px;line-height:40px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{background-color:#fff;color:#8c8c8c}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
12
  .ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}
13
  .ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper{border-radius:inherit}
14
  .ha-image-grid__wrap{overflow:hidden;margin-right:calc(-1*var(--image-grid-right,10px));margin-left:calc(-1*var(--image-grid-left,10px))}.ha-image-grid__item{display:block;float:left;overflow:hidden;width:calc(100%/var(--image-grid-column,4));outline:none;border:10px solid transparent;text-decoration:none}.ha-image-grid__item img{display:block;width:100%;border-radius:inherit;-webkit-transition:all .25s;transition:all .25s;-o-object-fit:cover;object-fit:cover}.ha-image-grid--even .ha-image-grid__item{height:250px}.ha-image-grid--even .ha-image-grid__item img{height:100%}
@@ -23,7 +23,7 @@
23
  .ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}
24
  .ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}
25
  .ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}
26
- .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;text-align:center;font-size:12px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{content:""}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:40px;height:40px;line-height:40px}.ha-slider .slick-next,.ha-slider .slick-prev{width:50px;height:50px;line-height:50px}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
27
  .ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}
28
  .ha-social-share .ha-share-buttons{display:block;padding:0;list-style:none}.ha-social-share .ha-share-buttons .ha-share-button{display:inline-block;margin:0 10px 0 0}.ha-social-share .ha-share-buttons .ha-share-button:last-child{margin:0}.ha-social-share .ha-share-button .ha-share-network{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:15px 20px;background-color:#5636d1;color:#fff;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-social-share .ha-share-button .ha-share-network i{width:1em;height:1em}.ha-social-share .ha-share-button .ha-share-network:hover{background-color:#e2498a;color:#fff}.ha-social-share .ha-share-label{padding-left:10px}.ha-social-share.ha-separator-yes .ha-share-network i{margin-right:10px}.ha-social-share.ha-separator-yes .ha-share-label{border-left:1px solid #fff}@media (max-width:767px){.ha-social-share .ha-share-buttons .ha-share-button{margin:0 0 10px}}
29
  .ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}
1
  .ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}
2
  .ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em;fill:currentColor}
3
  .ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);width:100%;height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card.ha-card--left,.ha-card.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--mobile-top .ha-card-figure{display:inline-block}.ha-card--mobile-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--mobile-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}
4
+ .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
5
  .ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
6
  .ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
7
  .ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
8
  .ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
9
  .ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
10
  .ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}
11
+ .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#efefef;color:#333}.ha-horizontal-timeline .ha-horizontal-timeline-icon>svg,.ha-horizontal-timeline .slick-next.slick-arrow>svg,.ha-horizontal-timeline .slick-prev.slick-arrow>svg{width:auto;height:1em;fill:currentColor}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#efefef;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.08)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;width:2.66em;height:2.66em;border:1px solid #dadada;border-radius:50%;background-color:#fff;color:#8c8c8c;font-size:15px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{border-color:#222;background-color:#222;color:#fff}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{display:none;content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
12
  .ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}
13
  .ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper{border-radius:inherit}
14
  .ha-image-grid__wrap{overflow:hidden;margin-right:calc(-1*var(--image-grid-right,10px));margin-left:calc(-1*var(--image-grid-left,10px))}.ha-image-grid__item{display:block;float:left;overflow:hidden;width:calc(100%/var(--image-grid-column,4));outline:none;border:10px solid transparent;text-decoration:none}.ha-image-grid__item img{display:block;width:100%;border-radius:inherit;-webkit-transition:all .25s;transition:all .25s;-o-object-fit:cover;object-fit:cover}.ha-image-grid--even .ha-image-grid__item{height:250px}.ha-image-grid--even .ha-image-grid__item img{height:100%}
23
  .ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}
24
  .ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}
25
  .ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}
26
+ .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;font-size:15px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{display:none;content:""}.ha-carousel .slick-next>svg,.ha-carousel .slick-prev>svg,.ha-slider .slick-next>svg,.ha-slider .slick-prev>svg{width:auto;height:1em;fill:currentColor}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:2.66em;height:2.66em}.ha-slider .slick-next,.ha-slider .slick-prev{width:3.33em;height:3.33em}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
27
  .ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}
28
  .ha-social-share .ha-share-buttons{display:block;padding:0;list-style:none}.ha-social-share .ha-share-buttons .ha-share-button{display:inline-block;margin:0 10px 0 0}.ha-social-share .ha-share-buttons .ha-share-button:last-child{margin:0}.ha-social-share .ha-share-button .ha-share-network{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:15px 20px;background-color:#5636d1;color:#fff;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-social-share .ha-share-button .ha-share-network i{width:1em;height:1em}.ha-social-share .ha-share-button .ha-share-network:hover{background-color:#e2498a;color:#fff}.ha-social-share .ha-share-label{padding-left:10px}.ha-social-share.ha-separator-yes .ha-share-network i{margin-right:10px}.ha-social-share.ha-separator-yes .ha-share-label{border-left:1px solid #fff}@media (max-width:767px){.ha-social-share .ha-share-buttons .ha-share-button{margin:0 0 10px}}
29
  .ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}
assets/css/main.min.css CHANGED
@@ -1,14 +1,14 @@
1
  .ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}
2
  .ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em;fill:currentColor}
3
  .ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);width:100%;height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card.ha-card--left,.ha-card.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--mobile-top .ha-card-figure{display:inline-block}.ha-card--mobile-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--mobile-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}
4
- .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
5
  .ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
6
  .ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
7
  .ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
8
  .ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
9
  .ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
10
  .ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}
11
- .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#34485d;color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#34485d;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.15)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;padding:0;width:40px;height:40px;border:1px solid #ddd;border-radius:50%;background-color:#ddd;color:#8c8c8c;text-align:center;font-size:12px;line-height:40px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{background-color:#fff;color:#8c8c8c}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
12
  .ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}
13
  .ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper{border-radius:inherit}
14
  .ha-image-grid__wrap{overflow:hidden;margin-right:calc(-1*var(--image-grid-right,10px));margin-left:calc(-1*var(--image-grid-left,10px))}.ha-image-grid__item{display:block;float:left;overflow:hidden;width:calc(100%/var(--image-grid-column,4));outline:none;border:10px solid transparent;text-decoration:none}.ha-image-grid__item img{display:block;width:100%;border-radius:inherit;-webkit-transition:all .25s;transition:all .25s;-o-object-fit:cover;object-fit:cover}.ha-image-grid--even .ha-image-grid__item{height:250px}.ha-image-grid--even .ha-image-grid__item img{height:100%}
@@ -23,7 +23,7 @@
23
  .ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}
24
  .ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}
25
  .ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}
26
- .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;text-align:center;font-size:12px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{content:""}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:40px;height:40px;line-height:40px}.ha-slider .slick-next,.ha-slider .slick-prev{width:50px;height:50px;line-height:50px}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
27
  .ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}
28
  .ha-social-share .ha-share-buttons{display:block;padding:0;list-style:none}.ha-social-share .ha-share-buttons .ha-share-button{display:inline-block;margin:0 10px 0 0}.ha-social-share .ha-share-buttons .ha-share-button:last-child{margin:0}.ha-social-share .ha-share-button .ha-share-network{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:15px 20px;background-color:#5636d1;color:#fff;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-social-share .ha-share-button .ha-share-network i{width:1em;height:1em}.ha-social-share .ha-share-button .ha-share-network:hover{background-color:#e2498a;color:#fff}.ha-social-share .ha-share-label{padding-left:10px}.ha-social-share.ha-separator-yes .ha-share-network i{margin-right:10px}.ha-social-share.ha-separator-yes .ha-share-label{border-left:1px solid #fff}@media (max-width:767px){.ha-social-share .ha-share-buttons .ha-share-button{margin:0 0 10px}}
29
  .ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}
1
  .ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}
2
  .ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em;fill:currentColor}
3
  .ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);width:100%;height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card.ha-card--left,.ha-card.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--mobile-top .ha-card-figure{display:inline-block}.ha-card--mobile-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--mobile-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}
4
+ .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
5
  .ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
6
  .ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
7
  .ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
8
  .ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
9
  .ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
10
  .ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}
11
+ .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#efefef;color:#333}.ha-horizontal-timeline .ha-horizontal-timeline-icon>svg,.ha-horizontal-timeline .slick-next.slick-arrow>svg,.ha-horizontal-timeline .slick-prev.slick-arrow>svg{width:auto;height:1em;fill:currentColor}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#efefef;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.08)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;width:2.66em;height:2.66em;border:1px solid #dadada;border-radius:50%;background-color:#fff;color:#8c8c8c;font-size:15px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{border-color:#222;background-color:#222;color:#fff}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{display:none;content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
12
  .ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}
13
  .ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper{border-radius:inherit}
14
  .ha-image-grid__wrap{overflow:hidden;margin-right:calc(-1*var(--image-grid-right,10px));margin-left:calc(-1*var(--image-grid-left,10px))}.ha-image-grid__item{display:block;float:left;overflow:hidden;width:calc(100%/var(--image-grid-column,4));outline:none;border:10px solid transparent;text-decoration:none}.ha-image-grid__item img{display:block;width:100%;border-radius:inherit;-webkit-transition:all .25s;transition:all .25s;-o-object-fit:cover;object-fit:cover}.ha-image-grid--even .ha-image-grid__item{height:250px}.ha-image-grid--even .ha-image-grid__item img{height:100%}
23
  .ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}
24
  .ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}
25
  .ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}
26
+ .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;font-size:15px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{display:none;content:""}.ha-carousel .slick-next>svg,.ha-carousel .slick-prev>svg,.ha-slider .slick-next>svg,.ha-slider .slick-prev>svg{width:auto;height:1em;fill:currentColor}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:2.66em;height:2.66em}.ha-slider .slick-next,.ha-slider .slick-prev{width:3.33em;height:3.33em}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
27
  .ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}
28
  .ha-social-share .ha-share-buttons{display:block;padding:0;list-style:none}.ha-social-share .ha-share-buttons .ha-share-button{display:inline-block;margin:0 10px 0 0}.ha-social-share .ha-share-buttons .ha-share-button:last-child{margin:0}.ha-social-share .ha-share-button .ha-share-network{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:15px 20px;background-color:#5636d1;color:#fff;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-social-share .ha-share-button .ha-share-network i{width:1em;height:1em}.ha-social-share .ha-share-button .ha-share-network:hover{background-color:#e2498a;color:#fff}.ha-social-share .ha-share-label{padding-left:10px}.ha-social-share.ha-separator-yes .ha-share-network i{margin-right:10px}.ha-social-share.ha-separator-yes .ha-share-label{border-left:1px solid #fff}@media (max-width:767px){.ha-social-share .ha-share-buttons .ha-share-button{margin:0 0 10px}}
29
  .ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}
assets/css/widgets/common.min.css CHANGED
@@ -1 +1 @@
1
- .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
1
+ .ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
assets/css/widgets/horizontal-timeline.min.css CHANGED
@@ -1 +1 @@
1
- .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#34485d;color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#34485d;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.15)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;padding:0;width:40px;height:40px;border:1px solid #ddd;border-radius:50%;background-color:#ddd;color:#8c8c8c;text-align:center;font-size:12px;line-height:40px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{background-color:#fff;color:#8c8c8c}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
1
+ .ha-horizontal-timeline .ha-horizontal-timeline-block{position:relative;padding:30px}.ha-horizontal-timeline .ha-horizontal-timeline-icon-box{position:relative;margin-bottom:35px}.ha-horizontal-timeline .ha-horizontal-timeline-top-inner{position:relative}.ha-horizontal-timeline .ha-horizontal-timeline-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:10px;margin-left:10px;width:48px;height:48px;border-radius:50%;background-color:#efefef;color:#333}.ha-horizontal-timeline .ha-horizontal-timeline-icon>svg,.ha-horizontal-timeline .slick-next.slick-arrow>svg,.ha-horizontal-timeline .slick-prev.slick-arrow>svg{width:auto;height:1em;fill:currentColor}.ha-horizontal-timeline .ha-horizontal-timeline-date{color:#a2a2a2;font-size:14px}.ha-horizontal-timeline .ha-horizontal-timeline-tree{position:absolute;top:50%;left:0;z-index:-5;overflow:hidden;width:150%;height:2px;background:#efefef;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-horizontal-timeline .ha-horizontal-timeline-content,.ha-horizontal-timeline .ha-horizontal-timeline-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-horizontal-timeline .ha-horizontal-timeline-content{position:relative;box-shadow:0 0 20px 0 rgba(0,0,0,.08)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow{position:absolute;bottom:100%;left:25px;box-sizing:content-box;width:15px;height:15px;border-right-color:transparent;border-bottom-color:transparent;box-shadow:0 0 20px 0 rgba(0,0,0,.15);-webkit-transition:inherit;transition:inherit;-webkit-transform:translateY(50%) rotate(45deg);-ms-transform:translateY(50%) rotate(45deg);transform:translateY(50%) rotate(45deg)}.ha-horizontal-timeline .ha-horizontal-timeline-content .ha-horizontal-timeline-arrow::before{display:block;width:100%;height:100%;background-color:#fff;content:"";-webkit-transition:inherit;transition:inherit}.ha-horizontal-timeline .ha-horizontal-timeline-inner{z-index:1;padding:20px;background-color:#fff}.ha-horizontal-timeline .ha-horizontal-timeline-image{margin-bottom:10px}.ha-horizontal-timeline .ha-horizontal-timeline-image img{-o-object-fit:cover;object-fit:cover}.ha-horizontal-timeline .ha-horizontal-timeline-title{margin-top:0;margin-bottom:10px;color:#3c3c3c;font-size:22px}.ha-horizontal-timeline .ha-horizontal-timeline-subtitle{display:block;margin-bottom:20px;color:#999}.ha-horizontal-timeline .ha-horizontal-timeline-description{margin:0;color:#3c3c3c;font-size:16px}.ha-horizontal-timeline .slick-next.slick-arrow,.ha-horizontal-timeline .slick-prev.slick-arrow{top:88px;z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;width:2.66em;height:2.66em;border:1px solid #dadada;border-radius:50%;background-color:#fff;color:#8c8c8c;font-size:15px;opacity:1}.ha-horizontal-timeline .slick-next.slick-arrow:focus,.ha-horizontal-timeline .slick-next.slick-arrow:hover,.ha-horizontal-timeline .slick-prev.slick-arrow:focus,.ha-horizontal-timeline .slick-prev.slick-arrow:hover{border-color:#222;background-color:#222;color:#fff}.ha-horizontal-timeline .slick-next.slick-arrow:before,.ha-horizontal-timeline .slick-prev.slick-arrow:before{display:none;content:""}.ha-horizontal-timeline .slick-prev.slick-arrow{left:-25px}.ha-horizontal-timeline .slick-next.slick-arrow{right:-25px}.ha-horizontal-timeline .slick-disabled{opacity:.7}
assets/css/widgets/slider-carousel.min.css CHANGED
@@ -1 +1 @@
1
- .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;text-align:center;font-size:12px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{content:""}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:40px;height:40px;line-height:40px}.ha-slider .slick-next,.ha-slider .slick-prev{width:50px;height:50px;line-height:50px}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
1
+ .ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;font-size:15px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{display:none;content:""}.ha-carousel .slick-next>svg,.ha-carousel .slick-prev>svg,.ha-slider .slick-next>svg,.ha-slider .slick-prev>svg{width:auto;height:1em;fill:currentColor}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:2.66em;height:2.66em}.ha-slider .slick-next,.ha-slider .slick-prev{width:3.33em;height:3.33em}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}
assets/js/extension-equal-height.js ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function( $ ) {
2
+ 'use strict';
3
+ var $window = $(window),
4
+ debounce = function(func, wait, immediate) {
5
+ var timeout;
6
+ return function() {
7
+ var context = this, args = arguments;
8
+ var later = function() {
9
+ timeout = null;
10
+ if (!immediate) func.apply(context, args);
11
+ };
12
+ var callNow = immediate && !timeout;
13
+ clearTimeout(timeout);
14
+ timeout = setTimeout(later, wait);
15
+ if (callNow) func.apply(context, args);
16
+ };
17
+ };
18
+
19
+ $window.on('elementor/frontend/init', function() {
20
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
21
+ EqualHeightHandler;
22
+
23
+ EqualHeightHandler = ModuleHandler.extend({
24
+ CACHED_ELEMENTS: [],
25
+
26
+ isEqhEnabled: function() {
27
+ return (
28
+ this.getElementSettings( '_ha_eqh_enable' ) === 'yes' &&
29
+ $.fn.matchHeight
30
+ );
31
+ },
32
+
33
+ isDisabledOnDevice: function() {
34
+ var windowWidth = $window.outerWidth(),
35
+ mobileWidth = elementorFrontendConfig.breakpoints.md,
36
+ tabletWidth = elementorFrontendConfig.breakpoints.lg;
37
+
38
+ if (this.getElementSettings('_ha_eqh_disable_on_mobile') && windowWidth < mobileWidth) {
39
+ return true;
40
+ }
41
+
42
+ if (this.getElementSettings('_ha_eqh_disable_on_tablet') && windowWidth >= mobileWidth && windowWidth < tabletWidth) {
43
+ return true;
44
+ }
45
+
46
+ return false;
47
+ },
48
+
49
+ getEqhTo: function() {
50
+ return this.getElementSettings('_ha_eqh_to') || 'widget';
51
+ },
52
+
53
+ getEqhWidgets: function() {
54
+ return this.getElementSettings('_ha_eqh_widget') || [];
55
+ },
56
+
57
+ getTargetElements: function() {
58
+ var _this = this;
59
+
60
+ return this.getEqhWidgets().map(function(widget) {
61
+ return _this.$element.find('.elementor-widget-'+widget + ' .elementor-widget-container');
62
+ });
63
+ },
64
+
65
+ bindEvents: function () {
66
+ if (this.isEqhEnabled()) {
67
+ this.run();
68
+
69
+ $window.on('resize orientationchange', debounce(this.run.bind(this), 80));
70
+ }
71
+ },
72
+
73
+ onElementChange: debounce(function(prop, ele) {
74
+ if (prop.indexOf('_ha_eqh') === -1) {
75
+ return;
76
+ }
77
+
78
+ this.unbindMatchHeight(true);
79
+ this.run();
80
+ }, 100),
81
+
82
+ unbindMatchHeight: function(isCachedOnly) {
83
+ if (isCachedOnly) {
84
+ this.CACHED_ELEMENTS.forEach(function($el) {
85
+ $el.matchHeight({remove: true});
86
+ });
87
+
88
+ this.CACHED_ELEMENTS = [];
89
+ } else {
90
+ this.getTargetElements().forEach(function($el) {
91
+ $el && $el.matchHeight({remove: true});
92
+ });
93
+ }
94
+ },
95
+
96
+ run: function() {
97
+ var _this = this;
98
+
99
+ if (this.isDisabledOnDevice()) {
100
+ this.unbindMatchHeight();
101
+ } else {
102
+ this.getTargetElements().forEach(function($el) {
103
+ if ($el.length) {
104
+ $el.matchHeight({
105
+ byRow: false
106
+ });
107
+
108
+ _this.CACHED_ELEMENTS.push($el);
109
+ }
110
+ });
111
+ }
112
+ },
113
+ });
114
+
115
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/section', function( $scope ) {
116
+ elementorFrontend.elementsHandler.addHandler( EqualHeightHandler, { $element: $scope });
117
+ });
118
+ });
119
+
120
+ }( jQuery ));
assets/js/extension-equal-height.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){"use strict";var t=e(window),n=function(e,t,n){var i;return function(){var o=this,h=arguments,r=function(){i=null,n||e.apply(o,h)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(o,h)}};t.on("elementor/frontend/init",function(){var i,o=elementorModules.frontend.handlers.Base;i=o.extend({CACHED_ELEMENTS:[],isEqhEnabled:function(){return"yes"===this.getElementSettings("_ha_eqh_enable")&&e.fn.matchHeight},isDisabledOnDevice:function(){var e=t.outerWidth(),n=elementorFrontendConfig.breakpoints.md,i=elementorFrontendConfig.breakpoints.lg;return!!(this.getElementSettings("_ha_eqh_disable_on_mobile")&&e<n)||!!(this.getElementSettings("_ha_eqh_disable_on_tablet")&&e>=n&&e<i)},getEqhTo:function(){return this.getElementSettings("_ha_eqh_to")||"widget"},getEqhWidgets:function(){return this.getElementSettings("_ha_eqh_widget")||[]},getTargetElements:function(){var e=this;return this.getEqhWidgets().map(function(t){return e.$element.find(".elementor-widget-"+t+" .elementor-widget-container")})},bindEvents:function(){this.isEqhEnabled()&&(this.run(),t.on("resize orientationchange",n(this.run.bind(this),80)))},onElementChange:n(function(e,t){-1!==e.indexOf("_ha_eqh")&&(this.unbindMatchHeight(!0),this.run())},100),unbindMatchHeight:function(e){e?(this.CACHED_ELEMENTS.forEach(function(e){e.matchHeight({remove:!0})}),this.CACHED_ELEMENTS=[]):this.getTargetElements().forEach(function(e){e&&e.matchHeight({remove:!0})})},run:function(){var e=this;this.isDisabledOnDevice()?this.unbindMatchHeight():this.getTargetElements().forEach(function(t){t.length&&(t.matchHeight({byRow:!1}),e.CACHED_ELEMENTS.push(t))})}}),elementorFrontend.hooks.addAction("frontend/element_ready/section",function(e){elementorFrontend.elementsHandler.addHandler(i,{$element:e})})})}(jQuery);
assets/js/extension-floating-effects.js ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function( $ ) {
2
+ var $window = $(window),
3
+ debounce = function(func, wait, immediate) {
4
+ var timeout;
5
+ return function() {
6
+ var context = this, args = arguments;
7
+ var later = function() {
8
+ timeout = null;
9
+ if (!immediate) func.apply(context, args);
10
+ };
11
+ var callNow = immediate && !timeout;
12
+ clearTimeout(timeout);
13
+ timeout = setTimeout(later, wait);
14
+ if (callNow) func.apply(context, args);
15
+ };
16
+ };
17
+
18
+ $window.on('elementor/frontend/init', function() {
19
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
20
+ FloatingFxHandler;
21
+
22
+ FloatingFxHandler = ModuleHandler.extend({
23
+ bindEvents: function() {
24
+ this.run();
25
+ },
26
+
27
+ getDefaultSettings: function() {
28
+ return {
29
+ direction: 'alternate',
30
+ easing: 'easeInOutSine',
31
+ loop: true,
32
+ targets: this.findElement('.elementor-widget-container').get(0),
33
+ };
34
+ },
35
+
36
+ onElementChange: debounce(function(prop) {
37
+ if (prop.indexOf('ha_floating') !== -1) {
38
+ this.anime && this.anime.restart();
39
+ this.run();
40
+ }
41
+ }, 400),
42
+
43
+ getFxVal: function(key) {
44
+ return this.getElementSettings('ha_floating_fx_' + key);
45
+ },
46
+
47
+ run: function() {
48
+ var config = this.getDefaultSettings();
49
+
50
+ if (this.getFxVal('translate_toggle')) {
51
+ if (this.getFxVal('translate_x.size') || this.getFxVal('translate_x.sizes.to')) {
52
+ config.translateX = {
53
+ value: [this.getFxVal('translate_x.sizes.from') || 0, this.getFxVal('translate_x.size') || this.getFxVal('translate_x.sizes.to')],
54
+ duration: this.getFxVal('translate_duration.size'),
55
+ delay: this.getFxVal('translate_delay.size') || 0
56
+ }
57
+ }
58
+ if (this.getFxVal('translate_y.size') || this.getFxVal('translate_y.sizes.to')) {
59
+ config.translateY = {
60
+ value: [this.getFxVal('translate_y.sizes.from') || 0, this.getFxVal('translate_y.size') || this.getFxVal('translate_y.sizes.to')],
61
+ duration: this.getFxVal('translate_duration.size'),
62
+ delay: this.getFxVal('translate_delay.size') || 0
63
+ }
64
+ }
65
+ }
66
+
67
+ if (this.getFxVal('rotate_toggle')) {
68
+ if (this.getFxVal('rotate_x.size') || this.getFxVal('rotate_x.sizes.to')) {
69
+ config.rotateX = {
70
+ value: [this.getFxVal('rotate_x.sizes.from') || 0, this.getFxVal('rotate_x.size') || this.getFxVal('rotate_x.sizes.to')],
71
+ duration: this.getFxVal('rotate_duration.size'),
72
+ delay: this.getFxVal('rotate_delay.size') || 0
73
+ }
74
+ }
75
+ if (this.getFxVal('rotate_y.size') || this.getFxVal('rotate_y.sizes.to')) {
76
+ config.rotateY = {
77
+ value: [this.getFxVal('rotate_y.sizes.from') || 0, this.getFxVal('rotate_y.size') || this.getFxVal('rotate_y.sizes.to')],
78
+ duration: this.getFxVal('rotate_duration.size'),
79
+ delay: this.getFxVal('rotate_delay.size') || 0
80
+ }
81
+ }
82
+ if (this.getFxVal('rotate_z.size') || this.getFxVal('rotate_z.sizes.to')) {
83
+ config.rotateZ = {
84
+ value: [this.getFxVal('rotate_z.sizes.from') || 0, this.getFxVal('rotate_z.size') || this.getFxVal('rotate_z.sizes.to')],
85
+ duration: this.getFxVal('rotate_duration.size'),
86
+ delay: this.getFxVal('rotate_delay.size') || 0
87
+ }
88
+ }
89
+ }
90
+
91
+ if (this.getFxVal('scale_toggle')) {
92
+ if (this.getFxVal('scale_x.size') || this.getFxVal('scale_x.sizes.to')) {
93
+ config.scaleX = {
94
+ value: [this.getFxVal('scale_x.sizes.from') || 0, this.getFxVal('scale_x.size') || this.getFxVal('scale_x.sizes.to')],
95
+ duration: this.getFxVal('scale_duration.size'),
96
+ delay: this.getFxVal('scale_delay.size') || 0
97
+ }
98
+ }
99
+ if (this.getFxVal('scale_y.size') || this.getFxVal('scale_y.sizes.to')) {
100
+ config.scaleY = {
101
+ value: [this.getFxVal('scale_y.sizes.from') || 0, this.getFxVal('scale_y.size') || this.getFxVal('scale_y.sizes.to')],
102
+ duration: this.getFxVal('scale_duration.size'),
103
+ delay: this.getFxVal('scale_delay.size') || 0
104
+ }
105
+ }
106
+ }
107
+
108
+ if (this.getFxVal('translate_toggle') || this.getFxVal('rotate_toggle') || this.getFxVal('scale_toggle')) {
109
+ this.findElement('.elementor-widget-container').css('will-change', 'transform');
110
+ this.anime = window.anime && window.anime(config);
111
+ }
112
+ }
113
+ });
114
+
115
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', function( $scope ) {
116
+ elementorFrontend.elementsHandler.addHandler( FloatingFxHandler, { $element: $scope });
117
+ });
118
+ });
119
+
120
+ }( jQuery ));
assets/js/extension-floating-effects.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t){var e=function(t,e,a){var s;return function(){var i=this,l=arguments,n=function(){s=null,a||t.apply(i,l)},o=a&&!s;clearTimeout(s),s=setTimeout(n,e),o&&t.apply(i,l)}};t(window).on("elementor/frontend/init",function(){var t,a=elementorModules.frontend.handlers.Base;t=a.extend({bindEvents:function(){this.run()},getDefaultSettings:function(){return{direction:"alternate",easing:"easeInOutSine",loop:!0,targets:this.findElement(".elementor-widget-container").get(0)}},onElementChange:e(function(t){-1!==t.indexOf("ha_floating")&&(this.anime&&this.anime.restart(),this.run())},400),getFxVal:function(t){return this.getElementSettings("ha_floating_fx_"+t)},run:function(){var t=this.getDefaultSettings();this.getFxVal("translate_toggle")&&((this.getFxVal("translate_x.size")||this.getFxVal("translate_x.sizes.to"))&&(t.translateX={value:[this.getFxVal("translate_x.sizes.from")||0,this.getFxVal("translate_x.size")||this.getFxVal("translate_x.sizes.to")],duration:this.getFxVal("translate_duration.size"),delay:this.getFxVal("translate_delay.size")||0}),(this.getFxVal("translate_y.size")||this.getFxVal("translate_y.sizes.to"))&&(t.translateY={value:[this.getFxVal("translate_y.sizes.from")||0,this.getFxVal("translate_y.size")||this.getFxVal("translate_y.sizes.to")],duration:this.getFxVal("translate_duration.size"),delay:this.getFxVal("translate_delay.size")||0})),this.getFxVal("rotate_toggle")&&((this.getFxVal("rotate_x.size")||this.getFxVal("rotate_x.sizes.to"))&&(t.rotateX={value:[this.getFxVal("rotate_x.sizes.from")||0,this.getFxVal("rotate_x.size")||this.getFxVal("rotate_x.sizes.to")],duration:this.getFxVal("rotate_duration.size"),delay:this.getFxVal("rotate_delay.size")||0}),(this.getFxVal("rotate_y.size")||this.getFxVal("rotate_y.sizes.to"))&&(t.rotateY={value:[this.getFxVal("rotate_y.sizes.from")||0,this.getFxVal("rotate_y.size")||this.getFxVal("rotate_y.sizes.to")],duration:this.getFxVal("rotate_duration.size"),delay:this.getFxVal("rotate_delay.size")||0}),(this.getFxVal("rotate_z.size")||this.getFxVal("rotate_z.sizes.to"))&&(t.rotateZ={value:[this.getFxVal("rotate_z.sizes.from")||0,this.getFxVal("rotate_z.size")||this.getFxVal("rotate_z.sizes.to")],duration:this.getFxVal("rotate_duration.size"),delay:this.getFxVal("rotate_delay.size")||0})),this.getFxVal("scale_toggle")&&((this.getFxVal("scale_x.size")||this.getFxVal("scale_x.sizes.to"))&&(t.scaleX={value:[this.getFxVal("scale_x.sizes.from")||0,this.getFxVal("scale_x.size")||this.getFxVal("scale_x.sizes.to")],duration:this.getFxVal("scale_duration.size"),delay:this.getFxVal("scale_delay.size")||0}),(this.getFxVal("scale_y.size")||this.getFxVal("scale_y.sizes.to"))&&(t.scaleY={value:[this.getFxVal("scale_y.sizes.from")||0,this.getFxVal("scale_y.size")||this.getFxVal("scale_y.sizes.to")],duration:this.getFxVal("scale_duration.size"),delay:this.getFxVal("scale_delay.size")||0})),(this.getFxVal("translate_toggle")||this.getFxVal("rotate_toggle")||this.getFxVal("scale_toggle"))&&(this.findElement(".elementor-widget-container").css("will-change","transform"),this.anime=window.anime&&window.anime(t))}}),elementorFrontend.hooks.addAction("frontend/element_ready/widget",function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})}(jQuery);
assets/js/happy-addons.js CHANGED
@@ -1,27 +1,7 @@
1
- ;(function ($, w) {
2
  'use strict';
3
 
4
- var $window = $(w),
5
- rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
6
- fcssescape = function( ch, asCodePoint ) {
7
- if ( asCodePoint ) {
8
-
9
- // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
10
- if ( ch === "\0" ) {
11
- return "\uFFFD";
12
- }
13
-
14
- // Control characters and (dependent upon position) numbers get escaped as code points
15
- return ch.slice( 0, -1 ) + "\\" +
16
- ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
17
- }
18
-
19
- // Other potentially-special ASCII characters get backslash-escaped
20
- return "\\" + ch;
21
- },
22
- escapeSelector = function(selector) {
23
- return selector.replace(rcssescape, fcssescape)
24
- };
25
 
26
  $.fn.getHappySettings = function() {
27
  return this.data('happy-settings');
@@ -142,152 +122,49 @@
142
  };
143
 
144
  $window.on('elementor/frontend/init', function() {
145
- var EF = elementorFrontend,
146
- EM = elementorModules;
147
-
148
- var ExtensionHandler = EM.frontend.handlers.Base.extend({
149
- onInit: function() {
150
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
151
- this.widgetContainer = this.$element.find('.elementor-widget-container')[0];
152
-
153
- this.initFloatingEffects();
154
-
155
- this.initBackgroundOverlay();
156
- },
157
-
158
- initBackgroundOverlay: function() {
159
- if (this.isEdit) {
160
- this.$element.addClass('ha-has-background-overlay')
161
- }
162
- },
163
-
164
- getDefaultSettings: function() {
165
- return {
166
- targets: this.widgetContainer,
167
- loop: true,
168
- direction: 'alternate',
169
- easing: 'easeInOutSine',
170
- };
171
- },
172
-
173
- onElementChange: function(changedProp) {
174
- if (changedProp.indexOf('ha_floating') !== -1) {
175
- this.runOnElementChange();
176
- }
177
- },
178
-
179
- runOnElementChange: debounce(function() {
180
- this.animation && this.animation.restart();
181
- this.initFloatingEffects();
182
- }, 200),
183
 
184
- getConfig: function(key) {
185
- return this.getElementSettings('ha_floating_fx_' + key);
 
 
186
  },
187
 
188
- initFloatingEffects: function() {
189
- var config = this.getDefaultSettings();
190
-
191
- if (this.getConfig('translate_toggle')) {
192
- if (this.getConfig('translate_x.size') || this.getConfig('translate_x.sizes.to')) {
193
- config.translateX = {
194
- value: [this.getConfig('translate_x.sizes.from') || 0, this.getConfig('translate_x.size') || this.getConfig('translate_x.sizes.to')],
195
- duration: this.getConfig('translate_duration.size'),
196
- delay: this.getConfig('translate_delay.size') || 0
197
- }
198
- }
199
- if (this.getConfig('translate_y.size') || this.getConfig('translate_y.sizes.to')) {
200
- config.translateY = {
201
- value: [this.getConfig('translate_y.sizes.from') || 0, this.getConfig('translate_y.size') || this.getConfig('translate_y.sizes.to')],
202
- duration: this.getConfig('translate_duration.size'),
203
- delay: this.getConfig('translate_delay.size') || 0
204
- }
205
- }
206
- }
207
 
208
- if (this.getConfig('rotate_toggle')) {
209
- if (this.getConfig('rotate_x.size') || this.getConfig('rotate_x.sizes.to')) {
210
- config.rotateX = {
211
- value: [this.getConfig('rotate_x.sizes.from') || 0, this.getConfig('rotate_x.size') || this.getConfig('rotate_x.sizes.to')],
212
- duration: this.getConfig('rotate_duration.size'),
213
- delay: this.getConfig('rotate_delay.size') || 0
214
- }
215
- }
216
- if (this.getConfig('rotate_y.size') || this.getConfig('rotate_y.sizes.to')) {
217
- config.rotateY = {
218
- value: [this.getConfig('rotate_y.sizes.from') || 0, this.getConfig('rotate_y.size') || this.getConfig('rotate_y.sizes.to')],
219
- duration: this.getConfig('rotate_duration.size'),
220
- delay: this.getConfig('rotate_delay.size') || 0
221
- }
222
- }
223
- if (this.getConfig('rotate_z.size') || this.getConfig('rotate_z.sizes.to')) {
224
- config.rotateZ = {
225
- value: [this.getConfig('rotate_z.sizes.from') || 0, this.getConfig('rotate_z.size') || this.getConfig('rotate_z.sizes.to')],
226
- duration: this.getConfig('rotate_duration.size'),
227
- delay: this.getConfig('rotate_delay.size') || 0
228
- }
229
- }
230
- }
231
-
232
- if (this.getConfig('scale_toggle')) {
233
- if (this.getConfig('scale_x.size') || this.getConfig('scale_x.sizes.to')) {
234
- config.scaleX = {
235
- value: [this.getConfig('scale_x.sizes.from') || 0, this.getConfig('scale_x.size') || this.getConfig('scale_x.sizes.to')],
236
- duration: this.getConfig('scale_duration.size'),
237
- delay: this.getConfig('scale_delay.size') || 0
238
- }
239
- }
240
- if (this.getConfig('scale_y.size') || this.getConfig('scale_y.sizes.to')) {
241
- config.scaleY = {
242
- value: [this.getConfig('scale_y.sizes.from') || 0, this.getConfig('scale_y.size') || this.getConfig('scale_y.sizes.to')],
243
- duration: this.getConfig('scale_duration.size'),
244
- delay: this.getConfig('scale_delay.size') || 0
245
- }
246
- }
247
- }
248
-
249
- if (this.getConfig('translate_toggle') || this.getConfig('rotate_toggle') || this.getConfig('scale_toggle')) {
250
- this.widgetContainer.style.setProperty('will-change', 'transform');
251
- this.animation = anime(config);
252
- }
253
- }
254
- });
255
-
256
- var SliderBase = EM.frontend.handlers.Base.extend({
257
- onInit: function () {
258
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
259
- this.run();
260
  },
261
 
262
  getDefaultSettings: function() {
263
  return {
264
- selectors: {
265
- container: '.hajs-slick'
266
- },
267
- arrows: true,
268
- dots: false,
269
  checkVisible: false,
270
- infinite: true,
 
 
 
271
  slidesToShow: 1,
272
- rows: 0,
273
- prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',
274
- nextArrow: '<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>',
275
  }
276
  },
277
 
278
  getDefaultElements: function () {
279
- var selectors = this.getSettings('selectors');
280
  return {
281
- $container: this.findElement(selectors.container)
282
  };
283
  },
284
 
285
- onElementChange: function() {
286
  this.elements.$container.slick('unslick');
287
  this.run();
288
- },
289
 
290
- getReadySettings: function() {
291
  var settings = {
292
  infinite: !! this.getElementSettings('loop'),
293
  autoplay: !! this.getElementSettings('autoplay'),
@@ -311,40 +188,39 @@
311
  break;
312
  }
313
 
314
-
315
  settings.slidesToShow = this.getElementSettings('slides_to_show') || 1;
316
  settings.responsive = [
317
  {
318
- breakpoint: EF.config.breakpoints.lg,
319
  settings: {
320
  slidesToShow: (this.getElementSettings('slides_to_show_tablet') || settings.slidesToShow),
321
  }
322
  },
323
  {
324
- breakpoint: EF.config.breakpoints.md,
325
  settings: {
326
  slidesToShow: (this.getElementSettings('slides_to_show_mobile') || this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow,
327
  }
328
  }
329
  ];
330
 
331
- return $.extend({}, this.getDefaultSettings(), settings);
332
  },
333
 
334
  run: function() {
335
- this.elements.$container.slick(this.getReadySettings());
336
  }
337
  });
338
 
339
  var NumberHandler = function($scope) {
340
- EF.waypoint($scope, function () {
341
  var $number = $scope.find('.ha-number-text');
342
  $number.numerator($number.data('animation'));
343
  });
344
  };
345
 
346
  var SkillHandler = function($scope) {
347
- EF.waypoint($scope, function () {
348
  $scope.find('.ha-skill-level').each(function() {
349
  var $current = $(this),
350
  $lt = $current.find('.ha-skill-level-text'),
@@ -364,9 +240,9 @@
364
  });
365
  };
366
 
367
- var ImageGrid = EM.frontend.handlers.Base.extend({
368
  onInit: function () {
369
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
370
  this.run();
371
  this.runFilter();
372
 
@@ -440,9 +316,9 @@
440
  }
441
  });
442
 
443
- var JustifiedGrid = EM.frontend.handlers.Base.extend({
444
  onInit: function () {
445
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
446
  this.run();
447
  this.runFilter();
448
 
@@ -510,11 +386,11 @@
510
  }
511
  });
512
 
513
- //NewsTicker
514
- var NewsTicker = EM.frontend.handlers.Base.extend({
515
 
516
  onInit: function () {
517
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
518
  this.wrapper = this.$element.find('.ha-news-ticker-wrapper');
519
  this.run();
520
  },
@@ -562,16 +438,16 @@
562
  }
563
  });
564
 
565
- // fun-factor
566
  var FunFactor = function ($scope) {
567
- EF.waypoint($scope, function () {
568
  var $fun_factor = $scope.find('.ha-fun-factor__content-number');
569
  $fun_factor.numerator($fun_factor.data('animation'));
570
  });
571
  };
572
 
573
- var BarChart = function( $scope ) {
574
- EF.waypoint($scope, function () {
575
  var $chart = $(this),
576
  $container = $chart.find( '.ha-bar-chart-container' ),
577
  $chart_canvas = $chart.find( '#ha-bar-chart' ),
@@ -618,10 +494,10 @@
618
  };
619
 
620
  //PostTab
621
- var PostTab = EM.frontend.handlers.Base.extend({
622
 
623
  onInit: function () {
624
- EM.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
625
  this.wrapper = this.$element.find('.ha-post-tab');
626
  this.run();
627
  },
@@ -779,13 +655,7 @@
779
  'frontend/element_ready/ha-slider.default',
780
  function ($scope) {
781
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
782
- $element: $scope,
783
- selectors: {
784
- container: '.ha-slick--slider',
785
- },
786
- autoplay: true,
787
- prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
788
- nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
789
  });
790
  }
791
  );
@@ -795,13 +665,7 @@
795
  'frontend/element_ready/ha-carousel.default',
796
  function ($scope) {
797
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
798
- $element: $scope,
799
- selectors: {
800
- container: '.ha-slick--carousel',
801
- },
802
- autoplay: true,
803
- prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
804
- nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
805
  });
806
  }
807
  );
@@ -811,13 +675,11 @@
811
  'frontend/element_ready/ha-horizontal-timeline.default',
812
  function ($scope) {
813
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
814
- $element: $scope,
815
- selectors: {
816
- container: '.ha-horizontal-timeline-wrapper',
817
- },
818
- autoplay: false,
819
- prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
820
- nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
821
  });
822
  }
823
  );
@@ -825,53 +687,59 @@
825
  $('[data-ha-element-link]').on('click.onWrapperLink', function() {
826
  var link = $(this).data('ha-element-link'),
827
  id = $(this).data('id'),
828
- a = document.createElement('a'),
829
- aDOM;
 
830
 
831
- a.id = 'hawl' + id;
832
- a.href = link.url;
833
- a.target = link.is_external ? '_blank' : '_self';
834
- a.rel = link.nofollow ? 'nofollow noreferer' : '';
835
- a.style.display = 'none';
836
 
837
- document.body.appendChild(a);
838
 
839
- aDOM = document.getElementById(a.id);
840
- aDOM.click();
841
 
842
- var t = setTimeout(function() {
843
- document.body.removeChild(aDOM);
844
- clearTimeout(t);
845
  });
846
  });
847
 
 
 
 
 
 
848
  var fnHanlders = {
849
- 'ha-image-compare.default': HandleImageCompare,
850
- 'ha-number.default': NumberHandler,
851
- 'ha-skills.default': SkillHandler,
852
- 'ha-fun-factor.default': FunFactor,
853
- 'ha-bar-chart.default': BarChart,
854
- 'ha-twitter-feed.default': TwitterFeed,
855
  'ha-threesixty-rotation.default': Threesixty_Rotation,
856
- 'ha-data-table.default': DataTable
 
857
  };
858
 
859
  $.each( fnHanlders, function( widgetName, handlerFn ) {
860
- EF.hooks.addAction( 'frontend/element_ready/' + widgetName, handlerFn );
861
  });
862
 
863
  var classHandlers = {
864
- 'ha-image-grid.default': ImageGrid,
865
  'ha-justified-gallery.default': JustifiedGrid,
866
- 'ha-news-ticker.default': NewsTicker,
867
- 'ha-post-tab.default': PostTab,
868
- 'widget': ExtensionHandler,
869
  };
870
 
871
  $.each( classHandlers, function( widgetName, handlerClass ) {
872
- EF.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
873
- EF.elementsHandler.addHandler( handlerClass, { $element: $scope });
874
  });
875
  });
876
  });
877
- } (jQuery, window));
1
+ ;(function ($) {
2
  'use strict';
3
 
4
+ var $window = $(window)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  $.fn.getHappySettings = function() {
7
  return this.data('happy-settings');
122
  };
123
 
124
  $window.on('elementor/frontend/init', function() {
125
+ var ModuleHandler = elementorModules.frontend.handlers.Base;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
 
127
+ var SliderBase = ModuleHandler.extend({
128
+ bindEvents: function() {
129
+ this.removeArrows();
130
+ this.run();
131
  },
132
 
133
+ removeArrows: function() {
134
+ var _this = this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
+ this.elements.$container.on('init', function() {
137
+ _this.elements.$container.siblings().hide();
138
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  },
140
 
141
  getDefaultSettings: function() {
142
  return {
143
+ autoplay : true,
144
+ arrows : false,
 
 
 
145
  checkVisible: false,
146
+ container : '.hajs-slick',
147
+ dots : false,
148
+ infinite : true,
149
+ rows : 0,
150
  slidesToShow: 1,
151
+ prevArrow : $('<div />').append(this.findElement('.slick-prev').clone().show()).html(),
152
+ nextArrow : $('<div />').append(this.findElement('.slick-next').clone().show()).html()
 
153
  }
154
  },
155
 
156
  getDefaultElements: function () {
 
157
  return {
158
+ $container: this.findElement(this.getSettings('container'))
159
  };
160
  },
161
 
162
+ onElementChange: debounce(function() {
163
  this.elements.$container.slick('unslick');
164
  this.run();
165
+ }, 200),
166
 
167
+ getSlickSettings: function() {
168
  var settings = {
169
  infinite: !! this.getElementSettings('loop'),
170
  autoplay: !! this.getElementSettings('autoplay'),
188
  break;
189
  }
190
 
 
191
  settings.slidesToShow = this.getElementSettings('slides_to_show') || 1;
192
  settings.responsive = [
193
  {
194
+ breakpoint: elementorFrontend.config.breakpoints.lg,
195
  settings: {
196
  slidesToShow: (this.getElementSettings('slides_to_show_tablet') || settings.slidesToShow),
197
  }
198
  },
199
  {
200
+ breakpoint: elementorFrontend.config.breakpoints.md,
201
  settings: {
202
  slidesToShow: (this.getElementSettings('slides_to_show_mobile') || this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow,
203
  }
204
  }
205
  ];
206
 
207
+ return $.extend({}, this.getSettings(), settings);
208
  },
209
 
210
  run: function() {
211
+ this.elements.$container.slick(this.getSlickSettings());
212
  }
213
  });
214
 
215
  var NumberHandler = function($scope) {
216
+ elementorFrontend.waypoint($scope, function () {
217
  var $number = $scope.find('.ha-number-text');
218
  $number.numerator($number.data('animation'));
219
  });
220
  };
221
 
222
  var SkillHandler = function($scope) {
223
+ elementorFrontend.waypoint($scope, function () {
224
  $scope.find('.ha-skill-level').each(function() {
225
  var $current = $(this),
226
  $lt = $current.find('.ha-skill-level-text'),
240
  });
241
  };
242
 
243
+ var ImageGrid = ModuleHandler.extend({
244
  onInit: function () {
245
+ ModuleHandler.prototype.onInit.apply(this, arguments);
246
  this.run();
247
  this.runFilter();
248
 
316
  }
317
  });
318
 
319
+ var JustifiedGrid = ModuleHandler.extend({
320
  onInit: function () {
321
+ ModuleHandler.prototype.onInit.apply(this, arguments);
322
  this.run();
323
  this.runFilter();
324
 
386
  }
387
  });
388
 
389
+ // NewsTicker
390
+ var NewsTicker = ModuleHandler.extend({
391
 
392
  onInit: function () {
393
+ ModuleHandler.prototype.onInit.apply(this, arguments);
394
  this.wrapper = this.$element.find('.ha-news-ticker-wrapper');
395
  this.run();
396
  },
438
  }
439
  });
440
 
441
+ // Fun factor
442
  var FunFactor = function ($scope) {
443
+ elementorFrontend.waypoint($scope, function () {
444
  var $fun_factor = $scope.find('.ha-fun-factor__content-number');
445
  $fun_factor.numerator($fun_factor.data('animation'));
446
  });
447
  };
448
 
449
+ var BarChart = function($scope) {
450
+ elementorFrontend.waypoint($scope, function () {
451
  var $chart = $(this),
452
  $container = $chart.find( '.ha-bar-chart-container' ),
453
  $chart_canvas = $chart.find( '#ha-bar-chart' ),
494
  };
495
 
496
  //PostTab
497
+ var PostTab = ModuleHandler.extend({
498
 
499
  onInit: function () {
500
+ ModuleHandler.prototype.onInit.apply(this, arguments);
501
  this.wrapper = this.$element.find('.ha-post-tab');
502
  this.run();
503
  },
655
  'frontend/element_ready/ha-slider.default',
656
  function ($scope) {
657
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
658
+ $element: $scope
 
 
 
 
 
 
659
  });
660
  }
661
  );
665
  'frontend/element_ready/ha-carousel.default',
666
  function ($scope) {
667
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
668
+ $element: $scope
 
 
 
 
 
 
669
  });
670
  }
671
  );
675
  'frontend/element_ready/ha-horizontal-timeline.default',
676
  function ($scope) {
677
  elementorFrontend.elementsHandler.addHandler(SliderBase, {
678
+ $element : $scope,
679
+ autoplay : false,
680
+ container : '.ha-horizontal-timeline-wrapper',
681
+ navigation: 'arrow',
682
+ arrows : true,
 
 
683
  });
684
  }
685
  );
687
  $('[data-ha-element-link]').on('click.onWrapperLink', function() {
688
  var link = $(this).data('ha-element-link'),
689
  id = $(this).data('id'),
690
+ link = document.createElement('a'),
691
+ linkEle,
692
+ time;
693
 
694
+ link.id = 'happy-addons-wrapper-link-' + id;
695
+ link.href = link.url;
696
+ link.target = link.is_external ? '_blank' : '_self';
697
+ link.rel = link.nofollow ? 'nofollow noreferer' : '';
698
+ link.style.display = 'none';
699
 
700
+ document.body.appendChild(link);
701
 
702
+ linkEle = document.getElementById(link.id);
703
+ linkEle.click();
704
 
705
+ time = setTimeout(function() {
706
+ document.body.removeChild(linkEle);
707
+ clearTimeout(time);
708
  });
709
  });
710
 
711
+ // Background overlay extension
712
+ var BackgroundOverlay = function($scope) {
713
+ $scope.hasClass('elementor-element-edit-mode') && $scope.addClass('has-bg-overlay');
714
+ }
715
+
716
  var fnHanlders = {
717
+ 'ha-image-compare.default' : HandleImageCompare,
718
+ 'ha-number.default' : NumberHandler,
719
+ 'ha-skills.default' : SkillHandler,
720
+ 'ha-fun-factor.default' : FunFactor,
721
+ 'ha-bar-chart.default' : BarChart,
722
+ 'ha-twitter-feed.default' : TwitterFeed,
723
  'ha-threesixty-rotation.default': Threesixty_Rotation,
724
+ 'ha-data-table.default' : DataTable,
725
+ 'widget' : BackgroundOverlay,
726
  };
727
 
728
  $.each( fnHanlders, function( widgetName, handlerFn ) {
729
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, handlerFn );
730
  });
731
 
732
  var classHandlers = {
733
+ 'ha-image-grid.default' : ImageGrid,
734
  'ha-justified-gallery.default': JustifiedGrid,
735
+ 'ha-news-ticker.default' : NewsTicker,
736
+ 'ha-post-tab.default' : PostTab
 
737
  };
738
 
739
  $.each( classHandlers, function( widgetName, handlerClass ) {
740
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
741
+ elementorFrontend.elementsHandler.addHandler( handlerClass, { $element: $scope });
742
  });
743
  });
744
  });
745
+ } (jQuery));
assets/js/happy-addons.min.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"use strict";function n(t,e,n){var i;return function(){var a=this,o=arguments,s=function(){i=null,n||t.apply(a,o)},r=n&&!i;clearTimeout(i),i=setTimeout(s,e),r&&t.apply(a,o)}}function i(e,n){var i=e.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(e){e.stopPropagation();var i=t(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function a(e){if(e.$element.on("click",e.selector,function(t){t.preventDefault()}),t.fn.magnificPopup){if(!e.isEnabled)return void t.magnificPopup.close();var n=t(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;e.$element.find(e.selector).magnificPopup({key:e.key,type:"image",image:{titleSrc:function(t){return t.el.attr("title")?t.el.attr("title"):t.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(t){return t.is("img")?t:t.find("img")}},disableOn:function(){return!(e.disableOnMobile&&n<i)&&!(e.disableOnTablet&&n>=i&&n<a)}})}}var o=t(e);t.fn.getHappySettings=function(){return this.data("happy-settings")};var s=function(t){var e=t.find(".hajs-image-comparison"),n=e.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,e.imagesLoaded().done(function(){e.twentytwenty(n);var t=setTimeout(function(){o.trigger("resize.twentytwenty"),clearTimeout(t)},400)})};o.on("elementor/frontend/init",function(){var e=elementorFrontend,r=elementorModules,l=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.widgetContainer=this.$element.find(".elementor-widget-container")[0],this.initFloatingEffects(),this.initBackgroundOverlay()},initBackgroundOverlay:function(){this.isEdit&&this.$element.addClass("ha-has-background-overlay")},getDefaultSettings:function(){return{targets:this.widgetContainer,loop:!0,direction:"alternate",easing:"easeInOutSine"}},onElementChange:function(t){-1!==t.indexOf("ha_floating")&&this.runOnElementChange()},runOnElementChange:n(function(){this.animation&&this.animation.restart(),this.initFloatingEffects()},200),getConfig:function(t){return this.getElementSettings("ha_floating_fx_"+t)},initFloatingEffects:function(){var t=this.getDefaultSettings();this.getConfig("translate_toggle")&&((this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to"))&&(t.translateX={value:[this.getConfig("translate_x.sizes.from")||0,this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0}),(this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to"))&&(t.translateY={value:[this.getConfig("translate_y.sizes.from")||0,this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0})),this.getConfig("rotate_toggle")&&((this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to"))&&(t.rotateX={value:[this.getConfig("rotate_x.sizes.from")||0,this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to"))&&(t.rotateY={value:[this.getConfig("rotate_y.sizes.from")||0,this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to"))&&(t.rotateZ={value:[this.getConfig("rotate_z.sizes.from")||0,this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0})),this.getConfig("scale_toggle")&&((this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to"))&&(t.scaleX={value:[this.getConfig("scale_x.sizes.from")||0,this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0}),(this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to"))&&(t.scaleY={value:[this.getConfig("scale_y.sizes.from")||0,this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0})),(this.getConfig("translate_toggle")||this.getConfig("rotate_toggle")||this.getConfig("scale_toggle"))&&(this.widgetContainer.style.setProperty("will-change","transform"),this.animation=anime(t))}}),h=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.run()},getDefaultSettings:function(){return{selectors:{container:".hajs-slick"},arrows:!0,dots:!1,checkVisible:!1,infinite:!0,slidesToShow:1,rows:0,prevArrow:'<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'}},getDefaultElements:function(){var t=this.getSettings("selectors");return{$container:this.findElement(t.container)}},onElementChange:function(){this.elements.$container.slick("unslick"),this.run()},getReadySettings:function(){var n={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":n.arrows=!0;break;case"dots":n.dots=!0;break;case"both":n.arrows=!0,n.dots=!0}return n.slidesToShow=this.getElementSettings("slides_to_show")||1,n.responsive=[{breakpoint:e.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||n.slidesToShow}},{breakpoint:e.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||n.slidesToShow}}],t.extend({},this.getDefaultSettings(),n)},run:function(){this.elements.$container.slick(this.getReadySettings())}}),d=function(t){e.waypoint(t,function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},g=function(n){e.waypoint(n,function(){n.find(".ha-skill-level").each(function(){var e=t(this),n=e.find(".ha-skill-level-text"),i=e.data("level");e.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},f=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),o.on("resize",n(this.run.bind(this),100))},getLayoutMode:function(){var t=this.getElementSettings("layout");return"even"===t?"masonry":t},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,e=this.getLightBoxSettings();i(this.$element,function(n){t.elements.$container.isotope({filter:n}),"*"!==n&&(e.selector=n),a(e)})},onElementChange:function(t){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(t)&&this.run()},run:function(){var t=this;t.elements.$container.isotope(t.getDefaultSettings()).imagesLoaded().progress(function(){t.elements.$container.isotope("layout")}),a(t.getLightBoxSettings())}}),c=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),o.on("resize",n(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,e=this.getLightBoxSettings(),n={lastRow:this.getElementSettings("last_row")};i(t.$element,function(i){"*"!==i&&(n.lastRow="nojustify",e.selector=i),n.filter=i,t.elements.$container.justifiedGallery(n),a(e)})},onElementChange:function(t){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(t)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),a(this.getLightBoxSettings())}}),u=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(t){"item_space"!==t&&"title_typography_font_size"!==t||this.run()},run:function(){var e=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),s="scroll"+o+e+n,r=this.wrapper.data("duration"),l="normal",h=10,d={transform:"translateX(0"+n+"px)"},g={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){h+=t(this).outerWidth(!0)}),i.css({width:h,display:"flex"}),t.keyframe.define([{name:s,"0%":d,"100%":g}]),i.playKeyframe({name:s,duration:r+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),m=function(t){e.waypoint(t,function(){var e=t.find(".ha-fun-factor__content-number");e.numerator(e.data("animation"))})},p=function(n){e.waypoint(n,function(){var e=t(this),n=e.find(".ha-bar-chart-container"),i=e.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},_=function(e){var n=e.find(".ha-twitter-load-more"),i=e.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=t(this),o=a.data("settings"),s=a.data("total"),r=e.find(".ha-tweet-item").length;t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:r},success:function(e){s>r?t(e).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(t){}})})},y=r.frontend.handlers.Base.extend({onInit:function(){r.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var e=this.wrapper.find(".ha-post-tab-filter"),i=e.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,n(function(e){e.preventDefault();var n=t(this),a=n.data("term"),s=n.closest(".ha-post-tab"),r=s.find(".ha-post-tab-content"),l=r.find(".ha-post-tab-loading"),h=r.find(".ha-post-tab-item-wrapper"),d=!1;0===l.length&&(i.removeClass("active"),h.removeClass("active"),n.addClass("active"),h.each(function(){var e=t(this),n=e.data("term");a===n&&(e.addClass("active"),d=!0)}),!1===d&&t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){r.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(t){r.find(".ha-post-tab-loading").remove(),r.append(t)},error:function(t){}}))},200))}}),b=function(e){var n=e.find(".ha-table__head-column-cell");e.find(".ha-table__body-row").each(function(e,i){t(i).find(".ha-table__body-row-cell").each(function(e,i){t(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(e).html()+"</div>")})})},v=function(e){var n=e.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=e.find(".ha-threesixty-rotation-magnify"),s=e.find(".ha-threesixty-rotation-360img"),r=o.data("zoom"),l=e.find(".ha-threesixty-rotation-play"),h=circlr(i,{play:!0});if("on"===a){var d=e.find(".ha-threesixty-rotation-autoplay");d.on("click",function(t){t.preventDefault(),h.play(),s.remove()}),setTimeout(function(){d.trigger("click"),d.remove()},1e3)}else l.on("click",function(e){e.preventDefault();var n=t(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),h.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),h.stop()),s.remove()});o.on("click",function(n){e.find("img").each(function(){-1!==t(this).attr("style").indexOf("block")&&(HappySimplaMagnify(t(this)[0],r),o.css("display","none"),s.remove())})}),t(document).on("click",function(i){var a=t(i.target),r=e.find(".ha-img-magnifier-glass"),l=o.find("i");r.length&&a[0]!==l[0]&&(r.remove(),o.removeAttr("style")),a[0]===n[0]&&s.remove()}),n.on("mouseup mousedown",function(t){s.remove()})};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(t){elementorFrontend.elementsHandler.addHandler(h,{$element:t,selectors:{container:".ha-slick--slider"},autoplay:!0,prevArrow:'<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(t){elementorFrontend.elementsHandler.addHandler(h,{$element:t,selectors:{container:".ha-slick--carousel"},autoplay:!0,prevArrow:'<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(t){elementorFrontend.elementsHandler.addHandler(h,{$element:t,selectors:{container:".ha-horizontal-timeline-wrapper"},autoplay:!1,prevArrow:'<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'})}),t("[data-ha-element-link]").on("click.onWrapperLink",function(){var e,n=t(this).data("ha-element-link"),i=t(this).data("id"),a=document.createElement("a");a.id="hawl"+i,a.href=n.url,a.target=n.is_external?"_blank":"_self",a.rel=n.nofollow?"nofollow noreferer":"",a.style.display="none",document.body.appendChild(a),e=document.getElementById(a.id),e.click();var o=setTimeout(function(){document.body.removeChild(e),clearTimeout(o)})});var w={"ha-image-compare.default":s,"ha-number.default":d,"ha-skills.default":g,"ha-fun-factor.default":m,"ha-bar-chart.default":p,"ha-twitter-feed.default":_,"ha-threesixty-rotation.default":v,"ha-data-table.default":b};t.each(w,function(t,n){e.hooks.addAction("frontend/element_ready/"+t,n)});var C={"ha-image-grid.default":f,"ha-justified-gallery.default":c,"ha-news-ticker.default":u,"ha-post-tab.default":y,widget:l};t.each(C,function(t,n){e.hooks.addAction("frontend/element_ready/"+t,function(t){e.elementsHandler.addHandler(n,{$element:t})})})})}(jQuery,window);
1
+ !function(e){"use strict";function t(e,t,n){var i;return function(){var a=this,o=arguments,r=function(){i=null,n||e.apply(a,o)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(a,o)}}function n(t,n){var i=t.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(t){t.stopPropagation();var i=e(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function i(t){if(t.$element.on("click",t.selector,function(e){e.preventDefault()}),e.fn.magnificPopup){if(!t.isEnabled)return void e.magnificPopup.close();var n=e(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;t.$element.find(t.selector).magnificPopup({key:t.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(t.disableOnMobile&&n<i)&&!(t.disableOnTablet&&n>=i&&n<a)}})}}var a=e(window);e.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){a.trigger("resize.twentytwenty"),clearTimeout(e)},400)})};a.on("elementor/frontend/init",function(){var r=elementorModules.frontend.handlers.Base,s=r.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:e("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:e("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:t(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var t={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}return t.slidesToShow=this.getElementSettings("slides_to_show")||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||t.slidesToShow}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||t.slidesToShow}}],e.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),l=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-number-text");t.numerator(t.data("animation"))})},d=function(t){elementorFrontend.waypoint(t,function(){t.find(".ha-skill-level").each(function(){var t=e(this),n=t.find(".ha-skill-level-text"),i=t.data("level");t.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},h=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings();n(this.$element,function(n){e.elements.$container.isotope({filter:n}),"*"!==n&&(t.selector=n),i(t)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),i(e.getLightBoxSettings())}}),c=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};n(e.$element,function(n){"*"!==n&&(a.lastRow="nojustify",t.selector=n),a.filter=n,e.elements.$container.justifiedGallery(a),i(t)})},onElementChange:function(e){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),i(this.getLightBoxSettings())}}),u=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var t=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),r="scroll"+o+t+n,s=this.wrapper.data("duration"),l="normal",d=10,h={transform:"translateX(0"+n+"px)"},c={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){d+=e(this).outerWidth(!0)}),i.css({width:d,display:"flex"}),e.keyframe.define([{name:r,"0%":h,"100%":c}]),i.playKeyframe({name:r,duration:s+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),f=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-fun-factor__content-number");t.numerator(t.data("animation"))})},m=function(t){elementorFrontend.waypoint(t,function(){var t=e(this),n=t.find(".ha-bar-chart-container"),i=t.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},p=function(t){var n=t.find(".ha-twitter-load-more"),i=t.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=e(this),o=a.data("settings"),r=a.data("total"),s=t.find(".ha-tweet-item").length;e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:s},success:function(t){r>s?e(t).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(e){}})})},g=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var n=this.wrapper.find(".ha-post-tab-filter"),i=n.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,t(function(t){t.preventDefault();var n=e(this),a=n.data("term"),r=n.closest(".ha-post-tab"),s=r.find(".ha-post-tab-content"),l=s.find(".ha-post-tab-loading"),d=s.find(".ha-post-tab-item-wrapper"),h=!1;0===l.length&&(i.removeClass("active"),d.removeClass("active"),n.addClass("active"),d.each(function(){var t=e(this),n=t.data("term");a===n&&(t.addClass("active"),h=!0)}),!1===h&&e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){s.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){s.find(".ha-post-tab-loading").remove(),s.append(e)},error:function(e){}}))},200))}}),y=function(t){var n=t.find(".ha-table__head-column-cell");t.find(".ha-table__body-row").each(function(t,i){e(i).find(".ha-table__body-row-cell").each(function(t,i){e(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(t).html()+"</div>")})})},_=function(t){var n=t.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=t.find(".ha-threesixty-rotation-magnify"),r=t.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=t.find(".ha-threesixty-rotation-play"),d=circlr(i,{play:!0});if("on"===a){var h=t.find(".ha-threesixty-rotation-autoplay");h.on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){h.trigger("click"),h.remove()},1e3)}else l.on("click",function(t){t.preventDefault();var n=e(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),d.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),d.stop()),r.remove()});o.on("click",function(n){t.find("img").each(function(){-1!==e(this).attr("style").indexOf("block")&&(HappySimplaMagnify(e(this)[0],s),o.css("display","none"),r.remove())})}),e(document).on("click",function(i){var a=e(i.target),s=t.find(".ha-img-magnifier-glass"),l=o.find("i");s.length&&a[0]!==l[0]&&(s.remove(),o.removeAttr("style")),a[0]===n[0]&&r.remove()}),n.on("mouseup mousedown",function(e){r.remove()})};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0})}),e("[data-ha-element-link]").on("click.onWrapperLink",function(){var t,n,i=e(this).data("ha-element-link"),a=e(this).data("id"),i=document.createElement("a");i.id="happy-addons-wrapper-link-"+a,i.href=i.url,i.target=i.is_external?"_blank":"_self",i.rel=i.nofollow?"nofollow noreferer":"",i.style.display="none",document.body.appendChild(i),t=document.getElementById(i.id),t.click(),n=setTimeout(function(){document.body.removeChild(t),clearTimeout(n)})});var v=function(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("has-bg-overlay")},b={"ha-image-compare.default":o,"ha-number.default":l,"ha-skills.default":d,"ha-fun-factor.default":f,"ha-bar-chart.default":m,"ha-twitter-feed.default":p,"ha-threesixty-rotation.default":_,"ha-data-table.default":y,widget:v};e.each(b,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)});var w={"ha-image-grid.default":h,"ha-justified-gallery.default":c,"ha-news-ticker.default":u,"ha-post-tab.default":g};e.each(w,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})})}(jQuery);
assets/vendor/jquery-match-height/jquery.matchHeight-min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jquery-match-height 0.7.2 by @liabru
3
+ * http://brm.io/jquery-match-height/
4
+ * License MIT
5
+ */
6
+ !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
7
+ byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
8
+ r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
9
+ "padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
10
+ display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
11
+ this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
12
+ }n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})});
assets/vendor/jquery-match-height/jquery.matchHeight.js ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * jquery-match-height 0.7.2 by @liabru
3
+ * http://brm.io/jquery-match-height/
4
+ * License: MIT
5
+ */
6
+
7
+ ;(function(factory) { // eslint-disable-line no-extra-semi
8
+ 'use strict';
9
+ if (typeof define === 'function' && define.amd) {
10
+ // AMD
11
+ define(['jquery'], factory);
12
+ } else if (typeof module !== 'undefined' && module.exports) {
13
+ // CommonJS
14
+ module.exports = factory(require('jquery'));
15
+ } else {
16
+ // Global
17
+ factory(jQuery);
18
+ }
19
+ })(function($) {
20
+ /*
21
+ * internal
22
+ */
23
+
24
+ var _previousResizeWidth = -1,
25
+ _updateTimeout = -1;
26
+
27
+ /*
28
+ * _parse
29
+ * value parse utility function
30
+ */
31
+
32
+ var _parse = function(value) {
33
+ // parse value and convert NaN to 0
34
+ return parseFloat(value) || 0;
35
+ };
36
+
37
+ /*
38
+ * _rows
39
+ * utility function returns array of jQuery selections representing each row
40
+ * (as displayed after float wrapping applied by browser)
41
+ */
42
+
43
+ var _rows = function(elements) {
44
+ var tolerance = 1,
45
+ $elements = $(elements),
46
+ lastTop = null,
47
+ rows = [];
48
+
49
+ // group elements by their top position
50
+ $elements.each(function(){
51
+ var $that = $(this),
52
+ top = $that.offset().top - _parse($that.css('margin-top')),
53
+ lastRow = rows.length > 0 ? rows[rows.length - 1] : null;
54
+
55
+ if (lastRow === null) {
56
+ // first item on the row, so just push it
57
+ rows.push($that);
58
+ } else {
59
+ // if the row top is the same, add to the row group
60
+ if (Math.floor(Math.abs(lastTop - top)) <= tolerance) {
61
+ rows[rows.length - 1] = lastRow.add($that);
62
+ } else {
63
+ // otherwise start a new row group
64
+ rows.push($that);
65
+ }
66
+ }
67
+
68
+ // keep track of the last row top
69
+ lastTop = top;
70
+ });
71
+
72
+ return rows;
73
+ };
74
+
75
+ /*
76
+ * _parseOptions
77
+ * handle plugin options
78
+ */
79
+
80
+ var _parseOptions = function(options) {
81
+ var opts = {
82
+ byRow: true,
83
+ property: 'height',
84
+ target: null,
85
+ remove: false
86
+ };
87
+
88
+ if (typeof options === 'object') {
89
+ return $.extend(opts, options);
90
+ }
91
+
92
+ if (typeof options === 'boolean') {
93
+ opts.byRow = options;
94
+ } else if (options === 'remove') {
95
+ opts.remove = true;
96
+ }
97
+
98
+ return opts;
99
+ };
100
+
101
+ /*
102
+ * matchHeight
103
+ * plugin definition
104
+ */
105
+
106
+ var matchHeight = $.fn.matchHeight = function(options) {
107
+ var opts = _parseOptions(options);
108
+
109
+ // handle remove
110
+ if (opts.remove) {
111
+ var that = this;
112
+
113
+ // remove fixed height from all selected elements
114
+ this.css(opts.property, '');
115
+
116
+ // remove selected elements from all groups
117
+ $.each(matchHeight._groups, function(key, group) {
118
+ group.elements = group.elements.not(that);
119
+ });
120
+
121
+ // TODO: cleanup empty groups
122
+
123
+ return this;
124
+ }
125
+
126
+ if (this.length <= 1 && !opts.target) {
127
+ return this;
128
+ }
129
+
130
+ // keep track of this group so we can re-apply later on load and resize events
131
+ matchHeight._groups.push({
132
+ elements: this,
133
+ options: opts
134
+ });
135
+
136
+ // match each element's height to the tallest element in the selection
137
+ matchHeight._apply(this, opts);
138
+
139
+ return this;
140
+ };
141
+
142
+ /*
143
+ * plugin global options
144
+ */
145
+
146
+ matchHeight.version = '0.7.2';
147
+ matchHeight._groups = [];
148
+ matchHeight._throttle = 80;
149
+ matchHeight._maintainScroll = false;
150
+ matchHeight._beforeUpdate = null;
151
+ matchHeight._afterUpdate = null;
152
+ matchHeight._rows = _rows;
153
+ matchHeight._parse = _parse;
154
+ matchHeight._parseOptions = _parseOptions;
155
+
156
+ /*
157
+ * matchHeight._apply
158
+ * apply matchHeight to given elements
159
+ */
160
+
161
+ matchHeight._apply = function(elements, options) {
162
+ var opts = _parseOptions(options),
163
+ $elements = $(elements),
164
+ rows = [$elements];
165
+
166
+ // take note of scroll position
167
+ var scrollTop = $(window).scrollTop(),
168
+ htmlHeight = $('html').outerHeight(true);
169
+
170
+ // get hidden parents
171
+ var $hiddenParents = $elements.parents().filter(':hidden');
172
+
173
+ // cache the original inline style
174
+ $hiddenParents.each(function() {
175
+ var $that = $(this);
176
+ $that.data('style-cache', $that.attr('style'));
177
+ });
178
+
179
+ // temporarily must force hidden parents visible
180
+ $hiddenParents.css('display', 'block');
181
+
182
+ // get rows if using byRow, otherwise assume one row
183
+ if (opts.byRow && !opts.target) {
184
+
185
+ // must first force an arbitrary equal height so floating elements break evenly
186
+ $elements.each(function() {
187
+ var $that = $(this),
188
+ display = $that.css('display');
189
+
190
+ // temporarily force a usable display value
191
+ if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') {
192
+ display = 'block';
193
+ }
194
+
195
+ // cache the original inline style
196
+ $that.data('style-cache', $that.attr('style'));
197
+
198
+ $that.css({
199
+ 'display': display,
200
+ 'padding-top': '0',
201
+ 'padding-bottom': '0',
202
+ 'margin-top': '0',
203
+ 'margin-bottom': '0',
204
+ 'border-top-width': '0',
205
+ 'border-bottom-width': '0',
206
+ 'height': '100px',
207
+ 'overflow': 'hidden'
208
+ });
209
+ });
210
+
211
+ // get the array of rows (based on element top position)
212
+ rows = _rows($elements);
213
+
214
+ // revert original inline styles
215
+ $elements.each(function() {
216
+ var $that = $(this);
217
+ $that.attr('style', $that.data('style-cache') || '');
218
+ });
219
+ }
220
+
221
+ $.each(rows, function(key, row) {
222
+ var $row = $(row),
223
+ targetHeight = 0;
224
+
225
+ if (!opts.target) {
226
+ // skip apply to rows with only one item
227
+ if (opts.byRow && $row.length <= 1) {
228
+ $row.css(opts.property, '');
229
+ return;
230
+ }
231
+
232
+ // iterate the row and find the max height
233
+ $row.each(function(){
234
+ var $that = $(this),
235
+ style = $that.attr('style'),
236
+ display = $that.css('display');
237
+
238
+ // temporarily force a usable display value
239
+ if (display !== 'inline-block' && display !== 'flex' && display !== 'inline-flex') {
240
+ display = 'block';
241
+ }
242
+
243
+ // ensure we get the correct actual height (and not a previously set height value)
244
+ var css = { 'display': display };
245
+ css[opts.property] = '';
246
+ $that.css(css);
247
+
248
+ // find the max height (including padding, but not margin)
249
+ if ($that.outerHeight(false) > targetHeight) {
250
+ targetHeight = $that.outerHeight(false);
251
+ }
252
+
253
+ // revert styles
254
+ if (style) {
255
+ $that.attr('style', style);
256
+ } else {
257
+ $that.css('display', '');
258
+ }
259
+ });
260
+ } else {
261
+ // if target set, use the height of the target element
262
+ targetHeight = opts.target.outerHeight(false);
263
+ }
264
+
265
+ // iterate the row and apply the height to all elements
266
+ $row.each(function(){
267
+ var $that = $(this),
268
+ verticalPadding = 0;
269
+
270
+ // don't apply to a target
271
+ if (opts.target && $that.is(opts.target)) {
272
+ return;
273
+ }
274
+
275
+ // handle padding and border correctly (required when not using border-box)
276
+ if ($that.css('box-sizing') !== 'border-box') {
277
+ verticalPadding += _parse($that.css('border-top-width')) + _parse($that.css('border-bottom-width'));
278
+ verticalPadding += _parse($that.css('padding-top')) + _parse($that.css('padding-bottom'));
279
+ }
280
+
281
+ // set the height (accounting for padding and border)
282
+ $that.css(opts.property, (targetHeight - verticalPadding) + 'px');
283
+ });
284
+ });
285
+
286
+ // revert hidden parents
287
+ $hiddenParents.each(function() {
288
+ var $that = $(this);
289
+ $that.attr('style', $that.data('style-cache') || null);
290
+ });
291
+
292
+ // restore scroll position if enabled
293
+ if (matchHeight._maintainScroll) {
294
+ $(window).scrollTop((scrollTop / htmlHeight) * $('html').outerHeight(true));
295
+ }
296
+
297
+ return this;
298
+ };
299
+
300
+ /*
301
+ * matchHeight._applyDataApi
302
+ * applies matchHeight to all elements with a data-match-height attribute
303
+ */
304
+
305
+ matchHeight._applyDataApi = function() {
306
+ var groups = {};
307
+
308
+ // generate groups by their groupId set by elements using data-match-height
309
+ $('[data-match-height], [data-mh]').each(function() {
310
+ var $this = $(this),
311
+ groupId = $this.attr('data-mh') || $this.attr('data-match-height');
312
+
313
+ if (groupId in groups) {
314
+ groups[groupId] = groups[groupId].add($this);
315
+ } else {
316
+ groups[groupId] = $this;
317
+ }
318
+ });
319
+
320
+ // apply matchHeight to each group
321
+ $.each(groups, function() {
322
+ this.matchHeight(true);
323
+ });
324
+ };
325
+
326
+ /*
327
+ * matchHeight._update
328
+ * updates matchHeight on all current groups with their correct options
329
+ */
330
+
331
+ var _update = function(event) {
332
+ if (matchHeight._beforeUpdate) {
333
+ matchHeight._beforeUpdate(event, matchHeight._groups);
334
+ }
335
+
336
+ $.each(matchHeight._groups, function() {
337
+ matchHeight._apply(this.elements, this.options);
338
+ });
339
+
340
+ if (matchHeight._afterUpdate) {
341
+ matchHeight._afterUpdate(event, matchHeight._groups);
342
+ }
343
+ };
344
+
345
+ matchHeight._update = function(throttle, event) {
346
+ // prevent update if fired from a resize event
347
+ // where the viewport width hasn't actually changed
348
+ // fixes an event looping bug in IE8
349
+ if (event && event.type === 'resize') {
350
+ var windowWidth = $(window).width();
351
+ if (windowWidth === _previousResizeWidth) {
352
+ return;
353
+ }
354
+ _previousResizeWidth = windowWidth;
355
+ }
356
+
357
+ // throttle updates
358
+ if (!throttle) {
359
+ _update(event);
360
+ } else if (_updateTimeout === -1) {
361
+ _updateTimeout = setTimeout(function() {
362
+ _update(event);
363
+ _updateTimeout = -1;
364
+ }, matchHeight._throttle);
365
+ }
366
+ };
367
+
368
+ /*
369
+ * bind events
370
+ */
371
+
372
+ // apply on DOM ready event
373
+ $(matchHeight._applyDataApi);
374
+
375
+ // use on or bind where supported
376
+ var on = $.fn.on ? 'on' : 'bind';
377
+
378
+ // update heights on load and resize events
379
+ $(window)[on]('load', function(event) {
380
+ matchHeight._update(false, event);
381
+ });
382
+
383
+ // throttled update heights on resize events
384
+ $(window)[on]('resize orientationchange', function(event) {
385
+ matchHeight._update(true, event);
386
+ });
387
+
388
+ });
base.php CHANGED
@@ -132,11 +132,15 @@ class Base {
132
  public function register_controls( Controls_Manager $controls_Manager ) {
133
  include_once( HAPPY_ADDONS_DIR_PATH . 'controls/foreground.php' );
134
  include_once( HAPPY_ADDONS_DIR_PATH . 'controls/select2.php' );
 
135
 
136
  $Foreground = __NAMESPACE__ . '\Controls\Group_Control_Foreground';
137
  $controls_Manager->add_group_control( $Foreground::get_type(), new $Foreground() );
138
 
139
  $Select2 = __NAMESPACE__ . '\Controls\Select2';
140
  ha_elementor()->controls_manager->register_control( $Select2::TYPE, new $Select2() );
 
 
 
141
  }
142
  }
132
  public function register_controls( Controls_Manager $controls_Manager ) {
133
  include_once( HAPPY_ADDONS_DIR_PATH . 'controls/foreground.php' );
134
  include_once( HAPPY_ADDONS_DIR_PATH . 'controls/select2.php' );
135
+ include_once( HAPPY_ADDONS_DIR_PATH . 'controls/widget-list.php' );
136
 
137
  $Foreground = __NAMESPACE__ . '\Controls\Group_Control_Foreground';
138
  $controls_Manager->add_group_control( $Foreground::get_type(), new $Foreground() );
139
 
140
  $Select2 = __NAMESPACE__ . '\Controls\Select2';
141
  ha_elementor()->controls_manager->register_control( $Select2::TYPE, new $Select2() );
142
+
143
+ $Widget_List = __NAMESPACE__ . '\Controls\Widget_List';
144
+ ha_elementor()->controls_manager->register_control( $Widget_List::TYPE, new $Widget_List() );
145
  }
146
  }
changelog.txt CHANGED
@@ -1,3 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  = 2.16.1 - 10 December 2020 =
2
 
3
  - Fix: WordPress 5.6 compatibility
1
+ = 2.17.0 - 23 December 2020 =
2
+
3
+ - New: Widget equal height feature
4
+ - New: Custom arrow icon control in Slider widget
5
+ - New: Custom arrow icon control in Carousel widget
6
+ - New: Custom arrow icon control in Horizontal timeline widget
7
+ - New: Slider arrow size control
8
+ - New: Carousel arrow size control
9
+ - New: Horizontal timeline arrow size control
10
+ - New: Horizontal timeline arrow horizontal position control
11
+ - Tweak: Updated Horizontal timeline widget default style
12
+ - Tweak: Added % unit in Slider arrow position controls
13
+ - Tweak: Added % unit in Carousel arrow position controls
14
+ - Tweak: Added % unit in Horizontal timline arrow position control
15
+ - Tweak: Separated Floating effects JS handler from main JS file
16
+ - Fix: Slider arrow not hiding issue
17
+ - Fix: Carousel arrow not hiding issue
18
+
19
  = 2.16.1 - 10 December 2020 =
20
 
21
  - Fix: WordPress 5.6 compatibility
classes/clone-handler.php CHANGED
@@ -1,7 +1,10 @@
1
  <?php
2
  namespace Happy_Addons\Elementor;
3
 
 
 
4
  use Elementor\Core\Files\CSS\Post as Post_CSS;
 
5
 
6
  class Clone_Handler {
7
 
@@ -17,6 +20,8 @@ class Clone_Handler {
17
  add_action( 'admin_action_' . self::ACTION, [ __CLASS__, 'duplicate_thing' ] );
18
  add_filter( 'post_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
19
  add_filter( 'page_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
 
 
20
  }
21
 
22
  /**
@@ -199,6 +204,17 @@ class Clone_Handler {
199
  }
200
  }
201
 
 
 
 
 
 
 
 
 
 
 
 
202
  }
203
 
204
  Clone_Handler::init();
1
  <?php
2
  namespace Happy_Addons\Elementor;
3
 
4
+ defined( 'ABSPATH' ) || die();
5
+
6
  use Elementor\Core\Files\CSS\Post as Post_CSS;
7
+ use Elementor\Core\Common\Modules\Finder\Categories_Manager;
8
 
9
  class Clone_Handler {
10
 
20
  add_action( 'admin_action_' . self::ACTION, [ __CLASS__, 'duplicate_thing' ] );
21
  add_filter( 'post_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
22
  add_filter( 'page_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
23
+
24
+ add_action( 'elementor/finder/categories/init', [ __CLASS__, 'register_finder' ] );
25
  }
26
 
27
  /**
204
  }
205
  }
206
 
207
+ /**
208
+ * Register finder category and category items
209
+ *
210
+ * @param $categories_manager
211
+ */
212
+ public static function register_finder( Categories_Manager $categories_manager ) {
213
+ include_once HAPPY_ADDONS_DIR_PATH . 'classes/finder-edit.php';
214
+
215
+ $categories_manager->add_category( Finder_Edit::SLUG, new Finder_Edit() );
216
+ }
217
+
218
  }
219
 
220
  Clone_Handler::init();
classes/extensions-manager.php CHANGED
@@ -1,16 +1,14 @@
1
  <?php
2
  namespace Happy_Addons\Elementor;
3
 
4
- use Elementor\Core\Common\Modules\Finder\Categories_Manager;
5
-
6
  defined( 'ABSPATH' ) || die();
7
 
8
  class Extensions_Manager {
9
 
10
- /**
11
- * Initialize
12
- */
13
- public static function init() {
14
  include_once HAPPY_ADDONS_DIR_PATH . 'extensions/column-extended.php';
15
  include_once HAPPY_ADDONS_DIR_PATH . 'extensions/widgets-extended.php';
16
 
@@ -19,7 +17,7 @@ class Extensions_Manager {
19
  }
20
 
21
  if ( ha_is_grid_layer_enabled() ) {
22
- include_once HAPPY_ADDONS_DIR_PATH . 'extensions/happy-grid.php';
23
  }
24
 
25
  if ( ha_is_wrapper_link_enabled() ) {
@@ -39,21 +37,14 @@ class Extensions_Manager {
39
  }
40
 
41
  if ( is_user_logged_in() && ha_is_happy_clone_enabled() ) {
42
- add_action( 'elementor/finder/categories/init', [ __CLASS__, 'register_finder' ] );
43
-
44
  include_once HAPPY_ADDONS_DIR_PATH . 'classes/clone-handler.php';
45
  }
46
- }
47
 
48
- /**
49
- * Register finder category and category items
50
- *
51
- * @param $categories_manager
52
- */
53
- public static function register_finder( Categories_Manager $categories_manager ) {
54
- include_once HAPPY_ADDONS_DIR_PATH . 'classes/finder-edit.php';
55
- $categories_manager->add_category( Finder_Edit::SLUG, new Finder_Edit() );
56
  }
 
57
  }
58
 
59
  Extensions_Manager::init();
1
  <?php
2
  namespace Happy_Addons\Elementor;
3
 
 
 
4
  defined( 'ABSPATH' ) || die();
5
 
6
  class Extensions_Manager {
7
 
8
+ /**
9
+ * Initialize
10
+ */
11
+ public static function init() {
12
  include_once HAPPY_ADDONS_DIR_PATH . 'extensions/column-extended.php';
13
  include_once HAPPY_ADDONS_DIR_PATH . 'extensions/widgets-extended.php';
14
 
17
  }
18
 
19
  if ( ha_is_grid_layer_enabled() ) {
20
+ include_once HAPPY_ADDONS_DIR_PATH . 'extensions/grid-layer.php';
21
  }
22
 
23
  if ( ha_is_wrapper_link_enabled() ) {
37
  }
38
 
39
  if ( is_user_logged_in() && ha_is_happy_clone_enabled() ) {
 
 
40
  include_once HAPPY_ADDONS_DIR_PATH . 'classes/clone-handler.php';
41
  }
 
42
 
43
+ if ( ha_is_equal_height_enabled() ) {
44
+ include_once HAPPY_ADDONS_DIR_PATH . 'extensions/equal-height.php';
45
+ }
 
 
 
 
 
46
  }
47
+
48
  }
49
 
50
  Extensions_Manager::init();
controls/widget-list.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Widget List control extended from select2
4
+ *
5
+ * @package Happy_Addons
6
+ */
7
+ namespace Happy_Addons\Elementor\Controls;
8
+
9
+ use Elementor\Control_Select2;
10
+
11
+ defined( 'ABSPATH' ) || die();
12
+
13
+ class Widget_List extends Control_Select2 {
14
+
15
+ const TYPE = 'widget-list';
16
+
17
+ public function get_type() {
18
+ return self::TYPE;
19
+ }
20
+ }
extensions/background-overlay.php CHANGED
@@ -10,191 +10,191 @@ defined( 'ABSPATH' ) || die();
10
 
11
  class Background_Overlay {
12
 
13
- public static function init() {
14
- add_action( 'elementor/element/common/_section_background/after_section_end', [__CLASS__, 'add_section'] );
15
- add_action( 'elementor/element/after_add_attributes', [__CLASS__, 'add_attributes'] );
16
- }
17
-
18
- public static function add_attributes( Element_Base $element ) {
19
- if ( in_array( $element->get_name(), [ 'column', 'section' ] ) ) {
20
- return;
21
- }
22
-
23
- if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
24
- return;
25
- }
26
-
27
- $settings = $element->get_settings_for_display();
28
-
29
- $overlay_bg = isset( $settings['_ha_background_overlay_background'] ) ? $settings['_ha_background_overlay_background'] : '';
30
- $overlay_hover_bg = isset( $settings['_ha_background_overlay_hover_background'] ) ? $settings['_ha_background_overlay_hover_background'] : '';
31
-
32
- $has_background_overlay = ( in_array( $overlay_bg, [ 'classic', 'gradient' ], true ) ||
33
- in_array( $overlay_hover_bg, [ 'classic', 'gradient' ], true ) );
34
-
35
- if ( $has_background_overlay ) {
36
- $element->add_render_attribute( '_wrapper', 'class', 'ha-has-background-overlay' );
37
- }
38
- }
39
-
40
- public static function add_section( Element_Base $element ) {
41
- $element->start_controls_section(
42
- '_ha_section_background_overlay',
43
- [
44
- 'label' => __( 'Background Overlay', 'happy-elementor-addons' ) . ha_get_section_icon(),
45
- 'tab' => Controls_Manager::TAB_ADVANCED,
46
- 'condition' => [
47
- '_background_background' => [ 'classic', 'gradient' ],
48
- ],
49
- ]
50
- );
51
-
52
- $element->start_controls_tabs( '_ha_tabs_background_overlay' );
53
-
54
- $element->start_controls_tab(
55
- '_ha_tab_background_overlay_normal',
56
- [
57
- 'label' => __( 'Normal', 'happy-elementor-addons' ),
58
- ]
59
- );
60
-
61
- $element->add_group_control(
62
- Group_Control_Background::get_type(),
63
- [
64
- 'name' => '_ha_background_overlay',
65
- 'selector' => '{{WRAPPER}}.ha-has-background-overlay > .elementor-widget-container:before',
66
- ]
67
- );
68
-
69
- $element->add_control(
70
- '_ha_background_overlay_opacity',
71
- [
72
- 'label' => __( 'Opacity', 'happy-elementor-addons' ),
73
- 'type' => Controls_Manager::SLIDER,
74
- 'default' => [
75
- 'size' => .5,
76
- ],
77
- 'range' => [
78
- 'px' => [
79
- 'max' => 1,
80
- 'step' => 0.01,
81
- ],
82
- ],
83
- 'selectors' => [
84
- '{{WRAPPER}}.ha-has-background-overlay > .elementor-widget-container:before' => 'opacity: {{SIZE}};',
85
- ],
86
- 'condition' => [
87
- '_ha_background_overlay_background' => [ 'classic', 'gradient' ],
88
- ],
89
- ]
90
- );
91
-
92
- $element->add_group_control(
93
- Group_Control_Css_Filter::get_type(),
94
- [
95
- 'name' => '_ha_css_filters',
96
- 'selector' => '{{WRAPPER}}.ha-has-background-overlay > .elementor-widget-container:before',
97
- ]
98
- );
99
-
100
- $element->add_control(
101
- '_ha_overlay_blend_mode',
102
- [
103
- 'label' => __( 'Blend Mode', 'happy-elementor-addons' ),
104
- 'type' => Controls_Manager::SELECT,
105
- 'options' => [
106
- '' => __( 'Normal', 'happy-elementor-addons' ),
107
- 'multiply' => 'Multiply',
108
- 'screen' => 'Screen',
109
- 'overlay' => 'Overlay',
110
- 'darken' => 'Darken',
111
- 'lighten' => 'Lighten',
112
- 'color-dodge' => 'Color Dodge',
113
- 'saturation' => 'Saturation',
114
- 'color' => 'Color',
115
- 'luminosity' => 'Luminosity',
116
- ],
117
- 'selectors' => [
118
- '{{WRAPPER}}.ha-has-background-overlay > .elementor-widget-container:before' => 'mix-blend-mode: {{VALUE}}',
119
- ],
120
- ]
121
- );
122
-
123
- $element->end_controls_tab();
124
-
125
- $element->start_controls_tab(
126
- '_ha_tab_background_overlay_hover',
127
- [
128
- 'label' => __( 'Hover', 'happy-elementor-addons' ),
129
- ]
130
- );
131
-
132
- $element->add_group_control(
133
- Group_Control_Background::get_type(),
134
- [
135
- 'name' => '_ha_background_overlay_hover',
136
- 'selector' => '{{WRAPPER}}.ha-has-background-overlay:hover > .elementor-widget-container:before',
137
- ]
138
- );
139
-
140
- $element->add_control(
141
- '_ha_background_overlay_hover_opacity',
142
- [
143
- 'label' => __( 'Opacity', 'happy-elementor-addons' ),
144
- 'type' => Controls_Manager::SLIDER,
145
- 'default' => [
146
- 'size' => .5,
147
- ],
148
- 'range' => [
149
- 'px' => [
150
- 'max' => 1,
151
- 'step' => 0.01,
152
- ],
153
- ],
154
- 'selectors' => [
155
- '{{WRAPPER}}.ha-has-background-overlay:hover > .elementor-widget-container:before' => 'opacity: {{SIZE}};',
156
- ],
157
- 'condition' => [
158
- '_ha_background_overlay_hover_background' => [ 'classic', 'gradient' ],
159
- ],
160
- ]
161
- );
162
-
163
- $element->add_group_control(
164
- Group_Control_Css_Filter::get_type(),
165
- [
166
- 'name' => '_ha_css_filters_hover',
167
- 'selector' => '{{WRAPPER}}.ha-has-background-overlay:hover > .elementor-widget-container:before',
168
- ]
169
- );
170
-
171
- $element->add_control(
172
- '_ha_background_overlay_hover_transition',
173
- [
174
- 'label' => __( 'Transition Duration', 'happy-elementor-addons' ),
175
- 'type' => Controls_Manager::SLIDER,
176
- 'default' => [
177
- 'size' => 0.3,
178
- ],
179
- 'range' => [
180
- 'px' => [
181
- 'max' => 3,
182
- 'step' => 0.1,
183
- ],
184
- ],
185
- 'separator' => 'before',
186
- 'selectors' => [
187
- '{{WRAPPER}}.ha-has-background-overlay > .elementor-widget-container:before' => 'transition: background {{SIZE}}s;',
188
- ]
189
- ]
190
- );
191
-
192
- $element->end_controls_tab();
193
-
194
- $element->end_controls_tabs();
195
-
196
- $element->end_controls_section();
197
- }
198
  }
199
 
200
  Background_Overlay::init();
10
 
11
  class Background_Overlay {
12
 
13
+ public static function init() {
14
+ add_action( 'elementor/element/common/_section_background/after_section_end', [__CLASS__, 'add_section'] );
15
+ add_action( 'elementor/element/after_add_attributes', [__CLASS__, 'add_attributes'] );
16
+ }
17
+
18
+ public static function add_attributes( Element_Base $element ) {
19
+ if ( in_array( $element->get_name(), [ 'column', 'section' ] ) ) {
20
+ return;
21
+ }
22
+
23
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
24
+ return;
25
+ }
26
+
27
+ $settings = $element->get_settings_for_display();
28
+
29
+ $overlay_bg = isset( $settings['_ha_background_overlay_background'] ) ? $settings['_ha_background_overlay_background'] : '';
30
+ $overlay_hover_bg = isset( $settings['_ha_background_overlay_hover_background'] ) ? $settings['_ha_background_overlay_hover_background'] : '';
31
+
32
+ $has_background_overlay = ( in_array( $overlay_bg, [ 'classic', 'gradient' ], true ) ||
33
+ in_array( $overlay_hover_bg, [ 'classic', 'gradient' ], true ) );
34
+
35
+ if ( $has_background_overlay ) {
36
+ $element->add_render_attribute( '_wrapper', 'class', 'ha-has-bg-overlay' );
37
+ }
38
+ }
39
+
40
+ public static function add_section( Element_Base $element ) {
41
+ $element->start_controls_section(
42
+ '_ha_section_background_overlay',
43
+ [
44
+ 'label' => __( 'Background Overlay', 'happy-elementor-addons' ) . ha_get_section_icon(),
45
+ 'tab' => Controls_Manager::TAB_ADVANCED,
46
+ 'condition' => [
47
+ '_background_background' => [ 'classic', 'gradient' ],
48
+ ],
49
+ ]
50
+ );
51
+
52
+ $element->start_controls_tabs( '_ha_tabs_background_overlay' );
53
+
54
+ $element->start_controls_tab(
55
+ '_ha_tab_background_overlay_normal',
56
+ [
57
+ 'label' => __( 'Normal', 'happy-elementor-addons' ),
58
+ ]
59
+ );
60
+
61
+ $element->add_group_control(
62
+ Group_Control_Background::get_type(),
63
+ [
64
+ 'name' => '_ha_background_overlay',
65
+ 'selector' => '{{WRAPPER}}.ha-has-bg-overlay > .elementor-widget-container:before',
66
+ ]
67
+ );
68
+
69
+ $element->add_control(
70
+ '_ha_background_overlay_opacity',
71
+ [
72
+ 'label' => __( 'Opacity', 'happy-elementor-addons' ),
73
+ 'type' => Controls_Manager::SLIDER,
74
+ 'default' => [
75
+ 'size' => .5,
76
+ ],
77
+ 'range' => [
78
+ 'px' => [
79
+ 'max' => 1,
80
+ 'step' => 0.01,
81
+ ],
82
+ ],
83
+ 'selectors' => [
84
+ '{{WRAPPER}}.ha-has-bg-overlay > .elementor-widget-container:before' => 'opacity: {{SIZE}};',
85
+ ],
86
+ 'condition' => [
87
+ '_ha_background_overlay_background' => [ 'classic', 'gradient' ],
88
+ ],
89
+ ]
90
+ );
91
+
92
+ $element->add_group_control(
93
+ Group_Control_Css_Filter::get_type(),
94
+ [
95
+ 'name' => '_ha_css_filters',
96
+ 'selector' => '{{WRAPPER}}.ha-has-bg-overlay > .elementor-widget-container:before',
97
+ ]
98
+ );
99
+
100
+ $element->add_control(
101
+ '_ha_overlay_blend_mode',
102
+ [
103
+ 'label' => __( 'Blend Mode', 'happy-elementor-addons' ),
104
+ 'type' => Controls_Manager::SELECT,
105
+ 'options' => [
106
+ '' => __( 'Normal', 'happy-elementor-addons' ),
107
+ 'multiply' => 'Multiply',
108
+ 'screen' => 'Screen',
109
+ 'overlay' => 'Overlay',
110
+ 'darken' => 'Darken',
111
+ 'lighten' => 'Lighten',
112
+ 'color-dodge' => 'Color Dodge',
113
+ 'saturation' => 'Saturation',
114
+ 'color' => 'Color',
115
+ 'luminosity' => 'Luminosity',
116
+ ],
117
+ 'selectors' => [
118
+ '{{WRAPPER}}.ha-has-bg-overlay > .elementor-widget-container:before' => 'mix-blend-mode: {{VALUE}}',
119
+ ],
120
+ ]
121
+ );
122
+
123
+ $element->end_controls_tab();
124
+
125
+ $element->start_controls_tab(
126
+ '_ha_tab_background_overlay_hover',
127
+ [
128
+ 'label' => __( 'Hover', 'happy-elementor-addons' ),
129
+ ]
130
+ );
131
+
132
+ $element->add_group_control(
133
+ Group_Control_Background::get_type(),
134
+ [
135
+ 'name' => '_ha_background_overlay_hover',
136
+ 'selector' => '{{WRAPPER}}.ha-has-bg-overlay:hover > .elementor-widget-container:before',
137
+ ]
138
+ );
139
+
140
+ $element->add_control(
141
+ '_ha_background_overlay_hover_opacity',
142
+ [
143
+ 'label' => __( 'Opacity', 'happy-elementor-addons' ),
144
+ 'type' => Controls_Manager::SLIDER,
145
+ 'default' => [
146
+ 'size' => .5,
147
+ ],
148
+ 'range' => [
149
+ 'px' => [
150
+ 'max' => 1,
151
+ 'step' => 0.01,
152
+ ],
153
+ ],
154
+ 'selectors' => [
155
+ '{{WRAPPER}}.ha-has-bg-overlay:hover > .elementor-widget-container:before' => 'opacity: {{SIZE}};',
156
+ ],
157
+ 'condition' => [
158
+ '_ha_background_overlay_hover_background' => [ 'classic', 'gradient' ],
159
+ ],
160
+ ]
161
+ );
162
+
163
+ $element->add_group_control(
164
+ Group_Control_Css_Filter::get_type(),
165
+ [
166
+ 'name' => '_ha_css_filters_hover',
167
+ 'selector' => '{{WRAPPER}}.ha-has-bg-overlay:hover > .elementor-widget-container:before',
168
+ ]
169
+ );
170
+
171
+ $element->add_control(
172
+ '_ha_background_overlay_hover_transition',
173
+ [
174
+ 'label' => __( 'Transition Duration', 'happy-elementor-addons' ),
175
+ 'type' => Controls_Manager::SLIDER,
176
+ 'default' => [
177
+ 'size' => 0.3,
178
+ ],
179
+ 'range' => [
180
+ 'px' => [
181
+ 'max' => 3,
182
+ 'step' => 0.1,
183
+ ],
184
+ ],
185
+ 'separator' => 'before',
186
+ 'selectors' => [
187
+ '{{WRAPPER}}.ha-has-bg-overlay > .elementor-widget-container:before' => 'transition: background {{SIZE}}s;',
188
+ ]
189
+ ]
190
+ );
191
+
192
+ $element->end_controls_tab();
193
+
194
+ $element->end_controls_tabs();
195
+
196
+ $element->end_controls_section();
197
+ }
198
  }
199
 
200
  Background_Overlay::init();
extensions/equal-height.php ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Happy_Addons\Elementor\Extension;
3
+
4
+ use Elementor\Element_Base;
5
+ use Elementor\Controls_Manager;
6
+ use Happy_Addons\Elementor\Controls\Widget_List;
7
+
8
+ defined( 'ABSPATH' ) || die();
9
+
10
+ class Equal_Height {
11
+
12
+ static $should_script_enqueue = false;
13
+
14
+ public static function init() {
15
+ add_action( 'elementor/element/section/section_advanced/after_section_end', [ __CLASS__, 'register' ], 1 );
16
+
17
+ add_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
18
+
19
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
20
+ }
21
+
22
+ public static function enqueue_scripts() {
23
+ wp_enqueue_script(
24
+ 'jquery-match-height',
25
+ HAPPY_ADDONS_ASSETS . 'vendor/jquery-match-height/jquery.matchHeight-min.js',
26
+ [],
27
+ HAPPY_ADDONS_VERSION,
28
+ true
29
+ );
30
+
31
+ $extension_js = HAPPY_ADDONS_DIR_PATH . 'assets/js/extension-equal-height.min.js';
32
+
33
+ if ( file_exists( $extension_js ) ) {
34
+ wp_add_inline_script(
35
+ 'elementor-frontend',
36
+ file_get_contents( $extension_js )
37
+ );
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Set should_script_enqueue based extension settings
43
+ *
44
+ * @param Element_Base $section
45
+ * @return void
46
+ */
47
+ public static function should_script_enqueue( Element_Base $section ) {
48
+ if ( self::$should_script_enqueue ) {
49
+ return;
50
+ }
51
+
52
+ if ( 'yes' == $section->get_settings_for_display( '_ha_eqh_enable' ) ) {
53
+ self::$should_script_enqueue = true;
54
+
55
+ self::enqueue_scripts();
56
+
57
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
58
+ }
59
+ }
60
+
61
+ public static function register( Element_Base $element ) {
62
+ $element->start_controls_section(
63
+ '_section_ha_eqh',
64
+ [
65
+ 'label' => __( 'Equal Height', 'happy-elementor-addons' ) . ha_get_section_icon(),
66
+ 'tab' => Controls_Manager::TAB_ADVANCED,
67
+ ]
68
+ );
69
+
70
+ $element->add_control(
71
+ '_ha_eqh_enable',
72
+ [
73
+ 'label' => __( 'Enable', 'happy-elementor-addons' ),
74
+ 'type' => Controls_Manager::SWITCHER,
75
+ 'default' => false,
76
+ 'return_value' => 'yes',
77
+ 'render_type' => 'ui',
78
+ 'frontend_available' => true,
79
+ ]
80
+ );
81
+
82
+ $element->add_control(
83
+ '_ha_eqh_to',
84
+ [
85
+ 'label' => __( 'Apply To', 'happy-elementor-addons' ),
86
+ 'type' => Controls_Manager::SELECT,
87
+ 'options' => [
88
+ 'widget' => __( 'Widgets', 'happy-elementor-addons' ),
89
+ ],
90
+ 'default' => 'widget',
91
+ 'condition' => [
92
+ '_ha_eqh_enable' => 'yes',
93
+ ],
94
+ 'render_type' => 'ui',
95
+ 'frontend_available' => true,
96
+ ]
97
+ );
98
+
99
+ $element->add_control(
100
+ '_ha_eqh_widget',
101
+ [
102
+ 'label' => __( 'Select Widgets', 'happy-elementor-addons' ),
103
+ 'label_block' => true,
104
+ 'description' => __( 'You can select multiple widgets from the dropdown and these widgets are only from the current selected section.', 'happy-elementor-addons' ),
105
+ 'type' => Widget_List::TYPE,
106
+ 'multiple' => true,
107
+ 'condition' => [
108
+ '_ha_eqh_enable' => 'yes',
109
+ '_ha_eqh_to' => 'widget'
110
+ ],
111
+ 'render_type' => 'ui',
112
+ 'frontend_available' => true,
113
+ ]
114
+ );
115
+
116
+ $element->add_control(
117
+ '_ha_eqh_disable_on_tablet',
118
+ [
119
+ 'label' => __( 'Disable On Tablet', 'happy-elementor-addons' ),
120
+ 'type' => Controls_Manager::SWITCHER,
121
+ 'default' => 'no',
122
+ 'return_value' => 'yes',
123
+ 'render_type' => 'ui',
124
+ 'frontend_available' => true,
125
+ 'condition' => [
126
+ '_ha_eqh_enable' => 'yes',
127
+ ],
128
+ ]
129
+ );
130
+
131
+ $element->add_control(
132
+ '_ha_eqh_disable_on_mobile',
133
+ [
134
+ 'label' => __( 'Disable On Mobile', 'happy-elementor-addons' ),
135
+ 'type' => Controls_Manager::SWITCHER,
136
+ 'default' => 'yes',
137
+ 'return_value' => 'yes',
138
+ 'render_type' => 'ui',
139
+ 'frontend_available' => true,
140
+ 'condition' => [
141
+ '_ha_eqh_enable' => 'yes',
142
+ ],
143
+ ]
144
+ );
145
+
146
+ $element->end_controls_section();
147
+ }
148
+ }
149
+
150
+ Equal_Height::init();
extensions/floating-effects.php CHANGED
@@ -32,6 +32,15 @@ class Floating_Effects {
32
  HAPPY_ADDONS_VERSION,
33
  true
34
  );
 
 
 
 
 
 
 
 
 
35
  }
36
 
37
  /**
32
  HAPPY_ADDONS_VERSION,
33
  true
34
  );
35
+
36
+ $extension_js = HAPPY_ADDONS_DIR_PATH . 'assets/js/extension-floating-effects.min.js';
37
+
38
+ if ( file_exists( $extension_js ) ) {
39
+ wp_add_inline_script(
40
+ 'elementor-frontend',
41
+ file_get_contents( $extension_js )
42
+ );
43
+ }
44
  }
45
 
46
  /**
extensions/grid-layer.php ADDED
@@ -0,0 +1,274 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Happy_Addons\Elementor\Extension;
3
+
4
+ use Elementor\Controls_Manager;
5
+
6
+ defined( 'ABSPATH' ) || die();
7
+
8
+ class Grid_Layer {
9
+
10
+ public static function init() {
11
+ add_action('elementor/documents/register_controls', [__CLASS__, 'add_controls_section'] , 1 , 1 );
12
+ }
13
+
14
+ public static function add_controls_section( $element ) {
15
+ $element->start_controls_section(
16
+ '_section_happy_grid_layer',
17
+ [
18
+ 'label' => __( 'Grid Layer', 'happy-elementor-addons' ) . ha_get_section_icon(),
19
+ 'tab' => Controls_Manager::TAB_SETTINGS,
20
+ ]
21
+ );
22
+
23
+ $element->add_control(
24
+ 'ha_grid',
25
+ [
26
+ 'label' => __( 'Grid Layer', 'happy-elementor-addons' ),
27
+ 'description' => __( 'Use "Cmd/Ctrl + Shift + G" to On/Off Grid Layer', 'happy-elementor-addons' ),
28
+ 'type' => Controls_Manager::SWITCHER,
29
+ 'label_on' => __( 'On', 'happy-elementor-addons' ),
30
+ 'label_off' => __( 'Off', 'happy-elementor-addons' ),
31
+ 'return_value' => 'yes',
32
+ 'default' => '',
33
+ ]
34
+ );
35
+
36
+ $element->add_control(
37
+ '_grid_layer_notice',
38
+ [
39
+ 'type' => Controls_Manager::RAW_HTML,
40
+ 'raw' => __( 'This feature is avilable only in editor and only for design purpose.', 'happy-elementor-addons' ),
41
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
42
+ 'condition' => [
43
+ 'ha_grid' => 'yes',
44
+ ],
45
+ ]
46
+ );
47
+
48
+ $element->add_responsive_control(
49
+ 'ha_grid_number',
50
+ [
51
+ 'label' => __( 'Columns', 'happy-elementor-addons' ),
52
+ 'type' => Controls_Manager::NUMBER,
53
+ 'min' => 1,
54
+ 'max' => 100,
55
+ 'step' => 1,
56
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
57
+ 'desktop_default' => 12,
58
+ 'tablet_default' => 12,
59
+ 'mobile_default' => 12,
60
+ 'condition' => [
61
+ 'ha_grid' => 'yes',
62
+ ],
63
+ 'render_type' => 'none',
64
+ ]
65
+ );
66
+
67
+ $element->add_responsive_control(
68
+ 'ha_grid_max_width',
69
+ [
70
+ 'label' => __( 'Max Width', 'happy-elementor-addons' ),
71
+ 'type' => Controls_Manager::SLIDER,
72
+ 'size_units' => [ 'px', '%' ],
73
+ 'range' => [
74
+ 'px' => [
75
+ 'min' => 0,
76
+ 'max' => 3000,
77
+ 'step' => 1,
78
+ ],
79
+ '%' => [
80
+ 'min' => 0,
81
+ 'max' => 100,
82
+ 'step' => 0.1,
83
+ ],
84
+ ],
85
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
86
+ 'desktop_default' => [
87
+ 'size' => self::get_default_grid_value('desktop'),
88
+ 'unit' => 'px',
89
+ ],
90
+ 'tablet_default' => [
91
+ 'size' => self::get_default_grid_value('tablet'),
92
+ 'unit' => 'px',
93
+ ],
94
+ 'mobile_default' => [
95
+ 'size' => self::get_default_grid_value('mobile'),
96
+ 'unit' => 'px',
97
+ ],
98
+ 'condition' => [
99
+ 'ha_grid' => 'yes',
100
+ ],
101
+ 'render_type' => 'none',
102
+ ]
103
+ );
104
+
105
+ $element->add_responsive_control(
106
+ 'ha_grid_offset',
107
+ [
108
+ 'label' => __( 'Offset', 'happy-elementor-addons' ),
109
+ 'type' => Controls_Manager::SLIDER,
110
+ 'size_units' => [ 'px', 'em', '%' ],
111
+ 'range' => [
112
+ 'px' => [
113
+ 'min' => 0,
114
+ 'max' => 1000,
115
+ 'step' => 1,
116
+ ],
117
+ 'em' => [
118
+ 'min' => 0,
119
+ 'max' => 100,
120
+ 'step' => 1,
121
+ ],
122
+ '%' => [
123
+ 'min' => 0,
124
+ 'max' => 100,
125
+ 'step' => 0.1,
126
+ ],
127
+ ],
128
+ 'default' => [
129
+ 'unit' => 'px',
130
+ 'size' => 0,
131
+ ],
132
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
133
+ 'desktop_default' => [
134
+ 'size' => 0,
135
+ 'unit' => 'px',
136
+ ],
137
+ 'tablet_default' => [
138
+ 'size' => 0,
139
+ 'unit' => 'px',
140
+ ],
141
+ 'mobile_default' => [
142
+ 'size' => 0,
143
+ 'unit' => 'px',
144
+ ],
145
+ 'condition' => [
146
+ 'ha_grid' => 'yes',
147
+ ],
148
+ 'render_type' => 'none',
149
+ ]
150
+ );
151
+
152
+ $element->add_responsive_control(
153
+ 'ha_grid_gutter',
154
+ [
155
+ 'label' => __( 'Gutter', 'happy-elementor-addons' ),
156
+ 'type' => Controls_Manager::SLIDER,
157
+ 'size_units' => [ 'px', 'em', '%' ],
158
+ 'range' => [
159
+ 'px' => [
160
+ 'min' => 0,
161
+ 'max' => 200,
162
+ 'step' => 1,
163
+ ],
164
+ 'em' => [
165
+ 'min' => 0,
166
+ 'max' => 20,
167
+ 'step' => 1,
168
+ ],
169
+ '%' => [
170
+ 'min' => 0,
171
+ 'max' => 100,
172
+ 'step' => 0.1,
173
+ ],
174
+ ],
175
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
176
+ 'desktop_default' => [
177
+ 'size' => 15,
178
+ 'unit' => 'px',
179
+ ],
180
+ 'tablet_default' => [
181
+ 'size' => 10,
182
+ 'unit' => 'px',
183
+ ],
184
+ 'mobile_default' => [
185
+ 'size' => 8,
186
+ 'unit' => 'px',
187
+ ],
188
+ 'condition' => [
189
+ 'ha_grid' => 'yes',
190
+ ],
191
+ 'render_type' => 'none',
192
+ ]
193
+ );
194
+
195
+ $element->add_control(
196
+ 'ha_grid_zindex',
197
+ [
198
+ 'label' => __( 'Z-Index', 'happy-elementor-addons' ),
199
+ 'type' => Controls_Manager::TEXT,
200
+ 'input_type' => 'number',
201
+ 'default' => '1000',
202
+ 'condition' => [
203
+ 'ha_grid' => 'yes',
204
+ ],
205
+ 'render_type' => 'none',
206
+ ]
207
+ );
208
+
209
+ $element->add_control(
210
+ 'ha_grid_color',
211
+ [
212
+ 'label' => __( 'Grid Color', 'happy-elementor-addons' ),
213
+ 'type' => Controls_Manager::COLOR,
214
+ 'default' => 'rgba(226, 73, 138, 0.5)',
215
+ 'condition' => [
216
+ 'ha_grid' => 'yes',
217
+ ],
218
+ 'render_type' => 'none',
219
+ ]
220
+ );
221
+
222
+ $element->add_control(
223
+ 'ha_grid_on',
224
+ [
225
+ 'label' => __( 'Grid Layer On', 'happy-elementor-addons' ),
226
+ 'type' => Controls_Manager::HIDDEN,
227
+ 'default' => 'grid-on',
228
+ 'condition' => [
229
+ 'ha_grid' => 'yes',
230
+ ],
231
+ 'selectors' => [
232
+ 'html.elementor-html' => 'position: relative;',
233
+ 'html.elementor-html::before' => 'content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin-right: auto; margin-left: auto; pointer-events: none; z-index: {{ha_grid_zindex.VALUE || 1000}}; min-height: 100vh;',
234
+ //Desktop view
235
+ '(desktop) html.elementor-html::before' => '
236
+ width: calc(100% - (2 * {{ha_grid_offset.SIZE}}{{ha_grid_offset.UNIT}}));
237
+ max-width: {{ha_grid_max_width.SIZE}}{{ha_grid_max_width.UNIT}};
238
+ background-size: calc(100% + {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}) 100%;
239
+ background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc(100% / {{ha_grid_number.VALUE}}) );
240
+ background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc(100% / {{ha_grid_number.VALUE}}) );',
241
+ //Tablet view
242
+ '(tablet) html.elementor-html::before' => '
243
+ width: calc(100% - (2 * {{ha_grid_offset_tablet.SIZE}}{{ha_grid_offset_tablet.UNIT}}));
244
+ max-width: {{ha_grid_max_width_tablet.SIZE}}{{ha_grid_max_width_tablet.UNIT}};
245
+ background-size: calc(100% + {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}) 100%;
246
+ background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc(100% / {{ha_grid_number_tablet.VALUE}}) );
247
+ background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc(100% / {{ha_grid_number_tablet.VALUE}}) );',
248
+ //Mobile view
249
+ '(mobile) html.elementor-html::before' => '
250
+ width: calc(100% - (2 * {{ha_grid_offset_mobile.SIZE}}{{ha_grid_offset_mobile.UNIT}}));
251
+ max-width: {{ha_grid_max_width_mobile.SIZE}}{{ha_grid_max_width_mobile.UNIT}};
252
+ background-size: calc(100% + {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}) 100%;
253
+ background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc(100% / {{ha_grid_number_mobile.VALUE}}) );
254
+ background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc(100% / {{ha_grid_number_mobile.VALUE}}) );',
255
+ ],
256
+ ]
257
+ );
258
+
259
+ $element->end_controls_section();
260
+ }
261
+
262
+ public static function get_default_grid_value( $value = '' ) {
263
+ $default = [
264
+ 'desktop' => get_option( 'elementor_container_width', 1140 ),
265
+ 'tablet' => get_option( 'elementor_viewport_lg', 1025 ),
266
+ 'mobile' => get_option( 'elementor_viewport_md', 768 ),
267
+ ];
268
+
269
+ return $default[$value];
270
+ }
271
+
272
+ }
273
+
274
+ Grid_Layer::init();
extensions/happy-grid.php DELETED
@@ -1,263 +0,0 @@
1
- <?php
2
- namespace Happy_Addons\Elementor\Extension;
3
-
4
- use Elementor\Controls_Manager;
5
-
6
- defined( 'ABSPATH' ) || die();
7
-
8
- class Happy_Grid {
9
-
10
- public static function init() {
11
- add_action('elementor/documents/register_controls', [__CLASS__, 'add_controls_section'] , 1 , 1 );
12
- }
13
-
14
- public static function add_controls_section( $element ) {
15
-
16
- $element->start_controls_section(
17
- '_section_happy_grid_layer',
18
- [
19
- 'label' => __( 'Grid Layer', 'happy-elementor-addons' ) . ha_get_section_icon(),
20
- 'tab' => Controls_Manager::TAB_SETTINGS,
21
- ]
22
- );
23
-
24
- $element->add_control(
25
- 'ha_grid',
26
- [
27
- 'label' => __( 'Grid Layer', 'happy-elementor-addons' ),
28
- 'description' => __( 'Use "Cmd/Ctrl + Shift + G" to On/Off Grid Layer', 'happy-elementor-addons' ),
29
- 'type' => Controls_Manager::SWITCHER,
30
- 'label_on' => __( 'On', 'happy-elementor-addons' ),
31
- 'label_off' => __( 'Off', 'happy-elementor-addons' ),
32
- 'return_value' => 'yes',
33
- 'default' => '',
34
- ]
35
- );
36
-
37
- $element->add_responsive_control(
38
- 'ha_grid_number',
39
- [
40
- 'label' => __( 'Grid Number', 'happy-elementor-addons' ),
41
- 'type' => Controls_Manager::NUMBER,
42
- 'min' => 1,
43
- 'max' => 100,
44
- 'step' => 1,
45
- 'devices' => [ 'desktop', 'tablet', 'mobile' ],
46
- 'desktop_default' => 12,
47
- 'tablet_default' => 12,
48
- 'mobile_default' => 12,
49
- 'condition' => [
50
- 'ha_grid' => 'yes',
51
- ],
52
- 'render_type' => 'none',
53
- ]
54
- );
55
-
56
- $element->add_responsive_control(
57
- 'ha_grid_max_width',
58
- [
59
- 'label' => __( 'Max Width', 'happy-elementor-addons' ),
60
- 'type' => Controls_Manager::SLIDER,
61
- 'size_units' => [ 'px', '%' ],
62
- 'range' => [
63
- 'px' => [
64
- 'min' => 0,
65
- 'max' => 3000,
66
- 'step' => 1,
67
- ],
68
- '%' => [
69
- 'min' => 0,
70
- 'max' => 100,
71
- 'step' => 0.1,
72
- ],
73
- ],
74
- 'devices' => [ 'desktop', 'tablet', 'mobile' ],
75
- 'desktop_default' => [
76
- 'size' => self::get_default_grid_value('desktop'),
77
- 'unit' => 'px',
78
- ],
79
- 'tablet_default' => [
80
- 'size' => self::get_default_grid_value('tablet'),
81
- 'unit' => 'px',
82
- ],
83
- 'mobile_default' => [
84
- 'size' => self::get_default_grid_value('mobile'),
85
- 'unit' => 'px',
86
- ],
87
- 'condition' => [
88
- 'ha_grid' => 'yes',
89
- ],
90
- 'render_type' => 'none',
91
- ]
92
- );
93
-
94
- $element->add_responsive_control(
95
- 'ha_grid_offset',
96
- [
97
- 'label' => __( 'Offset', 'happy-elementor-addons' ),
98
- 'type' => Controls_Manager::SLIDER,
99
- 'size_units' => [ 'px', 'em', '%' ],
100
- 'range' => [
101
- 'px' => [
102
- 'min' => 0,
103
- 'max' => 1000,
104
- 'step' => 1,
105
- ],
106
- 'em' => [
107
- 'min' => 0,
108
- 'max' => 100,
109
- 'step' => 1,
110
- ],
111
- '%' => [
112
- 'min' => 0,
113
- 'max' => 100,
114
- 'step' => 0.1,
115
- ],
116
- ],
117
- 'default' => [
118
- 'unit' => 'px',
119
- 'size' => 0,
120
- ],
121
- 'devices' => [ 'desktop', 'tablet', 'mobile' ],
122
- 'desktop_default' => [
123
- 'size' => 0,
124
- 'unit' => 'px',
125
- ],
126
- 'tablet_default' => [
127
- 'size' => 0,
128
- 'unit' => 'px',
129
- ],
130
- 'mobile_default' => [
131
- 'size' => 0,
132
- 'unit' => 'px',
133
- ],
134
- 'condition' => [
135
- 'ha_grid' => 'yes',
136
- ],
137
- 'render_type' => 'none',
138
- ]
139
- );
140
-
141
- $element->add_responsive_control(
142
- 'ha_grid_gutter',
143
- [
144
- 'label' => __( 'Gutter', 'happy-elementor-addons' ),
145
- 'type' => Controls_Manager::SLIDER,
146
- 'size_units' => [ 'px', 'em', '%' ],
147
- 'range' => [
148
- 'px' => [
149
- 'min' => 0,
150
- 'max' => 200,
151
- 'step' => 1,
152
- ],
153
- 'em' => [
154
- 'min' => 0,
155
- 'max' => 20,
156
- 'step' => 1,
157
- ],
158
- '%' => [
159
- 'min' => 0,
160
- 'max' => 100,
161
- 'step' => 0.1,
162
- ],
163
- ],
164
- 'devices' => [ 'desktop', 'tablet', 'mobile' ],
165
- 'desktop_default' => [
166
- 'size' => 15,
167
- 'unit' => 'px',
168
- ],
169
- 'tablet_default' => [
170
- 'size' => 10,
171
- 'unit' => 'px',
172
- ],
173
- 'mobile_default' => [
174
- 'size' => 8,
175
- 'unit' => 'px',
176
- ],
177
- 'condition' => [
178
- 'ha_grid' => 'yes',
179
- ],
180
- 'render_type' => 'none',
181
- ]
182
- );
183
-
184
- $element->add_control(
185
- 'ha_grid_zindex',
186
- [
187
- 'label' => __( 'Z-Index', 'happy-elementor-addons' ),
188
- 'type' => Controls_Manager::TEXT,
189
- 'input_type' => 'number',
190
- 'default' => '1000',
191
- 'condition' => [
192
- 'ha_grid' => 'yes',
193
- ],
194
- 'render_type' => 'none',
195
- ]
196
- );
197
-
198
- $element->add_control(
199
- 'ha_grid_color',
200
- [
201
- 'label' => __( 'Grid Color', 'happy-elementor-addons' ),
202
- 'type' => Controls_Manager::COLOR,
203
- 'default' => 'rgba(226, 73, 138, 0.5)',
204
- 'condition' => [
205
- 'ha_grid' => 'yes',
206
- ],
207
- 'render_type' => 'none',
208
- ]
209
- );
210
-
211
- $element->add_control(
212
- 'ha_grid_on',
213
- [
214
- 'label' => __( 'Grid Layer On', 'happy-elementor-addons' ),
215
- 'type' => Controls_Manager::HIDDEN,
216
- 'default' => 'grid-on',
217
- 'condition' => [
218
- 'ha_grid' => 'yes',
219
- ],
220
- 'selectors' => [
221
- 'html.elementor-html' => 'position: relative;',
222
- 'html.elementor-html::before' => 'content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin-right: auto; margin-left: auto; pointer-events: none; z-index: {{ha_grid_zindex.VALUE || 1000}}; min-height: 100vh;',
223
- //Desktop view
224
- '(desktop) html.elementor-html::before' => '
225
- width: calc(100% - (2 * {{ha_grid_offset.SIZE}}{{ha_grid_offset.UNIT}}));
226
- max-width: {{ha_grid_max_width.SIZE}}{{ha_grid_max_width.UNIT}};
227
- background-size: calc(100% + {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}) 100%;
228
- background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc(100% / {{ha_grid_number.VALUE}}) );
229
- background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc((100% / {{ha_grid_number.VALUE}}) - {{ha_grid_gutter.SIZE}}{{ha_grid_gutter.UNIT}}), transparent calc(100% / {{ha_grid_number.VALUE}}) );',
230
- //Tablet view
231
- '(tablet) html.elementor-html::before' => '
232
- width: calc(100% - (2 * {{ha_grid_offset_tablet.SIZE}}{{ha_grid_offset_tablet.UNIT}}));
233
- max-width: {{ha_grid_max_width_tablet.SIZE}}{{ha_grid_max_width_tablet.UNIT}};
234
- background-size: calc(100% + {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}) 100%;
235
- background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc(100% / {{ha_grid_number_tablet.VALUE}}) );
236
- background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc((100% / {{ha_grid_number_tablet.VALUE}}) - {{ha_grid_gutter_tablet.SIZE}}{{ha_grid_gutter_tablet.UNIT}}), transparent calc(100% / {{ha_grid_number_tablet.VALUE}}) );',
237
- //Mobile view
238
- '(mobile) html.elementor-html::before' => '
239
- width: calc(100% - (2 * {{ha_grid_offset_mobile.SIZE}}{{ha_grid_offset_mobile.UNIT}}));
240
- max-width: {{ha_grid_max_width_mobile.SIZE}}{{ha_grid_max_width_mobile.UNIT}};
241
- background-size: calc(100% + {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}) 100%;
242
- background-image: -webkit-repeating-linear-gradient( left, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc(100% / {{ha_grid_number_mobile.VALUE}}) );
243
- background-image: repeating-linear-gradient( to right, {{ha_grid_color.VALUE}}, {{ha_grid_color.VALUE}} calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc((100% / {{ha_grid_number_mobile.VALUE}}) - {{ha_grid_gutter_mobile.SIZE}}{{ha_grid_gutter_mobile.UNIT}}), transparent calc(100% / {{ha_grid_number_mobile.VALUE}}) );',
244
- ],
245
- ]
246
- );
247
-
248
- $element->end_controls_section();
249
- }
250
-
251
- public static function get_default_grid_value( $value = '' ) {
252
- $default = [
253
- 'desktop' => get_option( 'elementor_container_width', 1140 ),
254
- 'tablet' => get_option( 'elementor_viewport_lg', 1025 ),
255
- 'mobile' => get_option( 'elementor_viewport_md', 768 ),
256
- ];
257
-
258
- return $default[$value];
259
- }
260
-
261
- }
262
-
263
- Happy_Grid::init();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/happy-elementor-addons.pot CHANGED
@@ -81,19 +81,19 @@ msgstr ""
81
  msgid "Please make sure your search is spelled correctly or try a different words."
82
  msgstr ""
83
 
84
- #: classes/clone-handler.php:43
85
  msgid "Clone - %s"
86
  msgstr ""
87
 
88
- #: classes/clone-handler.php:44
89
  msgid "Happy Clone"
90
  msgstr ""
91
 
92
- #: classes/clone-handler.php:154
93
  msgid "%s - [Cloned #%d]"
94
  msgstr ""
95
 
96
- #: classes/dashboard.php:62, widgets/bar-chart/widget.php:185, widgets/carousel/widget.php:182, widgets/flip-box/widget.php:373, widgets/horizontal-timeline/widget.php:246, widgets/image-compare/widget.php:153, widgets/logo-grid/widget.php:200, widgets/post-list/widget.php:169, widgets/post-tab/widget.php:161, widgets/slider/widget.php:172, widgets/taxonomy-list/widget.php:201, widgets/threesixty-rotation/widget.php:85
97
  msgid "Settings"
98
  msgstr ""
99
 
@@ -121,7 +121,7 @@ msgstr ""
121
  msgid "Home"
122
  msgstr ""
123
 
124
- #: classes/dashboard.php:234
125
  msgid "Widgets"
126
  msgstr ""
127
 
@@ -205,7 +205,7 @@ msgstr ""
205
  msgid "Animated Text"
206
  msgstr ""
207
 
208
- #: classes/widgets-manager.php:120, widgets/horizontal-timeline/widget.php:54
209
  msgid "Timeline"
210
  msgstr ""
211
 
@@ -277,11 +277,11 @@ msgstr ""
277
  msgid "Image Grid"
278
  msgstr ""
279
 
280
- #: classes/widgets-manager.php:277, widgets/slider/widget.php:31
281
  msgid "Slider"
282
  msgstr ""
283
 
284
- #: classes/widgets-manager.php:288, widgets/carousel/widget.php:31
285
  msgid "Carousel"
286
  msgstr ""
287
 
@@ -717,7 +717,7 @@ msgstr ""
717
  msgid "Background Overlay"
718
  msgstr ""
719
 
720
- #: extensions/background-overlay.php:57, extensions/background-overlay.php:106, extensions/css-transform.php:51, inc/functions.php:123, widgets/bar-chart/widget.php:528, widgets/bar-chart/widget.php:550, widgets/bar-chart/widget.php:668, widgets/bar-chart/widget.php:690, widgets/bar-chart/widget.php:799, widgets/bar-chart/widget.php:821, widgets/bar-chart/widget.php:912, widgets/bar-chart/widget.php:934, widgets/bar-chart/widget.php:1114, widgets/bar-chart/widget.php:1136, widgets/bar-chart/widget.php:1215, widgets/bar-chart/widget.php:1237, widgets/calderaform/widget.php:180, widgets/calderaform/widget.php:471, widgets/card/widget.php:571, widgets/card/widget.php:1009, widgets/carousel/widget.php:556, widgets/carousel/widget.php:702, widgets/cf7/widget.php:239, widgets/cf7/widget.php:454, widgets/data-table/widget.php:806, widgets/dual-button/widget.php:532, widgets/dual-button/widget.php:733, widgets/fluent-form/widget.php:193, widgets/fluent-form/widget.php:525, widgets/gradient-heading/widget.php:196, widgets/gravityforms/widget.php:225, widgets/gravityforms/widget.php:568, widgets/gravityforms/widget.php:801, widgets/horizontal-timeline/widget.php:597, widgets/icon-box/widget.php:292, widgets/icon-box/widget.php:448, widgets/image-grid/widget.php:346, widgets/image-grid/widget.php:576, widgets/infobox/widget.php:791, widgets/justified-gallery/widget.php:345, widgets/justified-gallery/widget.php:643, widgets/logo-grid/widget.php:501, widgets/member/widget.php:334, widgets/member/widget.php:944, widgets/member/widget.php:1101, widgets/news-ticker/widget.php:384, widgets/ninjaform/widget.php:182, widgets/ninjaform/widget.php:463, widgets/post-list/widget.php:690, widgets/post-tab/widget.php:374, widgets/post-tab/widget.php:648, widgets/post-tab/widget.php:707, widgets/pricing-table/widget.php:756, widgets/slider/widget.php:504, widgets/slider/widget.php:650, widgets/social-icons/widget.php:201, widgets/social-icons/widget.php:463, widgets/social-share/widget.php:288, widgets/social-share/widget.php:623, widgets/taxonomy-list/widget.php:532, widgets/threesixty-rotation/widget.php:411, widgets/twitter-feed/widget.php:741, widgets/twitter-feed/widget.php:1126, widgets/weform/widget.php:218, widgets/weform/widget.php:551, widgets/wpform/widget.php:558
721
  msgid "Normal"
722
  msgstr ""
723
 
@@ -729,7 +729,7 @@ msgstr ""
729
  msgid "Blend Mode"
730
  msgstr ""
731
 
732
- #: extensions/background-overlay.php:128, extensions/css-transform.php:389, widgets/calderaform/widget.php:503, widgets/card/widget.php:605, widgets/card/widget.php:1041, widgets/carousel/widget.php:588, widgets/carousel/widget.php:722, widgets/cf7/widget.php:486, widgets/data-table/widget.php:880, widgets/dual-button/widget.php:563, widgets/dual-button/widget.php:764, widgets/fluent-form/widget.php:557, widgets/gravityforms/widget.php:600, widgets/gravityforms/widget.php:835, widgets/horizontal-timeline/widget.php:629, widgets/icon-box/widget.php:348, widgets/icon-box/widget.php:468, widgets/image-grid/widget.php:380, widgets/image-grid/widget.php:608, widgets/infobox/widget.php:840, widgets/justified-gallery/widget.php:379, widgets/justified-gallery/widget.php:675, widgets/logo-grid/widget.php:535, widgets/member/widget.php:368, widgets/member/widget.php:974, widgets/member/widget.php:1133, widgets/news-ticker/widget.php:404, widgets/ninjaform/widget.php:495, widgets/post-list/widget.php:709, widgets/post-tab/widget.php:404, widgets/post-tab/widget.php:667, widgets/post-tab/widget.php:727, widgets/pricing-table/widget.php:787, widgets/slider/widget.php:536, widgets/slider/widget.php:670, widgets/social-icons/widget.php:249, widgets/social-icons/widget.php:509, widgets/social-share/widget.php:339, widgets/social-share/widget.php:665, widgets/taxonomy-list/widget.php:551, widgets/threesixty-rotation/widget.php:441, widgets/twitter-feed/widget.php:777, widgets/twitter-feed/widget.php:1157, widgets/weform/widget.php:583, widgets/wpform/widget.php:590
733
  msgid "Hover"
734
  msgstr ""
735
 
@@ -757,23 +757,23 @@ msgstr ""
757
  msgid "CSS Transform"
758
  msgstr ""
759
 
760
- #: extensions/css-transform.php:32, extensions/floating-effects.php:69
761
  msgid "Enable"
762
  msgstr ""
763
 
764
- #: extensions/css-transform.php:61, extensions/css-transform.php:399, extensions/floating-effects.php:79
765
  msgid "Translate"
766
  msgstr ""
767
 
768
- #: extensions/css-transform.php:75, extensions/css-transform.php:413, extensions/floating-effects.php:94
769
  msgid "Translate X"
770
  msgstr ""
771
 
772
- #: extensions/css-transform.php:97, extensions/css-transform.php:435, extensions/floating-effects.php:127
773
  msgid "Translate Y"
774
  msgstr ""
775
 
776
- #: extensions/css-transform.php:121, extensions/css-transform.php:459, extensions/floating-effects.php:209, widgets/social-icons/widget.php:714
777
  msgid "Rotate"
778
  msgstr ""
779
 
@@ -789,11 +789,11 @@ msgstr ""
789
  msgid "Loose"
790
  msgstr ""
791
 
792
- #: extensions/css-transform.php:161, extensions/css-transform.php:499, extensions/floating-effects.php:224
793
  msgid "Rotate X"
794
  msgstr ""
795
 
796
- #: extensions/css-transform.php:184, extensions/css-transform.php:522, extensions/floating-effects.php:257
797
  msgid "Rotate Y"
798
  msgstr ""
799
 
@@ -801,7 +801,7 @@ msgstr ""
801
  msgid "Rotate (Z)"
802
  msgstr ""
803
 
804
- #: extensions/css-transform.php:231, extensions/css-transform.php:569, extensions/floating-effects.php:372
805
  msgid "Scale"
806
  msgstr ""
807
 
@@ -809,7 +809,7 @@ msgstr ""
809
  msgid "Scale (X)"
810
  msgstr ""
811
 
812
- #: extensions/css-transform.php:298, extensions/css-transform.php:636, extensions/floating-effects.php:421
813
  msgid "Scale Y"
814
  msgstr ""
815
 
@@ -825,75 +825,103 @@ msgstr ""
825
  msgid "Skew Y"
826
  msgstr ""
827
 
828
- #: extensions/floating-effects.php:61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
829
  msgid "Floating Effects"
830
  msgstr ""
831
 
832
- #: extensions/floating-effects.php:110, extensions/floating-effects.php:143, extensions/floating-effects.php:240, extensions/floating-effects.php:273, extensions/floating-effects.php:306, extensions/floating-effects.php:404, extensions/floating-effects.php:438
833
  msgid "From"
834
  msgstr ""
835
 
836
- #: extensions/floating-effects.php:111, extensions/floating-effects.php:144, extensions/floating-effects.php:241, extensions/floating-effects.php:274, extensions/floating-effects.php:307, extensions/floating-effects.php:405, extensions/floating-effects.php:439, widgets/social-share/widget.php:204
837
  msgid "To"
838
  msgstr ""
839
 
840
- #: extensions/floating-effects.php:160, extensions/floating-effects.php:323, extensions/floating-effects.php:455, widgets/bar-chart/widget.php:366, widgets/fun-factor/widget.php:210, widgets/number/widget.php:98
841
  msgid "Duration"
842
  msgstr ""
843
 
844
- #: extensions/floating-effects.php:185, extensions/floating-effects.php:348, extensions/floating-effects.php:480
845
  msgid "Delay"
846
  msgstr ""
847
 
848
- #: extensions/floating-effects.php:290
849
  msgid "Rotate Z"
850
  msgstr ""
851
 
852
- #: extensions/floating-effects.php:387
853
  msgid "Scale X"
854
  msgstr ""
855
 
856
- #: extensions/happy-grid.php:19, extensions/happy-grid.php:27
857
  msgid "Grid Layer"
858
  msgstr ""
859
 
860
- #: extensions/happy-grid.php:28
861
  msgid "Use \"Cmd/Ctrl + Shift + G\" to On/Off Grid Layer"
862
  msgstr ""
863
 
864
- #: extensions/happy-grid.php:30, widgets/post-list/widget.php:581, widgets/taxonomy-list/widget.php:423, widgets/threesixty-rotation/widget.php:138
865
  msgid "On"
866
  msgstr ""
867
 
868
- #: extensions/happy-grid.php:31, widgets/post-list/widget.php:582, widgets/taxonomy-list/widget.php:424, widgets/threesixty-rotation/widget.php:139
869
  msgid "Off"
870
  msgstr ""
871
 
872
- #: extensions/happy-grid.php:40
873
- msgid "Grid Number"
 
 
 
 
874
  msgstr ""
875
 
876
- #: extensions/happy-grid.php:59
877
  msgid "Max Width"
878
  msgstr ""
879
 
880
- #: extensions/happy-grid.php:97, widgets/card/widget.php:463, widgets/card/widget.php:697, widgets/fun-factor/widget.php:491, widgets/icon-box/widget.php:499, widgets/infobox/widget.php:452, widgets/review/widget.php:579, widgets/step-flow/widget.php:639
881
  msgid "Offset"
882
  msgstr ""
883
 
884
- #: extensions/happy-grid.php:144
885
  msgid "Gutter"
886
  msgstr ""
887
 
888
- #: extensions/happy-grid.php:187
889
  msgid "Z-Index"
890
  msgstr ""
891
 
892
- #: extensions/happy-grid.php:201, widgets/bar-chart/widget.php:465
893
  msgid "Grid Color"
894
  msgstr ""
895
 
896
- #: extensions/happy-grid.php:214
897
  msgid "Grid Layer On"
898
  msgstr ""
899
 
@@ -901,11 +929,11 @@ msgstr ""
901
  msgid "Fixed Size"
902
  msgstr ""
903
 
904
- #: extensions/widgets-extended.php:35, widgets/calendly/widget.php:101, widgets/card/widget.php:445, widgets/flip-box/widget.php:416, widgets/fun-factor/widget.php:361, widgets/fun-factor/widget.php:725, widgets/horizontal-timeline/widget.php:797, widgets/image-grid/widget.php:291, widgets/infobox/widget.php:431, widgets/justified-gallery/widget.php:192, widgets/logo-grid/widget.php:280, widgets/member/widget.php:624, widgets/review/widget.php:561, widgets/skills/widget.php:208, widgets/testimonial/widget.php:312
905
  msgid "Height"
906
  msgstr ""
907
 
908
- #: extensions/widgets-extended.php:57, widgets/card/widget.php:412, widgets/cf7/widget.php:121, widgets/fun-factor/widget.php:332, widgets/fun-factor/widget.php:704, widgets/horizontal-timeline/widget.php:779, widgets/infobox/widget.php:406, widgets/member/widget.php:602, widgets/review/widget.php:539, widgets/step-flow/widget.php:594, widgets/testimonial/widget.php:286, widgets/threesixty-rotation/widget.php:203, widgets/threesixty-rotation/widget.php:358
909
  msgid "Width"
910
  msgstr ""
911
 
@@ -913,15 +941,15 @@ msgstr ""
913
  msgid "Horizontal Align"
914
  msgstr ""
915
 
916
- #: extensions/widgets-extended.php:85, widgets/bar-chart/widget.php:331, widgets/card/widget.php:99, widgets/card/widget.php:226, widgets/card/widget.php:309, widgets/carousel/widget.php:679, widgets/data-table/widget.php:223, widgets/data-table/widget.php:251, widgets/data-table/widget.php:563, widgets/data-table/widget.php:593, widgets/dual-button/widget.php:450, widgets/flip-box/widget.php:192, widgets/flip-box/widget.php:349, widgets/fun-factor/widget.php:145, widgets/fun-factor/widget.php:256, widgets/gradient-heading/widget.php:129, widgets/gravityforms/widget.php:479, widgets/horizontal-timeline/widget.php:259, widgets/icon-box/widget.php:173, widgets/image-grid/widget.php:551, widgets/infobox/widget.php:241, widgets/justified-gallery/widget.php:618, widgets/member/widget.php:232, widgets/news-ticker/widget.php:104, widgets/news-ticker/widget.php:147, widgets/ninjaform/widget.php:368, widgets/number/widget.php:192, widgets/post-list/widget.php:216, widgets/post-list/widget.php:463, widgets/post-tab/widget.php:213, widgets/post-tab/widget.php:238, widgets/pricing-table/widget.php:329, widgets/review/widget.php:176, widgets/review/widget.php:231, widgets/slider/widget.php:627, widgets/social-icons/widget.php:415, widgets/social-share/widget.php:485, widgets/step-flow/widget.php:186, widgets/taxonomy-list/widget.php:306, widgets/testimonial/widget.php:85, widgets/threesixty-rotation/widget.php:111, widgets/threesixty-rotation/widget.php:167, widgets/twitter-feed/widget.php:316, widgets/twitter-feed/widget.php:345, widgets/twitter-feed/widget.php:371, widgets/weform/widget.php:445, widgets/wpform/widget.php:459
917
  msgid "Left"
918
  msgstr ""
919
 
920
- #: extensions/widgets-extended.php:89, extensions/widgets-extended.php:124, widgets/card/widget.php:230, widgets/card/widget.php:313, widgets/carousel/widget.php:683, widgets/data-table/widget.php:227, widgets/data-table/widget.php:567, widgets/dual-button/widget.php:454, widgets/flip-box/widget.php:196, widgets/flip-box/widget.php:353, widgets/fun-factor/widget.php:260, widgets/gradient-heading/widget.php:133, widgets/gravityforms/widget.php:483, widgets/horizontal-timeline/widget.php:263, widgets/icon-box/widget.php:177, widgets/image-grid/widget.php:555, widgets/infobox/widget.php:245, widgets/justified-gallery/widget.php:622, widgets/member/widget.php:236, widgets/ninjaform/widget.php:372, widgets/number/widget.php:196, widgets/post-list/widget.php:467, widgets/post-tab/widget.php:242, widgets/review/widget.php:235, widgets/slider/widget.php:631, widgets/social-icons/widget.php:419, widgets/social-share/widget.php:489, widgets/step-flow/widget.php:190, widgets/taxonomy-list/widget.php:310, widgets/testimonial/widget.php:89, widgets/threesixty-rotation/widget.php:115, widgets/threesixty-rotation/widget.php:171, widgets/twitter-feed/widget.php:320, widgets/twitter-feed/widget.php:349, widgets/twitter-feed/widget.php:375, widgets/weform/widget.php:449, widgets/wpform/widget.php:463
921
  msgid "Center"
922
  msgstr ""
923
 
924
- #: extensions/widgets-extended.php:93, extensions/widgets-extended.php:128, widgets/bar-chart/widget.php:333, widgets/card/widget.php:107, widgets/card/widget.php:234, widgets/card/widget.php:317, widgets/carousel/widget.php:687, widgets/data-table/widget.php:231, widgets/data-table/widget.php:255, widgets/data-table/widget.php:571, widgets/data-table/widget.php:597, widgets/dual-button/widget.php:458, widgets/flip-box/widget.php:200, widgets/flip-box/widget.php:357, widgets/fun-factor/widget.php:153, widgets/fun-factor/widget.php:264, widgets/gradient-heading/widget.php:137, widgets/gravityforms/widget.php:487, widgets/horizontal-timeline/widget.php:267, widgets/icon-box/widget.php:181, widgets/image-grid/widget.php:559, widgets/infobox/widget.php:249, widgets/justified-gallery/widget.php:626, widgets/member/widget.php:240, widgets/news-ticker/widget.php:108, widgets/news-ticker/widget.php:151, widgets/ninjaform/widget.php:376, widgets/number/widget.php:200, widgets/post-list/widget.php:471, widgets/post-tab/widget.php:221, widgets/post-tab/widget.php:246, widgets/pricing-table/widget.php:333, widgets/review/widget.php:184, widgets/review/widget.php:239, widgets/slider/widget.php:635, widgets/social-icons/widget.php:423, widgets/social-share/widget.php:493, widgets/step-flow/widget.php:194, widgets/taxonomy-list/widget.php:314, widgets/testimonial/widget.php:93, widgets/threesixty-rotation/widget.php:119, widgets/threesixty-rotation/widget.php:175, widgets/twitter-feed/widget.php:324, widgets/twitter-feed/widget.php:353, widgets/twitter-feed/widget.php:379, widgets/weform/widget.php:453, widgets/wpform/widget.php:467
925
  msgid "Right"
926
  msgstr ""
927
 
@@ -937,7 +965,7 @@ msgstr ""
937
  msgid "Wrapper Link"
938
  msgstr ""
939
 
940
- #: extensions/wrapper-link.php:37, widgets/card/widget.php:276, widgets/carousel/widget.php:108, widgets/data-table/widget.php:329, widgets/dual-button/widget.php:85, widgets/dual-button/widget.php:274, widgets/gradient-heading/widget.php:76, widgets/infobox/widget.php:291, widgets/member/widget.php:512, widgets/pricing-table/widget.php:286, widgets/slider/widget.php:108, widgets/social-icons/widget.php:137, widgets/step-flow/widget.php:133
941
  msgid "Link"
942
  msgstr ""
943
 
@@ -1081,7 +1109,7 @@ msgstr ""
1081
  msgid "Zoom-out"
1082
  msgstr ""
1083
 
1084
- #: inc/functions.php:117, widgets/bar-chart/widget.php:479, widgets/bar-chart/widget.php:619, widgets/bar-chart/widget.php:750, widgets/bar-chart/widget.php:863, widgets/bar-chart/widget.php:1065, widgets/bar-chart/widget.php:1166, widgets/card/widget.php:465, widgets/card/widget.php:699, widgets/carousel/widget.php:277, widgets/carousel/widget.php:478, widgets/data-table/widget.php:113, widgets/data-table/widget.php:390, widgets/flip-box/widget.php:73, widgets/flip-box/widget.php:230, widgets/icon-box/widget.php:501, widgets/image-compare/widget.php:382, widgets/infobox/widget.php:454, widgets/logo-grid/widget.php:301, widgets/pricing-table/widget.php:92, widgets/review/widget.php:581, widgets/slider/widget.php:253, widgets/slider/widget.php:426, widgets/social-icons/widget.php:691, widgets/step-flow/widget.php:641, widgets/threesixty-rotation/widget.php:99
1085
  msgid "None"
1086
  msgstr ""
1087
 
@@ -1129,7 +1157,7 @@ msgstr ""
1129
  msgid "Hue"
1130
  msgstr ""
1131
 
1132
- #: inc/functions.php:135, widgets/bar-chart/widget.php:564, widgets/bar-chart/widget.php:704, widgets/bar-chart/widget.php:835, widgets/bar-chart/widget.php:948, widgets/bar-chart/widget.php:1150, widgets/bar-chart/widget.php:1251, widgets/carousel/widget.php:563, widgets/carousel/widget.php:595, widgets/carousel/widget.php:709, widgets/carousel/widget.php:729, widgets/carousel/widget.php:749, widgets/data-table/widget.php:699, widgets/data-table/widget.php:1018, widgets/flip-box/widget.php:666, widgets/flip-box/widget.php:711, widgets/flip-box/widget.php:762, widgets/flip-box/widget.php:858, widgets/flip-box/widget.php:1029, widgets/flip-box/widget.php:1086, widgets/flip-box/widget.php:1125, widgets/fluent-form/widget.php:411, widgets/fluent-form/widget.php:647, widgets/fluent-form/widget.php:667, widgets/fun-factor/widget.php:603, widgets/fun-factor/widget.php:658, widgets/fun-factor/widget.php:751, widgets/gravityforms/widget.php:692, widgets/gravityforms/widget.php:712, widgets/horizontal-timeline/widget.php:401, widgets/horizontal-timeline/widget.php:449, widgets/horizontal-timeline/widget.php:878, widgets/horizontal-timeline/widget.php:920, widgets/horizontal-timeline/widget.php:950, widgets/icon-box/widget.php:299, widgets/icon-box/widget.php:355, widgets/image-compare/widget.php:243, widgets/image-compare/widget.php:461, widgets/infobox/widget.php:564, widgets/post-list/widget.php:697, widgets/post-list/widget.php:716, widgets/post-list/widget.php:754, widgets/post-list/widget.php:909, widgets/post-list/widget.php:956, widgets/post-list/widget.php:1001, widgets/post-tab/widget.php:381, widgets/post-tab/widget.php:411, widgets/post-tab/widget.php:655, widgets/post-tab/widget.php:674, widgets/post-tab/widget.php:714, widgets/post-tab/widget.php:734, widgets/post-tab/widget.php:785, widgets/slider/widget.php:657, widgets/slider/widget.php:677, widgets/slider/widget.php:697, widgets/social-icons/widget.php:208, widgets/social-icons/widget.php:256, widgets/social-icons/widget.php:379, widgets/social-icons/widget.php:470, widgets/social-icons/widget.php:516, widgets/social-icons/widget.php:831, widgets/social-share/widget.php:295, widgets/social-share/widget.php:346, widgets/social-share/widget.php:630, widgets/social-share/widget.php:672, widgets/step-flow/widget.php:326, widgets/step-flow/widget.php:403, widgets/step-flow/widget.php:473, widgets/step-flow/widget.php:538, widgets/step-flow/widget.php:705, widgets/taxonomy-list/widget.php:539, widgets/taxonomy-list/widget.php:558, widgets/twitter-feed/widget.php:584, widgets/twitter-feed/widget.php:868, widgets/twitter-feed/widget.php:913, widgets/twitter-feed/widget.php:975, widgets/twitter-feed/widget.php:1036, widgets/twitter-feed/widget.php:1144, widgets/twitter-feed/widget.php:1175, widgets/weform/widget.php:665, widgets/weform/widget.php:685
1133
  msgid "Color"
1134
  msgstr ""
1135
 
@@ -1316,7 +1344,7 @@ msgstr ""
1316
  msgid "Write multiple label with comma ( , ) separator. Example: January, February, March etc"
1317
  msgstr ""
1318
 
1319
- #: widgets/bar-chart/widget.php:86, widgets/data-table/widget.php:74, widgets/data-table/widget.php:303, widgets/horizontal-timeline/widget.php:677, widgets/icon-box/widget.php:57, widgets/post-list/widget.php:888, widgets/post-tab/widget.php:561, widgets/skills/widget.php:271, widgets/twitter-feed/widget.php:817
1320
  msgid "Content"
1321
  msgstr ""
1322
 
@@ -1336,7 +1364,7 @@ msgstr ""
1336
  msgid "Style"
1337
  msgstr ""
1338
 
1339
- #: widgets/bar-chart/widget.php:122, widgets/bar-chart/widget.php:1041, widgets/calderaform/widget.php:203, widgets/calderaform/widget.php:242, widgets/calderaform/widget.php:490, widgets/calderaform/widget.php:521, widgets/calendly/widget.php:174, widgets/card/widget.php:776, widgets/card/widget.php:1028, widgets/card/widget.php:1059, widgets/carousel/widget.php:575, widgets/carousel/widget.php:606, widgets/cf7/widget.php:262, widgets/cf7/widget.php:301, widgets/cf7/widget.php:473, widgets/cf7/widget.php:504, widgets/data-table/widget.php:457, widgets/dual-button/widget.php:550, widgets/dual-button/widget.php:581, widgets/dual-button/widget.php:642, widgets/dual-button/widget.php:751, widgets/dual-button/widget.php:782, widgets/flip-box/widget.php:680, widgets/flip-box/widget.php:1043, widgets/fluent-form/widget.php:216, widgets/fluent-form/widget.php:255, widgets/fluent-form/widget.php:433, widgets/fluent-form/widget.php:544, widgets/fluent-form/widget.php:575, widgets/fun-factor/widget.php:477, widgets/gravityforms/widget.php:256, widgets/gravityforms/widget.php:304, widgets/gravityforms/widget.php:587, widgets/gravityforms/widget.php:619, widgets/gravityforms/widget.php:821, widgets/gravityforms/widget.php:856, widgets/horizontal-timeline/widget.php:525, widgets/horizontal-timeline/widget.php:616, widgets/horizontal-timeline/widget.php:647, widgets/horizontal-timeline/widget.php:757, widgets/icon-box/widget.php:310, widgets/icon-box/widget.php:366, widgets/icon-box/widget.php:584, widgets/image-compare/widget.php:472, widgets/image-grid/widget.php:595, widgets/image-grid/widget.php:626, widgets/image-grid/widget.php:671, widgets/infobox/widget.php:578, widgets/infobox/widget.php:810, widgets/infobox/widget.php:858, widgets/justified-gallery/widget.php:327, widgets/justified-gallery/widget.php:489, widgets/justified-gallery/widget.php:662, widgets/justified-gallery/widget.php:693, widgets/justified-gallery/widget.php:738, widgets/logo-grid/widget.php:386, widgets/member/widget.php:354, widgets/member/widget.php:388, widgets/member/widget.php:697, widgets/member/widget.php:962, widgets/member/widget.php:992, widgets/member/widget.php:1120, widgets/member/widget.php:1151, widgets/ninjaform/widget.php:205, widgets/ninjaform/widget.php:244, widgets/ninjaform/widget.php:482, widgets/ninjaform/widget.php:513, widgets/pricing-table/widget.php:774, widgets/pricing-table/widget.php:805, widgets/pricing-table/widget.php:865, widgets/review/widget.php:353, widgets/slider/widget.php:523, widgets/slider/widget.php:554, widgets/social-icons/widget.php:221, widgets/social-icons/widget.php:268, widgets/social-icons/widget.php:484, widgets/social-icons/widget.php:529, widgets/social-share/widget.php:310, widgets/social-share/widget.php:360, widgets/social-share/widget.php:642, widgets/social-share/widget.php:683, widgets/step-flow/widget.php:337, widgets/step-flow/widget.php:417, widgets/testimonial/widget.php:234, widgets/twitter-feed/widget.php:1133, widgets/twitter-feed/widget.php:1164, widgets/weform/widget.php:241, widgets/weform/widget.php:280, widgets/weform/widget.php:570, widgets/weform/widget.php:601, widgets/wpform/widget.php:208, widgets/wpform/widget.php:247, widgets/wpform/widget.php:577, widgets/wpform/widget.php:608
1340
  msgid "Background Color"
1341
  msgstr ""
1342
 
@@ -1344,7 +1372,7 @@ msgstr ""
1344
  msgid "Background Hover Color"
1345
  msgstr ""
1346
 
1347
- #: widgets/bar-chart/widget.php:138, widgets/bar-chart/widget.php:1052, widgets/calderaform/widget.php:532, widgets/card/widget.php:1070, widgets/carousel/widget.php:617, widgets/cf7/widget.php:515, widgets/dual-button/widget.php:592, widgets/dual-button/widget.php:793, widgets/fluent-form/widget.php:586, widgets/gravityforms/widget.php:631, widgets/gravityforms/widget.php:870, widgets/horizontal-timeline/widget.php:658, widgets/icon-box/widget.php:377, widgets/image-grid/widget.php:637, widgets/image-grid/widget.php:682, widgets/infobox/widget.php:869, widgets/justified-gallery/widget.php:704, widgets/justified-gallery/widget.php:749, widgets/logo-grid/widget.php:372, widgets/member/widget.php:401, widgets/member/widget.php:1003, widgets/member/widget.php:1162, widgets/ninjaform/widget.php:524, widgets/pricing-table/widget.php:816, widgets/slider/widget.php:565, widgets/social-icons/widget.php:235, widgets/social-icons/widget.php:280, widgets/social-icons/widget.php:497, widgets/social-icons/widget.php:541, widgets/social-share/widget.php:324, widgets/social-share/widget.php:374, widgets/social-share/widget.php:694, widgets/twitter-feed/widget.php:1186, widgets/weform/widget.php:612, widgets/wpform/widget.php:619
1348
  msgid "Border Color"
1349
  msgstr ""
1350
 
@@ -1392,7 +1420,7 @@ msgstr ""
1392
  msgid "Show Title"
1393
  msgstr ""
1394
 
1395
- #: widgets/bar-chart/widget.php:273, widgets/card/widget.php:157, widgets/card/widget.php:857, widgets/carousel/widget.php:84, widgets/carousel/widget.php:383, widgets/data-table/widget.php:81, widgets/data-table/widget.php:313, widgets/data-table/widget.php:682, widgets/data-table/widget.php:956, widgets/flip-box/widget.php:158, widgets/flip-box/widget.php:315, widgets/flip-box/widget.php:704, widgets/flip-box/widget.php:1067, widgets/fluent-form/widget.php:640, widgets/fun-factor/widget.php:184, widgets/fun-factor/widget.php:637, widgets/gradient-heading/widget.php:55, widgets/gradient-heading/widget.php:63, widgets/gradient-heading/widget.php:159, widgets/gravityforms/widget.php:685, widgets/horizontal-timeline/widget.php:112, widgets/horizontal-timeline/widget.php:847, widgets/icon-box/widget.php:92, widgets/icon-box/widget.php:421, widgets/infobox/widget.php:172, widgets/infobox/widget.php:639, widgets/news-ticker/widget.php:374, widgets/post-list/widget.php:123, widgets/post-list/widget.php:671, widgets/post-tab/widget.php:613, widgets/pricing-table/widget.php:65, widgets/pricing-table/widget.php:167, widgets/pricing-table/widget.php:598, widgets/slider/widget.php:84, widgets/slider/widget.php:333, widgets/step-flow/widget.php:104, widgets/step-flow/widget.php:107, widgets/step-flow/widget.php:454, widgets/taxonomy-list/widget.php:513, widgets/testimonial/widget.php:173, widgets/testimonial/widget.php:423, widgets/weform/widget.php:658
1396
  msgid "Title"
1397
  msgstr ""
1398
 
@@ -1424,7 +1452,7 @@ msgstr ""
1424
  msgid "Show Legend"
1425
  msgstr ""
1426
 
1427
- #: widgets/bar-chart/widget.php:326, widgets/card/widget.php:677, widgets/carousel/widget.php:476, widgets/fun-factor/widget.php:140, widgets/image-compare/widget.php:380, widgets/member/widget.php:478, widgets/pricing-table/widget.php:324, widgets/slider/widget.php:424
1428
  msgid "Position"
1429
  msgstr ""
1430
 
@@ -1464,7 +1492,7 @@ msgstr ""
1464
  msgid "Common"
1465
  msgstr ""
1466
 
1467
- #: widgets/bar-chart/widget.php:406, widgets/bar-chart/widget.php:728, widgets/bar-chart/widget.php:972, widgets/calderaform/widget.php:121, widgets/calderaform/widget.php:279, widgets/calderaform/widget.php:413, widgets/card/widget.php:520, widgets/card/widget.php:753, widgets/card/widget.php:950, widgets/cf7/widget.php:171, widgets/cf7/widget.php:395, widgets/data-table/widget.php:636, widgets/data-table/widget.php:783, widgets/dual-button/widget.php:390, widgets/dual-button/widget.php:480, widgets/dual-button/widget.php:681, widgets/flip-box/widget.php:462, widgets/flip-box/widget.php:613, widgets/flip-box/widget.php:806, widgets/flip-box/widget.php:976, widgets/fluent-form/widget.php:125, widgets/fluent-form/widget.php:358, widgets/fluent-form/widget.php:466, widgets/fun-factor/widget.php:425, widgets/fun-factor/widget.php:572, widgets/gravityforms/widget.php:156, widgets/gravityforms/widget.php:516, widgets/horizontal-timeline/widget.php:469, widgets/horizontal-timeline/widget.php:716, widgets/icon-box/widget.php:230, widgets/icon-box/widget.php:561, widgets/image-compare/widget.php:368, widgets/image-grid/widget.php:314, widgets/image-grid/widget.php:482, widgets/infobox/widget.php:520, widgets/infobox/widget.php:732, widgets/justified-gallery/widget.php:466, widgets/justified-gallery/widget.php:549, widgets/logo-grid/widget.php:268, widgets/member/widget.php:654, widgets/member/widget.php:899, widgets/member/widget.php:1042, widgets/news-ticker/widget.php:250, widgets/news-ticker/widget.php:360, widgets/ninjaform/widget.php:122, widgets/ninjaform/widget.php:281, widgets/ninjaform/widget.php:404, widgets/number/widget.php:146, widgets/post-list/widget.php:527, widgets/post-tab/widget.php:310, widgets/post-tab/widget.php:361, widgets/post-tab/widget.php:507, widgets/pricing-table/widget.php:697, widgets/pricing-table/widget.php:842, widgets/review/widget.php:330, widgets/review/widget.php:635, widgets/social-icons/widget.php:555, widgets/social-icons/widget.php:662, widgets/social-share/widget.php:520, widgets/step-flow/widget.php:260, widgets/step-flow/widget.php:361, widgets/taxonomy-list/widget.php:369, widgets/testimonial/widget.php:199, widgets/threesixty-rotation/widget.php:266, widgets/threesixty-rotation/widget.php:502, widgets/twitter-feed/widget.php:449, widgets/twitter-feed/widget.php:825, widgets/weform/widget.php:157, widgets/weform/widget.php:317, widgets/weform/widget.php:484, widgets/wpform/widget.php:123, widgets/wpform/widget.php:283, widgets/wpform/widget.php:499
1468
  msgid "Padding"
1469
  msgstr ""
1470
 
@@ -1484,7 +1512,7 @@ msgstr ""
1484
  msgid "Title Typography"
1485
  msgstr ""
1486
 
1487
- #: widgets/bar-chart/widget.php:480, widgets/bar-chart/widget.php:620, widgets/bar-chart/widget.php:751, widgets/bar-chart/widget.php:864, widgets/bar-chart/widget.php:1066, widgets/bar-chart/widget.php:1167, widgets/card/widget.php:466, widgets/card/widget.php:700, widgets/carousel/widget.php:479, widgets/icon-box/widget.php:502, widgets/image-compare/widget.php:383, widgets/infobox/widget.php:455, widgets/pricing-table/widget.php:111, widgets/review/widget.php:582, widgets/slider/widget.php:427, widgets/social-icons/widget.php:348, widgets/step-flow/widget.php:642, widgets/wpform/widget.php:336
1488
  msgid "Custom"
1489
  msgstr ""
1490
 
@@ -1540,7 +1568,7 @@ msgstr ""
1540
  msgid "Box Width"
1541
  msgstr ""
1542
 
1543
- #: widgets/bar-chart/widget.php:617, widgets/calderaform/widget.php:146, widgets/card/widget.php:819, widgets/card/widget.php:889, widgets/card/widget.php:931, widgets/carousel/widget.php:415, widgets/carousel/widget.php:457, widgets/cf7/widget.php:204, widgets/cf7/widget.php:353, widgets/dual-button/widget.php:428, widgets/dual-button/widget.php:513, widgets/dual-button/widget.php:654, widgets/dual-button/widget.php:714, widgets/flip-box/widget.php:723, widgets/flip-box/widget.php:774, widgets/flip-box/widget.php:1098, widgets/flip-box/widget.php:1137, widgets/fluent-form/widget.php:158, widgets/fluent-form/widget.php:307, widgets/fluent-form/widget.php:391, widgets/fun-factor/widget.php:615, widgets/fun-factor/widget.php:670, widgets/gravityforms/widget.php:185, widgets/horizontal-timeline/widget.php:440, widgets/horizontal-timeline/widget.php:869, widgets/horizontal-timeline/widget.php:911, widgets/horizontal-timeline/widget.php:941, widgets/icon-box/widget.php:627, widgets/infobox/widget.php:671, widgets/infobox/widget.php:713, widgets/justified-gallery/widget.php:501, widgets/news-ticker/widget.php:320, widgets/news-ticker/widget.php:426, widgets/ninjaform/widget.php:147, widgets/number/widget.php:310, widgets/post-list/widget.php:680, widgets/post-list/widget.php:900, widgets/post-list/widget.php:947, widgets/post-tab/widget.php:437, widgets/post-tab/widget.php:638, widgets/post-tab/widget.php:697, widgets/post-tab/widget.php:773, widgets/pricing-table/widget.php:905, widgets/social-icons/widget.php:800, widgets/social-icons/widget.php:847, widgets/social-share/widget.php:612, widgets/taxonomy-list/widget.php:522, widgets/testimonial/widget.php:247, widgets/testimonial/widget.php:402, widgets/testimonial/widget.php:444, widgets/twitter-feed/widget.php:859, widgets/twitter-feed/widget.php:901, widgets/twitter-feed/widget.php:963, widgets/weform/widget.php:183, widgets/wpform/widget.php:150
1544
  msgid "Typography"
1545
  msgstr ""
1546
 
@@ -1568,7 +1596,7 @@ msgstr ""
1568
  msgid "Border Width"
1569
  msgstr ""
1570
 
1571
- #: widgets/bar-chart/widget.php:1000, widgets/calderaform/widget.php:133, widgets/calderaform/widget.php:441, widgets/card/widget.php:540, widgets/card/widget.php:795, widgets/card/widget.php:979, widgets/carousel/widget.php:337, widgets/carousel/widget.php:542, widgets/cf7/widget.php:183, widgets/cf7/widget.php:424, widgets/data-table/widget.php:648, widgets/dual-button/widget.php:500, widgets/dual-button/widget.php:701, widgets/flip-box/widget.php:435, widgets/flip-box/widget.php:639, widgets/flip-box/widget.php:1002, widgets/fluent-form/widget.php:137, widgets/fluent-form/widget.php:378, widgets/fluent-form/widget.php:495, widgets/fun-factor/widget.php:446, widgets/fun-factor/widget.php:740, widgets/gravityforms/widget.php:170, widgets/gravityforms/widget.php:545, widgets/horizontal-timeline/widget.php:505, widgets/horizontal-timeline/widget.php:583, widgets/horizontal-timeline/widget.php:685, widgets/horizontal-timeline/widget.php:827, widgets/icon-box/widget.php:267, widgets/icon-box/widget.php:603, widgets/image-compare/widget.php:346, widgets/image-compare/widget.php:449, widgets/image-grid/widget.php:327, widgets/image-grid/widget.php:514, widgets/infobox/widget.php:540, widgets/infobox/widget.php:761, widgets/justified-gallery/widget.php:315, widgets/justified-gallery/widget.php:581, widgets/logo-grid/widget.php:397, widgets/member/widget.php:674, widgets/member/widget.php:931, widgets/member/widget.php:1071, widgets/news-ticker/widget.php:229, widgets/news-ticker/widget.php:348, widgets/ninjaform/widget.php:134, widgets/ninjaform/widget.php:433, widgets/number/widget.php:167, widgets/post-list/widget.php:567, widgets/post-list/widget.php:833, widgets/post-tab/widget.php:455, widgets/post-tab/widget.php:547, widgets/post-tab/widget.php:601, widgets/pricing-table/widget.php:717, widgets/pricing-table/widget.php:884, widgets/review/widget.php:372, widgets/review/widget.php:655, widgets/skills/widget.php:246, widgets/slider/widget.php:287, widgets/slider/widget.php:490, widgets/social-icons/widget.php:615, widgets/social-share/widget.php:543, widgets/step-flow/widget.php:306, widgets/step-flow/widget.php:388, widgets/taxonomy-list/widget.php:409, widgets/taxonomy-list/widget.php:650, widgets/testimonial/widget.php:256, widgets/testimonial/widget.php:352, widgets/threesixty-rotation/widget.php:245, widgets/threesixty-rotation/widget.php:481, widgets/twitter-feed/widget.php:469, widgets/twitter-feed/widget.php:1092, widgets/weform/widget.php:170, widgets/weform/widget.php:513, widgets/wpform/widget.php:136, widgets/wpform/widget.php:528
1572
  msgid "Border Radius"
1573
  msgstr ""
1574
 
@@ -1668,11 +1696,11 @@ msgstr ""
1668
  msgid "Button Full Width?"
1669
  msgstr ""
1670
 
1671
- #: widgets/calderaform/widget.php:362, widgets/carousel/widget.php:206, widgets/carousel/widget.php:236, widgets/carousel/widget.php:249, widgets/carousel/widget.php:263, widgets/fun-factor/widget.php:199, widgets/fun-factor/widget.php:494, widgets/gravityforms/widget.php:436, widgets/horizontal-timeline/widget.php:145, widgets/horizontal-timeline/widget.php:288, widgets/horizontal-timeline/widget.php:331, widgets/image-compare/widget.php:204, widgets/justified-gallery/widget.php:135, widgets/member/widget.php:318, widgets/number/widget.php:88, widgets/skills/widget.php:100, widgets/slider/widget.php:196, widgets/slider/widget.php:226, widgets/slider/widget.php:239, widgets/social-icons/widget.php:157, widgets/social-icons/widget.php:184, widgets/social-share/widget.php:271, widgets/social-share/widget.php:441, widgets/step-flow/widget.php:214, widgets/weform/widget.php:402, widgets/wpform/widget.php:416
1672
  msgid "Yes"
1673
  msgstr ""
1674
 
1675
- #: widgets/calderaform/widget.php:363, widgets/carousel/widget.php:207, widgets/carousel/widget.php:237, widgets/carousel/widget.php:250, widgets/carousel/widget.php:264, widgets/fun-factor/widget.php:200, widgets/fun-factor/widget.php:493, widgets/gravityforms/widget.php:437, widgets/horizontal-timeline/widget.php:146, widgets/horizontal-timeline/widget.php:289, widgets/horizontal-timeline/widget.php:332, widgets/image-compare/widget.php:205, widgets/justified-gallery/widget.php:136, widgets/member/widget.php:319, widgets/number/widget.php:89, widgets/skills/widget.php:101, widgets/slider/widget.php:197, widgets/slider/widget.php:227, widgets/slider/widget.php:240, widgets/social-icons/widget.php:158, widgets/social-icons/widget.php:185, widgets/social-share/widget.php:272, widgets/social-share/widget.php:442, widgets/step-flow/widget.php:215, widgets/weform/widget.php:403, widgets/wpform/widget.php:417
1676
  msgid "No"
1677
  msgstr ""
1678
 
@@ -1680,7 +1708,7 @@ msgstr ""
1680
  msgid "Button Width"
1681
  msgstr ""
1682
 
1683
- #: widgets/calderaform/widget.php:478, widgets/calderaform/widget.php:510, widgets/calendly/widget.php:157, widgets/card/widget.php:765, widgets/card/widget.php:877, widgets/card/widget.php:919, widgets/card/widget.php:1016, widgets/card/widget.php:1048, widgets/carousel/widget.php:403, widgets/carousel/widget.php:445, widgets/cf7/widget.php:213, widgets/cf7/widget.php:362, widgets/cf7/widget.php:461, widgets/cf7/widget.php:493, widgets/data-table/widget.php:471, widgets/dual-button/widget.php:539, widgets/dual-button/widget.php:570, widgets/dual-button/widget.php:631, widgets/dual-button/widget.php:740, widgets/dual-button/widget.php:771, widgets/fluent-form/widget.php:167, widgets/fluent-form/widget.php:316, widgets/fluent-form/widget.php:532, widgets/fluent-form/widget.php:564, widgets/gravityforms/widget.php:575, widgets/gravityforms/widget.php:607, widgets/gravityforms/widget.php:808, widgets/gravityforms/widget.php:842, widgets/horizontal-timeline/widget.php:604, widgets/horizontal-timeline/widget.php:636, widgets/icon-box/widget.php:455, widgets/icon-box/widget.php:475, widgets/icon-box/widget.php:573, widgets/image-grid/widget.php:583, widgets/image-grid/widget.php:615, widgets/image-grid/widget.php:660, widgets/infobox/widget.php:659, widgets/infobox/widget.php:701, widgets/infobox/widget.php:798, widgets/infobox/widget.php:847, widgets/justified-gallery/widget.php:478, widgets/justified-gallery/widget.php:650, widgets/justified-gallery/widget.php:682, widgets/justified-gallery/widget.php:727, widgets/member/widget.php:341, widgets/member/widget.php:375, widgets/member/widget.php:751, widgets/member/widget.php:800, widgets/member/widget.php:849, widgets/member/widget.php:951, widgets/member/widget.php:981, widgets/member/widget.php:1108, widgets/member/widget.php:1140, widgets/ninjaform/widget.php:470, widgets/ninjaform/widget.php:502, widgets/number/widget.php:298, widgets/pricing-table/widget.php:377, widgets/pricing-table/widget.php:473, widgets/pricing-table/widget.php:514, widgets/pricing-table/widget.php:555, widgets/pricing-table/widget.php:618, widgets/pricing-table/widget.php:659, widgets/pricing-table/widget.php:763, widgets/pricing-table/widget.php:794, widgets/pricing-table/widget.php:854, widgets/review/widget.php:342, widgets/review/widget.php:427, widgets/review/widget.php:468, widgets/review/widget.php:509, widgets/skills/widget.php:111, widgets/skills/widget.php:279, widgets/slider/widget.php:353, widgets/slider/widget.php:394, widgets/slider/widget.php:511, widgets/slider/widget.php:543, widgets/testimonial/widget.php:223, widgets/testimonial/widget.php:390, widgets/testimonial/widget.php:432, widgets/weform/widget.php:558, widgets/weform/widget.php:590, widgets/wpform/widget.php:565, widgets/wpform/widget.php:597
1684
  msgid "Text Color"
1685
  msgstr ""
1686
 
@@ -1732,7 +1760,7 @@ msgstr ""
1732
  msgid "Image & Badge"
1733
  msgstr ""
1734
 
1735
- #: widgets/card/widget.php:70, widgets/card/widget.php:404, widgets/carousel/widget.php:69, widgets/data-table/widget.php:121, widgets/data-table/widget.php:144, widgets/data-table/widget.php:386, widgets/data-table/widget.php:414, widgets/flip-box/widget.php:81, widgets/flip-box/widget.php:125, widgets/flip-box/widget.php:238, widgets/flip-box/widget.php:250, widgets/fun-factor/widget.php:73, widgets/fun-factor/widget.php:86, widgets/horizontal-timeline/widget.php:87, widgets/horizontal-timeline/widget.php:770, widgets/image-compare/widget.php:74, widgets/image-compare/widget.php:111, widgets/image-grid/widget.php:283, widgets/infobox/widget.php:80, widgets/infobox/widget.php:93, widgets/justified-gallery/widget.php:307, widgets/post-tab/widget.php:569, widgets/slider/widget.php:69, widgets/taxonomy-list/widget.php:123, widgets/taxonomy-list/widget.php:151, widgets/taxonomy-list/widget.php:249, widgets/taxonomy-list/widget.php:282, widgets/testimonial/widget.php:135, widgets/testimonial/widget.php:278
1736
  msgid "Image"
1737
  msgstr ""
1738
 
@@ -1768,7 +1796,7 @@ msgstr ""
1768
  msgid "Type Card Title"
1769
  msgstr ""
1770
 
1771
- #: widgets/card/widget.php:171, widgets/card/widget.php:899, widgets/flip-box/widget.php:173, widgets/flip-box/widget.php:178, widgets/flip-box/widget.php:330, widgets/flip-box/widget.php:335, widgets/flip-box/widget.php:743, widgets/flip-box/widget.php:1118, widgets/fluent-form/widget.php:660, widgets/gravityforms/widget.php:705, widgets/horizontal-timeline/widget.php:132, widgets/horizontal-timeline/widget.php:931, widgets/infobox/widget.php:186, widgets/infobox/widget.php:681, widgets/step-flow/widget.php:119, widgets/step-flow/widget.php:122, widgets/step-flow/widget.php:530, widgets/twitter-feed/widget.php:837, widgets/weform/widget.php:678
1772
  msgid "Description"
1773
  msgstr ""
1774
 
@@ -1808,7 +1836,7 @@ msgstr ""
1808
  msgid "H6"
1809
  msgstr ""
1810
 
1811
- #: widgets/card/widget.php:222, widgets/card/widget.php:305, widgets/carousel/widget.php:674, widgets/data-table/widget.php:218, widgets/data-table/widget.php:558, widgets/dual-button/widget.php:445, widgets/flip-box/widget.php:188, widgets/flip-box/widget.php:345, widgets/gradient-heading/widget.php:125, widgets/icon-box/widget.php:169, widgets/image-grid/widget.php:546, widgets/infobox/widget.php:237, widgets/justified-gallery/widget.php:613, widgets/member/widget.php:228, widgets/number/widget.php:188, widgets/post-list/widget.php:459, widgets/review/widget.php:227, widgets/slider/widget.php:622, widgets/social-icons/widget.php:411, widgets/social-share/widget.php:481, widgets/step-flow/widget.php:182, widgets/taxonomy-list/widget.php:302, widgets/testimonial/widget.php:80, widgets/threesixty-rotation/widget.php:163, widgets/twitter-feed/widget.php:312
1812
  msgid "Alignment"
1813
  msgstr ""
1814
 
@@ -1832,7 +1860,7 @@ msgstr ""
1832
  msgid "Stretch"
1833
  msgstr ""
1834
 
1835
- #: widgets/card/widget.php:346, widgets/data-table/widget.php:117, widgets/data-table/widget.php:131, widgets/data-table/widget.php:382, widgets/data-table/widget.php:400, widgets/dual-button/widget.php:112, widgets/dual-button/widget.php:101, widgets/dual-button/widget.php:188, widgets/dual-button/widget.php:234, widgets/dual-button/widget.php:221, widgets/dual-button/widget.php:301, widgets/dual-button/widget.php:290, widgets/flip-box/widget.php:77, widgets/flip-box/widget.php:107, widgets/flip-box/widget.php:94, widgets/flip-box/widget.php:234, widgets/flip-box/widget.php:297, widgets/flip-box/widget.php:284, widgets/fun-factor/widget.php:69, widgets/horizontal-timeline/widget.php:72, widgets/horizontal-timeline/widget.php:460, widgets/icon-box/widget.php:204, widgets/infobox/widget.php:76, widgets/infobox/widget.php:131, widgets/infobox/widget.php:307, widgets/post-list/widget.php:271, widgets/pricing-table/widget.php:211, widgets/pricing-table/widget.php:196, widgets/social-icons/widget.php:54, widgets/social-icons/widget.php:63, widgets/social-icons/widget.php:638, widgets/social-share/widget.php:430, widgets/step-flow/widget.php:75, widgets/step-flow/widget.php:64, widgets/step-flow/widget.php:229, widgets/taxonomy-list/widget.php:115, widgets/taxonomy-list/widget.php:119, widgets/taxonomy-list/widget.php:135, widgets/taxonomy-list/widget.php:245, widgets/taxonomy-list/widget.php:264
1836
  msgid "Icon"
1837
  msgstr ""
1838
 
@@ -1904,147 +1932,159 @@ msgstr ""
1904
  msgid "Bottom Right"
1905
  msgstr ""
1906
 
1907
- #: widgets/card/widget.php:844, widgets/carousel/widget.php:359, widgets/member/widget.php:718, widgets/slider/widget.php:309
1908
  msgid "Content Padding"
1909
  msgstr ""
1910
 
1911
- #: widgets/card/widget.php:865, widgets/card/widget.php:907, widgets/carousel/widget.php:391, widgets/carousel/widget.php:433, widgets/flip-box/widget.php:537, widgets/flip-box/widget.php:897, widgets/flip-box/widget.php:1074, widgets/fun-factor/widget.php:466, widgets/fun-factor/widget.php:591, widgets/fun-factor/widget.php:646, widgets/fun-factor/widget.php:762, widgets/horizontal-timeline/widget.php:815, widgets/horizontal-timeline/widget.php:856, widgets/horizontal-timeline/widget.php:898, widgets/icon-box/widget.php:242, widgets/infobox/widget.php:508, widgets/infobox/widget.php:647, widgets/infobox/widget.php:689, widgets/member/widget.php:642, widgets/member/widget.php:739, widgets/member/widget.php:788, widgets/member/widget.php:837, widgets/pricing-table/widget.php:403, widgets/pricing-table/widget.php:461, widgets/pricing-table/widget.php:543, widgets/pricing-table/widget.php:606, widgets/review/widget.php:318, widgets/review/widget.php:415, widgets/review/widget.php:456, widgets/review/widget.php:497, widgets/slider/widget.php:341, widgets/slider/widget.php:382, widgets/step-flow/widget.php:279, widgets/step-flow/widget.php:461, widgets/testimonial/widget.php:211, widgets/testimonial/widget.php:411, widgets/twitter-feed/widget.php:846
1912
  msgid "Bottom Spacing"
1913
  msgstr ""
1914
 
1915
- #: widgets/carousel/widget.php:58, widgets/slider/widget.php:58
1916
  msgid "Slides"
1917
  msgstr ""
1918
 
1919
- #: widgets/carousel/widget.php:85, widgets/slider/widget.php:85
1920
  msgid "Type title here"
1921
  msgstr ""
1922
 
1923
- #: widgets/carousel/widget.php:95, widgets/carousel/widget.php:425, widgets/slider/widget.php:97, widgets/slider/widget.php:374
1924
  msgid "Subtitle"
1925
  msgstr ""
1926
 
1927
- #: widgets/carousel/widget.php:98, widgets/slider/widget.php:98
1928
  msgid "Type subtitle here"
1929
  msgstr ""
1930
 
1931
- #: widgets/carousel/widget.php:190, widgets/horizontal-timeline/widget.php:298, widgets/slider/widget.php:180
1932
  msgid "Animation Speed"
1933
  msgstr ""
1934
 
1935
- #: widgets/carousel/widget.php:196, widgets/horizontal-timeline/widget.php:304, widgets/slider/widget.php:186
1936
  msgid "Slide speed in milliseconds"
1937
  msgstr ""
1938
 
1939
- #: widgets/carousel/widget.php:204, widgets/slider/widget.php:194
1940
  msgid "Autoplay?"
1941
  msgstr ""
1942
 
1943
- #: widgets/carousel/widget.php:217, widgets/horizontal-timeline/widget.php:312, widgets/slider/widget.php:207
1944
  msgid "Autoplay Speed"
1945
  msgstr ""
1946
 
1947
- #: widgets/carousel/widget.php:223, widgets/horizontal-timeline/widget.php:318, widgets/slider/widget.php:213
1948
  msgid "Autoplay speed in milliseconds"
1949
  msgstr ""
1950
 
1951
- #: widgets/carousel/widget.php:234, widgets/horizontal-timeline/widget.php:329, widgets/slider/widget.php:224
1952
  msgid "Infinite Loop?"
1953
  msgstr ""
1954
 
1955
- #: widgets/carousel/widget.php:247
1956
  msgid "Center Mode?"
1957
  msgstr ""
1958
 
1959
- #: widgets/carousel/widget.php:252
1960
  msgid "Best works with odd number of slides (Slides To Show) and loop (Infinite Loop)"
1961
  msgstr ""
1962
 
1963
- #: widgets/carousel/widget.php:261, widgets/slider/widget.php:237
1964
  msgid "Vertical Mode?"
1965
  msgstr ""
1966
 
1967
- #: widgets/carousel/widget.php:274, widgets/slider/widget.php:250
1968
  msgid "Navigation"
1969
  msgstr ""
1970
 
1971
- #: widgets/carousel/widget.php:278, widgets/horizontal-timeline/widget.php:547, widgets/slider/widget.php:254
1972
  msgid "Arrow"
1973
  msgstr ""
1974
 
1975
- #: widgets/carousel/widget.php:279, widgets/slider/widget.php:255
1976
  msgid "Dots"
1977
  msgstr ""
1978
 
1979
- #: widgets/carousel/widget.php:280, widgets/slider/widget.php:256
1980
  msgid "Arrow & Dots"
1981
  msgstr ""
1982
 
1983
- #: widgets/carousel/widget.php:291, widgets/horizontal-timeline/widget.php:342
1984
  msgid "Slides To Show"
1985
  msgstr ""
1986
 
1987
- #: widgets/carousel/widget.php:294, widgets/horizontal-timeline/widget.php:345
1988
  msgid "1 Slide"
1989
  msgstr ""
1990
 
1991
- #: widgets/carousel/widget.php:295, widgets/horizontal-timeline/widget.php:346
1992
  msgid "2 Slides"
1993
  msgstr ""
1994
 
1995
- #: widgets/carousel/widget.php:296, widgets/horizontal-timeline/widget.php:347
1996
  msgid "3 Slides"
1997
  msgstr ""
1998
 
1999
- #: widgets/carousel/widget.php:297, widgets/horizontal-timeline/widget.php:348
2000
  msgid "4 Slides"
2001
  msgstr ""
2002
 
2003
- #: widgets/carousel/widget.php:298, widgets/horizontal-timeline/widget.php:349
2004
  msgid "5 Slides"
2005
  msgstr ""
2006
 
2007
- #: widgets/carousel/widget.php:299, widgets/horizontal-timeline/widget.php:350
2008
  msgid "6 Slides"
2009
  msgstr ""
2010
 
2011
- #: widgets/carousel/widget.php:316
 
 
 
 
 
 
 
 
2012
  msgid "Carousel Item"
2013
  msgstr ""
2014
 
2015
- #: widgets/carousel/widget.php:324
2016
  msgid "Slide Spacing (px)"
2017
  msgstr ""
2018
 
2019
- #: widgets/carousel/widget.php:351, widgets/slider/widget.php:301
2020
  msgid "Slide Content"
2021
  msgstr ""
2022
 
2023
- #: widgets/carousel/widget.php:468, widgets/slider/widget.php:416
2024
  msgid "Navigation - Arrow"
2025
  msgstr ""
2026
 
2027
- #: widgets/carousel/widget.php:489, widgets/image-compare/widget.php:190, widgets/image-compare/widget.php:393, widgets/slider/widget.php:437
2028
  msgid "Vertical"
2029
  msgstr ""
2030
 
2031
- #: widgets/carousel/widget.php:510, widgets/image-compare/widget.php:186, widgets/image-compare/widget.php:416, widgets/slider/widget.php:458
2032
  msgid "Horizontal"
2033
  msgstr ""
2034
 
2035
- #: widgets/carousel/widget.php:636, widgets/slider/widget.php:584
 
 
 
 
2036
  msgid "Navigation - Dots"
2037
  msgstr ""
2038
 
2039
- #: widgets/carousel/widget.php:644, widgets/slider/widget.php:592
2040
  msgid "Vertical Position"
2041
  msgstr ""
2042
 
2043
- #: widgets/carousel/widget.php:662, widgets/data-table/widget.php:719, widgets/data-table/widget.php:982, widgets/flip-box/widget.php:750, widgets/image-grid/widget.php:494, widgets/justified-gallery/widget.php:561, widgets/slider/widget.php:610, widgets/social-icons/widget.php:810, widgets/social-share/widget.php:532, widgets/testimonial/widget.php:330, widgets/twitter-feed/widget.php:634
2044
  msgid "Spacing"
2045
  msgstr ""
2046
 
2047
- #: widgets/carousel/widget.php:742, widgets/image-grid/widget.php:653, widgets/justified-gallery/widget.php:720, widgets/slider/widget.php:690
2048
  msgid "Active"
2049
  msgstr ""
2050
 
@@ -2084,7 +2124,7 @@ msgstr ""
2084
  msgid "Media"
2085
  msgstr ""
2086
 
2087
- #: widgets/data-table/widget.php:181, widgets/data-table/widget.php:485, widgets/data-table/widget.php:754, widgets/fluent-form/widget.php:400, widgets/fun-factor/widget.php:411, widgets/horizontal-timeline/widget.php:155, widgets/horizontal-timeline/widget.php:536, widgets/taxonomy-list/widget.php:581, widgets/threesixty-rotation/widget.php:347, widgets/twitter-feed/widget.php:1048
2088
  msgid "Icon Color"
2089
  msgstr ""
2090
 
@@ -2168,10 +2208,6 @@ msgstr ""
2168
  msgid "Link Color"
2169
  msgstr ""
2170
 
2171
- #: widgets/data-table/widget.php:994, widgets/fun-factor/widget.php:389, widgets/horizontal-timeline/widget.php:487, widgets/icon-box/widget.php:212, widgets/image-compare/widget.php:268, widgets/infobox/widget.php:385, widgets/number/widget.php:128, widgets/review/widget.php:306, widgets/social-icons/widget.php:645, widgets/step-flow/widget.php:237, widgets/twitter-feed/widget.php:570, widgets/twitter-feed/widget.php:619
2172
- msgid "Size"
2173
- msgstr ""
2174
-
2175
  #: widgets/dual-button/widget.php:55
2176
  msgid "Dual Buttons"
2177
  msgstr ""
@@ -2444,7 +2480,7 @@ msgstr ""
2444
  msgid "Event Title"
2445
  msgstr ""
2446
 
2447
- #: widgets/horizontal-timeline/widget.php:122, widgets/horizontal-timeline/widget.php:889
2448
  msgid "Sub Title"
2449
  msgstr ""
2450
 
@@ -2496,35 +2532,35 @@ msgstr ""
2496
  msgid "Hide Content Arrow"
2497
  msgstr ""
2498
 
2499
- #: widgets/horizontal-timeline/widget.php:367
2500
- msgid "Events"
2501
- msgstr ""
2502
-
2503
- #: widgets/horizontal-timeline/widget.php:375
2504
  msgid "Line"
2505
  msgstr ""
2506
 
2507
- #: widgets/horizontal-timeline/widget.php:383
2508
  msgid "Thickness"
2509
  msgstr ""
2510
 
2511
- #: widgets/horizontal-timeline/widget.php:412, widgets/post-list/widget.php:343
2512
  msgid "Date"
2513
  msgstr ""
2514
 
2515
- #: widgets/horizontal-timeline/widget.php:421
2516
  msgid "Left Spacing"
2517
  msgstr ""
2518
 
2519
- #: widgets/horizontal-timeline/widget.php:556
2520
- msgid "Vertical Alignment"
 
 
 
 
2521
  msgstr ""
2522
 
2523
- #: widgets/horizontal-timeline/widget.php:728
2524
  msgid "Space between contents"
2525
  msgstr ""
2526
 
2527
- #: widgets/horizontal-timeline/widget.php:741, widgets/logo-grid/widget.php:224, widgets/news-ticker/widget.php:221, widgets/news-ticker/widget.php:340, widgets/number/widget.php:159, widgets/post-list/widget.php:559, widgets/post-list/widget.php:619, widgets/post-list/widget.php:658, widgets/post-list/widget.php:822, widgets/post-tab/widget.php:332, widgets/post-tab/widget.php:447, widgets/post-tab/widget.php:539, widgets/post-tab/widget.php:593, widgets/step-flow/widget.php:298, widgets/step-flow/widget.php:377, widgets/taxonomy-list/widget.php:401, widgets/taxonomy-list/widget.php:461, widgets/taxonomy-list/widget.php:500, widgets/taxonomy-list/widget.php:642, widgets/threesixty-rotation/widget.php:237, widgets/threesixty-rotation/widget.php:378, widgets/threesixty-rotation/widget.php:473
2528
  msgid "Border"
2529
  msgstr ""
2530
 
@@ -2682,10 +2718,6 @@ msgstr ""
2682
  msgid "Type \"All\" filter label."
2683
  msgstr ""
2684
 
2685
- #: widgets/image-grid/widget.php:185, widgets/logo-grid/widget.php:236
2686
- msgid "Columns"
2687
- msgstr ""
2688
-
2689
  #: widgets/image-grid/widget.php:188, widgets/post-tab/widget.php:172, widgets/twitter-feed/widget.php:155
2690
  msgid "1 Column"
2691
  msgstr ""
@@ -2726,14 +2758,6 @@ msgstr ""
2726
  msgid "Enable Lightbox"
2727
  msgstr ""
2728
 
2729
- #: widgets/image-grid/widget.php:239, widgets/justified-gallery/widget.php:263
2730
- msgid "Disable On Tablet"
2731
- msgstr ""
2732
-
2733
- #: widgets/image-grid/widget.php:252, widgets/justified-gallery/widget.php:276
2734
- msgid "Disable On Mobile"
2735
- msgstr ""
2736
-
2737
  #: widgets/image-grid/widget.php:292
2738
  msgid "Image height is only applicable for Even layout"
2739
  msgstr ""
@@ -3657,7 +3681,7 @@ msgstr ""
3657
  msgid "Text Outside"
3658
  msgstr ""
3659
 
3660
- #: widgets/slider/widget.php:271
3661
  msgid "Slider Item"
3662
  msgstr ""
3663
 
81
  msgid "Please make sure your search is spelled correctly or try a different words."
82
  msgstr ""
83
 
84
+ #: classes/clone-handler.php:48
85
  msgid "Clone - %s"
86
  msgstr ""
87
 
88
+ #: classes/clone-handler.php:49
89
  msgid "Happy Clone"
90
  msgstr ""
91
 
92
+ #: classes/clone-handler.php:159
93
  msgid "%s - [Cloned #%d]"
94
  msgstr ""
95
 
96
+ #: classes/dashboard.php:62, widgets/bar-chart/widget.php:185, widgets/carousel/widget.php:183, widgets/flip-box/widget.php:373, widgets/horizontal-timeline/widget.php:246, widgets/image-compare/widget.php:153, widgets/logo-grid/widget.php:200, widgets/post-list/widget.php:169, widgets/post-tab/widget.php:161, widgets/slider/widget.php:173, widgets/taxonomy-list/widget.php:201, widgets/threesixty-rotation/widget.php:85
97
  msgid "Settings"
98
  msgstr ""
99
 
121
  msgid "Home"
122
  msgstr ""
123
 
124
+ #: classes/dashboard.php:234, extensions/equal-height.php:88
125
  msgid "Widgets"
126
  msgstr ""
127
 
205
  msgid "Animated Text"
206
  msgstr ""
207
 
208
+ #: classes/widgets-manager.php:120, widgets/horizontal-timeline/widget.php:54, widgets/horizontal-timeline/widget.php:399
209
  msgid "Timeline"
210
  msgstr ""
211
 
277
  msgid "Image Grid"
278
  msgstr ""
279
 
280
+ #: classes/widgets-manager.php:277, widgets/slider/widget.php:32
281
  msgid "Slider"
282
  msgstr ""
283
 
284
+ #: classes/widgets-manager.php:288, widgets/carousel/widget.php:32
285
  msgid "Carousel"
286
  msgstr ""
287
 
717
  msgid "Background Overlay"
718
  msgstr ""
719
 
720
+ #: extensions/background-overlay.php:57, extensions/background-overlay.php:106, extensions/css-transform.php:51, inc/functions.php:123, widgets/bar-chart/widget.php:528, widgets/bar-chart/widget.php:550, widgets/bar-chart/widget.php:668, widgets/bar-chart/widget.php:690, widgets/bar-chart/widget.php:799, widgets/bar-chart/widget.php:821, widgets/bar-chart/widget.php:912, widgets/bar-chart/widget.php:934, widgets/bar-chart/widget.php:1114, widgets/bar-chart/widget.php:1136, widgets/bar-chart/widget.php:1215, widgets/bar-chart/widget.php:1237, widgets/calderaform/widget.php:180, widgets/calderaform/widget.php:471, widgets/card/widget.php:571, widgets/card/widget.php:1009, widgets/carousel/widget.php:611, widgets/carousel/widget.php:757, widgets/cf7/widget.php:239, widgets/cf7/widget.php:454, widgets/data-table/widget.php:806, widgets/dual-button/widget.php:532, widgets/dual-button/widget.php:733, widgets/fluent-form/widget.php:193, widgets/fluent-form/widget.php:525, widgets/gradient-heading/widget.php:196, widgets/gravityforms/widget.php:225, widgets/gravityforms/widget.php:568, widgets/gravityforms/widget.php:801, widgets/horizontal-timeline/widget.php:668, widgets/icon-box/widget.php:292, widgets/icon-box/widget.php:448, widgets/image-grid/widget.php:346, widgets/image-grid/widget.php:576, widgets/infobox/widget.php:791, widgets/justified-gallery/widget.php:345, widgets/justified-gallery/widget.php:643, widgets/logo-grid/widget.php:501, widgets/member/widget.php:334, widgets/member/widget.php:944, widgets/member/widget.php:1101, widgets/news-ticker/widget.php:384, widgets/ninjaform/widget.php:182, widgets/ninjaform/widget.php:463, widgets/post-list/widget.php:690, widgets/post-tab/widget.php:374, widgets/post-tab/widget.php:648, widgets/post-tab/widget.php:707, widgets/pricing-table/widget.php:756, widgets/slider/widget.php:565, widgets/slider/widget.php:715, widgets/social-icons/widget.php:201, widgets/social-icons/widget.php:463, widgets/social-share/widget.php:288, widgets/social-share/widget.php:623, widgets/taxonomy-list/widget.php:532, widgets/threesixty-rotation/widget.php:411, widgets/twitter-feed/widget.php:741, widgets/twitter-feed/widget.php:1126, widgets/weform/widget.php:218, widgets/weform/widget.php:551, widgets/wpform/widget.php:558
721
  msgid "Normal"
722
  msgstr ""
723
 
729
  msgid "Blend Mode"
730
  msgstr ""
731
 
732
+ #: extensions/background-overlay.php:128, extensions/css-transform.php:389, widgets/calderaform/widget.php:503, widgets/card/widget.php:605, widgets/card/widget.php:1041, widgets/carousel/widget.php:643, widgets/carousel/widget.php:777, widgets/cf7/widget.php:486, widgets/data-table/widget.php:880, widgets/dual-button/widget.php:563, widgets/dual-button/widget.php:764, widgets/fluent-form/widget.php:557, widgets/gravityforms/widget.php:600, widgets/gravityforms/widget.php:835, widgets/horizontal-timeline/widget.php:700, widgets/icon-box/widget.php:348, widgets/icon-box/widget.php:468, widgets/image-grid/widget.php:380, widgets/image-grid/widget.php:608, widgets/infobox/widget.php:840, widgets/justified-gallery/widget.php:379, widgets/justified-gallery/widget.php:675, widgets/logo-grid/widget.php:535, widgets/member/widget.php:368, widgets/member/widget.php:974, widgets/member/widget.php:1133, widgets/news-ticker/widget.php:404, widgets/ninjaform/widget.php:495, widgets/post-list/widget.php:709, widgets/post-tab/widget.php:404, widgets/post-tab/widget.php:667, widgets/post-tab/widget.php:727, widgets/pricing-table/widget.php:787, widgets/slider/widget.php:597, widgets/slider/widget.php:735, widgets/social-icons/widget.php:249, widgets/social-icons/widget.php:509, widgets/social-share/widget.php:339, widgets/social-share/widget.php:665, widgets/taxonomy-list/widget.php:551, widgets/threesixty-rotation/widget.php:441, widgets/twitter-feed/widget.php:777, widgets/twitter-feed/widget.php:1157, widgets/weform/widget.php:583, widgets/wpform/widget.php:590
733
  msgid "Hover"
734
  msgstr ""
735
 
757
  msgid "CSS Transform"
758
  msgstr ""
759
 
760
+ #: extensions/css-transform.php:32, extensions/equal-height.php:73, extensions/floating-effects.php:78
761
  msgid "Enable"
762
  msgstr ""
763
 
764
+ #: extensions/css-transform.php:61, extensions/css-transform.php:399, extensions/floating-effects.php:88
765
  msgid "Translate"
766
  msgstr ""
767
 
768
+ #: extensions/css-transform.php:75, extensions/css-transform.php:413, extensions/floating-effects.php:103
769
  msgid "Translate X"
770
  msgstr ""
771
 
772
+ #: extensions/css-transform.php:97, extensions/css-transform.php:435, extensions/floating-effects.php:136
773
  msgid "Translate Y"
774
  msgstr ""
775
 
776
+ #: extensions/css-transform.php:121, extensions/css-transform.php:459, extensions/floating-effects.php:218, widgets/social-icons/widget.php:714
777
  msgid "Rotate"
778
  msgstr ""
779
 
789
  msgid "Loose"
790
  msgstr ""
791
 
792
+ #: extensions/css-transform.php:161, extensions/css-transform.php:499, extensions/floating-effects.php:233
793
  msgid "Rotate X"
794
  msgstr ""
795
 
796
+ #: extensions/css-transform.php:184, extensions/css-transform.php:522, extensions/floating-effects.php:266
797
  msgid "Rotate Y"
798
  msgstr ""
799
 
801
  msgid "Rotate (Z)"
802
  msgstr ""
803
 
804
+ #: extensions/css-transform.php:231, extensions/css-transform.php:569, extensions/floating-effects.php:381
805
  msgid "Scale"
806
  msgstr ""
807
 
809
  msgid "Scale (X)"
810
  msgstr ""
811
 
812
+ #: extensions/css-transform.php:298, extensions/css-transform.php:636, extensions/floating-effects.php:430
813
  msgid "Scale Y"
814
  msgstr ""
815
 
825
  msgid "Skew Y"
826
  msgstr ""
827
 
828
+ #: extensions/equal-height.php:65
829
+ msgid "Equal Height"
830
+ msgstr ""
831
+
832
+ #: extensions/equal-height.php:85
833
+ msgid "Apply To"
834
+ msgstr ""
835
+
836
+ #: extensions/equal-height.php:102
837
+ msgid "Select Widgets"
838
+ msgstr ""
839
+
840
+ #: extensions/equal-height.php:104
841
+ msgid "You can select multiple widgets from the dropdown and these widgets are only from the current selected section."
842
+ msgstr ""
843
+
844
+ #: extensions/equal-height.php:119, widgets/image-grid/widget.php:239, widgets/justified-gallery/widget.php:263
845
+ msgid "Disable On Tablet"
846
+ msgstr ""
847
+
848
+ #: extensions/equal-height.php:134, widgets/image-grid/widget.php:252, widgets/justified-gallery/widget.php:276
849
+ msgid "Disable On Mobile"
850
+ msgstr ""
851
+
852
+ #: extensions/floating-effects.php:70
853
  msgid "Floating Effects"
854
  msgstr ""
855
 
856
+ #: extensions/floating-effects.php:119, extensions/floating-effects.php:152, extensions/floating-effects.php:249, extensions/floating-effects.php:282, extensions/floating-effects.php:315, extensions/floating-effects.php:413, extensions/floating-effects.php:447
857
  msgid "From"
858
  msgstr ""
859
 
860
+ #: extensions/floating-effects.php:120, extensions/floating-effects.php:153, extensions/floating-effects.php:250, extensions/floating-effects.php:283, extensions/floating-effects.php:316, extensions/floating-effects.php:414, extensions/floating-effects.php:448, widgets/social-share/widget.php:204
861
  msgid "To"
862
  msgstr ""
863
 
864
+ #: extensions/floating-effects.php:169, extensions/floating-effects.php:332, extensions/floating-effects.php:464, widgets/bar-chart/widget.php:366, widgets/fun-factor/widget.php:210, widgets/number/widget.php:98
865
  msgid "Duration"
866
  msgstr ""
867
 
868
+ #: extensions/floating-effects.php:194, extensions/floating-effects.php:357, extensions/floating-effects.php:489
869
  msgid "Delay"
870
  msgstr ""
871
 
872
+ #: extensions/floating-effects.php:299
873
  msgid "Rotate Z"
874
  msgstr ""
875
 
876
+ #: extensions/floating-effects.php:396
877
  msgid "Scale X"
878
  msgstr ""
879
 
880
+ #: extensions/grid-layer.php:18, extensions/grid-layer.php:26
881
  msgid "Grid Layer"
882
  msgstr ""
883
 
884
+ #: extensions/grid-layer.php:27
885
  msgid "Use \"Cmd/Ctrl + Shift + G\" to On/Off Grid Layer"
886
  msgstr ""
887
 
888
+ #: extensions/grid-layer.php:29, widgets/post-list/widget.php:581, widgets/taxonomy-list/widget.php:423, widgets/threesixty-rotation/widget.php:138
889
  msgid "On"
890
  msgstr ""
891
 
892
+ #: extensions/grid-layer.php:30, widgets/post-list/widget.php:582, widgets/taxonomy-list/widget.php:424, widgets/threesixty-rotation/widget.php:139
893
  msgid "Off"
894
  msgstr ""
895
 
896
+ #: extensions/grid-layer.php:40
897
+ msgid "This feature is avilable only in editor and only for design purpose."
898
+ msgstr ""
899
+
900
+ #: extensions/grid-layer.php:51, widgets/image-grid/widget.php:185, widgets/logo-grid/widget.php:236
901
+ msgid "Columns"
902
  msgstr ""
903
 
904
+ #: extensions/grid-layer.php:70
905
  msgid "Max Width"
906
  msgstr ""
907
 
908
+ #: extensions/grid-layer.php:108, widgets/card/widget.php:463, widgets/card/widget.php:697, widgets/fun-factor/widget.php:491, widgets/icon-box/widget.php:499, widgets/infobox/widget.php:452, widgets/review/widget.php:579, widgets/step-flow/widget.php:639
909
  msgid "Offset"
910
  msgstr ""
911
 
912
+ #: extensions/grid-layer.php:155
913
  msgid "Gutter"
914
  msgstr ""
915
 
916
+ #: extensions/grid-layer.php:198
917
  msgid "Z-Index"
918
  msgstr ""
919
 
920
+ #: extensions/grid-layer.php:212, widgets/bar-chart/widget.php:465
921
  msgid "Grid Color"
922
  msgstr ""
923
 
924
+ #: extensions/grid-layer.php:225
925
  msgid "Grid Layer On"
926
  msgstr ""
927
 
929
  msgid "Fixed Size"
930
  msgstr ""
931
 
932
+ #: extensions/widgets-extended.php:35, widgets/calendly/widget.php:101, widgets/card/widget.php:445, widgets/flip-box/widget.php:416, widgets/fun-factor/widget.php:361, widgets/fun-factor/widget.php:725, widgets/horizontal-timeline/widget.php:868, widgets/image-grid/widget.php:291, widgets/infobox/widget.php:431, widgets/justified-gallery/widget.php:192, widgets/logo-grid/widget.php:280, widgets/member/widget.php:624, widgets/review/widget.php:561, widgets/skills/widget.php:208, widgets/testimonial/widget.php:312
933
  msgid "Height"
934
  msgstr ""
935
 
936
+ #: extensions/widgets-extended.php:57, widgets/card/widget.php:412, widgets/cf7/widget.php:121, widgets/fun-factor/widget.php:332, widgets/fun-factor/widget.php:704, widgets/horizontal-timeline/widget.php:850, widgets/infobox/widget.php:406, widgets/member/widget.php:602, widgets/review/widget.php:539, widgets/step-flow/widget.php:594, widgets/testimonial/widget.php:286, widgets/threesixty-rotation/widget.php:203, widgets/threesixty-rotation/widget.php:358
937
  msgid "Width"
938
  msgstr ""
939
 
941
  msgid "Horizontal Align"
942
  msgstr ""
943
 
944
+ #: extensions/widgets-extended.php:85, widgets/bar-chart/widget.php:331, widgets/card/widget.php:99, widgets/card/widget.php:226, widgets/card/widget.php:309, widgets/carousel/widget.php:734, widgets/data-table/widget.php:223, widgets/data-table/widget.php:251, widgets/data-table/widget.php:563, widgets/data-table/widget.php:593, widgets/dual-button/widget.php:450, widgets/flip-box/widget.php:192, widgets/flip-box/widget.php:349, widgets/fun-factor/widget.php:145, widgets/fun-factor/widget.php:256, widgets/gradient-heading/widget.php:129, widgets/gravityforms/widget.php:479, widgets/horizontal-timeline/widget.php:259, widgets/icon-box/widget.php:173, widgets/image-grid/widget.php:551, widgets/infobox/widget.php:241, widgets/justified-gallery/widget.php:618, widgets/member/widget.php:232, widgets/news-ticker/widget.php:104, widgets/news-ticker/widget.php:147, widgets/ninjaform/widget.php:368, widgets/number/widget.php:192, widgets/post-list/widget.php:216, widgets/post-list/widget.php:463, widgets/post-tab/widget.php:213, widgets/post-tab/widget.php:238, widgets/pricing-table/widget.php:329, widgets/review/widget.php:176, widgets/review/widget.php:231, widgets/slider/widget.php:692, widgets/social-icons/widget.php:415, widgets/social-share/widget.php:485, widgets/step-flow/widget.php:186, widgets/taxonomy-list/widget.php:306, widgets/testimonial/widget.php:85, widgets/threesixty-rotation/widget.php:111, widgets/threesixty-rotation/widget.php:167, widgets/twitter-feed/widget.php:316, widgets/twitter-feed/widget.php:345, widgets/twitter-feed/widget.php:371, widgets/weform/widget.php:445, widgets/wpform/widget.php:459
945
  msgid "Left"
946
  msgstr ""
947
 
948
+ #: extensions/widgets-extended.php:89, extensions/widgets-extended.php:124, widgets/card/widget.php:230, widgets/card/widget.php:313, widgets/carousel/widget.php:738, widgets/data-table/widget.php:227, widgets/data-table/widget.php:567, widgets/dual-button/widget.php:454, widgets/flip-box/widget.php:196, widgets/flip-box/widget.php:353, widgets/fun-factor/widget.php:260, widgets/gradient-heading/widget.php:133, widgets/gravityforms/widget.php:483, widgets/horizontal-timeline/widget.php:263, widgets/icon-box/widget.php:177, widgets/image-grid/widget.php:555, widgets/infobox/widget.php:245, widgets/justified-gallery/widget.php:622, widgets/member/widget.php:236, widgets/ninjaform/widget.php:372, widgets/number/widget.php:196, widgets/post-list/widget.php:467, widgets/post-tab/widget.php:242, widgets/review/widget.php:235, widgets/slider/widget.php:696, widgets/social-icons/widget.php:419, widgets/social-share/widget.php:489, widgets/step-flow/widget.php:190, widgets/taxonomy-list/widget.php:310, widgets/testimonial/widget.php:89, widgets/threesixty-rotation/widget.php:115, widgets/threesixty-rotation/widget.php:171, widgets/twitter-feed/widget.php:320, widgets/twitter-feed/widget.php:349, widgets/twitter-feed/widget.php:375, widgets/weform/widget.php:449, widgets/wpform/widget.php:463
949
  msgid "Center"
950
  msgstr ""
951
 
952
+ #: extensions/widgets-extended.php:93, extensions/widgets-extended.php:128, widgets/bar-chart/widget.php:333, widgets/card/widget.php:107, widgets/card/widget.php:234, widgets/card/widget.php:317, widgets/carousel/widget.php:742, widgets/data-table/widget.php:231, widgets/data-table/widget.php:255, widgets/data-table/widget.php:571, widgets/data-table/widget.php:597, widgets/dual-button/widget.php:458, widgets/flip-box/widget.php:200, widgets/flip-box/widget.php:357, widgets/fun-factor/widget.php:153, widgets/fun-factor/widget.php:264, widgets/gradient-heading/widget.php:137, widgets/gravityforms/widget.php:487, widgets/horizontal-timeline/widget.php:267, widgets/icon-box/widget.php:181, widgets/image-grid/widget.php:559, widgets/infobox/widget.php:249, widgets/justified-gallery/widget.php:626, widgets/member/widget.php:240, widgets/news-ticker/widget.php:108, widgets/news-ticker/widget.php:151, widgets/ninjaform/widget.php:376, widgets/number/widget.php:200, widgets/post-list/widget.php:471, widgets/post-tab/widget.php:221, widgets/post-tab/widget.php:246, widgets/pricing-table/widget.php:333, widgets/review/widget.php:184, widgets/review/widget.php:239, widgets/slider/widget.php:700, widgets/social-icons/widget.php:423, widgets/social-share/widget.php:493, widgets/step-flow/widget.php:194, widgets/taxonomy-list/widget.php:314, widgets/testimonial/widget.php:93, widgets/threesixty-rotation/widget.php:119, widgets/threesixty-rotation/widget.php:175, widgets/twitter-feed/widget.php:324, widgets/twitter-feed/widget.php:353, widgets/twitter-feed/widget.php:379, widgets/weform/widget.php:453, widgets/wpform/widget.php:467
953
  msgid "Right"
954
  msgstr ""
955
 
965
  msgid "Wrapper Link"
966
  msgstr ""
967
 
968
+ #: extensions/wrapper-link.php:37, widgets/card/widget.php:276, widgets/carousel/widget.php:109, widgets/data-table/widget.php:329, widgets/dual-button/widget.php:85, widgets/dual-button/widget.php:274, widgets/gradient-heading/widget.php:76, widgets/infobox/widget.php:291, widgets/member/widget.php:512, widgets/pricing-table/widget.php:286, widgets/slider/widget.php:109, widgets/social-icons/widget.php:137, widgets/step-flow/widget.php:133
969
  msgid "Link"
970
  msgstr ""
971
 
1109
  msgid "Zoom-out"
1110
  msgstr ""
1111
 
1112
+ #: inc/functions.php:117, widgets/bar-chart/widget.php:479, widgets/bar-chart/widget.php:619, widgets/bar-chart/widget.php:750, widgets/bar-chart/widget.php:863, widgets/bar-chart/widget.php:1065, widgets/bar-chart/widget.php:1166, widgets/card/widget.php:465, widgets/card/widget.php:699, widgets/carousel/widget.php:278, widgets/carousel/widget.php:513, widgets/data-table/widget.php:113, widgets/data-table/widget.php:390, widgets/flip-box/widget.php:73, widgets/flip-box/widget.php:230, widgets/icon-box/widget.php:501, widgets/image-compare/widget.php:382, widgets/infobox/widget.php:454, widgets/logo-grid/widget.php:301, widgets/pricing-table/widget.php:92, widgets/review/widget.php:581, widgets/slider/widget.php:259, widgets/slider/widget.php:467, widgets/social-icons/widget.php:691, widgets/step-flow/widget.php:641, widgets/threesixty-rotation/widget.php:99
1113
  msgid "None"
1114
  msgstr ""
1115
 
1157
  msgid "Hue"
1158
  msgstr ""
1159
 
1160
+ #: inc/functions.php:135, widgets/bar-chart/widget.php:564, widgets/bar-chart/widget.php:704, widgets/bar-chart/widget.php:835, widgets/bar-chart/widget.php:948, widgets/bar-chart/widget.php:1150, widgets/bar-chart/widget.php:1251, widgets/carousel/widget.php:618, widgets/carousel/widget.php:650, widgets/carousel/widget.php:764, widgets/carousel/widget.php:784, widgets/carousel/widget.php:804, widgets/data-table/widget.php:699, widgets/data-table/widget.php:1018, widgets/flip-box/widget.php:666, widgets/flip-box/widget.php:711, widgets/flip-box/widget.php:762, widgets/flip-box/widget.php:858, widgets/flip-box/widget.php:1029, widgets/flip-box/widget.php:1086, widgets/flip-box/widget.php:1125, widgets/fluent-form/widget.php:411, widgets/fluent-form/widget.php:647, widgets/fluent-form/widget.php:667, widgets/fun-factor/widget.php:603, widgets/fun-factor/widget.php:658, widgets/fun-factor/widget.php:751, widgets/gravityforms/widget.php:692, widgets/gravityforms/widget.php:712, widgets/horizontal-timeline/widget.php:433, widgets/horizontal-timeline/widget.php:481, widgets/horizontal-timeline/widget.php:949, widgets/horizontal-timeline/widget.php:991, widgets/horizontal-timeline/widget.php:1021, widgets/icon-box/widget.php:299, widgets/icon-box/widget.php:355, widgets/image-compare/widget.php:243, widgets/image-compare/widget.php:461, widgets/infobox/widget.php:564, widgets/post-list/widget.php:697, widgets/post-list/widget.php:716, widgets/post-list/widget.php:754, widgets/post-list/widget.php:909, widgets/post-list/widget.php:956, widgets/post-list/widget.php:1001, widgets/post-tab/widget.php:381, widgets/post-tab/widget.php:411, widgets/post-tab/widget.php:655, widgets/post-tab/widget.php:674, widgets/post-tab/widget.php:714, widgets/post-tab/widget.php:734, widgets/post-tab/widget.php:785, widgets/slider/widget.php:722, widgets/slider/widget.php:742, widgets/slider/widget.php:762, widgets/social-icons/widget.php:208, widgets/social-icons/widget.php:256, widgets/social-icons/widget.php:379, widgets/social-icons/widget.php:470, widgets/social-icons/widget.php:516, widgets/social-icons/widget.php:831, widgets/social-share/widget.php:295, widgets/social-share/widget.php:346, widgets/social-share/widget.php:630, widgets/social-share/widget.php:672, widgets/step-flow/widget.php:326, widgets/step-flow/widget.php:403, widgets/step-flow/widget.php:473, widgets/step-flow/widget.php:538, widgets/step-flow/widget.php:705, widgets/taxonomy-list/widget.php:539, widgets/taxonomy-list/widget.php:558, widgets/twitter-feed/widget.php:584, widgets/twitter-feed/widget.php:868, widgets/twitter-feed/widget.php:913, widgets/twitter-feed/widget.php:975, widgets/twitter-feed/widget.php:1036, widgets/twitter-feed/widget.php:1144, widgets/twitter-feed/widget.php:1175, widgets/weform/widget.php:665, widgets/weform/widget.php:685
1161
  msgid "Color"
1162
  msgstr ""
1163
 
1344
  msgid "Write multiple label with comma ( , ) separator. Example: January, February, March etc"
1345
  msgstr ""
1346
 
1347
+ #: widgets/bar-chart/widget.php:86, widgets/data-table/widget.php:74, widgets/data-table/widget.php:303, widgets/horizontal-timeline/widget.php:748, widgets/icon-box/widget.php:57, widgets/post-list/widget.php:888, widgets/post-tab/widget.php:561, widgets/skills/widget.php:271, widgets/twitter-feed/widget.php:817
1348
  msgid "Content"
1349
  msgstr ""
1350
 
1364
  msgid "Style"
1365
  msgstr ""
1366
 
1367
+ #: widgets/bar-chart/widget.php:122, widgets/bar-chart/widget.php:1041, widgets/calderaform/widget.php:203, widgets/calderaform/widget.php:242, widgets/calderaform/widget.php:490, widgets/calderaform/widget.php:521, widgets/calendly/widget.php:174, widgets/card/widget.php:776, widgets/card/widget.php:1028, widgets/card/widget.php:1059, widgets/carousel/widget.php:630, widgets/carousel/widget.php:661, widgets/cf7/widget.php:262, widgets/cf7/widget.php:301, widgets/cf7/widget.php:473, widgets/cf7/widget.php:504, widgets/data-table/widget.php:457, widgets/dual-button/widget.php:550, widgets/dual-button/widget.php:581, widgets/dual-button/widget.php:642, widgets/dual-button/widget.php:751, widgets/dual-button/widget.php:782, widgets/flip-box/widget.php:680, widgets/flip-box/widget.php:1043, widgets/fluent-form/widget.php:216, widgets/fluent-form/widget.php:255, widgets/fluent-form/widget.php:433, widgets/fluent-form/widget.php:544, widgets/fluent-form/widget.php:575, widgets/fun-factor/widget.php:477, widgets/gravityforms/widget.php:256, widgets/gravityforms/widget.php:304, widgets/gravityforms/widget.php:587, widgets/gravityforms/widget.php:619, widgets/gravityforms/widget.php:821, widgets/gravityforms/widget.php:856, widgets/horizontal-timeline/widget.php:557, widgets/horizontal-timeline/widget.php:687, widgets/horizontal-timeline/widget.php:718, widgets/horizontal-timeline/widget.php:828, widgets/icon-box/widget.php:310, widgets/icon-box/widget.php:366, widgets/icon-box/widget.php:584, widgets/image-compare/widget.php:472, widgets/image-grid/widget.php:595, widgets/image-grid/widget.php:626, widgets/image-grid/widget.php:671, widgets/infobox/widget.php:578, widgets/infobox/widget.php:810, widgets/infobox/widget.php:858, widgets/justified-gallery/widget.php:327, widgets/justified-gallery/widget.php:489, widgets/justified-gallery/widget.php:662, widgets/justified-gallery/widget.php:693, widgets/justified-gallery/widget.php:738, widgets/logo-grid/widget.php:386, widgets/member/widget.php:354, widgets/member/widget.php:388, widgets/member/widget.php:697, widgets/member/widget.php:962, widgets/member/widget.php:992, widgets/member/widget.php:1120, widgets/member/widget.php:1151, widgets/ninjaform/widget.php:205, widgets/ninjaform/widget.php:244, widgets/ninjaform/widget.php:482, widgets/ninjaform/widget.php:513, widgets/pricing-table/widget.php:774, widgets/pricing-table/widget.php:805, widgets/pricing-table/widget.php:865, widgets/review/widget.php:353, widgets/slider/widget.php:584, widgets/slider/widget.php:615, widgets/social-icons/widget.php:221, widgets/social-icons/widget.php:268, widgets/social-icons/widget.php:484, widgets/social-icons/widget.php:529, widgets/social-share/widget.php:310, widgets/social-share/widget.php:360, widgets/social-share/widget.php:642, widgets/social-share/widget.php:683, widgets/step-flow/widget.php:337, widgets/step-flow/widget.php:417, widgets/testimonial/widget.php:234, widgets/twitter-feed/widget.php:1133, widgets/twitter-feed/widget.php:1164, widgets/weform/widget.php:241, widgets/weform/widget.php:280, widgets/weform/widget.php:570, widgets/weform/widget.php:601, widgets/wpform/widget.php:208, widgets/wpform/widget.php:247, widgets/wpform/widget.php:577, widgets/wpform/widget.php:608
1368
  msgid "Background Color"
1369
  msgstr ""
1370
 
1372
  msgid "Background Hover Color"
1373
  msgstr ""
1374
 
1375
+ #: widgets/bar-chart/widget.php:138, widgets/bar-chart/widget.php:1052, widgets/calderaform/widget.php:532, widgets/card/widget.php:1070, widgets/carousel/widget.php:672, widgets/cf7/widget.php:515, widgets/dual-button/widget.php:592, widgets/dual-button/widget.php:793, widgets/fluent-form/widget.php:586, widgets/gravityforms/widget.php:631, widgets/gravityforms/widget.php:870, widgets/horizontal-timeline/widget.php:729, widgets/icon-box/widget.php:377, widgets/image-grid/widget.php:637, widgets/image-grid/widget.php:682, widgets/infobox/widget.php:869, widgets/justified-gallery/widget.php:704, widgets/justified-gallery/widget.php:749, widgets/logo-grid/widget.php:372, widgets/member/widget.php:401, widgets/member/widget.php:1003, widgets/member/widget.php:1162, widgets/ninjaform/widget.php:524, widgets/pricing-table/widget.php:816, widgets/slider/widget.php:626, widgets/social-icons/widget.php:235, widgets/social-icons/widget.php:280, widgets/social-icons/widget.php:497, widgets/social-icons/widget.php:541, widgets/social-share/widget.php:324, widgets/social-share/widget.php:374, widgets/social-share/widget.php:694, widgets/twitter-feed/widget.php:1186, widgets/weform/widget.php:612, widgets/wpform/widget.php:619
1376
  msgid "Border Color"
1377
  msgstr ""
1378
 
1420
  msgid "Show Title"
1421
  msgstr ""
1422
 
1423
+ #: widgets/bar-chart/widget.php:273, widgets/card/widget.php:157, widgets/card/widget.php:857, widgets/carousel/widget.php:85, widgets/carousel/widget.php:418, widgets/data-table/widget.php:81, widgets/data-table/widget.php:313, widgets/data-table/widget.php:682, widgets/data-table/widget.php:956, widgets/flip-box/widget.php:158, widgets/flip-box/widget.php:315, widgets/flip-box/widget.php:704, widgets/flip-box/widget.php:1067, widgets/fluent-form/widget.php:640, widgets/fun-factor/widget.php:184, widgets/fun-factor/widget.php:637, widgets/gradient-heading/widget.php:55, widgets/gradient-heading/widget.php:63, widgets/gradient-heading/widget.php:159, widgets/gravityforms/widget.php:685, widgets/horizontal-timeline/widget.php:112, widgets/horizontal-timeline/widget.php:918, widgets/icon-box/widget.php:92, widgets/icon-box/widget.php:421, widgets/infobox/widget.php:172, widgets/infobox/widget.php:639, widgets/news-ticker/widget.php:374, widgets/post-list/widget.php:123, widgets/post-list/widget.php:671, widgets/post-tab/widget.php:613, widgets/pricing-table/widget.php:65, widgets/pricing-table/widget.php:167, widgets/pricing-table/widget.php:598, widgets/slider/widget.php:85, widgets/slider/widget.php:374, widgets/step-flow/widget.php:104, widgets/step-flow/widget.php:107, widgets/step-flow/widget.php:454, widgets/taxonomy-list/widget.php:513, widgets/testimonial/widget.php:173, widgets/testimonial/widget.php:423, widgets/weform/widget.php:658
1424
  msgid "Title"
1425
  msgstr ""
1426
 
1452
  msgid "Show Legend"
1453
  msgstr ""
1454
 
1455
+ #: widgets/bar-chart/widget.php:326, widgets/card/widget.php:677, widgets/carousel/widget.php:511, widgets/fun-factor/widget.php:140, widgets/image-compare/widget.php:380, widgets/member/widget.php:478, widgets/pricing-table/widget.php:324, widgets/slider/widget.php:465
1456
  msgid "Position"
1457
  msgstr ""
1458
 
1492
  msgid "Common"
1493
  msgstr ""
1494
 
1495
+ #: widgets/bar-chart/widget.php:406, widgets/bar-chart/widget.php:728, widgets/bar-chart/widget.php:972, widgets/calderaform/widget.php:121, widgets/calderaform/widget.php:279, widgets/calderaform/widget.php:413, widgets/card/widget.php:520, widgets/card/widget.php:753, widgets/card/widget.php:950, widgets/cf7/widget.php:171, widgets/cf7/widget.php:395, widgets/data-table/widget.php:636, widgets/data-table/widget.php:783, widgets/dual-button/widget.php:390, widgets/dual-button/widget.php:480, widgets/dual-button/widget.php:681, widgets/flip-box/widget.php:462, widgets/flip-box/widget.php:613, widgets/flip-box/widget.php:806, widgets/flip-box/widget.php:976, widgets/fluent-form/widget.php:125, widgets/fluent-form/widget.php:358, widgets/fluent-form/widget.php:466, widgets/fun-factor/widget.php:425, widgets/fun-factor/widget.php:572, widgets/gravityforms/widget.php:156, widgets/gravityforms/widget.php:516, widgets/horizontal-timeline/widget.php:501, widgets/horizontal-timeline/widget.php:787, widgets/icon-box/widget.php:230, widgets/icon-box/widget.php:561, widgets/image-compare/widget.php:368, widgets/image-grid/widget.php:314, widgets/image-grid/widget.php:482, widgets/infobox/widget.php:520, widgets/infobox/widget.php:732, widgets/justified-gallery/widget.php:466, widgets/justified-gallery/widget.php:549, widgets/logo-grid/widget.php:268, widgets/member/widget.php:654, widgets/member/widget.php:899, widgets/member/widget.php:1042, widgets/news-ticker/widget.php:250, widgets/news-ticker/widget.php:360, widgets/ninjaform/widget.php:122, widgets/ninjaform/widget.php:281, widgets/ninjaform/widget.php:404, widgets/number/widget.php:146, widgets/post-list/widget.php:527, widgets/post-tab/widget.php:310, widgets/post-tab/widget.php:361, widgets/post-tab/widget.php:507, widgets/pricing-table/widget.php:697, widgets/pricing-table/widget.php:842, widgets/review/widget.php:330, widgets/review/widget.php:635, widgets/social-icons/widget.php:555, widgets/social-icons/widget.php:662, widgets/social-share/widget.php:520, widgets/step-flow/widget.php:260, widgets/step-flow/widget.php:361, widgets/taxonomy-list/widget.php:369, widgets/testimonial/widget.php:199, widgets/threesixty-rotation/widget.php:266, widgets/threesixty-rotation/widget.php:502, widgets/twitter-feed/widget.php:449, widgets/twitter-feed/widget.php:825, widgets/weform/widget.php:157, widgets/weform/widget.php:317, widgets/weform/widget.php:484, widgets/wpform/widget.php:123, widgets/wpform/widget.php:283, widgets/wpform/widget.php:499
1496
  msgid "Padding"
1497
  msgstr ""
1498
 
1512
  msgid "Title Typography"
1513
  msgstr ""
1514
 
1515
+ #: widgets/bar-chart/widget.php:480, widgets/bar-chart/widget.php:620, widgets/bar-chart/widget.php:751, widgets/bar-chart/widget.php:864, widgets/bar-chart/widget.php:1066, widgets/bar-chart/widget.php:1167, widgets/card/widget.php:466, widgets/card/widget.php:700, widgets/carousel/widget.php:514, widgets/icon-box/widget.php:502, widgets/image-compare/widget.php:383, widgets/infobox/widget.php:455, widgets/pricing-table/widget.php:111, widgets/review/widget.php:582, widgets/slider/widget.php:468, widgets/social-icons/widget.php:348, widgets/step-flow/widget.php:642, widgets/wpform/widget.php:336
1516
  msgid "Custom"
1517
  msgstr ""
1518
 
1568
  msgid "Box Width"
1569
  msgstr ""
1570
 
1571
+ #: widgets/bar-chart/widget.php:617, widgets/calderaform/widget.php:146, widgets/card/widget.php:819, widgets/card/widget.php:889, widgets/card/widget.php:931, widgets/carousel/widget.php:450, widgets/carousel/widget.php:492, widgets/cf7/widget.php:204, widgets/cf7/widget.php:353, widgets/dual-button/widget.php:428, widgets/dual-button/widget.php:513, widgets/dual-button/widget.php:654, widgets/dual-button/widget.php:714, widgets/flip-box/widget.php:723, widgets/flip-box/widget.php:774, widgets/flip-box/widget.php:1098, widgets/flip-box/widget.php:1137, widgets/fluent-form/widget.php:158, widgets/fluent-form/widget.php:307, widgets/fluent-form/widget.php:391, widgets/fun-factor/widget.php:615, widgets/fun-factor/widget.php:670, widgets/gravityforms/widget.php:185, widgets/horizontal-timeline/widget.php:472, widgets/horizontal-timeline/widget.php:940, widgets/horizontal-timeline/widget.php:982, widgets/horizontal-timeline/widget.php:1012, widgets/icon-box/widget.php:627, widgets/infobox/widget.php:671, widgets/infobox/widget.php:713, widgets/justified-gallery/widget.php:501, widgets/news-ticker/widget.php:320, widgets/news-ticker/widget.php:426, widgets/ninjaform/widget.php:147, widgets/number/widget.php:310, widgets/post-list/widget.php:680, widgets/post-list/widget.php:900, widgets/post-list/widget.php:947, widgets/post-tab/widget.php:437, widgets/post-tab/widget.php:638, widgets/post-tab/widget.php:697, widgets/post-tab/widget.php:773, widgets/pricing-table/widget.php:905, widgets/social-icons/widget.php:800, widgets/social-icons/widget.php:847, widgets/social-share/widget.php:612, widgets/taxonomy-list/widget.php:522, widgets/testimonial/widget.php:247, widgets/testimonial/widget.php:402, widgets/testimonial/widget.php:444, widgets/twitter-feed/widget.php:859, widgets/twitter-feed/widget.php:901, widgets/twitter-feed/widget.php:963, widgets/weform/widget.php:183, widgets/wpform/widget.php:150
1572
  msgid "Typography"
1573
  msgstr ""
1574
 
1596
  msgid "Border Width"
1597
  msgstr ""
1598
 
1599
+ #: widgets/bar-chart/widget.php:1000, widgets/calderaform/widget.php:133, widgets/calderaform/widget.php:441, widgets/card/widget.php:540, widgets/card/widget.php:795, widgets/card/widget.php:979, widgets/carousel/widget.php:372, widgets/carousel/widget.php:597, widgets/cf7/widget.php:183, widgets/cf7/widget.php:424, widgets/data-table/widget.php:648, widgets/dual-button/widget.php:500, widgets/dual-button/widget.php:701, widgets/flip-box/widget.php:435, widgets/flip-box/widget.php:639, widgets/flip-box/widget.php:1002, widgets/fluent-form/widget.php:137, widgets/fluent-form/widget.php:378, widgets/fluent-form/widget.php:495, widgets/fun-factor/widget.php:446, widgets/fun-factor/widget.php:740, widgets/gravityforms/widget.php:170, widgets/gravityforms/widget.php:545, widgets/horizontal-timeline/widget.php:537, widgets/horizontal-timeline/widget.php:654, widgets/horizontal-timeline/widget.php:756, widgets/horizontal-timeline/widget.php:898, widgets/icon-box/widget.php:267, widgets/icon-box/widget.php:603, widgets/image-compare/widget.php:346, widgets/image-compare/widget.php:449, widgets/image-grid/widget.php:327, widgets/image-grid/widget.php:514, widgets/infobox/widget.php:540, widgets/infobox/widget.php:761, widgets/justified-gallery/widget.php:315, widgets/justified-gallery/widget.php:581, widgets/logo-grid/widget.php:397, widgets/member/widget.php:674, widgets/member/widget.php:931, widgets/member/widget.php:1071, widgets/news-ticker/widget.php:229, widgets/news-ticker/widget.php:348, widgets/ninjaform/widget.php:134, widgets/ninjaform/widget.php:433, widgets/number/widget.php:167, widgets/post-list/widget.php:567, widgets/post-list/widget.php:833, widgets/post-tab/widget.php:455, widgets/post-tab/widget.php:547, widgets/post-tab/widget.php:601, widgets/pricing-table/widget.php:717, widgets/pricing-table/widget.php:884, widgets/review/widget.php:372, widgets/review/widget.php:655, widgets/skills/widget.php:246, widgets/slider/widget.php:328, widgets/slider/widget.php:551, widgets/social-icons/widget.php:615, widgets/social-share/widget.php:543, widgets/step-flow/widget.php:306, widgets/step-flow/widget.php:388, widgets/taxonomy-list/widget.php:409, widgets/taxonomy-list/widget.php:650, widgets/testimonial/widget.php:256, widgets/testimonial/widget.php:352, widgets/threesixty-rotation/widget.php:245, widgets/threesixty-rotation/widget.php:481, widgets/twitter-feed/widget.php:469, widgets/twitter-feed/widget.php:1092, widgets/weform/widget.php:170, widgets/weform/widget.php:513, widgets/wpform/widget.php:136, widgets/wpform/widget.php:528
1600
  msgid "Border Radius"
1601
  msgstr ""
1602
 
1696
  msgid "Button Full Width?"
1697
  msgstr ""
1698
 
1699
+ #: widgets/calderaform/widget.php:362, widgets/carousel/widget.php:207, widgets/carousel/widget.php:237, widgets/carousel/widget.php:250, widgets/carousel/widget.php:264, widgets/fun-factor/widget.php:199, widgets/fun-factor/widget.php:494, widgets/gravityforms/widget.php:436, widgets/horizontal-timeline/widget.php:145, widgets/horizontal-timeline/widget.php:288, widgets/horizontal-timeline/widget.php:333, widgets/image-compare/widget.php:204, widgets/justified-gallery/widget.php:135, widgets/member/widget.php:318, widgets/number/widget.php:88, widgets/skills/widget.php:100, widgets/slider/widget.php:198, widgets/slider/widget.php:230, widgets/slider/widget.php:244, widgets/social-icons/widget.php:157, widgets/social-icons/widget.php:184, widgets/social-share/widget.php:271, widgets/social-share/widget.php:441, widgets/step-flow/widget.php:214, widgets/weform/widget.php:402, widgets/wpform/widget.php:416
1700
  msgid "Yes"
1701
  msgstr ""
1702
 
1703
+ #: widgets/calderaform/widget.php:363, widgets/carousel/widget.php:208, widgets/carousel/widget.php:238, widgets/carousel/widget.php:251, widgets/carousel/widget.php:265, widgets/fun-factor/widget.php:200, widgets/fun-factor/widget.php:493, widgets/gravityforms/widget.php:437, widgets/horizontal-timeline/widget.php:146, widgets/horizontal-timeline/widget.php:289, widgets/horizontal-timeline/widget.php:334, widgets/image-compare/widget.php:205, widgets/justified-gallery/widget.php:136, widgets/member/widget.php:319, widgets/number/widget.php:89, widgets/skills/widget.php:101, widgets/slider/widget.php:199, widgets/slider/widget.php:231, widgets/slider/widget.php:245, widgets/social-icons/widget.php:158, widgets/social-icons/widget.php:185, widgets/social-share/widget.php:272, widgets/social-share/widget.php:442, widgets/step-flow/widget.php:215, widgets/weform/widget.php:403, widgets/wpform/widget.php:417
1704
  msgid "No"
1705
  msgstr ""
1706
 
1708
  msgid "Button Width"
1709
  msgstr ""
1710
 
1711
+ #: widgets/calderaform/widget.php:478, widgets/calderaform/widget.php:510, widgets/calendly/widget.php:157, widgets/card/widget.php:765, widgets/card/widget.php:877, widgets/card/widget.php:919, widgets/card/widget.php:1016, widgets/card/widget.php:1048, widgets/carousel/widget.php:438, widgets/carousel/widget.php:480, widgets/cf7/widget.php:213, widgets/cf7/widget.php:362, widgets/cf7/widget.php:461, widgets/cf7/widget.php:493, widgets/data-table/widget.php:471, widgets/dual-button/widget.php:539, widgets/dual-button/widget.php:570, widgets/dual-button/widget.php:631, widgets/dual-button/widget.php:740, widgets/dual-button/widget.php:771, widgets/fluent-form/widget.php:167, widgets/fluent-form/widget.php:316, widgets/fluent-form/widget.php:532, widgets/fluent-form/widget.php:564, widgets/gravityforms/widget.php:575, widgets/gravityforms/widget.php:607, widgets/gravityforms/widget.php:808, widgets/gravityforms/widget.php:842, widgets/horizontal-timeline/widget.php:675, widgets/horizontal-timeline/widget.php:707, widgets/icon-box/widget.php:455, widgets/icon-box/widget.php:475, widgets/icon-box/widget.php:573, widgets/image-grid/widget.php:583, widgets/image-grid/widget.php:615, widgets/image-grid/widget.php:660, widgets/infobox/widget.php:659, widgets/infobox/widget.php:701, widgets/infobox/widget.php:798, widgets/infobox/widget.php:847, widgets/justified-gallery/widget.php:478, widgets/justified-gallery/widget.php:650, widgets/justified-gallery/widget.php:682, widgets/justified-gallery/widget.php:727, widgets/member/widget.php:341, widgets/member/widget.php:375, widgets/member/widget.php:751, widgets/member/widget.php:800, widgets/member/widget.php:849, widgets/member/widget.php:951, widgets/member/widget.php:981, widgets/member/widget.php:1108, widgets/member/widget.php:1140, widgets/ninjaform/widget.php:470, widgets/ninjaform/widget.php:502, widgets/number/widget.php:298, widgets/pricing-table/widget.php:377, widgets/pricing-table/widget.php:473, widgets/pricing-table/widget.php:514, widgets/pricing-table/widget.php:555, widgets/pricing-table/widget.php:618, widgets/pricing-table/widget.php:659, widgets/pricing-table/widget.php:763, widgets/pricing-table/widget.php:794, widgets/pricing-table/widget.php:854, widgets/review/widget.php:342, widgets/review/widget.php:427, widgets/review/widget.php:468, widgets/review/widget.php:509, widgets/skills/widget.php:111, widgets/skills/widget.php:279, widgets/slider/widget.php:394, widgets/slider/widget.php:435, widgets/slider/widget.php:572, widgets/slider/widget.php:604, widgets/testimonial/widget.php:223, widgets/testimonial/widget.php:390, widgets/testimonial/widget.php:432, widgets/weform/widget.php:558, widgets/weform/widget.php:590, widgets/wpform/widget.php:565, widgets/wpform/widget.php:597
1712
  msgid "Text Color"
1713
  msgstr ""
1714
 
1760
  msgid "Image & Badge"
1761
  msgstr ""
1762
 
1763
+ #: widgets/card/widget.php:70, widgets/card/widget.php:404, widgets/carousel/widget.php:70, widgets/data-table/widget.php:121, widgets/data-table/widget.php:144, widgets/data-table/widget.php:386, widgets/data-table/widget.php:414, widgets/flip-box/widget.php:81, widgets/flip-box/widget.php:125, widgets/flip-box/widget.php:238, widgets/flip-box/widget.php:250, widgets/fun-factor/widget.php:73, widgets/fun-factor/widget.php:86, widgets/horizontal-timeline/widget.php:87, widgets/horizontal-timeline/widget.php:841, widgets/image-compare/widget.php:74, widgets/image-compare/widget.php:111, widgets/image-grid/widget.php:283, widgets/infobox/widget.php:80, widgets/infobox/widget.php:93, widgets/justified-gallery/widget.php:307, widgets/post-tab/widget.php:569, widgets/slider/widget.php:70, widgets/taxonomy-list/widget.php:123, widgets/taxonomy-list/widget.php:151, widgets/taxonomy-list/widget.php:249, widgets/taxonomy-list/widget.php:282, widgets/testimonial/widget.php:135, widgets/testimonial/widget.php:278
1764
  msgid "Image"
1765
  msgstr ""
1766
 
1796
  msgid "Type Card Title"
1797
  msgstr ""
1798
 
1799
+ #: widgets/card/widget.php:171, widgets/card/widget.php:899, widgets/flip-box/widget.php:173, widgets/flip-box/widget.php:178, widgets/flip-box/widget.php:330, widgets/flip-box/widget.php:335, widgets/flip-box/widget.php:743, widgets/flip-box/widget.php:1118, widgets/fluent-form/widget.php:660, widgets/gravityforms/widget.php:705, widgets/horizontal-timeline/widget.php:132, widgets/horizontal-timeline/widget.php:1002, widgets/infobox/widget.php:186, widgets/infobox/widget.php:681, widgets/step-flow/widget.php:119, widgets/step-flow/widget.php:122, widgets/step-flow/widget.php:530, widgets/twitter-feed/widget.php:837, widgets/weform/widget.php:678
1800
  msgid "Description"
1801
  msgstr ""
1802
 
1836
  msgid "H6"
1837
  msgstr ""
1838
 
1839
+ #: widgets/card/widget.php:222, widgets/card/widget.php:305, widgets/carousel/widget.php:729, widgets/data-table/widget.php:218, widgets/data-table/widget.php:558, widgets/dual-button/widget.php:445, widgets/flip-box/widget.php:188, widgets/flip-box/widget.php:345, widgets/gradient-heading/widget.php:125, widgets/icon-box/widget.php:169, widgets/image-grid/widget.php:546, widgets/infobox/widget.php:237, widgets/justified-gallery/widget.php:613, widgets/member/widget.php:228, widgets/number/widget.php:188, widgets/post-list/widget.php:459, widgets/review/widget.php:227, widgets/slider/widget.php:687, widgets/social-icons/widget.php:411, widgets/social-share/widget.php:481, widgets/step-flow/widget.php:182, widgets/taxonomy-list/widget.php:302, widgets/testimonial/widget.php:80, widgets/threesixty-rotation/widget.php:163, widgets/twitter-feed/widget.php:312
1840
  msgid "Alignment"
1841
  msgstr ""
1842
 
1860
  msgid "Stretch"
1861
  msgstr ""
1862
 
1863
+ #: widgets/card/widget.php:346, widgets/data-table/widget.php:117, widgets/data-table/widget.php:131, widgets/data-table/widget.php:382, widgets/data-table/widget.php:400, widgets/dual-button/widget.php:112, widgets/dual-button/widget.php:101, widgets/dual-button/widget.php:188, widgets/dual-button/widget.php:234, widgets/dual-button/widget.php:221, widgets/dual-button/widget.php:301, widgets/dual-button/widget.php:290, widgets/flip-box/widget.php:77, widgets/flip-box/widget.php:107, widgets/flip-box/widget.php:94, widgets/flip-box/widget.php:234, widgets/flip-box/widget.php:297, widgets/flip-box/widget.php:284, widgets/fun-factor/widget.php:69, widgets/horizontal-timeline/widget.php:72, widgets/horizontal-timeline/widget.php:492, widgets/icon-box/widget.php:204, widgets/infobox/widget.php:76, widgets/infobox/widget.php:131, widgets/infobox/widget.php:307, widgets/post-list/widget.php:271, widgets/pricing-table/widget.php:211, widgets/pricing-table/widget.php:196, widgets/social-icons/widget.php:54, widgets/social-icons/widget.php:63, widgets/social-icons/widget.php:638, widgets/social-share/widget.php:430, widgets/step-flow/widget.php:75, widgets/step-flow/widget.php:64, widgets/step-flow/widget.php:229, widgets/taxonomy-list/widget.php:115, widgets/taxonomy-list/widget.php:119, widgets/taxonomy-list/widget.php:135, widgets/taxonomy-list/widget.php:245, widgets/taxonomy-list/widget.php:264
1864
  msgid "Icon"
1865
  msgstr ""
1866
 
1932
  msgid "Bottom Right"
1933
  msgstr ""
1934
 
1935
+ #: widgets/card/widget.php:844, widgets/carousel/widget.php:394, widgets/member/widget.php:718, widgets/slider/widget.php:350
1936
  msgid "Content Padding"
1937
  msgstr ""
1938
 
1939
+ #: widgets/card/widget.php:865, widgets/card/widget.php:907, widgets/carousel/widget.php:426, widgets/carousel/widget.php:468, widgets/flip-box/widget.php:537, widgets/flip-box/widget.php:897, widgets/flip-box/widget.php:1074, widgets/fun-factor/widget.php:466, widgets/fun-factor/widget.php:591, widgets/fun-factor/widget.php:646, widgets/fun-factor/widget.php:762, widgets/horizontal-timeline/widget.php:886, widgets/horizontal-timeline/widget.php:927, widgets/horizontal-timeline/widget.php:969, widgets/icon-box/widget.php:242, widgets/infobox/widget.php:508, widgets/infobox/widget.php:647, widgets/infobox/widget.php:689, widgets/member/widget.php:642, widgets/member/widget.php:739, widgets/member/widget.php:788, widgets/member/widget.php:837, widgets/pricing-table/widget.php:403, widgets/pricing-table/widget.php:461, widgets/pricing-table/widget.php:543, widgets/pricing-table/widget.php:606, widgets/review/widget.php:318, widgets/review/widget.php:415, widgets/review/widget.php:456, widgets/review/widget.php:497, widgets/slider/widget.php:382, widgets/slider/widget.php:423, widgets/step-flow/widget.php:279, widgets/step-flow/widget.php:461, widgets/testimonial/widget.php:211, widgets/testimonial/widget.php:411, widgets/twitter-feed/widget.php:846
1940
  msgid "Bottom Spacing"
1941
  msgstr ""
1942
 
1943
+ #: widgets/carousel/widget.php:59, widgets/slider/widget.php:59
1944
  msgid "Slides"
1945
  msgstr ""
1946
 
1947
+ #: widgets/carousel/widget.php:86, widgets/slider/widget.php:86
1948
  msgid "Type title here"
1949
  msgstr ""
1950
 
1951
+ #: widgets/carousel/widget.php:96, widgets/carousel/widget.php:460, widgets/slider/widget.php:98, widgets/slider/widget.php:415
1952
  msgid "Subtitle"
1953
  msgstr ""
1954
 
1955
+ #: widgets/carousel/widget.php:99, widgets/slider/widget.php:99
1956
  msgid "Type subtitle here"
1957
  msgstr ""
1958
 
1959
+ #: widgets/carousel/widget.php:191, widgets/horizontal-timeline/widget.php:298, widgets/slider/widget.php:181
1960
  msgid "Animation Speed"
1961
  msgstr ""
1962
 
1963
+ #: widgets/carousel/widget.php:197, widgets/horizontal-timeline/widget.php:304, widgets/slider/widget.php:187
1964
  msgid "Slide speed in milliseconds"
1965
  msgstr ""
1966
 
1967
+ #: widgets/carousel/widget.php:205, widgets/slider/widget.php:196
1968
  msgid "Autoplay?"
1969
  msgstr ""
1970
 
1971
+ #: widgets/carousel/widget.php:218, widgets/horizontal-timeline/widget.php:313, widgets/slider/widget.php:210
1972
  msgid "Autoplay Speed"
1973
  msgstr ""
1974
 
1975
+ #: widgets/carousel/widget.php:224, widgets/horizontal-timeline/widget.php:319, widgets/slider/widget.php:216
1976
  msgid "Autoplay speed in milliseconds"
1977
  msgstr ""
1978
 
1979
+ #: widgets/carousel/widget.php:235, widgets/horizontal-timeline/widget.php:331, widgets/slider/widget.php:228
1980
  msgid "Infinite Loop?"
1981
  msgstr ""
1982
 
1983
+ #: widgets/carousel/widget.php:248
1984
  msgid "Center Mode?"
1985
  msgstr ""
1986
 
1987
+ #: widgets/carousel/widget.php:253
1988
  msgid "Best works with odd number of slides (Slides To Show) and loop (Infinite Loop)"
1989
  msgstr ""
1990
 
1991
+ #: widgets/carousel/widget.php:262, widgets/slider/widget.php:242
1992
  msgid "Vertical Mode?"
1993
  msgstr ""
1994
 
1995
+ #: widgets/carousel/widget.php:275, widgets/slider/widget.php:256
1996
  msgid "Navigation"
1997
  msgstr ""
1998
 
1999
+ #: widgets/carousel/widget.php:279, widgets/slider/widget.php:260
2000
  msgid "Arrow"
2001
  msgstr ""
2002
 
2003
+ #: widgets/carousel/widget.php:280, widgets/slider/widget.php:261
2004
  msgid "Dots"
2005
  msgstr ""
2006
 
2007
+ #: widgets/carousel/widget.php:281, widgets/slider/widget.php:262
2008
  msgid "Arrow & Dots"
2009
  msgstr ""
2010
 
2011
+ #: widgets/carousel/widget.php:292, widgets/horizontal-timeline/widget.php:345
2012
  msgid "Slides To Show"
2013
  msgstr ""
2014
 
2015
+ #: widgets/carousel/widget.php:295, widgets/horizontal-timeline/widget.php:348
2016
  msgid "1 Slide"
2017
  msgstr ""
2018
 
2019
+ #: widgets/carousel/widget.php:296, widgets/horizontal-timeline/widget.php:349
2020
  msgid "2 Slides"
2021
  msgstr ""
2022
 
2023
+ #: widgets/carousel/widget.php:297, widgets/horizontal-timeline/widget.php:350
2024
  msgid "3 Slides"
2025
  msgstr ""
2026
 
2027
+ #: widgets/carousel/widget.php:298, widgets/horizontal-timeline/widget.php:351
2028
  msgid "4 Slides"
2029
  msgstr ""
2030
 
2031
+ #: widgets/carousel/widget.php:299, widgets/horizontal-timeline/widget.php:352
2032
  msgid "5 Slides"
2033
  msgstr ""
2034
 
2035
+ #: widgets/carousel/widget.php:300, widgets/horizontal-timeline/widget.php:353
2036
  msgid "6 Slides"
2037
  msgstr ""
2038
 
2039
+ #: widgets/carousel/widget.php:313, widgets/horizontal-timeline/widget.php:367, widgets/slider/widget.php:274
2040
+ msgid "Previous Icon"
2041
+ msgstr ""
2042
+
2043
+ #: widgets/carousel/widget.php:330, widgets/horizontal-timeline/widget.php:381, widgets/slider/widget.php:291
2044
+ msgid "Next Icon"
2045
+ msgstr ""
2046
+
2047
+ #: widgets/carousel/widget.php:351
2048
  msgid "Carousel Item"
2049
  msgstr ""
2050
 
2051
+ #: widgets/carousel/widget.php:359
2052
  msgid "Slide Spacing (px)"
2053
  msgstr ""
2054
 
2055
+ #: widgets/carousel/widget.php:386, widgets/slider/widget.php:342
2056
  msgid "Slide Content"
2057
  msgstr ""
2058
 
2059
+ #: widgets/carousel/widget.php:503, widgets/slider/widget.php:457
2060
  msgid "Navigation - Arrow"
2061
  msgstr ""
2062
 
2063
+ #: widgets/carousel/widget.php:524, widgets/image-compare/widget.php:190, widgets/image-compare/widget.php:393, widgets/slider/widget.php:478
2064
  msgid "Vertical"
2065
  msgstr ""
2066
 
2067
+ #: widgets/carousel/widget.php:549, widgets/image-compare/widget.php:186, widgets/image-compare/widget.php:416, widgets/slider/widget.php:503
2068
  msgid "Horizontal"
2069
  msgstr ""
2070
 
2071
+ #: widgets/carousel/widget.php:577, widgets/data-table/widget.php:994, widgets/fun-factor/widget.php:389, widgets/horizontal-timeline/widget.php:519, widgets/horizontal-timeline/widget.php:634, widgets/icon-box/widget.php:212, widgets/image-compare/widget.php:268, widgets/infobox/widget.php:385, widgets/number/widget.php:128, widgets/review/widget.php:306, widgets/slider/widget.php:531, widgets/social-icons/widget.php:645, widgets/step-flow/widget.php:237, widgets/twitter-feed/widget.php:570, widgets/twitter-feed/widget.php:619
2072
+ msgid "Size"
2073
+ msgstr ""
2074
+
2075
+ #: widgets/carousel/widget.php:691, widgets/slider/widget.php:645
2076
  msgid "Navigation - Dots"
2077
  msgstr ""
2078
 
2079
+ #: widgets/carousel/widget.php:699, widgets/horizontal-timeline/widget.php:589, widgets/slider/widget.php:653
2080
  msgid "Vertical Position"
2081
  msgstr ""
2082
 
2083
+ #: widgets/carousel/widget.php:717, widgets/data-table/widget.php:719, widgets/data-table/widget.php:982, widgets/flip-box/widget.php:750, widgets/image-grid/widget.php:494, widgets/justified-gallery/widget.php:561, widgets/slider/widget.php:675, widgets/social-icons/widget.php:810, widgets/social-share/widget.php:532, widgets/testimonial/widget.php:330, widgets/twitter-feed/widget.php:634
2084
  msgid "Spacing"
2085
  msgstr ""
2086
 
2087
+ #: widgets/carousel/widget.php:797, widgets/image-grid/widget.php:653, widgets/justified-gallery/widget.php:720, widgets/slider/widget.php:755
2088
  msgid "Active"
2089
  msgstr ""
2090
 
2124
  msgid "Media"
2125
  msgstr ""
2126
 
2127
+ #: widgets/data-table/widget.php:181, widgets/data-table/widget.php:485, widgets/data-table/widget.php:754, widgets/fluent-form/widget.php:400, widgets/fun-factor/widget.php:411, widgets/horizontal-timeline/widget.php:155, widgets/horizontal-timeline/widget.php:568, widgets/taxonomy-list/widget.php:581, widgets/threesixty-rotation/widget.php:347, widgets/twitter-feed/widget.php:1048
2128
  msgid "Icon Color"
2129
  msgstr ""
2130
 
2208
  msgid "Link Color"
2209
  msgstr ""
2210
 
 
 
 
 
2211
  #: widgets/dual-button/widget.php:55
2212
  msgid "Dual Buttons"
2213
  msgstr ""
2480
  msgid "Event Title"
2481
  msgstr ""
2482
 
2483
+ #: widgets/horizontal-timeline/widget.php:122, widgets/horizontal-timeline/widget.php:960
2484
  msgid "Sub Title"
2485
  msgstr ""
2486
 
2532
  msgid "Hide Content Arrow"
2533
  msgstr ""
2534
 
2535
+ #: widgets/horizontal-timeline/widget.php:407
 
 
 
 
2536
  msgid "Line"
2537
  msgstr ""
2538
 
2539
+ #: widgets/horizontal-timeline/widget.php:415
2540
  msgid "Thickness"
2541
  msgstr ""
2542
 
2543
+ #: widgets/horizontal-timeline/widget.php:444, widgets/post-list/widget.php:343
2544
  msgid "Date"
2545
  msgstr ""
2546
 
2547
+ #: widgets/horizontal-timeline/widget.php:453
2548
  msgid "Left Spacing"
2549
  msgstr ""
2550
 
2551
+ #: widgets/horizontal-timeline/widget.php:581
2552
+ msgid "Arrows"
2553
+ msgstr ""
2554
+
2555
+ #: widgets/horizontal-timeline/widget.php:611
2556
+ msgid "Horizontal Position"
2557
  msgstr ""
2558
 
2559
+ #: widgets/horizontal-timeline/widget.php:799
2560
  msgid "Space between contents"
2561
  msgstr ""
2562
 
2563
+ #: widgets/horizontal-timeline/widget.php:812, widgets/logo-grid/widget.php:224, widgets/news-ticker/widget.php:221, widgets/news-ticker/widget.php:340, widgets/number/widget.php:159, widgets/post-list/widget.php:559, widgets/post-list/widget.php:619, widgets/post-list/widget.php:658, widgets/post-list/widget.php:822, widgets/post-tab/widget.php:332, widgets/post-tab/widget.php:447, widgets/post-tab/widget.php:539, widgets/post-tab/widget.php:593, widgets/step-flow/widget.php:298, widgets/step-flow/widget.php:377, widgets/taxonomy-list/widget.php:401, widgets/taxonomy-list/widget.php:461, widgets/taxonomy-list/widget.php:500, widgets/taxonomy-list/widget.php:642, widgets/threesixty-rotation/widget.php:237, widgets/threesixty-rotation/widget.php:378, widgets/threesixty-rotation/widget.php:473
2564
  msgid "Border"
2565
  msgstr ""
2566
 
2718
  msgid "Type \"All\" filter label."
2719
  msgstr ""
2720
 
 
 
 
 
2721
  #: widgets/image-grid/widget.php:188, widgets/post-tab/widget.php:172, widgets/twitter-feed/widget.php:155
2722
  msgid "1 Column"
2723
  msgstr ""
2758
  msgid "Enable Lightbox"
2759
  msgstr ""
2760
 
 
 
 
 
 
 
 
 
2761
  #: widgets/image-grid/widget.php:292
2762
  msgid "Image height is only applicable for Even layout"
2763
  msgstr ""
3681
  msgid "Text Outside"
3682
  msgstr ""
3683
 
3684
+ #: widgets/slider/widget.php:312
3685
  msgid "Slider Item"
3686
  msgstr ""
3687
 
plugin.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Happy Elementor Addons
4
  * Plugin URI: https://happyaddons.com/
5
  * Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
6
- * Version: 2.16.1
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
@@ -34,7 +34,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
- define( 'HAPPY_ADDONS_VERSION', '2.16.1' );
38
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
39
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
40
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
3
  * Plugin Name: Happy Elementor Addons
4
  * Plugin URI: https://happyaddons.com/
5
  * Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
6
+ * Version: 2.17.0
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
+ define( 'HAPPY_ADDONS_VERSION', '2.17.0' );
38
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
39
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
40
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
- Version: 2.16.1
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
@@ -283,6 +283,24 @@ For a more detailed explanation check out the following documentation
283
 
284
  == Changelog ==
285
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  = 2.16.1 - 10 December 2020 =
287
 
288
  - Fix: WordPress 5.6 compatibility
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
+ Version: 2.17.0
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
283
 
284
  == Changelog ==
285
 
286
+ = 2.17.0 - 23 December 2020 =
287
+
288
+ - New: Widget equal height feature
289
+ - New: Custom arrow icon control in Slider widget
290
+ - New: Custom arrow icon control in Carousel widget
291
+ - New: Custom arrow icon control in Horizontal timeline widget
292
+ - New: Slider arrow size control
293
+ - New: Carousel arrow size control
294
+ - New: Horizontal timeline arrow size control
295
+ - New: Horizontal timeline arrow horizontal position control
296
+ - Tweak: Updated Horizontal timeline widget default style
297
+ - Tweak: Added % unit in Slider arrow position controls
298
+ - Tweak: Added % unit in Carousel arrow position controls
299
+ - Tweak: Added % unit in Horizontal timline arrow position control
300
+ - Tweak: Separated Floating effects JS handler from main JS file
301
+ - Fix: Slider arrow not hiding issue
302
+ - Fix: Carousel arrow not hiding issue
303
+
304
  = 2.16.1 - 10 December 2020 =
305
 
306
  - Fix: WordPress 5.6 compatibility
widgets/carousel/widget.php CHANGED
@@ -14,6 +14,7 @@ use Elementor\Group_Control_Image_Size;
14
  use Elementor\Group_Control_Typography;
15
  use Elementor\Scheme_Typography;
16
  use Elementor\Utils;
 
17
 
18
  defined( 'ABSPATH' ) || die();
19
 
@@ -306,6 +307,40 @@ class Carousel extends Base {
306
  ]
307
  );
308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  $this->end_controls_section();
310
  }
311
 
@@ -488,15 +523,19 @@ class Carousel extends Base {
488
  [
489
  'label' => __( 'Vertical', 'happy-elementor-addons' ),
490
  'type' => Controls_Manager::SLIDER,
491
- 'size_units' => ['px'],
492
  'condition' => [
493
  'arrow_position_toggle' => 'yes'
494
  ],
495
  'range' => [
496
  'px' => [
497
- 'min' => 0,
498
  'max' => 500,
499
  ],
 
 
 
 
500
  ],
501
  'selectors' => [
502
  '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};',
@@ -509,14 +548,18 @@ class Carousel extends Base {
509
  [
510
  'label' => __( 'Horizontal', 'happy-elementor-addons' ),
511
  'type' => Controls_Manager::SLIDER,
512
- 'size_units' => ['px'],
513
  'condition' => [
514
  'arrow_position_toggle' => 'yes'
515
  ],
516
  'range' => [
517
  'px' => [
518
  'min' => -100,
519
- 'max' => 250,
 
 
 
 
520
  ],
521
  ],
522
  'selectors' => [
@@ -528,6 +571,18 @@ class Carousel extends Base {
528
 
529
  $this->end_popover();
530
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  $this->add_group_control(
532
  Group_Control_Border::get_type(),
533
  [
@@ -811,6 +866,14 @@ class Carousel extends Base {
811
 
812
  </div>
813
 
 
 
 
 
 
 
 
 
814
  <?php
815
  }
816
  }
14
  use Elementor\Group_Control_Typography;
15
  use Elementor\Scheme_Typography;
16
  use Elementor\Utils;
17
+ use Elementor\Icons_Manager;
18
 
19
  defined( 'ABSPATH' ) || die();
20
 
307
  ]
308
  );
309
 
310
+ $this->add_control(
311
+ 'arrow_prev_icon',
312
+ [
313
+ 'label' => __( 'Previous Icon', 'happy-elementor-addons' ),
314
+ 'label_block' => false,
315
+ 'type' => Controls_Manager::ICONS,
316
+ 'skin' => 'inline',
317
+ 'default' => [
318
+ 'value' => 'fas fa-chevron-left',
319
+ 'library' => 'fa-solid',
320
+ ],
321
+ 'condition' => [
322
+ 'navigation' => ['arrow', 'both']
323
+ ],
324
+ ]
325
+ );
326
+
327
+ $this->add_control(
328
+ 'arrow_next_icon',
329
+ [
330
+ 'label' => __( 'Next Icon', 'happy-elementor-addons' ),
331
+ 'label_block' => false,
332
+ 'type' => Controls_Manager::ICONS,
333
+ 'skin' => 'inline',
334
+ 'default' => [
335
+ 'value' => 'fas fa-chevron-right',
336
+ 'library' => 'fa-solid',
337
+ ],
338
+ 'condition' => [
339
+ 'navigation' => ['arrow', 'both']
340
+ ],
341
+ ]
342
+ );
343
+
344
  $this->end_controls_section();
345
  }
346
 
523
  [
524
  'label' => __( 'Vertical', 'happy-elementor-addons' ),
525
  'type' => Controls_Manager::SLIDER,
526
+ 'size_units' => ['px', '%'],
527
  'condition' => [
528
  'arrow_position_toggle' => 'yes'
529
  ],
530
  'range' => [
531
  'px' => [
532
+ 'min' => -100,
533
  'max' => 500,
534
  ],
535
+ '%' => [
536
+ 'min' => -110,
537
+ 'max' => 110,
538
+ ],
539
  ],
540
  'selectors' => [
541
  '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};',
548
  [
549
  'label' => __( 'Horizontal', 'happy-elementor-addons' ),
550
  'type' => Controls_Manager::SLIDER,
551
+ 'size_units' => ['px', '%'],
552
  'condition' => [
553
  'arrow_position_toggle' => 'yes'
554
  ],
555
  'range' => [
556
  'px' => [
557
  'min' => -100,
558
+ 'max' => 500,
559
+ ],
560
+ '%' => [
561
+ 'min' => -110,
562
+ 'max' => 110,
563
  ],
564
  ],
565
  'selectors' => [
571
 
572
  $this->end_popover();
573
 
574
+ $this->add_responsive_control(
575
+ 'arrow_size',
576
+ [
577
+ 'label' => __( 'Size', 'happy-elementor-addons' ),
578
+ 'type' => Controls_Manager::SLIDER,
579
+ 'size_units' => ['px', 'em'],
580
+ 'selectors' => [
581
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'font-size: {{SIZE}}{{UNIT}};',
582
+ ],
583
+ ]
584
+ );
585
+
586
  $this->add_group_control(
587
  Group_Control_Border::get_type(),
588
  [
866
 
867
  </div>
868
 
869
+ <?php if ( ! empty( $settings['arrow_prev_icon']['value'] ) ) : ?>
870
+ <button type="button" class="slick-prev"><?php Icons_Manager::render_icon( $settings['arrow_prev_icon'], ['aria-hidden' => 'true'] ); ?></button>
871
+ <?php endif; ?>
872
+
873
+ <?php if ( ! empty( $settings['arrow_next_icon']['value'] ) ) : ?>
874
+ <button type="button" class="slick-next"><?php Icons_Manager::render_icon( $settings['arrow_next_icon'], ['aria-hidden' => 'true'] ); ?></button>
875
+ <?php endif; ?>
876
+
877
  <?php
878
  }
879
  }
widgets/horizontal-timeline/widget.php CHANGED
@@ -19,51 +19,51 @@ use Elementor\Group_Control_Image_Size;
19
  defined( 'ABSPATH' ) || die();
20
 
21
  class Horizontal_Timeline extends Base {
22
- /**
23
- * Get widget title.
24
- *
25
- * @since 1.0.0
26
- * @access public
27
- *
28
- * @return string Widget title.
29
- */
30
- public function get_title() {
31
- return __( 'Horizontal Timeline', 'happy-elementor-addons' );
32
- }
33
-
34
- /**
35
- * Get widget icon.
36
- *
37
- * @since 1.0.0
38
- * @access public
39
- *
40
- * @return string Widget icon.
41
- */
42
- public function get_icon() {
43
- return 'hm hm-horizontal-timeline';
44
- }
45
-
46
- public function get_keywords() {
47
- return [ 'horizontal', 'timeline' ];
48
- }
49
-
50
- protected function register_content_controls() {
51
- $this->start_controls_section(
52
- '_section_timeline',
53
- [
54
- 'label' => __( 'Timeline', 'happy-elementor-addons' ),
55
- 'tab' => Controls_Manager::TAB_CONTENT,
56
- ]
57
- );
58
-
59
- $repeater = new Repeater();
60
- $repeater->add_control(
61
- 'event_date',
62
- [
63
- 'label' => __( 'Event Date', 'happy-elementor-addons' ),
64
- 'type' => Controls_Manager::TEXT,
65
  'placeholder' => __( 'Event Date', 'happy-elementor-addons' ),
66
- ]
67
  );
68
 
69
  $repeater->add_control(
@@ -82,170 +82,170 @@ class Horizontal_Timeline extends Base {
82
  );
83
 
84
  $repeater->add_control(
85
- 'image',
86
- [
87
- 'label' => __( 'Image', 'happy-elementor-addons' ),
88
- 'type' => Controls_Manager::MEDIA,
89
- 'default' => [
90
- 'url' => Utils::get_placeholder_image_src(),
91
- ],
92
- 'dynamic' => [
93
- 'active' => true,
94
- ]
95
- ]
96
  );
97
 
98
  $repeater->add_group_control(
99
- Group_Control_Image_Size::get_type(),
100
- [
101
- 'name' => 'thumbnail',
102
- 'default' => 'medium',
103
- 'exclude' => [
104
- 'custom'
105
- ]
106
- ]
107
  );
108
 
109
  $repeater->add_control(
110
- 'event_title',
111
- [
112
- 'label' => __( 'Title', 'happy-elementor-addons' ),
113
- 'type' => Controls_Manager::TEXT,
114
- 'label_block' => true,
115
- 'placeholder' => __( 'Event Title', 'happy-elementor-addons' ),
116
- ]
117
  );
118
 
119
  $repeater->add_control(
120
- 'event_subtitle',
121
- [
122
- 'label' => __( 'Sub Title', 'happy-elementor-addons' ),
123
- 'type' => Controls_Manager::TEXT,
124
- 'label_block' => true,
125
- 'placeholder' => __( 'Event Sub Title', 'happy-elementor-addons' ),
126
- ]
127
  );
128
 
129
  $repeater->add_control(
130
- 'event_description',
131
- [
132
- 'label' => __( 'Description', 'happy-elementor-addons' ),
133
- 'type' => Controls_Manager::TEXTAREA,
134
- 'label_block' => true,
135
- 'placeholder' => __( 'Event Description', 'happy-elementor-addons' ),
136
- 'default' => __( 'Best Elementor Addons Plugin.', 'happy-elementor-addons' ),
137
- ]
138
- );
139
 
140
  $repeater->add_control(
141
- 'custom_look',
142
- [
143
- 'label' => __( 'Custom Style', 'happy-elementor-addons' ),
144
- 'type' => Controls_Manager::SWITCHER,
145
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
146
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
147
- 'return_value' => 'yes',
148
- 'default' => 'no',
149
- ]
150
  );
151
 
152
  $repeater->add_control(
153
- 'custom_event_icon_color',
154
- [
155
- 'label' => __( 'Icon Color', 'happy-elementor-addons' ),
156
  'type' => Controls_Manager::COLOR,
157
  'condition' => [
158
  'custom_look' => 'yes'
159
  ],
160
- 'selectors' => [
161
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon i' => 'color: {{VALUE}}',
162
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon svg' => 'color: {{VALUE}}'
163
- ],
164
- ]
165
  );
166
 
167
  $repeater->add_control(
168
- 'custom_event_icon_background_color',
169
- [
170
- 'label' => __( 'Icon Background Color', 'happy-elementor-addons' ),
171
  'type' => Controls_Manager::COLOR,
172
  'condition' => [
173
  'custom_look' => 'yes'
174
  ],
175
- 'selectors' => [
176
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon' => 'background-color: {{VALUE}}'
177
- ],
178
- ]
179
  );
180
 
181
  $repeater->add_control(
182
- 'custom_content_background_color',
183
- [
184
- 'label' => __( 'Content Background Color', 'happy-elementor-addons' ),
185
  'type' => Controls_Manager::COLOR,
186
  'condition' => [
187
  'custom_look' => 'yes'
188
  ],
189
- 'selectors' => [
190
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content' => 'background-color: {{VALUE}}',
191
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-arrow:before' => 'background-color: {{VALUE}}',
192
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-inner' => 'background-color: {{VALUE}}'
193
- ],
194
- ]
195
  );
196
 
197
  $repeater->add_control(
198
- 'custom_content_color',
199
- [
200
- 'label' => __( 'Content Color', 'happy-elementor-addons' ),
201
  'type' => Controls_Manager::COLOR,
202
  'condition' => [
203
  'custom_look' => 'yes'
204
  ],
205
- 'selectors' => [
206
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-title' => 'color: {{VALUE}}',
207
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-subtitle' => 'color: {{VALUE}}',
208
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-description' => 'color: {{VALUE}}'
209
- ],
210
- ]
211
- );
212
-
213
- $this->add_control(
214
- 'timeline',
215
- [
216
- 'show_label' => false,
217
- 'type' => Controls_Manager::REPEATER,
218
- 'fields' => $repeater->get_controls(),
219
- 'title_field' => '{{{ event_title }}}',
220
- 'default' => [
221
- [
222
  'event_date' => 'Jan 01, 2021',
223
- 'event_title' => __( 'Build beautiful websites', 'happy-elementor-addons' ),
224
- ],
225
- [
226
  'event_date' => 'Jan 02, 2021',
227
- 'event_title' => __( 'Cross Domain Copy Paste', 'happy-elementor-addons' ),
228
- ],
229
- [
230
  'event_date' => 'Jan 03, 2021',
231
- 'event_title' => __( 'CSS Transform', 'happy-elementor-addons' ),
232
- ],
233
- [
234
  'event_date' => 'Jan 04, 2021',
235
- 'event_title' => __( 'Fast and Lightweight', 'happy-elementor-addons' ),
236
  ]
237
- ],
238
- ]
239
- );
240
 
241
  $this->end_controls_section();
242
 
243
  $this->start_controls_section(
244
- '_section_settings',
245
- [
246
- 'label' => __( 'Settings', 'happy-elementor-addons' ),
247
- 'tab' => Controls_Manager::TAB_CONTENT,
248
- ]
249
  );
250
 
251
  $this->add_control(
@@ -272,8 +272,8 @@ class Horizontal_Timeline extends Base {
272
  'selectors_dictionary' => [
273
  'left' => 'align-items: flex-start',
274
  'center' => 'align-items: center',
275
- 'right' => 'align-items: flex-end',
276
- ],
277
  'selectors' => [
278
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => '{{VALUE}};'
279
  ],
@@ -281,107 +281,139 @@ class Horizontal_Timeline extends Base {
281
  );
282
 
283
  $this->add_control(
284
- 'content_arrow',
285
- [
286
- 'label' => __( 'Hide Content Arrow', 'happy-elementor-addons' ),
287
- 'type' => Controls_Manager::SWITCHER,
288
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
289
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
290
- 'return_value' => 'yes',
291
- 'default' => 'no',
292
- ]
293
- );
294
-
295
- $this->add_control(
296
- 'animation_speed',
297
- [
298
- 'label' => __( 'Animation Speed', 'happy-elementor-addons' ),
299
- 'type' => Controls_Manager::NUMBER,
300
- 'min' => 100,
301
- 'step' => 10,
302
- 'max' => 10000,
303
- 'default' => 800,
304
- 'description' => __( 'Slide speed in milliseconds', 'happy-elementor-addons' ),
305
- 'frontend_available' => true,
306
- ]
307
- );
308
-
309
- $this->add_control(
310
- 'autoplay_speed',
311
- [
312
- 'label' => __( 'Autoplay Speed', 'happy-elementor-addons' ),
313
- 'type' => Controls_Manager::NUMBER,
314
- 'min' => 100,
315
- 'step' => 100,
316
- 'max' => 10000,
317
- 'default' => 3000,
318
- 'description' => __( 'Autoplay speed in milliseconds', 'happy-elementor-addons' ),
319
- 'condition' => [
320
- 'autoplay' => 'yes'
321
- ],
322
- 'frontend_available' => true,
323
- ]
324
- );
325
-
326
- $this->add_control(
327
- 'loop',
328
- [
329
- 'label' => __( 'Infinite Loop?', 'happy-elementor-addons' ),
330
- 'type' => Controls_Manager::SWITCHER,
331
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
332
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
333
- 'return_value' => 'yes',
334
- 'default' => 'yes',
335
- 'frontend_available' => true,
336
- ]
337
- );
 
 
 
338
 
339
  $this->add_responsive_control(
340
- 'slides_to_show',
341
- [
342
- 'label' => __( 'Slides To Show', 'happy-elementor-addons' ),
343
- 'type' => Controls_Manager::SELECT,
344
- 'options' => [
345
- 1 => __( '1 Slide', 'happy-elementor-addons' ),
346
- 2 => __( '2 Slides', 'happy-elementor-addons' ),
347
- 3 => __( '3 Slides', 'happy-elementor-addons' ),
348
- 4 => __( '4 Slides', 'happy-elementor-addons' ),
349
- 5 => __( '5 Slides', 'happy-elementor-addons' ),
350
- 6 => __( '6 Slides', 'happy-elementor-addons' ),
351
- ],
352
- 'desktop_default' => 3,
353
- 'tablet_default' => 3,
354
- 'mobile_default' => 2,
355
- 'frontend_available' => true,
356
- 'style_transfer' => true,
357
- ]
358
- );
359
-
360
- $this->end_controls_section();
361
- }
362
-
363
- protected function register_style_controls() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
364
  $this->start_controls_section(
365
- '_section_events_style',
366
- [
367
- 'label' => __( 'Events', 'happy-elementor-addons' ),
368
- 'tab' => Controls_Manager::TAB_STYLE,
369
- ]
370
  );
371
 
372
  $this->add_control(
373
- 'line_heading',
374
- [
375
- 'label' => __( 'Line', 'happy-elementor-addons' ),
376
- 'type' => Controls_Manager::HEADING,
377
- ]
378
  );
379
 
380
  $this->add_responsive_control(
381
- 'line_spacing',
382
- [
383
- 'label' => __( 'Thickness', 'happy-elementor-addons' ),
384
- 'type' => Controls_Manager::SLIDER,
385
  'size_units' => ['px'],
386
  'range' => [
387
  'px' => [
@@ -389,37 +421,37 @@ class Horizontal_Timeline extends Base {
389
  'max' => 50,
390
  ],
391
  ],
392
- 'selectors' => [
393
- '{{WRAPPER}} .ha-horizontal-timeline-tree' => 'height: {{SIZE}}{{UNIT}};'
394
- ],
395
- ]
396
  );
397
 
398
  $this->add_control(
399
- 'line_color',
400
- [
401
- 'label' => __( 'Color', 'happy-elementor-addons' ),
402
- 'type' => Controls_Manager::COLOR,
403
- 'selectors' => [
404
- '{{WRAPPER}} .ha-horizontal-timeline-tree' => 'background-color: {{VALUE}}',
405
- ],
406
- ]
407
  );
408
 
409
  $this->add_control(
410
- 'date_heading',
411
- [
412
- 'label' => __( 'Date', 'happy-elementor-addons' ),
413
  'type' => Controls_Manager::HEADING,
414
  'separator' => 'before'
415
- ]
416
  );
417
 
418
  $this->add_responsive_control(
419
- 'date_spacing',
420
- [
421
- 'label' => __( 'Left Spacing', 'happy-elementor-addons' ),
422
- 'type' => Controls_Manager::SLIDER,
423
  'size_units' => ['px'],
424
  'range' => [
425
  'px' => [
@@ -427,47 +459,47 @@ class Horizontal_Timeline extends Base {
427
  'max' => 60,
428
  ],
429
  ],
430
- 'selectors' => [
431
- '{{WRAPPER}} .ha-horizontal-timeline-date' => 'padding-left: {{SIZE}}{{UNIT}};'
432
- ],
433
- ]
434
  );
435
 
436
  $this->add_group_control(
437
- Group_Control_Typography::get_type(),
438
- [
439
- 'name' => 'date_typography',
440
- 'label' => __( 'Typography', 'happy-elementor-addons' ),
441
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-date',
442
- 'scheme' => Scheme_Typography::TYPOGRAPHY_3
443
- ]
444
  );
445
 
446
  $this->add_control(
447
- 'date_color',
448
- [
449
- 'label' => __( 'Color', 'happy-elementor-addons' ),
450
- 'type' => Controls_Manager::COLOR,
451
- 'selectors' => [
452
- '{{WRAPPER}} .ha-horizontal-timeline-date' => 'color: {{VALUE}}',
453
- ],
454
- ]
455
  );
456
 
457
  $this->add_control(
458
- 'icon_heading',
459
- [
460
- 'label' => __( 'Icon', 'happy-elementor-addons' ),
461
  'type' => Controls_Manager::HEADING,
462
  'separator' => 'before'
463
- ]
464
  );
465
 
466
  $this->add_responsive_control(
467
- 'icon_background_size',
468
- [
469
- 'label' => __( 'Padding', 'happy-elementor-addons' ),
470
- 'type' => Controls_Manager::SLIDER,
471
  'size_units' => ['px'],
472
  'range' => [
473
  'px' => [
@@ -475,17 +507,17 @@ class Horizontal_Timeline extends Base {
475
  'max' => 80,
476
  ],
477
  ],
478
- 'selectors' => [
479
  '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
480
- ],
481
- ]
482
  );
483
 
484
  $this->add_responsive_control(
485
- 'icon_size',
486
- [
487
- 'label' => __( 'Size', 'happy-elementor-addons' ),
488
- 'type' => Controls_Manager::SLIDER,
489
  'size_units' => ['px'],
490
  'range' => [
491
  'px' => [
@@ -493,210 +525,249 @@ class Horizontal_Timeline extends Base {
493
  'max' => 35,
494
  ],
495
  ],
496
- 'selectors' => [
497
- '{{WRAPPER}} .ha-horizontal-timeline-icon i' => 'font-size: {{SIZE}}{{UNIT}};'
498
- ],
499
- ]
500
  );
501
 
502
  $this->add_responsive_control(
503
- 'icon_border_radius',
504
- [
505
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
506
- 'type' => Controls_Manager::DIMENSIONS,
507
  'size_units' => [ 'px' ],
508
- 'selectors' => [
509
- '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
510
- ],
511
- ]
512
  );
513
 
514
  $this->add_group_control(
515
- Group_Control_Border::get_type(),
516
- [
517
- 'name' => 'icon_border',
518
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-icon',
519
- ]
520
  );
521
 
522
  $this->add_control(
523
- 'event_icon_background_color',
524
- [
525
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
526
- 'type' => Controls_Manager::COLOR,
527
- 'selectors' => [
528
- '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'background-color: {{VALUE}}',
529
- ],
530
- ]
531
  );
532
 
533
  $this->add_control(
534
- 'event_icon_color',
535
- [
536
- 'label' => __( 'Icon Color', 'happy-elementor-addons' ),
537
- 'type' => Controls_Manager::COLOR,
538
- 'selectors' => [
539
- '{{WRAPPER}} .ha-horizontal-timeline-icon i' => 'color: {{VALUE}}',
540
- ],
541
- ]
542
  );
543
 
544
- $this->add_control(
545
- 'arrow_heading',
546
- [
547
- 'label' => __( 'Arrow', 'happy-elementor-addons' ),
548
- 'type' => Controls_Manager::HEADING,
549
- 'separator' => 'before',
550
- ]
 
551
  );
552
 
553
  $this->add_responsive_control(
554
- 'arrow_vertical_alignment',
555
- [
556
- 'label' => __( 'Vertical Alignment', 'happy-elementor-addons' ),
557
- 'type' => Controls_Manager::SLIDER,
558
- 'size_units' => ['px'],
559
  'range' => [
560
  'px' => [
561
- 'min' => 0,
562
- 'max' => 800,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
563
  ],
564
  ],
565
- 'selectors' => [
566
- '{{WRAPPER}} .slick-prev' => 'top: {{SIZE}}{{UNIT}};',
567
- '{{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};'
568
- ],
569
- ]
570
- );
571
-
572
- $this->add_group_control(
573
- Group_Control_Border::get_type(),
574
- [
575
- 'name' => 'arrow_border',
576
- 'selector' => '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next',
577
- ]
578
- );
579
-
580
- $this->add_responsive_control(
581
- 'arrow_border_radius',
582
- [
583
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
584
- 'type' => Controls_Manager::DIMENSIONS,
585
- 'size_units' => [ 'px', '%' ],
586
- 'selectors' => [
587
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
588
- ],
589
- ]
590
- );
591
-
592
- $this->start_controls_tabs( '_tabs_arrow' );
593
-
594
- $this->start_controls_tab(
595
- '_tab_arrow_normal',
596
- [
597
- 'label' => __( 'Normal', 'happy-elementor-addons' ),
598
- ]
599
- );
600
-
601
- $this->add_control(
602
- 'arrow_color',
603
- [
604
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
605
- 'type' => Controls_Manager::COLOR,
606
- 'default' => '',
607
- 'selectors' => [
608
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'color: {{VALUE}};',
609
- ],
610
- ]
611
- );
612
-
613
- $this->add_control(
614
- 'arrow_bg_color',
615
- [
616
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
617
- 'type' => Controls_Manager::COLOR,
618
- 'selectors' => [
619
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'background-color: {{VALUE}};',
620
- ],
621
- ]
622
- );
623
-
624
- $this->end_controls_tab();
625
-
626
- $this->start_controls_tab(
627
- '_tab_arrow_hover',
628
- [
629
- 'label' => __( 'Hover', 'happy-elementor-addons' ),
630
- ]
631
- );
632
-
633
- $this->add_control(
634
- 'arrow_hover_color',
635
- [
636
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
637
- 'type' => Controls_Manager::COLOR,
638
- 'selectors' => [
639
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'color: {{VALUE}};',
640
- ],
641
- ]
642
- );
643
-
644
- $this->add_control(
645
- 'arrow_hover_bg_color',
646
- [
647
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
648
- 'type' => Controls_Manager::COLOR,
649
- 'selectors' => [
650
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'background-color: {{VALUE}};',
651
- ],
652
- ]
653
- );
654
-
655
- $this->add_control(
656
- 'arrow_hover_border_color',
657
- [
658
- 'label' => __( 'Border Color', 'happy-elementor-addons' ),
659
- 'type' => Controls_Manager::COLOR,
660
- 'condition' => [
661
- 'arrow_border_border!' => '',
662
- ],
663
- 'selectors' => [
664
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'border-color: {{VALUE}};',
665
- ],
666
- ]
667
- );
668
-
669
- $this->end_controls_tab();
670
- $this->end_controls_tabs();
 
 
 
 
 
 
 
 
 
 
 
 
671
 
672
  $this->end_controls_section();
673
 
674
  $this->start_controls_section(
675
- '_section_content_style',
676
- [
677
- 'label' => __( 'Content', 'happy-elementor-addons' ),
678
- 'tab' => Controls_Manager::TAB_STYLE,
679
- ]
680
  );
681
 
682
  $this->add_responsive_control(
683
- 'content_border_radius',
684
- [
685
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
686
- 'type' => Controls_Manager::DIMENSIONS,
687
  'size_units' => [ 'px', '%' ],
688
- 'selectors' => [
689
  '{{WRAPPER}} .ha-horizontal-timeline-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
690
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
691
- ],
692
- ]
693
  );
694
 
695
  // $this->add_responsive_control(
696
- // 'content_height',
697
- // [
698
- // 'label' => __( 'Height', 'happy-elementor-addons' ),
699
- // 'type' => Controls_Manager::SLIDER,
700
  // 'size_units' => ['px'],
701
  // 'range' => [
702
  // 'px' => [
@@ -704,34 +775,34 @@ class Horizontal_Timeline extends Base {
704
  // 'max' => 3000,
705
  // ],
706
  // ],
707
- // 'selectors' => [
708
- // '{{WRAPPER}} .ha-horizontal-timeline-content' => 'height: {{SIZE}}{{UNIT}};'
709
- // ],
710
- // ]
711
  // );
712
 
713
  $this->add_responsive_control(
714
- 'content_padding',
715
- [
716
- 'label' => __( 'Padding', 'happy-elementor-addons' ),
717
- 'type' => Controls_Manager::SLIDER,
718
- 'size_units' => ['px'],
719
- 'selectors' => [
720
- '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'padding: {{SIZE}}{{UNIT}};'
721
- ],
722
- ]
723
  );
724
 
725
  $this->add_responsive_control(
726
- 'content_space',
727
- [
728
- 'label' => __( 'Space between contents', 'happy-elementor-addons' ),
729
- 'type' => Controls_Manager::SLIDER,
730
- 'size_units' => ['px'],
731
- 'selectors' => [
732
- '{{WRAPPER}} .ha-horizontal-timeline-block' => 'padding: {{SIZE}}{{UNIT}};'
733
- ],
734
- ]
735
  );
736
 
737
  $this->add_group_control(
@@ -744,40 +815,40 @@ class Horizontal_Timeline extends Base {
744
  );
745
 
746
  $this->add_group_control(
747
- Group_Control_Box_Shadow::get_type(),
748
- [
749
- 'name' => 'content_box_shadow',
750
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-content, {{WRAPPER}} .ha-horizontal-timeline-arrow',
751
- ]
752
  );
753
 
754
  $this->add_control(
755
- 'content_background_color',
756
- [
757
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
758
- 'type' => Controls_Manager::COLOR,
759
- 'selectors' => [
760
  '{{WRAPPER}} .ha-horizontal-timeline-content' => 'background-color: {{VALUE}};',
761
  '{{WRAPPER}} .ha-horizontal-timeline-arrow::before' => 'background-color: {{VALUE}};',
762
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'background-color: {{VALUE}};'
763
- ],
764
- ]
765
- );
766
 
767
  $this->add_control(
768
- 'image_heading',
769
- [
770
- 'label' => __( 'Image', 'happy-elementor-addons' ),
771
  'type' => Controls_Manager::HEADING,
772
  'separator' => 'before'
773
- ]
774
  );
775
 
776
  $this->add_responsive_control(
777
- 'image_width',
778
- [
779
- 'label' => __( 'Width', 'happy-elementor-addons' ),
780
- 'type' => Controls_Manager::SLIDER,
781
  'size_units' => ['px'],
782
  'range' => [
783
  'px' => [
@@ -785,17 +856,17 @@ class Horizontal_Timeline extends Base {
785
  'max' => 3000,
786
  ],
787
  ],
788
- 'selectors' => [
789
- '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'width: {{SIZE}}{{UNIT}};'
790
- ],
791
- ]
792
  );
793
 
794
  $this->add_responsive_control(
795
- 'image_height',
796
- [
797
- 'label' => __( 'Height', 'happy-elementor-addons' ),
798
- 'type' => Controls_Manager::SLIDER,
799
  'size_units' => ['px'],
800
  'range' => [
801
  'px' => [
@@ -803,172 +874,172 @@ class Horizontal_Timeline extends Base {
803
  'max' => 3000,
804
  ],
805
  ],
806
- 'selectors' => [
807
- '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'height: {{SIZE}}{{UNIT}};'
808
- ],
809
- ]
810
  );
811
 
812
  $this->add_responsive_control(
813
- 'image_spacing',
814
- [
815
- 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
816
- 'type' => Controls_Manager::SLIDER,
817
- 'size_units' => ['px'],
818
- 'selectors' => [
819
- '{{WRAPPER}} .ha-horizontal-timeline-image' => 'margin-bottom: {{SIZE}}{{UNIT}};'
820
- ],
821
- ]
822
  );
823
 
824
  $this->add_responsive_control(
825
- 'image_border_radius',
826
- [
827
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
828
- 'type' => Controls_Manager::DIMENSIONS,
829
  'size_units' => [ 'px', '%' ],
830
- 'selectors' => [
831
- '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
832
- ],
833
- ]
834
  );
835
 
836
  $this->add_group_control(
837
- Group_Control_Box_Shadow::get_type(),
838
- [
839
- 'name' => 'image_box_shadow',
840
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-image img',
841
- ]
842
- );
843
 
844
  $this->add_control(
845
- 'title_heading',
846
- [
847
- 'label' => __( 'Title', 'happy-elementor-addons' ),
848
  'type' => Controls_Manager::HEADING,
849
  'separator' => 'before'
850
- ]
851
  );
852
 
853
  $this->add_responsive_control(
854
- 'title_spacing',
855
- [
856
- 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
857
- 'type' => Controls_Manager::SLIDER,
858
- 'size_units' => ['px'],
859
- 'selectors' => [
860
- '{{WRAPPER}} .ha-horizontal-timeline-title' => 'margin-bottom: {{SIZE}}{{UNIT}};'
861
- ],
862
- ]
863
- );
864
 
865
  $this->add_group_control(
866
- Group_Control_Typography::get_type(),
867
- [
868
- 'name' => 'title_typography',
869
- 'label' => __( 'Typography', 'happy-elementor-addons' ),
870
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-title',
871
- 'scheme' => Scheme_Typography::TYPOGRAPHY_2
872
- ]
873
  );
874
 
875
  $this->add_control(
876
- 'title_color',
877
- [
878
- 'label' => __( 'Color', 'happy-elementor-addons' ),
879
- 'type' => Controls_Manager::COLOR,
880
- 'selectors' => [
881
  '{{WRAPPER}} .ha-horizontal-timeline-title' => 'color: {{VALUE}}',
882
- ],
883
- ]
884
  );
885
 
886
  $this->add_control(
887
- 'subtitle_heading',
888
- [
889
- 'label' => __( 'Sub Title', 'happy-elementor-addons' ),
890
  'type' => Controls_Manager::HEADING,
891
  'separator' => 'before'
892
- ]
893
  );
894
 
895
  $this->add_responsive_control(
896
- 'subtitle_spacing',
897
- [
898
- 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
899
- 'type' => Controls_Manager::SLIDER,
900
- 'size_units' => ['px'],
901
- 'selectors' => [
902
- '{{WRAPPER}} .ha-horizontal-timeline-subtitle' => 'margin-bottom: {{SIZE}}{{UNIT}};'
903
- ],
904
- ]
905
- );
906
 
907
  $this->add_group_control(
908
- Group_Control_Typography::get_type(),
909
- [
910
- 'name' => 'subtitle_typography',
911
- 'label' => __( 'Typography', 'happy-elementor-addons' ),
912
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-subtitle',
913
- 'scheme' => Scheme_Typography::TYPOGRAPHY_3
914
- ]
915
  );
916
 
917
  $this->add_control(
918
- 'subtitle_color',
919
- [
920
- 'label' => __( 'Color', 'happy-elementor-addons' ),
921
- 'type' => Controls_Manager::COLOR,
922
- 'selectors' => [
923
  '{{WRAPPER}} .ha-horizontal-timeline-subtitle' => 'color: {{VALUE}}',
924
- ],
925
- ]
926
  );
927
 
928
  $this->add_control(
929
- 'description_heading',
930
- [
931
- 'label' => __( 'Description', 'happy-elementor-addons' ),
932
  'type' => Controls_Manager::HEADING,
933
  'separator' => 'before'
934
- ]
935
  );
936
 
937
  $this->add_group_control(
938
- Group_Control_Typography::get_type(),
939
- [
940
- 'name' => 'description_typography',
941
- 'label' => __( 'Typography', 'happy-elementor-addons' ),
942
- 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-description',
943
- 'scheme' => Scheme_Typography::TYPOGRAPHY_3
944
- ]
945
  );
946
 
947
  $this->add_control(
948
- 'description_color',
949
- [
950
- 'label' => __( 'Color', 'happy-elementor-addons' ),
951
- 'type' => Controls_Manager::COLOR,
952
- 'selectors' => [
953
  '{{WRAPPER}} .ha-horizontal-timeline-description' => 'color: {{VALUE}}',
954
- ],
955
- ]
956
  );
957
 
958
  $this->end_controls_section();
959
 
960
- }
961
 
962
- protected function render() {
963
- $settings = $this->get_settings_for_display();
964
 
965
- if ( empty( $settings['timeline'] ) ) {
966
- return;
967
  }
968
 
969
  $this->add_render_attribute( 'wrapper', 'class', 'ha-horizontal-timeline-wrapper' );
970
  $this->add_render_attribute( 'wrapper', 'class', 'ha-carousel' );
971
- ?>
972
  <div <?php echo $this->get_render_attribute_string( 'wrapper' ); ?>>
973
 
974
  <?php foreach ( $settings['timeline'] as $timeline ) : ?>
@@ -1010,11 +1081,20 @@ class Horizontal_Timeline extends Base {
1010
  </div>
1011
  </div>
1012
  </div>
 
1013
  <?php endforeach; ?>
1014
 
1015
  </div>
1016
 
1017
- <?php
1018
- }
 
 
 
 
 
 
 
 
1019
 
1020
  }
19
  defined( 'ABSPATH' ) || die();
20
 
21
  class Horizontal_Timeline extends Base {
22
+ /**
23
+ * Get widget title.
24
+ *
25
+ * @since 1.0.0
26
+ * @access public
27
+ *
28
+ * @return string Widget title.
29
+ */
30
+ public function get_title() {
31
+ return __( 'Horizontal Timeline', 'happy-elementor-addons' );
32
+ }
33
+
34
+ /**
35
+ * Get widget icon.
36
+ *
37
+ * @since 1.0.0
38
+ * @access public
39
+ *
40
+ * @return string Widget icon.
41
+ */
42
+ public function get_icon() {
43
+ return 'hm hm-horizontal-timeline';
44
+ }
45
+
46
+ public function get_keywords() {
47
+ return [ 'horizontal', 'timeline' ];
48
+ }
49
+
50
+ protected function register_content_controls() {
51
+ $this->start_controls_section(
52
+ '_section_timeline',
53
+ [
54
+ 'label' => __( 'Timeline', 'happy-elementor-addons' ),
55
+ 'tab' => Controls_Manager::TAB_CONTENT,
56
+ ]
57
+ );
58
+
59
+ $repeater = new Repeater();
60
+ $repeater->add_control(
61
+ 'event_date',
62
+ [
63
+ 'label' => __( 'Event Date', 'happy-elementor-addons' ),
64
+ 'type' => Controls_Manager::TEXT,
65
  'placeholder' => __( 'Event Date', 'happy-elementor-addons' ),
66
+ ]
67
  );
68
 
69
  $repeater->add_control(
82
  );
83
 
84
  $repeater->add_control(
85
+ 'image',
86
+ [
87
+ 'label' => __( 'Image', 'happy-elementor-addons' ),
88
+ 'type' => Controls_Manager::MEDIA,
89
+ 'default' => [
90
+ 'url' => Utils::get_placeholder_image_src(),
91
+ ],
92
+ 'dynamic' => [
93
+ 'active' => true,
94
+ ]
95
+ ]
96
  );
97
 
98
  $repeater->add_group_control(
99
+ Group_Control_Image_Size::get_type(),
100
+ [
101
+ 'name' => 'thumbnail',
102
+ 'default' => 'medium',
103
+ 'exclude' => [
104
+ 'custom'
105
+ ]
106
+ ]
107
  );
108
 
109
  $repeater->add_control(
110
+ 'event_title',
111
+ [
112
+ 'label' => __( 'Title', 'happy-elementor-addons' ),
113
+ 'type' => Controls_Manager::TEXT,
114
+ 'label_block' => true,
115
+ 'placeholder' => __( 'Event Title', 'happy-elementor-addons' ),
116
+ ]
117
  );
118
 
119
  $repeater->add_control(
120
+ 'event_subtitle',
121
+ [
122
+ 'label' => __( 'Sub Title', 'happy-elementor-addons' ),
123
+ 'type' => Controls_Manager::TEXT,
124
+ 'label_block' => true,
125
+ 'placeholder' => __( 'Event Sub Title', 'happy-elementor-addons' ),
126
+ ]
127
  );
128
 
129
  $repeater->add_control(
130
+ 'event_description',
131
+ [
132
+ 'label' => __( 'Description', 'happy-elementor-addons' ),
133
+ 'type' => Controls_Manager::TEXTAREA,
134
+ 'label_block' => true,
135
+ 'placeholder' => __( 'Event Description', 'happy-elementor-addons' ),
136
+ 'default' => __( 'Best Elementor Addons Plugin.', 'happy-elementor-addons' ),
137
+ ]
138
+ );
139
 
140
  $repeater->add_control(
141
+ 'custom_look',
142
+ [
143
+ 'label' => __( 'Custom Style', 'happy-elementor-addons' ),
144
+ 'type' => Controls_Manager::SWITCHER,
145
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
146
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
147
+ 'return_value' => 'yes',
148
+ 'default' => 'no',
149
+ ]
150
  );
151
 
152
  $repeater->add_control(
153
+ 'custom_event_icon_color',
154
+ [
155
+ 'label' => __( 'Icon Color', 'happy-elementor-addons' ),
156
  'type' => Controls_Manager::COLOR,
157
  'condition' => [
158
  'custom_look' => 'yes'
159
  ],
160
+ 'selectors' => [
161
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon i' => 'color: {{VALUE}}',
162
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon svg' => 'color: {{VALUE}}'
163
+ ],
164
+ ]
165
  );
166
 
167
  $repeater->add_control(
168
+ 'custom_event_icon_background_color',
169
+ [
170
+ 'label' => __( 'Icon Background Color', 'happy-elementor-addons' ),
171
  'type' => Controls_Manager::COLOR,
172
  'condition' => [
173
  'custom_look' => 'yes'
174
  ],
175
+ 'selectors' => [
176
  '{{WRAPPER}} {{CURRENT_ITEM}} .ha-horizontal-timeline-icon-box .ha-horizontal-timeline-icon' => 'background-color: {{VALUE}}'
177
+ ],
178
+ ]
179
  );
180
 
181
  $repeater->add_control(
182
+ 'custom_content_background_color',
183
+ [
184
+ 'label' => __( 'Content Background Color', 'happy-elementor-addons' ),
185
  'type' => Controls_Manager::COLOR,
186
  'condition' => [
187
  'custom_look' => 'yes'
188
  ],
189
+ 'selectors' => [
190
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content' => 'background-color: {{VALUE}}',
191
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-arrow:before' => 'background-color: {{VALUE}}',
192
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-inner' => 'background-color: {{VALUE}}'
193
+ ],
194
+ ]
195
  );
196
 
197
  $repeater->add_control(
198
+ 'custom_content_color',
199
+ [
200
+ 'label' => __( 'Content Color', 'happy-elementor-addons' ),
201
  'type' => Controls_Manager::COLOR,
202
  'condition' => [
203
  'custom_look' => 'yes'
204
  ],
205
+ 'selectors' => [
206
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-title' => 'color: {{VALUE}}',
207
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-subtitle' => 'color: {{VALUE}}',
208
  '{{WRAPPER}} {{CURRENT_ITEM}}.ha-horizontal-timeline-block .ha-horizontal-timeline-content .ha-horizontal-timeline-description' => 'color: {{VALUE}}'
209
+ ],
210
+ ]
211
+ );
212
+
213
+ $this->add_control(
214
+ 'timeline',
215
+ [
216
+ 'show_label' => false,
217
+ 'type' => Controls_Manager::REPEATER,
218
+ 'fields' => $repeater->get_controls(),
219
+ 'title_field' => '{{{ event_title }}}',
220
+ 'default' => [
221
+ [
222
  'event_date' => 'Jan 01, 2021',
223
+ 'event_title' => __( 'Build beautiful websites', 'happy-elementor-addons' ),
224
+ ],
225
+ [
226
  'event_date' => 'Jan 02, 2021',
227
+ 'event_title' => __( 'Cross Domain Copy Paste', 'happy-elementor-addons' ),
228
+ ],
229
+ [
230
  'event_date' => 'Jan 03, 2021',
231
+ 'event_title' => __( 'CSS Transform', 'happy-elementor-addons' ),
232
+ ],
233
+ [
234
  'event_date' => 'Jan 04, 2021',
235
+ 'event_title' => __( 'Fast and Lightweight', 'happy-elementor-addons' ),
236
  ]
237
+ ],
238
+ ]
239
+ );
240
 
241
  $this->end_controls_section();
242
 
243
  $this->start_controls_section(
244
+ '_section_settings',
245
+ [
246
+ 'label' => __( 'Settings', 'happy-elementor-addons' ),
247
+ 'tab' => Controls_Manager::TAB_CONTENT,
248
+ ]
249
  );
250
 
251
  $this->add_control(
272
  'selectors_dictionary' => [
273
  'left' => 'align-items: flex-start',
274
  'center' => 'align-items: center',
275
+ 'right' => 'align-items: flex-end',
276
+ ],
277
  'selectors' => [
278
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => '{{VALUE}};'
279
  ],
281
  );
282
 
283
  $this->add_control(
284
+ 'content_arrow',
285
+ [
286
+ 'label' => __( 'Hide Content Arrow', 'happy-elementor-addons' ),
287
+ 'type' => Controls_Manager::SWITCHER,
288
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
289
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
290
+ 'return_value' => 'yes',
291
+ 'default' => 'no',
292
+ ]
293
+ );
294
+
295
+ $this->add_control(
296
+ 'animation_speed',
297
+ [
298
+ 'label' => __( 'Animation Speed', 'happy-elementor-addons' ),
299
+ 'type' => Controls_Manager::NUMBER,
300
+ 'min' => 100,
301
+ 'step' => 10,
302
+ 'max' => 10000,
303
+ 'default' => 800,
304
+ 'description' => __( 'Slide speed in milliseconds', 'happy-elementor-addons' ),
305
+ 'frontend_available' => true,
306
+ 'render_type' => 'ui',
307
+ ]
308
+ );
309
+
310
+ $this->add_control(
311
+ 'autoplay_speed',
312
+ [
313
+ 'label' => __( 'Autoplay Speed', 'happy-elementor-addons' ),
314
+ 'type' => Controls_Manager::NUMBER,
315
+ 'min' => 100,
316
+ 'step' => 100,
317
+ 'max' => 10000,
318
+ 'default' => 3000,
319
+ 'description' => __( 'Autoplay speed in milliseconds', 'happy-elementor-addons' ),
320
+ 'condition' => [
321
+ 'autoplay' => 'yes'
322
+ ],
323
+ 'frontend_available' => true,
324
+ 'render_type' => 'ui',
325
+ ]
326
+ );
327
+
328
+ $this->add_control(
329
+ 'loop',
330
+ [
331
+ 'label' => __( 'Infinite Loop?', 'happy-elementor-addons' ),
332
+ 'type' => Controls_Manager::SWITCHER,
333
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
334
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
335
+ 'return_value' => 'yes',
336
+ 'default' => 'yes',
337
+ 'frontend_available' => true,
338
+ 'render_type' => 'ui',
339
+ ]
340
+ );
341
 
342
  $this->add_responsive_control(
343
+ 'slides_to_show',
344
+ [
345
+ 'label' => __( 'Slides To Show', 'happy-elementor-addons' ),
346
+ 'type' => Controls_Manager::SELECT,
347
+ 'options' => [
348
+ 1 => __( '1 Slide', 'happy-elementor-addons' ),
349
+ 2 => __( '2 Slides', 'happy-elementor-addons' ),
350
+ 3 => __( '3 Slides', 'happy-elementor-addons' ),
351
+ 4 => __( '4 Slides', 'happy-elementor-addons' ),
352
+ 5 => __( '5 Slides', 'happy-elementor-addons' ),
353
+ 6 => __( '6 Slides', 'happy-elementor-addons' ),
354
+ ],
355
+ 'desktop_default' => 3,
356
+ 'tablet_default' => 3,
357
+ 'mobile_default' => 2,
358
+ 'frontend_available' => true,
359
+ 'style_transfer' => true,
360
+ 'render_type' => 'ui',
361
+ ]
362
+ );
363
+
364
+ $this->add_control(
365
+ 'arrow_prev_icon',
366
+ [
367
+ 'label' => __( 'Previous Icon', 'happy-elementor-addons' ),
368
+ 'label_block' => false,
369
+ 'type' => Controls_Manager::ICONS,
370
+ 'skin' => 'inline',
371
+ 'default' => [
372
+ 'value' => 'fas fa-chevron-left',
373
+ 'library' => 'fa-solid',
374
+ ],
375
+ ]
376
+ );
377
+
378
+ $this->add_control(
379
+ 'arrow_next_icon',
380
+ [
381
+ 'label' => __( 'Next Icon', 'happy-elementor-addons' ),
382
+ 'label_block' => false,
383
+ 'type' => Controls_Manager::ICONS,
384
+ 'skin' => 'inline',
385
+ 'default' => [
386
+ 'value' => 'fas fa-chevron-right',
387
+ 'library' => 'fa-solid',
388
+ ],
389
+ ]
390
+ );
391
+
392
+ $this->end_controls_section();
393
+ }
394
+
395
+ protected function register_style_controls() {
396
  $this->start_controls_section(
397
+ '_section_style_timeline',
398
+ [
399
+ 'label' => __( 'Timeline', 'happy-elementor-addons' ),
400
+ 'tab' => Controls_Manager::TAB_STYLE,
401
+ ]
402
  );
403
 
404
  $this->add_control(
405
+ 'line_heading',
406
+ [
407
+ 'label' => __( 'Line', 'happy-elementor-addons' ),
408
+ 'type' => Controls_Manager::HEADING,
409
+ ]
410
  );
411
 
412
  $this->add_responsive_control(
413
+ 'line_spacing',
414
+ [
415
+ 'label' => __( 'Thickness', 'happy-elementor-addons' ),
416
+ 'type' => Controls_Manager::SLIDER,
417
  'size_units' => ['px'],
418
  'range' => [
419
  'px' => [
421
  'max' => 50,
422
  ],
423
  ],
424
+ 'selectors' => [
425
+ '{{WRAPPER}} .ha-horizontal-timeline-tree' => 'height: {{SIZE}}{{UNIT}};'
426
+ ],
427
+ ]
428
  );
429
 
430
  $this->add_control(
431
+ 'line_color',
432
+ [
433
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
434
+ 'type' => Controls_Manager::COLOR,
435
+ 'selectors' => [
436
+ '{{WRAPPER}} .ha-horizontal-timeline-tree' => 'background-color: {{VALUE}}',
437
+ ],
438
+ ]
439
  );
440
 
441
  $this->add_control(
442
+ 'date_heading',
443
+ [
444
+ 'label' => __( 'Date', 'happy-elementor-addons' ),
445
  'type' => Controls_Manager::HEADING,
446
  'separator' => 'before'
447
+ ]
448
  );
449
 
450
  $this->add_responsive_control(
451
+ 'date_spacing',
452
+ [
453
+ 'label' => __( 'Left Spacing', 'happy-elementor-addons' ),
454
+ 'type' => Controls_Manager::SLIDER,
455
  'size_units' => ['px'],
456
  'range' => [
457
  'px' => [
459
  'max' => 60,
460
  ],
461
  ],
462
+ 'selectors' => [
463
+ '{{WRAPPER}} .ha-horizontal-timeline-date' => 'padding-left: {{SIZE}}{{UNIT}};'
464
+ ],
465
+ ]
466
  );
467
 
468
  $this->add_group_control(
469
+ Group_Control_Typography::get_type(),
470
+ [
471
+ 'name' => 'date_typography',
472
+ 'label' => __( 'Typography', 'happy-elementor-addons' ),
473
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-date',
474
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3
475
+ ]
476
  );
477
 
478
  $this->add_control(
479
+ 'date_color',
480
+ [
481
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
482
+ 'type' => Controls_Manager::COLOR,
483
+ 'selectors' => [
484
+ '{{WRAPPER}} .ha-horizontal-timeline-date' => 'color: {{VALUE}}',
485
+ ],
486
+ ]
487
  );
488
 
489
  $this->add_control(
490
+ 'icon_heading',
491
+ [
492
+ 'label' => __( 'Icon', 'happy-elementor-addons' ),
493
  'type' => Controls_Manager::HEADING,
494
  'separator' => 'before'
495
+ ]
496
  );
497
 
498
  $this->add_responsive_control(
499
+ 'icon_background_size',
500
+ [
501
+ 'label' => __( 'Padding', 'happy-elementor-addons' ),
502
+ 'type' => Controls_Manager::SLIDER,
503
  'size_units' => ['px'],
504
  'range' => [
505
  'px' => [
507
  'max' => 80,
508
  ],
509
  ],
510
+ 'selectors' => [
511
  '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
512
+ ],
513
+ ]
514
  );
515
 
516
  $this->add_responsive_control(
517
+ 'icon_size',
518
+ [
519
+ 'label' => __( 'Size', 'happy-elementor-addons' ),
520
+ 'type' => Controls_Manager::SLIDER,
521
  'size_units' => ['px'],
522
  'range' => [
523
  'px' => [
525
  'max' => 35,
526
  ],
527
  ],
528
+ 'selectors' => [
529
+ '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'font-size: {{SIZE}}{{UNIT}};'
530
+ ],
531
+ ]
532
  );
533
 
534
  $this->add_responsive_control(
535
+ 'icon_border_radius',
536
+ [
537
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
538
+ 'type' => Controls_Manager::DIMENSIONS,
539
  'size_units' => [ 'px' ],
540
+ 'selectors' => [
541
+ '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
542
+ ],
543
+ ]
544
  );
545
 
546
  $this->add_group_control(
547
+ Group_Control_Border::get_type(),
548
+ [
549
+ 'name' => 'icon_border',
550
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-icon',
551
+ ]
552
  );
553
 
554
  $this->add_control(
555
+ 'event_icon_background_color',
556
+ [
557
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
558
+ 'type' => Controls_Manager::COLOR,
559
+ 'selectors' => [
560
+ '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'background-color: {{VALUE}}',
561
+ ],
562
+ ]
563
  );
564
 
565
  $this->add_control(
566
+ 'event_icon_color',
567
+ [
568
+ 'label' => __( 'Icon Color', 'happy-elementor-addons' ),
569
+ 'type' => Controls_Manager::COLOR,
570
+ 'selectors' => [
571
+ '{{WRAPPER}} .ha-horizontal-timeline-icon' => 'color: {{VALUE}}',
572
+ ],
573
+ ]
574
  );
575
 
576
+ $this->end_controls_section();
577
+
578
+ $this->start_controls_section(
579
+ '_section_style_arrows',
580
+ [
581
+ 'label' => __( 'Arrows', 'happy-elementor-addons' ),
582
+ 'tab' => Controls_Manager::TAB_STYLE,
583
+ ]
584
  );
585
 
586
  $this->add_responsive_control(
587
+ 'arrow_vertical_alignment',
588
+ [
589
+ 'label' => __( 'Vertical Position', 'happy-elementor-addons' ),
590
+ 'type' => Controls_Manager::SLIDER,
591
+ 'size_units' => ['px', '%'],
592
  'range' => [
593
  'px' => [
594
+ 'min' => -500,
595
+ 'max' => 1000,
596
+ ],
597
+ '%' => [
598
+ 'min' => -30,
599
+ 'max' => 130,
600
+ ],
601
+ ],
602
+ 'selectors' => [
603
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};',
604
+ ],
605
+ ]
606
+ );
607
+
608
+ $this->add_responsive_control(
609
+ 'arrow_horizontal_align',
610
+ [
611
+ 'label' => __( 'Horizontal Position', 'happy-elementor-addons' ),
612
+ 'type' => Controls_Manager::SLIDER,
613
+ 'size_units' => ['px', '%'],
614
+ 'range' => [
615
+ 'px' => [
616
+ 'min' => -500,
617
+ 'max' => 1000,
618
+ ],
619
+ '%' => [
620
+ 'min' => -30,
621
+ 'max' => 130,
622
  ],
623
  ],
624
+ 'selectors' => [
625
+ '{{WRAPPER}} .slick-prev' => 'left: {{SIZE}}{{UNIT}};',
626
+ '{{WRAPPER}} .slick-next' => 'right: {{SIZE}}{{UNIT}};',
627
+ ],
628
+ ]
629
+ );
630
+
631
+ $this->add_responsive_control(
632
+ 'arrow_size',
633
+ [
634
+ 'label' => __( 'Size', 'happy-elementor-addons' ),
635
+ 'type' => Controls_Manager::SLIDER,
636
+ 'size_units' => ['px', 'em'],
637
+ 'selectors' => [
638
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'font-size: {{SIZE}}{{UNIT}};',
639
+ ],
640
+ ]
641
+ );
642
+
643
+ $this->add_group_control(
644
+ Group_Control_Border::get_type(),
645
+ [
646
+ 'name' => 'arrow_border',
647
+ 'selector' => '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next',
648
+ ]
649
+ );
650
+
651
+ $this->add_responsive_control(
652
+ 'arrow_border_radius',
653
+ [
654
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
655
+ 'type' => Controls_Manager::DIMENSIONS,
656
+ 'size_units' => [ 'px', '%' ],
657
+ 'selectors' => [
658
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
659
+ ],
660
+ ]
661
+ );
662
+
663
+ $this->start_controls_tabs( '_tabs_arrow' );
664
+
665
+ $this->start_controls_tab(
666
+ '_tab_arrow_normal',
667
+ [
668
+ 'label' => __( 'Normal', 'happy-elementor-addons' ),
669
+ ]
670
+ );
671
+
672
+ $this->add_control(
673
+ 'arrow_color',
674
+ [
675
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
676
+ 'type' => Controls_Manager::COLOR,
677
+ 'default' => '',
678
+ 'selectors' => [
679
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'color: {{VALUE}};',
680
+ ],
681
+ ]
682
+ );
683
+
684
+ $this->add_control(
685
+ 'arrow_bg_color',
686
+ [
687
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
688
+ 'type' => Controls_Manager::COLOR,
689
+ 'selectors' => [
690
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'background-color: {{VALUE}};',
691
+ ],
692
+ ]
693
+ );
694
+
695
+ $this->end_controls_tab();
696
+
697
+ $this->start_controls_tab(
698
+ '_tab_arrow_hover',
699
+ [
700
+ 'label' => __( 'Hover', 'happy-elementor-addons' ),
701
+ ]
702
+ );
703
+
704
+ $this->add_control(
705
+ 'arrow_hover_color',
706
+ [
707
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
708
+ 'type' => Controls_Manager::COLOR,
709
+ 'selectors' => [
710
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'color: {{VALUE}};',
711
+ ],
712
+ ]
713
+ );
714
+
715
+ $this->add_control(
716
+ 'arrow_hover_bg_color',
717
+ [
718
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
719
+ 'type' => Controls_Manager::COLOR,
720
+ 'selectors' => [
721
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'background-color: {{VALUE}};',
722
+ ],
723
+ ]
724
+ );
725
+
726
+ $this->add_control(
727
+ 'arrow_hover_border_color',
728
+ [
729
+ 'label' => __( 'Border Color', 'happy-elementor-addons' ),
730
+ 'type' => Controls_Manager::COLOR,
731
+ 'condition' => [
732
+ 'arrow_border_border!' => '',
733
+ ],
734
+ 'selectors' => [
735
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'border-color: {{VALUE}};',
736
+ ],
737
+ ]
738
+ );
739
+
740
+ $this->end_controls_tab();
741
+ $this->end_controls_tabs();
742
 
743
  $this->end_controls_section();
744
 
745
  $this->start_controls_section(
746
+ '_section_content_style',
747
+ [
748
+ 'label' => __( 'Content', 'happy-elementor-addons' ),
749
+ 'tab' => Controls_Manager::TAB_STYLE,
750
+ ]
751
  );
752
 
753
  $this->add_responsive_control(
754
+ 'content_border_radius',
755
+ [
756
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
757
+ 'type' => Controls_Manager::DIMENSIONS,
758
  'size_units' => [ 'px', '%' ],
759
+ 'selectors' => [
760
  '{{WRAPPER}} .ha-horizontal-timeline-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
761
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
762
+ ],
763
+ ]
764
  );
765
 
766
  // $this->add_responsive_control(
767
+ // 'content_height',
768
+ // [
769
+ // 'label' => __( 'Height', 'happy-elementor-addons' ),
770
+ // 'type' => Controls_Manager::SLIDER,
771
  // 'size_units' => ['px'],
772
  // 'range' => [
773
  // 'px' => [
775
  // 'max' => 3000,
776
  // ],
777
  // ],
778
+ // 'selectors' => [
779
+ // '{{WRAPPER}} .ha-horizontal-timeline-content' => 'height: {{SIZE}}{{UNIT}};'
780
+ // ],
781
+ // ]
782
  // );
783
 
784
  $this->add_responsive_control(
785
+ 'content_padding',
786
+ [
787
+ 'label' => __( 'Padding', 'happy-elementor-addons' ),
788
+ 'type' => Controls_Manager::SLIDER,
789
+ 'size_units' => ['px'],
790
+ 'selectors' => [
791
+ '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'padding: {{SIZE}}{{UNIT}};'
792
+ ],
793
+ ]
794
  );
795
 
796
  $this->add_responsive_control(
797
+ 'content_space',
798
+ [
799
+ 'label' => __( 'Space between contents', 'happy-elementor-addons' ),
800
+ 'type' => Controls_Manager::SLIDER,
801
+ 'size_units' => ['px'],
802
+ 'selectors' => [
803
+ '{{WRAPPER}} .ha-horizontal-timeline-block' => 'padding: {{SIZE}}{{UNIT}};'
804
+ ],
805
+ ]
806
  );
807
 
808
  $this->add_group_control(
815
  );
816
 
817
  $this->add_group_control(
818
+ Group_Control_Box_Shadow::get_type(),
819
+ [
820
+ 'name' => 'content_box_shadow',
821
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-content, {{WRAPPER}} .ha-horizontal-timeline-arrow',
822
+ ]
823
  );
824
 
825
  $this->add_control(
826
+ 'content_background_color',
827
+ [
828
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
829
+ 'type' => Controls_Manager::COLOR,
830
+ 'selectors' => [
831
  '{{WRAPPER}} .ha-horizontal-timeline-content' => 'background-color: {{VALUE}};',
832
  '{{WRAPPER}} .ha-horizontal-timeline-arrow::before' => 'background-color: {{VALUE}};',
833
  '{{WRAPPER}} .ha-horizontal-timeline-inner' => 'background-color: {{VALUE}};'
834
+ ],
835
+ ]
836
+ );
837
 
838
  $this->add_control(
839
+ 'image_heading',
840
+ [
841
+ 'label' => __( 'Image', 'happy-elementor-addons' ),
842
  'type' => Controls_Manager::HEADING,
843
  'separator' => 'before'
844
+ ]
845
  );
846
 
847
  $this->add_responsive_control(
848
+ 'image_width',
849
+ [
850
+ 'label' => __( 'Width', 'happy-elementor-addons' ),
851
+ 'type' => Controls_Manager::SLIDER,
852
  'size_units' => ['px'],
853
  'range' => [
854
  'px' => [
856
  'max' => 3000,
857
  ],
858
  ],
859
+ 'selectors' => [
860
+ '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'width: {{SIZE}}{{UNIT}};'
861
+ ],
862
+ ]
863
  );
864
 
865
  $this->add_responsive_control(
866
+ 'image_height',
867
+ [
868
+ 'label' => __( 'Height', 'happy-elementor-addons' ),
869
+ 'type' => Controls_Manager::SLIDER,
870
  'size_units' => ['px'],
871
  'range' => [
872
  'px' => [
874
  'max' => 3000,
875
  ],
876
  ],
877
+ 'selectors' => [
878
+ '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'height: {{SIZE}}{{UNIT}};'
879
+ ],
880
+ ]
881
  );
882
 
883
  $this->add_responsive_control(
884
+ 'image_spacing',
885
+ [
886
+ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
887
+ 'type' => Controls_Manager::SLIDER,
888
+ 'size_units' => ['px'],
889
+ 'selectors' => [
890
+ '{{WRAPPER}} .ha-horizontal-timeline-image' => 'margin-bottom: {{SIZE}}{{UNIT}};'
891
+ ],
892
+ ]
893
  );
894
 
895
  $this->add_responsive_control(
896
+ 'image_border_radius',
897
+ [
898
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
899
+ 'type' => Controls_Manager::DIMENSIONS,
900
  'size_units' => [ 'px', '%' ],
901
+ 'selectors' => [
902
+ '{{WRAPPER}} .ha-horizontal-timeline-image img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
903
+ ],
904
+ ]
905
  );
906
 
907
  $this->add_group_control(
908
+ Group_Control_Box_Shadow::get_type(),
909
+ [
910
+ 'name' => 'image_box_shadow',
911
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-image img',
912
+ ]
913
+ );
914
 
915
  $this->add_control(
916
+ 'title_heading',
917
+ [
918
+ 'label' => __( 'Title', 'happy-elementor-addons' ),
919
  'type' => Controls_Manager::HEADING,
920
  'separator' => 'before'
921
+ ]
922
  );
923
 
924
  $this->add_responsive_control(
925
+ 'title_spacing',
926
+ [
927
+ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
928
+ 'type' => Controls_Manager::SLIDER,
929
+ 'size_units' => ['px'],
930
+ 'selectors' => [
931
+ '{{WRAPPER}} .ha-horizontal-timeline-title' => 'margin-bottom: {{SIZE}}{{UNIT}};'
932
+ ],
933
+ ]
934
+ );
935
 
936
  $this->add_group_control(
937
+ Group_Control_Typography::get_type(),
938
+ [
939
+ 'name' => 'title_typography',
940
+ 'label' => __( 'Typography', 'happy-elementor-addons' ),
941
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-title',
942
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2
943
+ ]
944
  );
945
 
946
  $this->add_control(
947
+ 'title_color',
948
+ [
949
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
950
+ 'type' => Controls_Manager::COLOR,
951
+ 'selectors' => [
952
  '{{WRAPPER}} .ha-horizontal-timeline-title' => 'color: {{VALUE}}',
953
+ ],
954
+ ]
955
  );
956
 
957
  $this->add_control(
958
+ 'subtitle_heading',
959
+ [
960
+ 'label' => __( 'Sub Title', 'happy-elementor-addons' ),
961
  'type' => Controls_Manager::HEADING,
962
  'separator' => 'before'
963
+ ]
964
  );
965
 
966
  $this->add_responsive_control(
967
+ 'subtitle_spacing',
968
+ [
969
+ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
970
+ 'type' => Controls_Manager::SLIDER,
971
+ 'size_units' => ['px'],
972
+ 'selectors' => [
973
+ '{{WRAPPER}} .ha-horizontal-timeline-subtitle' => 'margin-bottom: {{SIZE}}{{UNIT}};'
974
+ ],
975
+ ]
976
+ );
977
 
978
  $this->add_group_control(
979
+ Group_Control_Typography::get_type(),
980
+ [
981
+ 'name' => 'subtitle_typography',
982
+ 'label' => __( 'Typography', 'happy-elementor-addons' ),
983
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-subtitle',
984
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3
985
+ ]
986
  );
987
 
988
  $this->add_control(
989
+ 'subtitle_color',
990
+ [
991
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
992
+ 'type' => Controls_Manager::COLOR,
993
+ 'selectors' => [
994
  '{{WRAPPER}} .ha-horizontal-timeline-subtitle' => 'color: {{VALUE}}',
995
+ ],
996
+ ]
997
  );
998
 
999
  $this->add_control(
1000
+ 'description_heading',
1001
+ [
1002
+ 'label' => __( 'Description', 'happy-elementor-addons' ),
1003
  'type' => Controls_Manager::HEADING,
1004
  'separator' => 'before'
1005
+ ]
1006
  );
1007
 
1008
  $this->add_group_control(
1009
+ Group_Control_Typography::get_type(),
1010
+ [
1011
+ 'name' => 'description_typography',
1012
+ 'label' => __( 'Typography', 'happy-elementor-addons' ),
1013
+ 'selector' => '{{WRAPPER}} .ha-horizontal-timeline-description',
1014
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3
1015
+ ]
1016
  );
1017
 
1018
  $this->add_control(
1019
+ 'description_color',
1020
+ [
1021
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
1022
+ 'type' => Controls_Manager::COLOR,
1023
+ 'selectors' => [
1024
  '{{WRAPPER}} .ha-horizontal-timeline-description' => 'color: {{VALUE}}',
1025
+ ],
1026
+ ]
1027
  );
1028
 
1029
  $this->end_controls_section();
1030
 
1031
+ }
1032
 
1033
+ protected function render() {
1034
+ $settings = $this->get_settings_for_display();
1035
 
1036
+ if ( empty( $settings['timeline'] ) ) {
1037
+ return;
1038
  }
1039
 
1040
  $this->add_render_attribute( 'wrapper', 'class', 'ha-horizontal-timeline-wrapper' );
1041
  $this->add_render_attribute( 'wrapper', 'class', 'ha-carousel' );
1042
+ ?>
1043
  <div <?php echo $this->get_render_attribute_string( 'wrapper' ); ?>>
1044
 
1045
  <?php foreach ( $settings['timeline'] as $timeline ) : ?>
1081
  </div>
1082
  </div>
1083
  </div>
1084
+
1085
  <?php endforeach; ?>
1086
 
1087
  </div>
1088
 
1089
+ <?php if ( ! empty( $settings['arrow_prev_icon']['value'] ) ) : ?>
1090
+ <button type="button" class="slick-prev"><?php Icons_Manager::render_icon( $settings['arrow_prev_icon'], ['aria-hidden' => 'true'] ); ?></button>
1091
+ <?php endif; ?>
1092
+
1093
+ <?php if ( ! empty( $settings['arrow_next_icon']['value'] ) ) : ?>
1094
+ <button type="button" class="slick-next"><?php Icons_Manager::render_icon( $settings['arrow_next_icon'], ['aria-hidden' => 'true'] ); ?></button>
1095
+ <?php endif; ?>
1096
+
1097
+ <?php
1098
+ }
1099
 
1100
  }
widgets/slider/widget.php CHANGED
@@ -14,92 +14,93 @@ use Elementor\Group_Control_Image_Size;
14
  use Elementor\Group_Control_Typography;
15
  use Elementor\Scheme_Typography;
16
  use Elementor\Utils;
 
17
 
18
  defined( 'ABSPATH' ) || die();
19
 
20
  class Slider extends Base {
21
 
22
- /**
23
- * Get widget title.
24
- *
25
- * @since 1.0.0
26
- * @access public
27
- *
28
- * @return string Widget title.
29
- */
30
- public function get_title() {
31
- return __( 'Slider', 'happy-elementor-addons' );
32
- }
33
 
34
  public function get_custom_help_url() {
35
  return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/slider/';
36
  }
37
 
38
- /**
39
- * Get widget icon.
40
- *
41
- * @since 1.0.0
42
- * @access public
43
- *
44
- * @return string Widget icon.
45
- */
46
- public function get_icon() {
47
- return 'hm hm-image-slider';
48
- }
49
-
50
- public function get_keywords() {
51
- return [ 'slider', 'image', 'gallery', 'carousel' ];
52
- }
53
-
54
- protected function register_content_controls() {
55
- $this->start_controls_section(
56
- '_section_slides',
57
- [
58
- 'label' => __( 'Slides', 'happy-elementor-addons' ),
59
- 'tab' => Controls_Manager::TAB_CONTENT,
60
- ]
61
- );
62
-
63
- $repeater = new Repeater();
64
-
65
- $repeater->add_control(
66
- 'image',
67
- [
68
- 'type' => Controls_Manager::MEDIA,
69
- 'label' => __( 'Image', 'happy-elementor-addons' ),
70
- 'default' => [
71
- 'url' => Utils::get_placeholder_image_src(),
72
- ],
73
- 'dynamic' => [
74
- 'active' => true,
75
- ]
76
- ]
77
- );
78
-
79
- $repeater->add_control(
80
- 'title',
81
- [
82
- 'type' => Controls_Manager::TEXT,
83
- 'label_block' => true,
84
- 'label' => __( 'Title', 'happy-elementor-addons' ),
85
- 'placeholder' => __( 'Type title here', 'happy-elementor-addons' ),
86
- 'dynamic' => [
87
- 'active' => true,
88
- ]
89
- ]
90
- );
91
-
92
- $repeater->add_control(
93
- 'subtitle',
94
- [
95
- 'type' => Controls_Manager::TEXTAREA,
96
- 'label_block' => true,
97
- 'label' => __( 'Subtitle', 'happy-elementor-addons' ),
98
- 'placeholder' => __( 'Type subtitle here', 'happy-elementor-addons' ),
99
- 'dynamic' => [
100
- 'active' => true,
101
- ]
102
- ]
103
  );
104
 
105
  $repeater->add_control(
@@ -115,611 +116,675 @@ class Slider extends Base {
115
  ]
116
  );
117
 
118
- $this->add_control(
119
- 'slides',
120
- [
121
- 'show_label' => false,
122
- 'type' => Controls_Manager::REPEATER,
123
- 'fields' => $repeater->get_controls(),
124
- 'title_field' => '<# print(title || "Carousel Item"); #>',
125
- 'default' => [
126
- [
127
- 'image' => [
128
- 'url' => Utils::get_placeholder_image_src(),
129
- ],
130
- ],
131
- [
132
- 'image' => [
133
- 'url' => Utils::get_placeholder_image_src(),
134
- ],
135
- ],
136
- [
137
- 'image' => [
138
- 'url' => Utils::get_placeholder_image_src(),
139
- ],
140
- ],
141
- [
142
- 'image' => [
143
- 'url' => Utils::get_placeholder_image_src(),
144
- ],
145
- ],
146
- [
147
- 'image' => [
148
- 'url' => Utils::get_placeholder_image_src(),
149
- ],
150
- ]
151
- ]
152
- ]
153
- );
154
-
155
- $this->add_group_control(
156
- Group_Control_Image_Size::get_type(),
157
- [
158
- 'name' => 'thumbnail',
159
- 'default' => 'medium_large',
160
- 'separator' => 'before',
161
- 'exclude' => [
162
- 'custom'
163
- ]
164
- ]
165
- );
166
-
167
- $this->end_controls_section();
168
-
169
- $this->start_controls_section(
170
- '_section_settings',
171
- [
172
- 'label' => __( 'Settings', 'happy-elementor-addons' ),
173
- 'tab' => Controls_Manager::TAB_CONTENT,
174
- ]
175
- );
176
-
177
- $this->add_control(
178
- 'animation_speed',
179
- [
180
- 'label' => __( 'Animation Speed', 'happy-elementor-addons' ),
181
- 'type' => Controls_Manager::NUMBER,
182
- 'min' => 100,
183
- 'step' => 10,
184
- 'max' => 10000,
185
- 'default' => 300,
186
- 'description' => __( 'Slide speed in milliseconds', 'happy-elementor-addons' ),
187
- 'frontend_available' => true,
188
- ]
189
- );
190
-
191
- $this->add_control(
192
- 'autoplay',
193
- [
194
- 'label' => __( 'Autoplay?', 'happy-elementor-addons' ),
195
- 'type' => Controls_Manager::SWITCHER,
196
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
197
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
198
- 'return_value' => 'yes',
199
- 'default' => 'yes',
200
- 'frontend_available' => true,
201
- ]
202
- );
203
-
204
- $this->add_control(
205
- 'autoplay_speed',
206
- [
207
- 'label' => __( 'Autoplay Speed', 'happy-elementor-addons' ),
208
- 'type' => Controls_Manager::NUMBER,
209
- 'min' => 100,
210
- 'step' => 100,
211
- 'max' => 10000,
212
- 'default' => 3000,
213
- 'description' => __( 'Autoplay speed in milliseconds', 'happy-elementor-addons' ),
214
- 'condition' => [
215
- 'autoplay' => 'yes'
216
- ],
217
- 'frontend_available' => true,
218
- ]
219
- );
220
-
221
- $this->add_control(
222
- 'loop',
223
- [
224
- 'label' => __( 'Infinite Loop?', 'happy-elementor-addons' ),
225
- 'type' => Controls_Manager::SWITCHER,
226
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
227
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
228
- 'return_value' => 'yes',
229
- 'default' => 'yes',
230
- 'frontend_available' => true,
231
- ]
232
- );
233
-
234
- $this->add_control(
235
- 'vertical',
236
- [
237
- 'label' => __( 'Vertical Mode?', 'happy-elementor-addons' ),
238
- 'type' => Controls_Manager::SWITCHER,
239
- 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
240
- 'label_off' => __( 'No', 'happy-elementor-addons' ),
241
- 'return_value' => 'yes',
242
- 'frontend_available' => true,
243
- 'style_transfer' => true,
244
- ]
245
- );
246
-
247
- $this->add_control(
248
- 'navigation',
249
- [
250
- 'label' => __( 'Navigation', 'happy-elementor-addons' ),
251
- 'type' => Controls_Manager::SELECT,
252
- 'options' => [
253
- 'none' => __( 'None', 'happy-elementor-addons' ),
254
- 'arrow' => __( 'Arrow', 'happy-elementor-addons' ),
255
- 'dots' => __( 'Dots', 'happy-elementor-addons' ),
256
- 'both' => __( 'Arrow & Dots', 'happy-elementor-addons' ),
257
- ],
258
- 'default' => 'arrow',
259
- 'frontend_available' => true,
260
- 'style_transfer' => true,
261
- ]
262
- );
263
-
264
- $this->end_controls_section();
265
- }
266
-
267
- protected function register_style_controls() {
268
- $this->start_controls_section(
269
- '_section_style_item',
270
- [
271
- 'label' => __( 'Slider Item', 'happy-elementor-addons' ),
272
- 'tab' => Controls_Manager::TAB_STYLE,
273
- ]
274
- );
275
-
276
- $this->add_group_control(
277
- Group_Control_Border::get_type(),
278
- [
279
- 'name' => 'item_border',
280
- 'selector' => '{{WRAPPER}} .ha-slick-item',
281
- ]
282
- );
283
-
284
- $this->add_responsive_control(
285
- 'item_border_radius',
286
- [
287
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
288
- 'type' => Controls_Manager::DIMENSIONS,
289
- 'size_units' => [ 'px', '%' ],
290
- 'selectors' => [
291
- '{{WRAPPER}} .ha-slick-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
292
- ],
293
- ]
294
- );
295
-
296
- $this->end_controls_section();
297
-
298
- $this->start_controls_section(
299
- '_section_style_content',
300
- [
301
- 'label' => __( 'Slide Content', 'happy-elementor-addons' ),
302
- 'tab' => Controls_Manager::TAB_STYLE,
303
- ]
304
- );
305
-
306
- $this->add_responsive_control(
307
- 'content_padding',
308
- [
309
- 'label' => __( 'Content Padding', 'happy-elementor-addons' ),
310
- 'type' => Controls_Manager::DIMENSIONS,
311
- 'size_units' => [ 'px', 'em', '%' ],
312
- 'selectors' => [
313
- '{{WRAPPER}} .ha-slick-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
314
- ],
315
- ]
316
- );
317
-
318
- $this->add_group_control(
319
- Group_Control_Background::get_type(),
320
- [
321
- 'name' => 'content_background',
322
- 'selector' => '{{WRAPPER}} .ha-slick-content',
323
- 'exclude' => [
324
- 'image'
325
- ]
326
- ]
327
- );
328
-
329
- $this->add_control(
330
- '_heading_title',
331
- [
332
- 'type' => Controls_Manager::HEADING,
333
- 'label' => __( 'Title', 'happy-elementor-addons' ),
334
- 'separator' => 'before'
335
- ]
336
- );
337
-
338
- $this->add_responsive_control(
339
- 'title_spacing',
340
- [
341
- 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
342
- 'type' => Controls_Manager::SLIDER,
343
- 'size_units' => ['px'],
344
- 'selectors' => [
345
- '{{WRAPPER}} .ha-slick-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
346
- ],
347
- ]
348
- );
349
-
350
- $this->add_control(
351
- 'title_color',
352
- [
353
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
354
- 'type' => Controls_Manager::COLOR,
355
- 'selectors' => [
356
- '{{WRAPPER}} .ha-slick-title' => 'color: {{VALUE}}',
357
- ],
358
- ]
359
- );
360
-
361
- $this->add_group_control(
362
- Group_Control_Typography::get_type(),
363
- [
364
- 'name' => 'title',
365
- 'selector' => '{{WRAPPER}} .ha-slick-title',
366
- 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
367
- ]
368
- );
369
-
370
- $this->add_control(
371
- '_heading_subtitle',
372
- [
373
- 'type' => Controls_Manager::HEADING,
374
- 'label' => __( 'Subtitle', 'happy-elementor-addons' ),
375
- 'separator' => 'before'
376
- ]
377
- );
378
-
379
- $this->add_responsive_control(
380
- 'subtitle_spacing',
381
- [
382
- 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
383
- 'type' => Controls_Manager::SLIDER,
384
- 'size_units' => ['px'],
385
- 'selectors' => [
386
- '{{WRAPPER}} .ha-slick-subtitle' => 'margin-bottom: {{SIZE}}{{UNIT}};',
387
- ],
388
- ]
389
- );
390
-
391
- $this->add_control(
392
- 'subtitle_color',
393
- [
394
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
395
- 'type' => Controls_Manager::COLOR,
396
- 'selectors' => [
397
- '{{WRAPPER}} .ha-slick-subtitle' => 'color: {{VALUE}}',
398
- ],
399
- ]
400
- );
401
-
402
- $this->add_group_control(
403
- Group_Control_Typography::get_type(),
404
- [
405
- 'name' => 'subtitle',
406
- 'selector' => '{{WRAPPER}} .ha-slick-subtitle',
407
- 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
408
- ]
409
- );
410
-
411
- $this->end_controls_section();
412
-
413
- $this->start_controls_section(
414
- '_section_style_arrow',
415
- [
416
- 'label' => __( 'Navigation - Arrow', 'happy-elementor-addons' ),
417
- 'tab' => Controls_Manager::TAB_STYLE,
418
- ]
419
- );
420
-
421
- $this->add_control(
422
- 'arrow_position_toggle',
423
- [
424
- 'label' => __( 'Position', 'happy-elementor-addons' ),
425
- 'type' => Controls_Manager::POPOVER_TOGGLE,
426
- 'label_off' => __( 'None', 'happy-elementor-addons' ),
427
- 'label_on' => __( 'Custom', 'happy-elementor-addons' ),
428
- 'return_value' => 'yes',
429
- ]
430
- );
431
-
432
- $this->start_popover();
433
-
434
- $this->add_responsive_control(
435
- 'arrow_position_y',
436
- [
437
- 'label' => __( 'Vertical', 'happy-elementor-addons' ),
438
- 'type' => Controls_Manager::SLIDER,
439
- 'size_units' => ['px'],
440
- 'condition' => [
441
- 'arrow_position_toggle' => 'yes'
442
- ],
443
- 'range' => [
444
- 'px' => [
445
- 'min' => 0,
446
- 'max' => 500,
447
- ],
448
- ],
449
- 'selectors' => [
450
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};',
451
- ],
452
- ]
453
- );
454
-
455
- $this->add_responsive_control(
456
- 'arrow_position_x',
457
- [
458
- 'label' => __( 'Horizontal', 'happy-elementor-addons' ),
459
- 'type' => Controls_Manager::SLIDER,
460
- 'size_units' => ['px'],
461
- 'condition' => [
462
- 'arrow_position_toggle' => 'yes'
463
- ],
464
- 'range' => [
465
- 'px' => [
466
- 'min' => -100,
467
- 'max' => 250,
468
- ],
469
- ],
470
- 'selectors' => [
471
- '{{WRAPPER}} .slick-prev' => 'left: {{SIZE}}{{UNIT}};',
472
- '{{WRAPPER}} .slick-next' => 'right: {{SIZE}}{{UNIT}};',
473
- ],
474
- ]
475
- );
476
-
477
- $this->end_popover();
478
-
479
- $this->add_group_control(
480
- Group_Control_Border::get_type(),
481
- [
482
- 'name' => 'arrow_border',
483
- 'selector' => '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next',
484
- ]
485
- );
486
-
487
- $this->add_responsive_control(
488
- 'arrow_border_radius',
489
- [
490
- 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
491
- 'type' => Controls_Manager::DIMENSIONS,
492
- 'size_units' => [ 'px', '%' ],
493
- 'selectors' => [
494
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
495
- ],
496
- ]
497
- );
498
-
499
- $this->start_controls_tabs( '_tabs_arrow' );
500
-
501
- $this->start_controls_tab(
502
- '_tab_arrow_normal',
503
- [
504
- 'label' => __( 'Normal', 'happy-elementor-addons' ),
505
- ]
506
- );
507
-
508
- $this->add_control(
509
- 'arrow_color',
510
- [
511
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
512
- 'type' => Controls_Manager::COLOR,
513
- 'default' => '',
514
- 'selectors' => [
515
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'color: {{VALUE}};',
516
- ],
517
- ]
518
- );
519
-
520
- $this->add_control(
521
- 'arrow_bg_color',
522
- [
523
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
524
- 'type' => Controls_Manager::COLOR,
525
- 'selectors' => [
526
- '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'background-color: {{VALUE}};',
527
- ],
528
- ]
529
- );
530
-
531
- $this->end_controls_tab();
532
-
533
- $this->start_controls_tab(
534
- '_tab_arrow_hover',
535
- [
536
- 'label' => __( 'Hover', 'happy-elementor-addons' ),
537
- ]
538
- );
539
-
540
- $this->add_control(
541
- 'arrow_hover_color',
542
- [
543
- 'label' => __( 'Text Color', 'happy-elementor-addons' ),
544
- 'type' => Controls_Manager::COLOR,
545
- 'selectors' => [
546
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'color: {{VALUE}};',
547
- ],
548
- ]
549
- );
550
-
551
- $this->add_control(
552
- 'arrow_hover_bg_color',
553
- [
554
- 'label' => __( 'Background Color', 'happy-elementor-addons' ),
555
- 'type' => Controls_Manager::COLOR,
556
- 'selectors' => [
557
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'background-color: {{VALUE}};',
558
- ],
559
- ]
560
- );
561
-
562
- $this->add_control(
563
- 'arrow_hover_border_color',
564
- [
565
- 'label' => __( 'Border Color', 'happy-elementor-addons' ),
566
- 'type' => Controls_Manager::COLOR,
567
- 'condition' => [
568
- 'arrow_border_border!' => '',
569
- ],
570
- 'selectors' => [
571
- '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'border-color: {{VALUE}};',
572
- ],
573
- ]
574
- );
575
-
576
- $this->end_controls_tab();
577
- $this->end_controls_tabs();
578
-
579
- $this->end_controls_section();
580
-
581
- $this->start_controls_section(
582
- '_section_style_dots',
583
- [
584
- 'label' => __( 'Navigation - Dots', 'happy-elementor-addons' ),
585
- 'tab' => Controls_Manager::TAB_STYLE,
586
- ]
587
- );
588
-
589
- $this->add_responsive_control(
590
- 'dots_nav_position_y',
591
- [
592
- 'label' => __( 'Vertical Position', 'happy-elementor-addons' ),
593
- 'type' => Controls_Manager::SLIDER,
594
- 'size_units' => ['px'],
595
- 'range' => [
596
- 'px' => [
597
- 'min' => -100,
598
- 'max' => 500,
599
- ],
600
- ],
601
- 'selectors' => [
602
- '{{WRAPPER}} .slick-dots' => 'bottom: {{SIZE}}{{UNIT}};',
603
- ],
604
- ]
605
- );
606
-
607
- $this->add_responsive_control(
608
- 'dots_nav_spacing',
609
- [
610
- 'label' => __( 'Spacing', 'happy-elementor-addons' ),
611
- 'type' => Controls_Manager::SLIDER,
612
- 'size_units' => ['px'],
613
- 'selectors' => [
614
- '{{WRAPPER}} .slick-dots li' => 'margin-right: calc({{SIZE}}{{UNIT}} / 2); margin-left: calc({{SIZE}}{{UNIT}} / 2);',
615
- ],
616
- ]
617
- );
618
-
619
- $this->add_responsive_control(
620
- 'dots_nav_align',
621
- [
622
- 'label' => __( 'Alignment', 'happy-elementor-addons' ),
623
- 'type' => Controls_Manager::CHOOSE,
624
- 'label_block' => false,
625
- 'options' => [
626
- 'left' => [
627
- 'title' => __( 'Left', 'happy-elementor-addons' ),
628
- 'icon' => 'eicon-h-align-left',
629
- ],
630
- 'center' => [
631
- 'title' => __( 'Center', 'happy-elementor-addons' ),
632
- 'icon' => 'eicon-h-align-center',
633
- ],
634
- 'right' => [
635
- 'title' => __( 'Right', 'happy-elementor-addons' ),
636
- 'icon' => 'eicon-h-align-right',
637
- ],
638
- ],
639
- 'toggle' => true,
640
- 'selectors' => [
641
- '{{WRAPPER}} .slick-dots' => 'text-align: {{VALUE}}'
642
- ]
643
- ]
644
- );
645
-
646
- $this->start_controls_tabs( '_tabs_dots' );
647
- $this->start_controls_tab(
648
- '_tab_dots_normal',
649
- [
650
- 'label' => __( 'Normal', 'happy-elementor-addons' ),
651
- ]
652
- );
653
-
654
- $this->add_control(
655
- 'dots_nav_color',
656
- [
657
- 'label' => __( 'Color', 'happy-elementor-addons' ),
658
- 'type' => Controls_Manager::COLOR,
659
- 'selectors' => [
660
- '{{WRAPPER}} .slick-dots li button:before' => 'color: {{VALUE}};',
661
- ],
662
- ]
663
- );
664
-
665
- $this->end_controls_tab();
666
-
667
- $this->start_controls_tab(
668
- '_tab_dots_hover',
669
- [
670
- 'label' => __( 'Hover', 'happy-elementor-addons' ),
671
- ]
672
- );
673
-
674
- $this->add_control(
675
- 'dots_nav_hover_color',
676
- [
677
- 'label' => __( 'Color', 'happy-elementor-addons' ),
678
- 'type' => Controls_Manager::COLOR,
679
- 'selectors' => [
680
- '{{WRAPPER}} .slick-dots li button:hover:before' => 'color: {{VALUE}};',
681
- ],
682
- ]
683
- );
684
-
685
- $this->end_controls_tab();
686
-
687
- $this->start_controls_tab(
688
- '_tab_dots_active',
689
- [
690
- 'label' => __( 'Active', 'happy-elementor-addons' ),
691
- ]
692
- );
693
-
694
- $this->add_control(
695
- 'dots_nav_active_color',
696
- [
697
- 'label' => __( 'Color', 'happy-elementor-addons' ),
698
- 'type' => Controls_Manager::COLOR,
699
- 'selectors' => [
700
- '{{WRAPPER}} .slick-dots .slick-active button:before' => 'color: {{VALUE}};',
701
- ],
702
- ]
703
- );
704
-
705
- $this->end_controls_tab();
706
- $this->end_controls_tabs();
707
-
708
- $this->end_controls_section();
709
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
710
 
711
  protected function render() {
712
- $settings = $this->get_settings_for_display();
713
 
714
- if ( empty( $settings['slides'] ) ) {
715
- return;
716
- }
717
- ?>
718
 
719
- <div class="hajs-slick ha-slick ha-slick--slider">
720
 
721
- <?php foreach ( $settings['slides'] as $slide ) :
722
- $image = wp_get_attachment_image_url( $slide['image']['id'], $settings['thumbnail_size'] );
723
 
724
  if ( ! $image ) {
725
  $image = $slide['image']['url'];
@@ -734,31 +799,39 @@ class Slider extends Base {
734
  $item_tag = 'a';
735
  $this->add_link_attributes( $id, $slide['link'] );
736
  }
737
- ?>
738
 
739
- <div class="ha-slick-slide">
740
  <<?php echo $item_tag; ?> <?php $this->print_render_attribute_string( $id ); ?>>
741
- <?php if ( $image ) : ?>
742
- <img class="ha-slick-img" src="<?php echo esc_url( $image ); ?>" alt="<?php echo esc_attr( $slide['title'] ); ?>">
743
- <?php endif; ?>
744
-
745
- <?php if ( $slide['title'] || $slide['subtitle'] ) : ?>
746
- <div class="ha-slick-content">
747
- <?php if ( $slide['title'] ) : ?>
748
- <h2 class="ha-slick-title"><?php echo ha_kses_basic( $slide['title'] ); ?></h2>
749
- <?php endif; ?>
750
- <?php if ( $slide['subtitle'] ) : ?>
751
- <p class="ha-slick-subtitle"><?php echo ha_kses_basic( $slide['subtitle'] ); ?></p>
752
- <?php endif; ?>
753
- </div>
754
- <?php endif; ?>
755
  </<?php echo $item_tag; ?>>
756
- </div>
757
 
758
- <?php endforeach; ?>
759
 
760
- </div>
761
 
762
- <?php
763
- }
 
 
 
 
 
 
 
 
764
  }
14
  use Elementor\Group_Control_Typography;
15
  use Elementor\Scheme_Typography;
16
  use Elementor\Utils;
17
+ use Elementor\Icons_Manager;
18
 
19
  defined( 'ABSPATH' ) || die();
20
 
21
  class Slider extends Base {
22
 
23
+ /**
24
+ * Get widget title.
25
+ *
26
+ * @since 1.0.0
27
+ * @access public
28
+ *
29
+ * @return string Widget title.
30
+ */
31
+ public function get_title() {
32
+ return __( 'Slider', 'happy-elementor-addons' );
33
+ }
34
 
35
  public function get_custom_help_url() {
36
  return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/slider/';
37
  }
38
 
39
+ /**
40
+ * Get widget icon.
41
+ *
42
+ * @since 1.0.0
43
+ * @access public
44
+ *
45
+ * @return string Widget icon.
46
+ */
47
+ public function get_icon() {
48
+ return 'hm hm-image-slider';
49
+ }
50
+
51
+ public function get_keywords() {
52
+ return [ 'slider', 'image', 'gallery', 'carousel' ];
53
+ }
54
+
55
+ protected function register_content_controls() {
56
+ $this->start_controls_section(
57
+ '_section_slides',
58
+ [
59
+ 'label' => __( 'Slides', 'happy-elementor-addons' ),
60
+ 'tab' => Controls_Manager::TAB_CONTENT,
61
+ ]
62
+ );
63
+
64
+ $repeater = new Repeater();
65
+
66
+ $repeater->add_control(
67
+ 'image',
68
+ [
69
+ 'type' => Controls_Manager::MEDIA,
70
+ 'label' => __( 'Image', 'happy-elementor-addons' ),
71
+ 'default' => [
72
+ 'url' => Utils::get_placeholder_image_src(),
73
+ ],
74
+ 'dynamic' => [
75
+ 'active' => true,
76
+ ]
77
+ ]
78
+ );
79
+
80
+ $repeater->add_control(
81
+ 'title',
82
+ [
83
+ 'type' => Controls_Manager::TEXT,
84
+ 'label_block' => true,
85
+ 'label' => __( 'Title', 'happy-elementor-addons' ),
86
+ 'placeholder' => __( 'Type title here', 'happy-elementor-addons' ),
87
+ 'dynamic' => [
88
+ 'active' => true,
89
+ ]
90
+ ]
91
+ );
92
+
93
+ $repeater->add_control(
94
+ 'subtitle',
95
+ [
96
+ 'type' => Controls_Manager::TEXTAREA,
97
+ 'label_block' => true,
98
+ 'label' => __( 'Subtitle', 'happy-elementor-addons' ),
99
+ 'placeholder' => __( 'Type subtitle here', 'happy-elementor-addons' ),
100
+ 'dynamic' => [
101
+ 'active' => true,
102
+ ]
103
+ ]
104
  );
105
 
106
  $repeater->add_control(
116
  ]
117
  );
118
 
119
+ $this->add_control(
120
+ 'slides',
121
+ [
122
+ 'show_label' => false,
123
+ 'type' => Controls_Manager::REPEATER,
124
+ 'fields' => $repeater->get_controls(),
125
+ 'title_field' => '<# print(title || "Carousel Item"); #>',
126
+ 'default' => [
127
+ [
128
+ 'image' => [
129
+ 'url' => Utils::get_placeholder_image_src(),
130
+ ],
131
+ ],
132
+ [
133
+ 'image' => [
134
+ 'url' => Utils::get_placeholder_image_src(),
135
+ ],
136
+ ],
137
+ [
138
+ 'image' => [
139
+ 'url' => Utils::get_placeholder_image_src(),
140
+ ],
141
+ ],
142
+ [
143
+ 'image' => [
144
+ 'url' => Utils::get_placeholder_image_src(),
145
+ ],
146
+ ],
147
+ [
148
+ 'image' => [
149
+ 'url' => Utils::get_placeholder_image_src(),
150
+ ],
151
+ ]
152
+ ]
153
+ ]
154
+ );
155
+
156
+ $this->add_group_control(
157
+ Group_Control_Image_Size::get_type(),
158
+ [
159
+ 'name' => 'thumbnail',
160
+ 'default' => 'medium_large',
161
+ 'separator' => 'before',
162
+ 'exclude' => [
163
+ 'custom'
164
+ ]
165
+ ]
166
+ );
167
+
168
+ $this->end_controls_section();
169
+
170
+ $this->start_controls_section(
171
+ '_section_settings',
172
+ [
173
+ 'label' => __( 'Settings', 'happy-elementor-addons' ),
174
+ 'tab' => Controls_Manager::TAB_CONTENT,
175
+ ]
176
+ );
177
+
178
+ $this->add_control(
179
+ 'animation_speed',
180
+ [
181
+ 'label' => __( 'Animation Speed', 'happy-elementor-addons' ),
182
+ 'type' => Controls_Manager::NUMBER,
183
+ 'min' => 100,
184
+ 'step' => 10,
185
+ 'max' => 10000,
186
+ 'default' => 300,
187
+ 'description' => __( 'Slide speed in milliseconds', 'happy-elementor-addons' ),
188
+ 'frontend_available' => true,
189
+ 'render_type' => 'ui',
190
+ ]
191
+ );
192
+
193
+ $this->add_control(
194
+ 'autoplay',
195
+ [
196
+ 'label' => __( 'Autoplay?', 'happy-elementor-addons' ),
197
+ 'type' => Controls_Manager::SWITCHER,
198
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
199
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
200
+ 'return_value' => 'yes',
201
+ 'default' => 'yes',
202
+ 'frontend_available' => true,
203
+ 'render_type' => 'ui',
204
+ ]
205
+ );
206
+
207
+ $this->add_control(
208
+ 'autoplay_speed',
209
+ [
210
+ 'label' => __( 'Autoplay Speed', 'happy-elementor-addons' ),
211
+ 'type' => Controls_Manager::NUMBER,
212
+ 'min' => 100,
213
+ 'step' => 100,
214
+ 'max' => 10000,
215
+ 'default' => 3000,
216
+ 'description' => __( 'Autoplay speed in milliseconds', 'happy-elementor-addons' ),
217
+ 'condition' => [
218
+ 'autoplay' => 'yes'
219
+ ],
220
+ 'frontend_available' => true,
221
+ 'render_type' => 'ui',
222
+ ]
223
+ );
224
+
225
+ $this->add_control(
226
+ 'loop',
227
+ [
228
+ 'label' => __( 'Infinite Loop?', 'happy-elementor-addons' ),
229
+ 'type' => Controls_Manager::SWITCHER,
230
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
231
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
232
+ 'return_value' => 'yes',
233
+ 'default' => 'yes',
234
+ 'frontend_available' => true,
235
+ 'render_type' => 'ui',
236
+ ]
237
+ );
238
+
239
+ $this->add_control(
240
+ 'vertical',
241
+ [
242
+ 'label' => __( 'Vertical Mode?', 'happy-elementor-addons' ),
243
+ 'type' => Controls_Manager::SWITCHER,
244
+ 'label_on' => __( 'Yes', 'happy-elementor-addons' ),
245
+ 'label_off' => __( 'No', 'happy-elementor-addons' ),
246
+ 'return_value' => 'yes',
247
+ 'frontend_available' => true,
248
+ 'style_transfer' => true,
249
+ 'render_type' => 'ui',
250
+ ]
251
+ );
252
+
253
+ $this->add_control(
254
+ 'navigation',
255
+ [
256
+ 'label' => __( 'Navigation', 'happy-elementor-addons' ),
257
+ 'type' => Controls_Manager::SELECT,
258
+ 'options' => [
259
+ 'none' => __( 'None', 'happy-elementor-addons' ),
260
+ 'arrow' => __( 'Arrow', 'happy-elementor-addons' ),
261
+ 'dots' => __( 'Dots', 'happy-elementor-addons' ),
262
+ 'both' => __( 'Arrow & Dots', 'happy-elementor-addons' ),
263
+ ],
264
+ 'default' => 'arrow',
265
+ 'frontend_available' => true,
266
+ 'style_transfer' => true,
267
+ 'render_type' => 'ui',
268
+ ]
269
+ );
270
+
271
+ $this->add_control(
272
+ 'arrow_prev_icon',
273
+ [
274
+ 'label' => __( 'Previous Icon', 'happy-elementor-addons' ),
275
+ 'label_block' => false,
276
+ 'type' => Controls_Manager::ICONS,
277
+ 'skin' => 'inline',
278
+ 'default' => [
279
+ 'value' => 'fas fa-chevron-left',
280
+ 'library' => 'fa-solid',
281
+ ],
282
+ 'condition' => [
283
+ 'navigation' => ['arrow', 'both']
284
+ ],
285
+ ]
286
+ );
287
+
288
+ $this->add_control(
289
+ 'arrow_next_icon',
290
+ [
291
+ 'label' => __( 'Next Icon', 'happy-elementor-addons' ),
292
+ 'label_block' => false,
293
+ 'type' => Controls_Manager::ICONS,
294
+ 'skin' => 'inline',
295
+ 'default' => [
296
+ 'value' => 'fas fa-chevron-right',
297
+ 'library' => 'fa-solid',
298
+ ],
299
+ 'condition' => [
300
+ 'navigation' => ['arrow', 'both']
301
+ ],
302
+ ]
303
+ );
304
+
305
+ $this->end_controls_section();
306
+ }
307
+
308
+ protected function register_style_controls() {
309
+ $this->start_controls_section(
310
+ '_section_style_item',
311
+ [
312
+ 'label' => __( 'Slider Item', 'happy-elementor-addons' ),
313
+ 'tab' => Controls_Manager::TAB_STYLE,
314
+ ]
315
+ );
316
+
317
+ $this->add_group_control(
318
+ Group_Control_Border::get_type(),
319
+ [
320
+ 'name' => 'item_border',
321
+ 'selector' => '{{WRAPPER}} .ha-slick-item',
322
+ ]
323
+ );
324
+
325
+ $this->add_responsive_control(
326
+ 'item_border_radius',
327
+ [
328
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
329
+ 'type' => Controls_Manager::DIMENSIONS,
330
+ 'size_units' => [ 'px', '%' ],
331
+ 'selectors' => [
332
+ '{{WRAPPER}} .ha-slick-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
333
+ ],
334
+ ]
335
+ );
336
+
337
+ $this->end_controls_section();
338
+
339
+ $this->start_controls_section(
340
+ '_section_style_content',
341
+ [
342
+ 'label' => __( 'Slide Content', 'happy-elementor-addons' ),
343
+ 'tab' => Controls_Manager::TAB_STYLE,
344
+ ]
345
+ );
346
+
347
+ $this->add_responsive_control(
348
+ 'content_padding',
349
+ [
350
+ 'label' => __( 'Content Padding', 'happy-elementor-addons' ),
351
+ 'type' => Controls_Manager::DIMENSIONS,
352
+ 'size_units' => [ 'px', 'em', '%' ],
353
+ 'selectors' => [
354
+ '{{WRAPPER}} .ha-slick-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
355
+ ],
356
+ ]
357
+ );
358
+
359
+ $this->add_group_control(
360
+ Group_Control_Background::get_type(),
361
+ [
362
+ 'name' => 'content_background',
363
+ 'selector' => '{{WRAPPER}} .ha-slick-content',
364
+ 'exclude' => [
365
+ 'image'
366
+ ]
367
+ ]
368
+ );
369
+
370
+ $this->add_control(
371
+ '_heading_title',
372
+ [
373
+ 'type' => Controls_Manager::HEADING,
374
+ 'label' => __( 'Title', 'happy-elementor-addons' ),
375
+ 'separator' => 'before'
376
+ ]
377
+ );
378
+
379
+ $this->add_responsive_control(
380
+ 'title_spacing',
381
+ [
382
+ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
383
+ 'type' => Controls_Manager::SLIDER,
384
+ 'size_units' => ['px'],
385
+ 'selectors' => [
386
+ '{{WRAPPER}} .ha-slick-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
387
+ ],
388
+ ]
389
+ );
390
+
391
+ $this->add_control(
392
+ 'title_color',
393
+ [
394
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
395
+ 'type' => Controls_Manager::COLOR,
396
+ 'selectors' => [
397
+ '{{WRAPPER}} .ha-slick-title' => 'color: {{VALUE}}',
398
+ ],
399
+ ]
400
+ );
401
+
402
+ $this->add_group_control(
403
+ Group_Control_Typography::get_type(),
404
+ [
405
+ 'name' => 'title',
406
+ 'selector' => '{{WRAPPER}} .ha-slick-title',
407
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
408
+ ]
409
+ );
410
+
411
+ $this->add_control(
412
+ '_heading_subtitle',
413
+ [
414
+ 'type' => Controls_Manager::HEADING,
415
+ 'label' => __( 'Subtitle', 'happy-elementor-addons' ),
416
+ 'separator' => 'before'
417
+ ]
418
+ );
419
+
420
+ $this->add_responsive_control(
421
+ 'subtitle_spacing',
422
+ [
423
+ 'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
424
+ 'type' => Controls_Manager::SLIDER,
425
+ 'size_units' => ['px'],
426
+ 'selectors' => [
427
+ '{{WRAPPER}} .ha-slick-subtitle' => 'margin-bottom: {{SIZE}}{{UNIT}};',
428
+ ],
429
+ ]
430
+ );
431
+
432
+ $this->add_control(
433
+ 'subtitle_color',
434
+ [
435
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
436
+ 'type' => Controls_Manager::COLOR,
437
+ 'selectors' => [
438
+ '{{WRAPPER}} .ha-slick-subtitle' => 'color: {{VALUE}}',
439
+ ],
440
+ ]
441
+ );
442
+
443
+ $this->add_group_control(
444
+ Group_Control_Typography::get_type(),
445
+ [
446
+ 'name' => 'subtitle',
447
+ 'selector' => '{{WRAPPER}} .ha-slick-subtitle',
448
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
449
+ ]
450
+ );
451
+
452
+ $this->end_controls_section();
453
+
454
+ $this->start_controls_section(
455
+ '_section_style_arrow',
456
+ [
457
+ 'label' => __( 'Navigation - Arrow', 'happy-elementor-addons' ),
458
+ 'tab' => Controls_Manager::TAB_STYLE,
459
+ ]
460
+ );
461
+
462
+ $this->add_control(
463
+ 'arrow_position_toggle',
464
+ [
465
+ 'label' => __( 'Position', 'happy-elementor-addons' ),
466
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
467
+ 'label_off' => __( 'None', 'happy-elementor-addons' ),
468
+ 'label_on' => __( 'Custom', 'happy-elementor-addons' ),
469
+ 'return_value' => 'yes',
470
+ ]
471
+ );
472
+
473
+ $this->start_popover();
474
+
475
+ $this->add_responsive_control(
476
+ 'arrow_position_y',
477
+ [
478
+ 'label' => __( 'Vertical', 'happy-elementor-addons' ),
479
+ 'type' => Controls_Manager::SLIDER,
480
+ 'size_units' => ['px', '%'],
481
+ 'condition' => [
482
+ 'arrow_position_toggle' => 'yes'
483
+ ],
484
+ 'range' => [
485
+ 'px' => [
486
+ 'min' => -100,
487
+ 'max' => 500,
488
+ ],
489
+ '%' => [
490
+ 'min' => -110,
491
+ 'max' => 110,
492
+ ],
493
+ ],
494
+ 'selectors' => [
495
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'top: {{SIZE}}{{UNIT}};',
496
+ ],
497
+ ]
498
+ );
499
+
500
+ $this->add_responsive_control(
501
+ 'arrow_position_x',
502
+ [
503
+ 'label' => __( 'Horizontal', 'happy-elementor-addons' ),
504
+ 'type' => Controls_Manager::SLIDER,
505
+ 'size_units' => ['px', '%'],
506
+ 'condition' => [
507
+ 'arrow_position_toggle' => 'yes'
508
+ ],
509
+ 'range' => [
510
+ 'px' => [
511
+ 'min' => -100,
512
+ 'max' => 500,
513
+ ],
514
+ '%' => [
515
+ 'min' => -110,
516
+ 'max' => 110,
517
+ ],
518
+ ],
519
+ 'selectors' => [
520
+ '{{WRAPPER}} .slick-prev' => 'left: {{SIZE}}{{UNIT}};',
521
+ '{{WRAPPER}} .slick-next' => 'right: {{SIZE}}{{UNIT}};',
522
+ ],
523
+ ]
524
+ );
525
+
526
+ $this->end_popover();
527
+
528
+ $this->add_responsive_control(
529
+ 'arrow_size',
530
+ [
531
+ 'label' => __( 'Size', 'happy-elementor-addons' ),
532
+ 'type' => Controls_Manager::SLIDER,
533
+ 'size_units' => ['px', 'em'],
534
+ 'selectors' => [
535
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'font-size: {{SIZE}}{{UNIT}};',
536
+ ],
537
+ ]
538
+ );
539
+
540
+ $this->add_group_control(
541
+ Group_Control_Border::get_type(),
542
+ [
543
+ 'name' => 'arrow_border',
544
+ 'selector' => '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next',
545
+ ]
546
+ );
547
+
548
+ $this->add_responsive_control(
549
+ 'arrow_border_radius',
550
+ [
551
+ 'label' => __( 'Border Radius', 'happy-elementor-addons' ),
552
+ 'type' => Controls_Manager::DIMENSIONS,
553
+ 'size_units' => [ 'px', '%' ],
554
+ 'selectors' => [
555
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;',
556
+ ],
557
+ ]
558
+ );
559
+
560
+ $this->start_controls_tabs( '_tabs_arrow' );
561
+
562
+ $this->start_controls_tab(
563
+ '_tab_arrow_normal',
564
+ [
565
+ 'label' => __( 'Normal', 'happy-elementor-addons' ),
566
+ ]
567
+ );
568
+
569
+ $this->add_control(
570
+ 'arrow_color',
571
+ [
572
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
573
+ 'type' => Controls_Manager::COLOR,
574
+ 'default' => '',
575
+ 'selectors' => [
576
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'color: {{VALUE}};',
577
+ ],
578
+ ]
579
+ );
580
+
581
+ $this->add_control(
582
+ 'arrow_bg_color',
583
+ [
584
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
585
+ 'type' => Controls_Manager::COLOR,
586
+ 'selectors' => [
587
+ '{{WRAPPER}} .slick-prev, {{WRAPPER}} .slick-next' => 'background-color: {{VALUE}};',
588
+ ],
589
+ ]
590
+ );
591
+
592
+ $this->end_controls_tab();
593
+
594
+ $this->start_controls_tab(
595
+ '_tab_arrow_hover',
596
+ [
597
+ 'label' => __( 'Hover', 'happy-elementor-addons' ),
598
+ ]
599
+ );
600
+
601
+ $this->add_control(
602
+ 'arrow_hover_color',
603
+ [
604
+ 'label' => __( 'Text Color', 'happy-elementor-addons' ),
605
+ 'type' => Controls_Manager::COLOR,
606
+ 'selectors' => [
607
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'color: {{VALUE}};',
608
+ ],
609
+ ]
610
+ );
611
+
612
+ $this->add_control(
613
+ 'arrow_hover_bg_color',
614
+ [
615
+ 'label' => __( 'Background Color', 'happy-elementor-addons' ),
616
+ 'type' => Controls_Manager::COLOR,
617
+ 'selectors' => [
618
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'background-color: {{VALUE}};',
619
+ ],
620
+ ]
621
+ );
622
+
623
+ $this->add_control(
624
+ 'arrow_hover_border_color',
625
+ [
626
+ 'label' => __( 'Border Color', 'happy-elementor-addons' ),
627
+ 'type' => Controls_Manager::COLOR,
628
+ 'condition' => [
629
+ 'arrow_border_border!' => '',
630
+ ],
631
+ 'selectors' => [
632
+ '{{WRAPPER}} .slick-prev:hover, {{WRAPPER}} .slick-next:hover' => 'border-color: {{VALUE}};',
633
+ ],
634
+ ]
635
+ );
636
+
637
+ $this->end_controls_tab();
638
+ $this->end_controls_tabs();
639
+
640
+ $this->end_controls_section();
641
+
642
+ $this->start_controls_section(
643
+ '_section_style_dots',
644
+ [
645
+ 'label' => __( 'Navigation - Dots', 'happy-elementor-addons' ),
646
+ 'tab' => Controls_Manager::TAB_STYLE,
647
+ ]
648
+ );
649
+
650
+ $this->add_responsive_control(
651
+ 'dots_nav_position_y',
652
+ [
653
+ 'label' => __( 'Vertical Position', 'happy-elementor-addons' ),
654
+ 'type' => Controls_Manager::SLIDER,
655
+ 'size_units' => ['px', '%'],
656
+ 'range' => [
657
+ 'px' => [
658
+ 'min' => -100,
659
+ 'max' => 500,
660
+ ],
661
+ '%' => [
662
+ 'min' => -100,
663
+ 'max' => 150,
664
+ ],
665
+ ],
666
+ 'selectors' => [
667
+ '{{WRAPPER}} .slick-dots' => 'bottom: {{SIZE}}{{UNIT}};',
668
+ ],
669
+ ]
670
+ );
671
+
672
+ $this->add_responsive_control(
673
+ 'dots_nav_spacing',
674
+ [
675
+ 'label' => __( 'Spacing', 'happy-elementor-addons' ),
676
+ 'type' => Controls_Manager::SLIDER,
677
+ 'size_units' => ['px'],
678
+ 'selectors' => [
679
+ '{{WRAPPER}} .slick-dots li' => 'margin-right: calc({{SIZE}}{{UNIT}} / 2); margin-left: calc({{SIZE}}{{UNIT}} / 2);',
680
+ ],
681
+ ]
682
+ );
683
+
684
+ $this->add_responsive_control(
685
+ 'dots_nav_align',
686
+ [
687
+ 'label' => __( 'Alignment', 'happy-elementor-addons' ),
688
+ 'type' => Controls_Manager::CHOOSE,
689
+ 'label_block' => false,
690
+ 'options' => [
691
+ 'left' => [
692
+ 'title' => __( 'Left', 'happy-elementor-addons' ),
693
+ 'icon' => 'eicon-h-align-left',
694
+ ],
695
+ 'center' => [
696
+ 'title' => __( 'Center', 'happy-elementor-addons' ),
697
+ 'icon' => 'eicon-h-align-center',
698
+ ],
699
+ 'right' => [
700
+ 'title' => __( 'Right', 'happy-elementor-addons' ),
701
+ 'icon' => 'eicon-h-align-right',
702
+ ],
703
+ ],
704
+ 'toggle' => true,
705
+ 'selectors' => [
706
+ '{{WRAPPER}} .slick-dots' => 'text-align: {{VALUE}}'
707
+ ]
708
+ ]
709
+ );
710
+
711
+ $this->start_controls_tabs( '_tabs_dots' );
712
+ $this->start_controls_tab(
713
+ '_tab_dots_normal',
714
+ [
715
+ 'label' => __( 'Normal', 'happy-elementor-addons' ),
716
+ ]
717
+ );
718
+
719
+ $this->add_control(
720
+ 'dots_nav_color',
721
+ [
722
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
723
+ 'type' => Controls_Manager::COLOR,
724
+ 'selectors' => [
725
+ '{{WRAPPER}} .slick-dots li button:before' => 'color: {{VALUE}};',
726
+ ],
727
+ ]
728
+ );
729
+
730
+ $this->end_controls_tab();
731
+
732
+ $this->start_controls_tab(
733
+ '_tab_dots_hover',
734
+ [
735
+ 'label' => __( 'Hover', 'happy-elementor-addons' ),
736
+ ]
737
+ );
738
+
739
+ $this->add_control(
740
+ 'dots_nav_hover_color',
741
+ [
742
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
743
+ 'type' => Controls_Manager::COLOR,
744
+ 'selectors' => [
745
+ '{{WRAPPER}} .slick-dots li button:hover:before' => 'color: {{VALUE}};',
746
+ ],
747
+ ]
748
+ );
749
+
750
+ $this->end_controls_tab();
751
+
752
+ $this->start_controls_tab(
753
+ '_tab_dots_active',
754
+ [
755
+ 'label' => __( 'Active', 'happy-elementor-addons' ),
756
+ ]
757
+ );
758
+
759
+ $this->add_control(
760
+ 'dots_nav_active_color',
761
+ [
762
+ 'label' => __( 'Color', 'happy-elementor-addons' ),
763
+ 'type' => Controls_Manager::COLOR,
764
+ 'selectors' => [
765
+ '{{WRAPPER}} .slick-dots .slick-active button:before' => 'color: {{VALUE}};',
766
+ ],
767
+ ]
768
+ );
769
+
770
+ $this->end_controls_tab();
771
+ $this->end_controls_tabs();
772
+
773
+ $this->end_controls_section();
774
+ }
775
 
776
  protected function render() {
777
+ $settings = $this->get_settings_for_display();
778
 
779
+ if ( empty( $settings['slides'] ) ) {
780
+ return;
781
+ }
782
+ ?>
783
 
784
+ <div class="hajs-slick ha-slick ha-slick--slider">
785
 
786
+ <?php foreach ( $settings['slides'] as $slide ) :
787
+ $image = wp_get_attachment_image_url( $slide['image']['id'], $settings['thumbnail_size'] );
788
 
789
  if ( ! $image ) {
790
  $image = $slide['image']['url'];
799
  $item_tag = 'a';
800
  $this->add_link_attributes( $id, $slide['link'] );
801
  }
802
+ ?>
803
 
804
+ <div class="ha-slick-slide">
805
  <<?php echo $item_tag; ?> <?php $this->print_render_attribute_string( $id ); ?>>
806
+ <?php if ( $image ) : ?>
807
+ <img class="ha-slick-img" src="<?php echo esc_url( $image ); ?>" alt="<?php echo esc_attr( $slide['title'] ); ?>">
808
+ <?php endif; ?>
809
+
810
+ <?php if ( $slide['title'] || $slide['subtitle'] ) : ?>
811
+ <div class="ha-slick-content">
812
+ <?php if ( $slide['title'] ) : ?>
813
+ <h2 class="ha-slick-title"><?php echo ha_kses_basic( $slide['title'] ); ?></h2>
814
+ <?php endif; ?>
815
+ <?php if ( $slide['subtitle'] ) : ?>
816
+ <p class="ha-slick-subtitle"><?php echo ha_kses_basic( $slide['subtitle'] ); ?></p>
817
+ <?php endif; ?>
818
+ </div>
819
+ <?php endif; ?>
820
  </<?php echo $item_tag; ?>>
821
+ </div>
822
 
823
+ <?php endforeach; ?>
824
 
825
+ </div>
826
 
827
+ <?php if ( ! empty( $settings['arrow_prev_icon']['value'] ) ) : ?>
828
+ <button type="button" class="slick-prev"><?php Icons_Manager::render_icon( $settings['arrow_prev_icon'], ['aria-hidden' => 'true'] ); ?></button>
829
+ <?php endif; ?>
830
+
831
+ <?php if ( ! empty( $settings['arrow_next_icon']['value'] ) ) : ?>
832
+ <button type="button" class="slick-next"><?php Icons_Manager::render_icon( $settings['arrow_next_icon'], ['aria-hidden' => 'true'] ); ?></button>
833
+ <?php endif; ?>
834
+
835
+ <?php
836
+ }
837
  }